From eb8db1cb3b99405f2bdd904129edfb24fe62b674 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
Date: Sat, 17 Feb 2018 20:46:18 +0200
Subject: [PATCH] New upstream version 1.13.1

---
 ChangeLog                                     | 1133 +-------
 Makefile.am                                   |    6 +-
 Makefile.in                                   |   44 +-
 NEWS                                          |  816 +-----
 README                                        |    2 +-
 RELEASE                                       |   34 +-
 REQUIREMENTS                                  |   18 +
 common/Makefile.in                            |   38 +-
 common/check.mak                              |    6 +-
 common/gstdoc-scangobj                        |   30 +-
 common/m4/Makefile.in                         |   38 +-
 common/plugins.xsl                            |   39 +
 config.guess                                  |  113 +-
 config.h.in                                   |   45 +-
 config.h.meson                                |  430 ---
 config.sub                                    |   69 +-
 configure                                     | 2555 +++++++++++++++--
 configure.ac                                  |  299 +-
 docs/Makefile.in                              |   38 +-
 docs/plugins/Makefile.am                      |    2 +
 docs/plugins/Makefile.in                      |   40 +-
 .../gst-plugins-good-plugins-docs.sgml        |   14 +
 .../gst-plugins-good-plugins-sections.txt     |  139 +
 docs/plugins/gst-plugins-good-plugins.args    |  490 +++-
 .../gst-plugins-good-plugins.hierarchy        |   21 +-
 .../gst-plugins-good-plugins.interfaces       |    7 +
 .../gst-plugins-good-plugins.prerequisites    |    1 +
 docs/plugins/gst-plugins-good-plugins.signals |   25 +
 docs/plugins/html/ch01.html                   |   31 +-
 docs/plugins/html/ch02.html                   |   19 +-
 .../gst-plugins-good-plugins-1.0.devhelp2     |   76 +-
 .../gst-plugins-good-plugins-3gppmux.html     |   30 +-
 .../gst-plugins-good-plugins-aacparse.html    |    4 +-
 .../html/gst-plugins-good-plugins-aasink.html |    4 +-
 .../gst-plugins-good-plugins-ac3parse.html    |    4 +-
 .../gst-plugins-good-plugins-agingtv.html     |    4 +-
 .../gst-plugins-good-plugins-alawdec.html     |    4 +-
 .../gst-plugins-good-plugins-alawenc.html     |    4 +-
 .../html/gst-plugins-good-plugins-alpha.html  |    4 +-
 .../gst-plugins-good-plugins-alphacolor.html  |    4 +-
 .../gst-plugins-good-plugins-amrparse.html    |    6 +-
 .../gst-plugins-good-plugins-apedemux.html    |    4 +-
 .../gst-plugins-good-plugins-apev2mux.html    |    4 +-
 ...-plugins-good-plugins-aspectratiocrop.html |    4 +-
 ...gst-plugins-good-plugins-asteriskh263.html |    4 +-
 ...gst-plugins-good-plugins-audioamplify.html |    4 +-
 ...st-plugins-good-plugins-audiochebband.html |    4 +-
 ...t-plugins-good-plugins-audiocheblimit.html |    4 +-
 ...gst-plugins-good-plugins-audiodynamic.html |    4 +-
 .../gst-plugins-good-plugins-audioecho.html   |    4 +-
 ...t-plugins-good-plugins-audiofirfilter.html |    4 +-
 ...t-plugins-good-plugins-audioiirfilter.html |    4 +-
 .../gst-plugins-good-plugins-audioinvert.html |    4 +-
 ...gst-plugins-good-plugins-audiokaraoke.html |    4 +-
 ...st-plugins-good-plugins-audiopanorama.html |    4 +-
 ...t-plugins-good-plugins-audiowsincband.html |    4 +-
 ...-plugins-good-plugins-audiowsinclimit.html |    4 +-
 .../gst-plugins-good-plugins-auparse.html     |    4 +-
 ...st-plugins-good-plugins-autoaudiosink.html |    4 +-
 ...gst-plugins-good-plugins-autoaudiosrc.html |    4 +-
 ...st-plugins-good-plugins-autovideosink.html |    4 +-
 ...gst-plugins-good-plugins-autovideosrc.html |    4 +-
 .../gst-plugins-good-plugins-avidemux.html    |    4 +-
 .../html/gst-plugins-good-plugins-avimux.html |    4 +-
 .../gst-plugins-good-plugins-avisubtitle.html |    4 +-
 .../gst-plugins-good-plugins-breakmydata.html |    4 +-
 .../gst-plugins-good-plugins-cacasink.html    |    4 +-
 ...gst-plugins-good-plugins-cairooverlay.html |   22 +-
 .../gst-plugins-good-plugins-capssetter.html  |    4 +-
 .../gst-plugins-good-plugins-cpureport.html   |    4 +-
 .../html/gst-plugins-good-plugins-cutter.html |    4 +-
 .../gst-plugins-good-plugins-dcaparse.html    |    4 +-
 .../gst-plugins-good-plugins-deinterlace.html |    8 +-
 ...gst-plugins-good-plugins-deinterleave.html |    4 +-
 .../html/gst-plugins-good-plugins-dicetv.html |    4 +-
 ...-plugins-good-plugins-directsoundsink.html |    4 +-
 .../gst-plugins-good-plugins-dtmfsrc.html     |    4 +-
 .../gst-plugins-good-plugins-dv1394src.html   |    4 +-
 .../html/gst-plugins-good-plugins-dvdec.html  |    4 +-
 .../gst-plugins-good-plugins-dvdemux.html     |    4 +-
 .../gst-plugins-good-plugins-dynudpsink.html  |    4 +-
 .../html/gst-plugins-good-plugins-edgetv.html |    4 +-
 ...lugins-good-plugins-equalizer-10bands.html |    4 +-
 ...plugins-good-plugins-equalizer-3bands.html |    4 +-
 ...plugins-good-plugins-equalizer-nbands.html |    4 +-
 .../gst-plugins-good-plugins-flacdec.html     |    4 +-
 .../gst-plugins-good-plugins-flacenc.html     |    4 +-
 .../gst-plugins-good-plugins-flacparse.html   |    4 +-
 .../gst-plugins-good-plugins-flactag.html     |    4 +-
 .../gst-plugins-good-plugins-flvdemux.html    |    4 +-
 .../html/gst-plugins-good-plugins-flvmux.html |    7 +-
 .../html/gst-plugins-good-plugins-flxdec.html |    4 +-
 .../html/gst-plugins-good-plugins-gamma.html  |    4 +-
 ...gst-plugins-good-plugins-gdkpixbufdec.html |    8 +-
 ...plugins-good-plugins-gdkpixbufoverlay.html |    4 +-
 ...st-plugins-good-plugins-gdkpixbufsink.html |    8 +-
 .../html/gst-plugins-good-plugins-goom.html   |    8 +-
 .../gst-plugins-good-plugins-goom2k1.html     |    4 +-
 .../gst-plugins-good-plugins-gtkglsink.html   |  146 +
 .../gst-plugins-good-plugins-gtksink.html     |  142 +
 .../gst-plugins-good-plugins-hdv1394src.html  |   14 +-
 .../gst-plugins-good-plugins-icydemux.html    |   10 +-
 .../gst-plugins-good-plugins-id3demux.html    |   10 +-
 .../gst-plugins-good-plugins-id3v2mux.html    |   10 +-
 ...gst-plugins-good-plugins-iirequalizer.html |    4 +-
 .../gst-plugins-good-plugins-imagefreeze.html |   10 +-
 .../gst-plugins-good-plugins-interleave.html  |   10 +-
 .../gst-plugins-good-plugins-ismlmux.html     |   36 +-
 ...st-plugins-good-plugins-jackaudiosink.html |   10 +-
 ...gst-plugins-good-plugins-jackaudiosrc.html |   10 +-
 .../gst-plugins-good-plugins-jpegdec.html     |   10 +-
 .../gst-plugins-good-plugins-jpegenc.html     |   28 +-
 .../gst-plugins-good-plugins-lamemp3enc.html  |  339 +++
 .../html/gst-plugins-good-plugins-level.html  |   16 +-
 ...st-plugins-good-plugins-matroskademux.html |   10 +-
 .../gst-plugins-good-plugins-matroskamux.html |   10 +-
 ...st-plugins-good-plugins-matroskaparse.html |   10 +-
 .../html/gst-plugins-good-plugins-mj2mux.html |   36 +-
 .../gst-plugins-good-plugins-monoscope.html   |   10 +-
 .../html/gst-plugins-good-plugins-mp4mux.html |   36 +-
 ...t-plugins-good-plugins-mpegaudioparse.html |   14 +-
 ...t-plugins-good-plugins-mpg123audiodec.html |  175 ++
 .../gst-plugins-good-plugins-mulawdec.html    |   12 +-
 .../gst-plugins-good-plugins-mulawenc.html    |    8 +-
 ...st-plugins-good-plugins-multifilesink.html |   14 +-
 ...gst-plugins-good-plugins-multifilesrc.html |   19 +-
 ...t-plugins-good-plugins-multipartdemux.html |   10 +-
 ...gst-plugins-good-plugins-multipartmux.html |   10 +-
 ...gst-plugins-good-plugins-multiudpsink.html |    8 +-
 ...t-plugins-good-plugins-navigationtest.html |    8 +-
 .../gst-plugins-good-plugins-navseek.html     |    8 +-
 .../html/gst-plugins-good-plugins-optv.html   |   10 +-
 .../gst-plugins-good-plugins-oss4sink.html    |   10 +-
 .../gst-plugins-good-plugins-oss4src.html     |   10 +-
 .../gst-plugins-good-plugins-osssink.html     |   10 +-
 .../html/gst-plugins-good-plugins-osssrc.html |   10 +-
 ...gst-plugins-good-plugins-osxaudiosink.html |   10 +-
 .../gst-plugins-good-plugins-osxaudiosrc.html |   10 +-
 ...gst-plugins-good-plugins-osxvideosink.html |    8 +-
 .../gst-plugins-good-plugins-plugin-1394.html |    6 +-
 ...st-plugins-good-plugins-plugin-aasink.html |    6 +-
 .../gst-plugins-good-plugins-plugin-alaw.html |    6 +-
 ...gst-plugins-good-plugins-plugin-alpha.html |    6 +-
 ...lugins-good-plugins-plugin-alphacolor.html |    6 +-
 ...st-plugins-good-plugins-plugin-apetag.html |    6 +-
 ...t-plugins-good-plugins-plugin-audiofx.html |    6 +-
 ...gins-good-plugins-plugin-audioparsers.html |    6 +-
 ...t-plugins-good-plugins-plugin-auparse.html |    6 +-
 ...lugins-good-plugins-plugin-autodetect.html |    6 +-
 .../gst-plugins-good-plugins-plugin-avi.html  |    6 +-
 ...-plugins-good-plugins-plugin-cacasink.html |    6 +-
 ...gst-plugins-good-plugins-plugin-cairo.html |    6 +-
 ...st-plugins-good-plugins-plugin-cutter.html |    6 +-
 ...gst-plugins-good-plugins-plugin-debug.html |    6 +-
 ...ugins-good-plugins-plugin-deinterlace.html |    6 +-
 ...ugins-good-plugins-plugin-directsound.html |    4 +-
 .../gst-plugins-good-plugins-plugin-dtmf.html |    6 +-
 .../gst-plugins-good-plugins-plugin-dv.html   |    6 +-
 ...t-plugins-good-plugins-plugin-effectv.html |    6 +-
 ...plugins-good-plugins-plugin-equalizer.html |    6 +-
 .../gst-plugins-good-plugins-plugin-flac.html |    6 +-
 .../gst-plugins-good-plugins-plugin-flv.html  |    6 +-
 ...st-plugins-good-plugins-plugin-flxdec.html |    6 +-
 ...plugins-good-plugins-plugin-gdkpixbuf.html |    6 +-
 .../gst-plugins-good-plugins-plugin-goom.html |   10 +-
 ...t-plugins-good-plugins-plugin-goom2k1.html |    6 +-
 .../gst-plugins-good-plugins-plugin-gtk.html  |   85 +
 ...-plugins-good-plugins-plugin-icydemux.html |   14 +-
 ...-plugins-good-plugins-plugin-id3demux.html |   10 +-
 ...ugins-good-plugins-plugin-imagefreeze.html |   10 +-
 ...lugins-good-plugins-plugin-interleave.html |   10 +-
 ...st-plugins-good-plugins-plugin-isomp4.html |   10 +-
 .../gst-plugins-good-plugins-plugin-jack.html |   10 +-
 .../gst-plugins-good-plugins-plugin-jpeg.html |   14 +-
 .../gst-plugins-good-plugins-plugin-lame.html |   79 +
 ...gst-plugins-good-plugins-plugin-level.html |   14 +-
 ...-plugins-good-plugins-plugin-matroska.html |   10 +-
 ...plugins-good-plugins-plugin-monoscope.html |   12 +-
 ...st-plugins-good-plugins-plugin-mpg123.html |   79 +
 ...gst-plugins-good-plugins-plugin-mulaw.html |   14 +-
 ...plugins-good-plugins-plugin-multifile.html |   10 +-
 ...plugins-good-plugins-plugin-multipart.html |   10 +-
 ...ns-good-plugins-plugin-navigationtest.html |   10 +-
 .../gst-plugins-good-plugins-plugin-oss4.html |   10 +-
 ...-plugins-good-plugins-plugin-ossaudio.html |   10 +-
 ...-plugins-good-plugins-plugin-osxaudio.html |    8 +-
 ...-plugins-good-plugins-plugin-osxvideo.html |    8 +-
 .../gst-plugins-good-plugins-plugin-png.html  |   10 +-
 ...lugins-good-plugins-plugin-pulseaudio.html |   14 +-
 ...gst-plugins-good-plugins-plugin-qmlgl.html |   85 +
 ...lugins-good-plugins-plugin-replaygain.html |   14 +-
 .../gst-plugins-good-plugins-plugin-rtp.html  |   18 +-
 ...lugins-good-plugins-plugin-rtpmanager.html |   10 +-
 .../gst-plugins-good-plugins-plugin-rtsp.html |   10 +-
 ...plugins-good-plugins-plugin-shapewipe.html |   10 +-
 ...st-plugins-good-plugins-plugin-shout2.html |   14 +-
 ...gst-plugins-good-plugins-plugin-smpte.html |   10 +-
 .../gst-plugins-good-plugins-plugin-soup.html |   10 +-
 ...-plugins-good-plugins-plugin-spectrum.html |   10 +-
 ...gst-plugins-good-plugins-plugin-speex.html |   10 +-
 ...st-plugins-good-plugins-plugin-taglib.html |   14 +-
 ...t-plugins-good-plugins-plugin-twolame.html |   79 +
 .../gst-plugins-good-plugins-plugin-udp.html  |   14 +-
 ...gins-good-plugins-plugin-video4linux2.html |   10 +-
 ...-plugins-good-plugins-plugin-videobox.html |   10 +-
 ...plugins-good-plugins-plugin-videocrop.html |   10 +-
 ...ugins-good-plugins-plugin-videofilter.html |   10 +-
 ...lugins-good-plugins-plugin-videomixer.html |   10 +-
 .../gst-plugins-good-plugins-plugin-vpx.html  |   10 +-
 ...-plugins-good-plugins-plugin-waveform.html |    8 +-
 ...st-plugins-good-plugins-plugin-wavenc.html |   10 +-
 ...t-plugins-good-plugins-plugin-wavpack.html |   10 +-
 ...-plugins-good-plugins-plugin-wavparse.html |   10 +-
 ...plugins-good-plugins-plugin-ximagesrc.html |   10 +-
 ...st-plugins-good-plugins-plugin-y4menc.html |   10 +-
 .../html/gst-plugins-good-plugins-pngdec.html |    8 +-
 .../html/gst-plugins-good-plugins-pngenc.html |    8 +-
 ...t-plugins-good-plugins-progressreport.html |   10 +-
 .../gst-plugins-good-plugins-pulsesink.html   |   12 +-
 .../gst-plugins-good-plugins-pulsesrc.html    |   10 +-
 .../gst-plugins-good-plugins-pushfilesrc.html |   14 +-
 .../gst-plugins-good-plugins-qmlglsink.html   |  186 ++
 .../gst-plugins-good-plugins-qmlglsrc.html    |  174 ++
 .../gst-plugins-good-plugins-qtdemux.html     |   14 +-
 ...st-plugins-good-plugins-qtmoovrecover.html |   10 +-
 .../html/gst-plugins-good-plugins-qtmux.html  |   61 +-
 .../gst-plugins-good-plugins-quarktv.html     |   10 +-
 .../gst-plugins-good-plugins-radioactv.html   |   10 +-
 .../html/gst-plugins-good-plugins-revtv.html  |   10 +-
 .../gst-plugins-good-plugins-rganalysis.html  |   14 +-
 .../gst-plugins-good-plugins-rglimiter.html   |   10 +-
 .../gst-plugins-good-plugins-rgvolume.html    |   10 +-
 .../gst-plugins-good-plugins-rippletv.html    |   10 +-
 ...st-plugins-good-plugins-rndbuffersize.html |    8 +-
 .../gst-plugins-good-plugins-rtpL16depay.html |   14 +-
 .../gst-plugins-good-plugins-rtpL16pay.html   |   10 +-
 .../gst-plugins-good-plugins-rtpL24depay.html |   10 +-
 .../gst-plugins-good-plugins-rtpL24pay.html   |   10 +-
 .../gst-plugins-good-plugins-rtpL8depay.html  |  177 ++
 .../gst-plugins-good-plugins-rtpL8pay.html    |  178 ++
 .../gst-plugins-good-plugins-rtpac3depay.html |   10 +-
 .../gst-plugins-good-plugins-rtpac3pay.html   |   10 +-
 .../gst-plugins-good-plugins-rtpamrdepay.html |   10 +-
 .../gst-plugins-good-plugins-rtpamrpay.html   |   10 +-
 .../html/gst-plugins-good-plugins-rtpbin.html |   42 +-
 .../gst-plugins-good-plugins-rtpbvdepay.html  |    8 +-
 .../gst-plugins-good-plugins-rtpbvpay.html    |    8 +-
 ...gst-plugins-good-plugins-rtpceltdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpceltpay.html  |    8 +-
 .../html/gst-plugins-good-plugins-rtpdec.html |    8 +-
 ...gst-plugins-good-plugins-rtpdtmfdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpdtmfmux.html  |    8 +-
 .../gst-plugins-good-plugins-rtpdtmfsrc.html  |    8 +-
 .../gst-plugins-good-plugins-rtpdvdepay.html  |    8 +-
 .../gst-plugins-good-plugins-rtpdvpay.html    |    8 +-
 ...gst-plugins-good-plugins-rtpg722depay.html |    8 +-
 .../gst-plugins-good-plugins-rtpg722pay.html  |   12 +-
 ...gst-plugins-good-plugins-rtpg723depay.html |    8 +-
 .../gst-plugins-good-plugins-rtpg723pay.html  |    8 +-
 ...gst-plugins-good-plugins-rtpg726depay.html |    8 +-
 .../gst-plugins-good-plugins-rtpg726pay.html  |    8 +-
 ...gst-plugins-good-plugins-rtpg729depay.html |    8 +-
 .../gst-plugins-good-plugins-rtpg729pay.html  |    8 +-
 .../gst-plugins-good-plugins-rtpgsmdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpgsmpay.html   |    8 +-
 .../gst-plugins-good-plugins-rtpgstdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpgstpay.html   |    8 +-
 ...gst-plugins-good-plugins-rtph261depay.html |   10 +-
 .../gst-plugins-good-plugins-rtph261pay.html  |   10 +-
 ...gst-plugins-good-plugins-rtph263depay.html |    8 +-
 .../gst-plugins-good-plugins-rtph263pay.html  |    8 +-
 ...st-plugins-good-plugins-rtph263pdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtph263ppay.html |    8 +-
 ...gst-plugins-good-plugins-rtph264depay.html |    8 +-
 .../gst-plugins-good-plugins-rtph264pay.html  |    8 +-
 ...gst-plugins-good-plugins-rtph265depay.html |   14 +-
 .../gst-plugins-good-plugins-rtph265pay.html  |    8 +-
 ...gst-plugins-good-plugins-rtpilbcdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpilbcpay.html  |    8 +-
 .../gst-plugins-good-plugins-rtpj2kdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpj2kpay.html   |    8 +-
 ...-plugins-good-plugins-rtpjitterbuffer.html |   40 +-
 ...gst-plugins-good-plugins-rtpjpegdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpjpegpay.html  |    8 +-
 .../gst-plugins-good-plugins-rtpklvdepay.html |   10 +-
 .../gst-plugins-good-plugins-rtpklvpay.html   |   14 +-
 ...gst-plugins-good-plugins-rtpmp1sdepay.html |    8 +-
 ...gst-plugins-good-plugins-rtpmp2tdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpmp2tpay.html  |    8 +-
 ...gst-plugins-good-plugins-rtpmp4adepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpmp4apay.html  |    8 +-
 ...gst-plugins-good-plugins-rtpmp4gdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpmp4gpay.html  |    8 +-
 ...gst-plugins-good-plugins-rtpmp4vdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpmp4vpay.html  |    8 +-
 .../gst-plugins-good-plugins-rtpmpadepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpmpapay.html   |    8 +-
 ...lugins-good-plugins-rtpmparobustdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpmpvdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpmpvpay.html   |    8 +-
 .../html/gst-plugins-good-plugins-rtpmux.html |   10 +-
 ...gst-plugins-good-plugins-rtpopusdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpopuspay.html  |    8 +-
 ...gst-plugins-good-plugins-rtppcmadepay.html |    8 +-
 .../gst-plugins-good-plugins-rtppcmapay.html  |    8 +-
 ...gst-plugins-good-plugins-rtppcmudepay.html |    8 +-
 .../gst-plugins-good-plugins-rtppcmupay.html  |    8 +-
 .../gst-plugins-good-plugins-rtpptdemux.html  |   10 +-
 ...st-plugins-good-plugins-rtpqcelpdepay.html |    8 +-
 ...gst-plugins-good-plugins-rtpqdm2depay.html |    8 +-
 .../gst-plugins-good-plugins-rtprtxqueue.html |   10 +-
 ...st-plugins-good-plugins-rtprtxreceive.html |   10 +-
 .../gst-plugins-good-plugins-rtprtxsend.html  |    8 +-
 .../gst-plugins-good-plugins-rtpsbcdepay.html |   36 +-
 .../gst-plugins-good-plugins-rtpsbcpay.html   |    8 +-
 .../gst-plugins-good-plugins-rtpsession.html  |   10 +-
 ...st-plugins-good-plugins-rtpsirendepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpsirenpay.html |    8 +-
 ...st-plugins-good-plugins-rtpspeexdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpspeexpay.html |    8 +-
 ...gst-plugins-good-plugins-rtpssrcdemux.html |   10 +-
 ...t-plugins-good-plugins-rtpstreamdepay.html |   10 +-
 ...gst-plugins-good-plugins-rtpstreampay.html |   10 +-
 ...gst-plugins-good-plugins-rtpsv3vdepay.html |    8 +-
 ...t-plugins-good-plugins-rtptheoradepay.html |    8 +-
 ...gst-plugins-good-plugins-rtptheorapay.html |    8 +-
 ...t-plugins-good-plugins-rtpvorbisdepay.html |    8 +-
 ...gst-plugins-good-plugins-rtpvorbispay.html |    8 +-
 .../gst-plugins-good-plugins-rtpvp8depay.html |    8 +-
 .../gst-plugins-good-plugins-rtpvp8pay.html   |    8 +-
 .../gst-plugins-good-plugins-rtpvp9depay.html |    8 +-
 .../gst-plugins-good-plugins-rtpvp9pay.html   |    8 +-
 ...gst-plugins-good-plugins-rtpvrawdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtpvrawpay.html  |    8 +-
 .../gst-plugins-good-plugins-rtpxqtdepay.html |    8 +-
 .../gst-plugins-good-plugins-rtspsrc.html     |  132 +-
 .../gst-plugins-good-plugins-sbcparse.html    |    8 +-
 .../gst-plugins-good-plugins-scaletempo.html  |   10 +-
 ...gst-plugins-good-plugins-shagadelictv.html |   10 +-
 .../gst-plugins-good-plugins-shapewipe.html   |   10 +-
 .../gst-plugins-good-plugins-shout2send.html  |   74 +-
 .../html/gst-plugins-good-plugins-smpte.html  |   10 +-
 .../gst-plugins-good-plugins-smptealpha.html  |   10 +-
 ...ugins-good-plugins-souphttpclientsink.html |   16 +-
 .../gst-plugins-good-plugins-souphttpsrc.html |   18 +-
 .../gst-plugins-good-plugins-spectrum.html    |   12 +-
 .../gst-plugins-good-plugins-speexdec.html    |   10 +-
 .../gst-plugins-good-plugins-speexenc.html    |   10 +-
 ...gst-plugins-good-plugins-splitfilesrc.html |   10 +-
 ...gst-plugins-good-plugins-splitmuxsink.html |   73 +-
 .../gst-plugins-good-plugins-splitmuxsrc.html |   10 +-
 .../gst-plugins-good-plugins-streaktv.html    |   10 +-
 .../gst-plugins-good-plugins-taginject.html   |   10 +-
 .../gst-plugins-good-plugins-testsink.html    |   12 +-
 .../gst-plugins-good-plugins-twolame.html     |  383 +++
 .../gst-plugins-good-plugins-udpsink.html     |   14 +-
 .../html/gst-plugins-good-plugins-udpsrc.html |   12 +-
 .../gst-plugins-good-plugins-v4l2radio.html   |   10 +-
 .../gst-plugins-good-plugins-v4l2sink.html    |   14 +-
 .../gst-plugins-good-plugins-v4l2src.html     |   18 +-
 .../gst-plugins-good-plugins-vertigotv.html   |   10 +-
 ...gst-plugins-good-plugins-videobalance.html |   10 +-
 .../gst-plugins-good-plugins-videobox.html    |    8 +-
 .../gst-plugins-good-plugins-videocrop.html   |   10 +-
 .../gst-plugins-good-plugins-videoflip.html   |   10 +-
 .../gst-plugins-good-plugins-videomedian.html |    8 +-
 .../gst-plugins-good-plugins-videomixer.html  |   10 +-
 .../html/gst-plugins-good-plugins-vp8dec.html |   10 +-
 .../html/gst-plugins-good-plugins-vp8enc.html |   10 +-
 .../html/gst-plugins-good-plugins-vp9dec.html |   10 +-
 .../html/gst-plugins-good-plugins-vp9enc.html |   10 +-
 .../html/gst-plugins-good-plugins-warptv.html |   10 +-
 ...gst-plugins-good-plugins-waveformsink.html |   10 +-
 .../html/gst-plugins-good-plugins-wavenc.html |   10 +-
 .../gst-plugins-good-plugins-wavpackdec.html  |   10 +-
 .../gst-plugins-good-plugins-wavpackenc.html  |   10 +-
 ...gst-plugins-good-plugins-wavpackparse.html |   10 +-
 .../gst-plugins-good-plugins-wavparse.html    |   10 +-
 .../gst-plugins-good-plugins-webmmux.html     |   14 +-
 .../gst-plugins-good-plugins-ximagesrc.html   |   10 +-
 .../html/gst-plugins-good-plugins-y4menc.html |   10 +-
 docs/plugins/html/home.png                    |  Bin 256 -> 256 bytes
 docs/plugins/html/index.html                  |   48 +-
 docs/plugins/html/left-insensitive.png        |  Bin 395 -> 395 bytes
 docs/plugins/html/left.png                    |  Bin 262 -> 262 bytes
 docs/plugins/html/right-insensitive.png       |  Bin 373 -> 373 bytes
 docs/plugins/html/right.png                   |  Bin 261 -> 261 bytes
 docs/plugins/html/up-insensitive.png          |  Bin 374 -> 374 bytes
 docs/plugins/html/up.png                      |  Bin 260 -> 260 bytes
 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-apetag.xml        |    2 +-
 docs/plugins/inspect/plugin-audiofx.xml       |    2 +-
 docs/plugins/inspect/plugin-audioparsers.xml  |    2 +-
 docs/plugins/inspect/plugin-auparse.xml       |    2 +-
 docs/plugins/inspect/plugin-autodetect.xml    |    2 +-
 docs/plugins/inspect/plugin-avi.xml           |    2 +-
 docs/plugins/inspect/plugin-cacasink.xml      |    2 +-
 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   |    6 +-
 docs/plugins/inspect/plugin-dtmf.xml          |    2 +-
 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     |    4 +-
 docs/plugins/inspect/plugin-goom.xml          |    2 +-
 docs/plugins/inspect/plugin-goom2k1.xml       |    2 +-
 docs/plugins/inspect/plugin-gtk.xml           |   43 +
 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        |    6 +-
 docs/plugins/inspect/plugin-jack.xml          |    2 +-
 docs/plugins/inspect/plugin-jpeg.xml          |    2 +-
 docs/plugins/inspect/plugin-lame.xml          |   34 +
 docs/plugins/inspect/plugin-level.xml         |    2 +-
 docs/plugins/inspect/plugin-matroska.xml      |    4 +-
 docs/plugins/inspect/plugin-mpg123.xml        |   34 +
 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    |    4 +-
 docs/plugins/inspect/plugin-qmlgl.xml         |   43 +
 docs/plugins/inspect/plugin-replaygain.xml    |    2 +-
 docs/plugins/inspect/plugin-rtp.xml           |   48 +-
 docs/plugins/inspect/plugin-rtpmanager.xml    |    2 +-
 docs/plugins/inspect/plugin-rtsp.xml          |    2 +-
 docs/plugins/inspect/plugin-shapewipe.xml     |    2 +-
 docs/plugins/inspect/plugin-shout2.xml        |    6 +-
 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-twolame.xml       |   34 +
 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     |    2 +-
 docs/plugins/inspect/plugin-videofilter.xml   |    2 +-
 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.am                               |   40 +
 ext/Makefile.in                               |   58 +-
 ext/aalib/Makefile.am                         |    1 -
 ext/aalib/Makefile.in                         |   49 +-
 ext/aalib/meson.build                         |   14 +
 ext/cairo/Makefile.am                         |    1 -
 ext/cairo/Makefile.in                         |   53 +-
 ext/dv/Makefile.am                            |    1 -
 ext/dv/Makefile.in                            |   62 +-
 ext/dv/gstdvdemux.c                           |   74 +-
 ext/dv/gstdvdemux.h                           |    1 +
 ext/flac/Makefile.am                          |    1 -
 ext/flac/Makefile.in                          |   62 +-
 ext/flac/gstflacdec.c                         |   10 +-
 ext/flac/gstflacdec.h                         |    1 +
 ext/flac/gstflactag.c                         |    2 +
 ext/gdk_pixbuf/Makefile.am                    |    1 -
 ext/gdk_pixbuf/Makefile.in                    |   59 +-
 ext/gdk_pixbuf/gstgdkpixbufdec.c              |    2 +-
 ext/gdk_pixbuf/gstgdkpixbufsink.c             |    4 +-
 ext/gtk/Makefile.am                           |   44 +
 ext/gtk/Makefile.in                           | 1085 +++++++
 ext/gtk/gstgtkbasesink.c                      |  495 ++++
 ext/gtk/gstgtkbasesink.h                      |   94 +
 ext/gtk/gstgtkglsink.c                        |  311 ++
 ext/gtk/gstgtkglsink.h                        |   82 +
 ext/gtk/gstgtksink.c                          |   78 +
 ext/gtk/gstgtksink.h                          |   69 +
 ext/gtk/gstgtkutils.c                         |   71 +
 ext/gtk/gstgtkutils.h                         |   29 +
 ext/gtk/gstplugin.c                           |   52 +
 ext/gtk/gtkgstbasewidget.c                    |  497 ++++
 ext/gtk/gtkgstbasewidget.h                    |   97 +
 ext/gtk/gtkgstglwidget.c                      |  558 ++++
 ext/gtk/gtkgstglwidget.h                      |   77 +
 ext/gtk/gtkgstwidget.c                        |  191 ++
 ext/gtk/gtkgstwidget.h                        |   68 +
 ext/gtk/meson.build                           |   54 +
 ext/jack/Makefile.am                          |    1 -
 ext/jack/Makefile.in                          |   66 +-
 ext/jpeg/Makefile.am                          |    1 -
 ext/jpeg/Makefile.in                          |   58 +-
 ext/jpeg/gstjpegdec.c                         |  404 ++-
 ext/jpeg/gstjpegenc.c                         |   36 +-
 ext/jpeg/gstjpegenc.h                         |    3 +
 ext/lame/Makefile.am                          |   10 +
 {sys/sunaudio => ext/lame}/Makefile.in        |  170 +-
 ext/lame/gstlamemp3enc.c                      |  932 ++++++
 ext/lame/gstlamemp3enc.h                      |   83 +
 ext/lame/meson.build                          |   19 +
 .../gstsunaudio.c => ext/lame/plugin.c        |   36 +-
 ext/libcaca/Makefile.am                       |    1 -
 ext/libcaca/Makefile.in                       |   47 +-
 ext/libcaca/gstcacasink.c                     |    2 -
 ext/libcaca/meson.build                       |   11 +
 ext/libpng/Makefile.am                        |    1 -
 ext/libpng/Makefile.in                        |   58 +-
 ext/libpng/gstpngdec.c                        |   46 +
 ext/libpng/gstpngenc.c                        |    3 +-
 ext/meson.build                               |   11 +-
 ext/mpg123/Makefile.am                        |   11 +
 ext/mpg123/Makefile.in                        |  950 ++++++
 ext/mpg123/gstmpg123audiodec.c                |  634 ++++
 ext/mpg123/gstmpg123audiodec.h                |   74 +
 ext/mpg123/meson.build                        |   12 +
 ext/pulse/Makefile.am                         |    1 -
 ext/pulse/Makefile.in                         |   63 +-
 ext/pulse/pulseutil.h                         |    2 +-
 ext/qt/Makefile.am                            |   60 +
 ext/qt/Makefile.in                            | 1100 +++++++
 ext/qt/gstplugin.cc                           |   60 +
 ext/qt/gstqsgtexture.cc                       |  224 ++
 ext/qt/gstqsgtexture.h                        |   59 +
 ext/qt/gstqtgl.h                              |   37 +
 ext/qt/gstqtglutility.cc                      |  247 ++
 ext/qt/gstqtglutility.h                       |   34 +
 ext/qt/gstqtsink.cc                           |  493 ++++
 ext/qt/gstqtsink.h                            |   79 +
 ext/qt/gstqtsrc.cc                            |  548 ++++
 ext/qt/gstqtsrc.h                             |   80 +
 ext/qt/qtitem.cc                              |  546 ++++
 ext/qt/qtitem.h                               |  109 +
 ext/qt/qtwindow.cc                            |  434 +++
 ext/qt/qtwindow.h                             |   70 +
 ext/raw1394/Makefile.am                       |    1 -
 ext/raw1394/Makefile.in                       |   66 +-
 ext/raw1394/gst1394clock.c                    |    3 +
 ext/raw1394/meson.build                       |   22 +
 ext/shout2/Makefile.am                        |    1 -
 ext/shout2/Makefile.in                        |   49 +-
 ext/shout2/gstshout2.c                        |  133 +-
 ext/shout2/gstshout2.h                        |    9 +-
 ext/soup/Makefile.am                          |    1 -
 ext/soup/Makefile.in                          |   62 +-
 ext/soup/gstsouphttpsrc.c                     |  242 +-
 ext/soup/gstsouphttpsrc.h                     |    3 +
 ext/speex/Makefile.am                         |    1 -
 ext/speex/Makefile.in                         |   57 +-
 ext/taglib/Makefile.am                        |    1 -
 ext/taglib/Makefile.in                        |   55 +-
 ext/taglib/meson.build                        |   12 +-
 ext/twolame/Makefile.am                       |   11 +
 ext/twolame/Makefile.in                       |  949 ++++++
 ext/twolame/gsttwolamemp2enc.c                |  893 ++++++
 ext/twolame/gsttwolamemp2enc.h                |   88 +
 ext/twolame/meson.build                       |   12 +
 ext/vpx/Makefile.am                           |    1 -
 ext/vpx/Makefile.in                           |   78 +-
 ext/vpx/gstvpxdec.c                           |   12 +
 ext/wavpack/Makefile.am                       |    1 -
 ext/wavpack/Makefile.in                       |   63 +-
 gst-plugins-good.doap                         |   10 +
 gst/Makefile.in                               |   38 +-
 gst/alpha/Makefile.am                         |    2 -
 gst/alpha/Makefile.in                         |   58 +-
 gst/apetag/Makefile.am                        |    1 -
 gst/apetag/Makefile.in                        |   49 +-
 gst/audiofx/Makefile.am                       |    1 -
 gst/audiofx/Makefile.in                       |  111 +-
 gst/audiofx/audioecho.c                       |   93 +-
 gst/audiofx/audiopanoramaorc-dist.c           |    4 +-
 gst/audioparsers/Makefile.am                  |    1 -
 gst/audioparsers/Makefile.in                  |   79 +-
 gst/audioparsers/gstaacparse.c                |    4 +
 gst/audioparsers/gstdcaparse.c                |   36 +-
 gst/auparse/Makefile.am                       |    1 -
 gst/auparse/Makefile.in                       |   47 +-
 gst/autodetect/Makefile.am                    |    1 -
 gst/autodetect/Makefile.in                    |   63 +-
 gst/avi/Makefile.am                           |    1 -
 gst/avi/Makefile.in                           |   62 +-
 gst/avi/gstavidemux.c                         |   10 +
 gst/cutter/Makefile.am                        |    1 -
 gst/cutter/Makefile.in                        |   49 +-
 gst/debugutils/Makefile.am                    |    2 -
 gst/debugutils/Makefile.in                    |  100 +-
 gst/deinterlace/Makefile.am                   |    1 -
 gst/deinterlace/Makefile.in                   |   95 +-
 gst/deinterlace/gstdeinterlace.c              |    8 +-
 gst/deinterlace/tvtime-dist.c                 |   16 +-
 gst/dtmf/Makefile.am                          |    1 -
 gst/dtmf/Makefile.in                          |   62 +-
 gst/effectv/Makefile.am                       |    1 -
 gst/effectv/Makefile.in                       |   95 +-
 gst/equalizer/Makefile.am                     |    1 -
 gst/equalizer/Makefile.in                     |   59 +-
 gst/equalizer/gstiirequalizer.c               |    2 +-
 gst/flv/Makefile.am                           |    1 -
 gst/flv/Makefile.in                           |   54 +-
 gst/flv/gstflvmux.c                           |  792 ++---
 gst/flv/gstflvmux.h                           |   47 +-
 gst/flv/gstindex.c                            |    1 -
 gst/flx/Makefile.am                           |    1 -
 gst/flx/Makefile.in                           |   53 +-
 gst/goom/Makefile.am                          |    1 -
 gst/goom/Makefile.in                          |  122 +-
 gst/goom2k1/Makefile.am                       |    1 -
 gst/goom2k1/Makefile.in                       |   63 +-
 gst/icydemux/Makefile.am                      |    1 -
 gst/icydemux/Makefile.in                      |   47 +-
 gst/id3demux/Makefile.am                      |    1 -
 gst/id3demux/Makefile.in                      |   47 +-
 gst/imagefreeze/Makefile.am                   |    1 -
 gst/imagefreeze/Makefile.in                   |   47 +-
 gst/interleave/Makefile.am                    |    1 -
 gst/interleave/Makefile.in                    |   55 +-
 gst/interleave/interleave.c                   |    2 +-
 gst/isomp4/Makefile.am                        |    2 +-
 gst/isomp4/Makefile.in                        |  102 +-
 gst/isomp4/atoms.c                            |   83 +-
 gst/isomp4/atoms.h                            |   18 +-
 gst/isomp4/atomsrecovery.c                    |   55 +-
 gst/isomp4/atomsrecovery.h                    |    2 +-
 gst/isomp4/fourcc.h                           |    4 +
 gst/isomp4/gstisoff.c                         |    3 +
 gst/isomp4/gstqtmoovrecover.c                 |    8 +-
 gst/isomp4/gstqtmux.c                         | 1305 ++++++++-
 gst/isomp4/gstqtmux.h                         |   22 +-
 gst/isomp4/gstqtmuxmap.c                      |    9 +-
 gst/isomp4/qtdemux.c                          |  199 +-
 gst/isomp4/qtdemux.h                          |    7 +-
 gst/isomp4/qtdemux_debug.h                    |   12 +
 gst/isomp4/qtdemux_dump.c                     |   42 +-
 gst/isomp4/qtdemux_dump.h                     |    2 +
 gst/isomp4/qtdemux_lang.c                     |    4 +-
 gst/isomp4/qtdemux_types.c                    |    9 +-
 gst/law/Makefile.am                           |    2 -
 gst/law/Makefile.in                           |   81 +-
 gst/level/Makefile.am                         |    1 -
 gst/level/Makefile.in                         |   49 +-
 gst/level/gstlevel.c                          |    2 +-
 gst/matroska/Makefile.am                      |    1 -
 gst/matroska/Makefile.in                      |   83 +-
 gst/matroska/matroska-demux.c                 |  451 ++-
 gst/matroska/matroska-demux.h                 |    4 +
 gst/matroska/matroska-ids.c                   |    5 +
 gst/matroska/matroska-ids.h                   |   12 +-
 gst/matroska/matroska-mux.c                   |  299 +-
 gst/matroska/matroska-mux.h                   |    3 +
 gst/matroska/matroska-read-common.c           |  134 +-
 gst/matroska/matroska-read-common.h           |    4 +
 gst/matroska/webm-mux.c                       |    2 +-
 gst/monoscope/Makefile.am                     |    1 -
 gst/monoscope/Makefile.in                     |   55 +-
 gst/multifile/Makefile.am                     |    1 -
 gst/multifile/Makefile.in                     |   79 +-
 gst/multifile/gstmultifilesink.c              |   25 +-
 gst/multifile/gstmultifilesrc.c               |   90 +-
 gst/multifile/gstsplitmuxsink.c               |  269 +-
 gst/multifile/gstsplitmuxsink.h               |    9 +
 gst/multifile/gstsplitmuxsrc.c                |   21 +-
 gst/multipart/Makefile.am                     |    1 -
 gst/multipart/Makefile.in                     |   55 +-
 gst/replaygain/Makefile.am                    |    1 -
 gst/replaygain/Makefile.in                    |   63 +-
 gst/replaygain/gstrganalysis.c                |    2 +-
 gst/rtp/Makefile.am                           |    5 +-
 gst/rtp/Makefile.in                           |  433 +--
 gst/rtp/gstrtp.c                              |   15 +
 gst/rtp/gstrtpL16depay.c                      |    3 +-
 gst/rtp/gstrtpL24depay.c                      |    3 +-
 gst/rtp/gstrtpL8depay.c                       |  267 ++
 gst/rtp/gstrtpL8depay.h                       |   65 +
 gst/rtp/gstrtpL8pay.c                         |  250 ++
 gst/rtp/gstrtpL8pay.h                         |   64 +
 gst/rtp/gstrtpac3depay.c                      |    3 +-
 gst/rtp/gstrtpac3pay.c                        |    4 +-
 gst/rtp/gstrtpamrdepay.c                      |    3 +-
 gst/rtp/gstrtpamrpay.c                        |    3 +-
 gst/rtp/gstrtpbvdepay.c                       |    3 +-
 gst/rtp/gstrtpceltdepay.c                     |    3 +-
 gst/rtp/gstrtpceltpay.c                       |    3 +-
 gst/rtp/gstrtpg722depay.c                     |    3 +-
 gst/rtp/gstrtpg722pay.c                       |    2 +
 gst/rtp/gstrtpg723pay.c                       |    3 +-
 gst/rtp/gstrtpg726depay.c                     |    6 +-
 gst/rtp/gstrtpg729depay.c                     |    3 +-
 gst/rtp/gstrtpg729pay.c                       |    3 +-
 gst/rtp/gstrtpgsmdepay.c                      |    3 +-
 gst/rtp/gstrtpgsmpay.c                        |    3 +-
 gst/rtp/gstrtph261depay.c                     |    3 +-
 gst/rtp/gstrtph261pay.c                       |    3 +-
 gst/rtp/gstrtph263depay.c                     |    3 +-
 gst/rtp/gstrtph263pay.c                       |    5 +-
 gst/rtp/gstrtph263pdepay.c                    |    3 +-
 gst/rtp/gstrtph263ppay.c                      |    3 +-
 gst/rtp/gstrtph264depay.c                     |  222 +-
 gst/rtp/gstrtph264depay.h                     |    4 +
 gst/rtp/gstrtph264pay.c                       |   10 +-
 gst/rtp/gstrtph265depay.c                     |  326 ++-
 gst/rtp/gstrtph265depay.h                     |    7 +-
 gst/rtp/gstrtph265pay.c                       |   12 +-
 gst/rtp/gstrtpilbcdepay.c                     |    3 +-
 gst/rtp/gstrtpj2kdepay.c                      |    3 +-
 gst/rtp/gstrtpj2kpay.c                        |    3 +-
 gst/rtp/gstrtpjpegdepay.c                     |    3 +-
 gst/rtp/gstrtpjpegpay.c                       |    3 +-
 gst/rtp/gstrtpmp4adepay.c                     |    3 +-
 gst/rtp/gstrtpmp4apay.c                       |    3 +-
 gst/rtp/gstrtpmp4vdepay.c                     |    3 +-
 gst/rtp/gstrtpmp4vpay.c                       |    3 +-
 gst/rtp/gstrtpmpadepay.c                      |    3 +-
 gst/rtp/gstrtpmpapay.c                        |    3 +-
 gst/rtp/gstrtpmpvdepay.c                      |    3 +-
 gst/rtp/gstrtpmpvpay.c                        |    9 +-
 gst/rtp/gstrtpopusdepay.c                     |   36 +-
 gst/rtp/gstrtpopuspay.c                       |   38 +-
 gst/rtp/gstrtppcmadepay.c                     |    3 +-
 gst/rtp/gstrtppcmudepay.c                     |    3 +-
 gst/rtp/gstrtpqcelpdepay.c                    |    3 +-
 gst/rtp/gstrtpsbcdepay.c                      |  116 +-
 gst/rtp/gstrtpsbcdepay.h                      |    5 +
 gst/rtp/gstrtpsbcpay.c                        |   64 +-
 gst/rtp/gstrtpsbcpay.h                        |   28 +-
 gst/rtp/gstrtpsirendepay.c                    |    3 +-
 gst/rtp/gstrtpspeexdepay.c                    |    3 +-
 gst/rtp/gstrtpspeexpay.c                      |    3 +-
 gst/rtp/gstrtpsv3vdepay.c                     |    3 +-
 gst/rtp/gstrtptheorapay.c                     |    3 +-
 gst/rtp/gstrtputils.c                         |   29 +
 gst/rtp/gstrtputils.h                         |   15 +
 gst/rtp/gstrtpvorbisdepay.c                   |   23 +
 gst/rtp/gstrtpvorbispay.c                     |    3 +-
 gst/rtp/gstrtpvp8depay.c                      |    3 +-
 gst/rtp/gstrtpvp8pay.c                        |    4 +-
 gst/rtp/gstrtpvp9depay.c                      |    3 +-
 gst/rtp/gstrtpvp9pay.c                        |    4 +-
 gst/rtp/gstrtpvrawdepay.c                     |    3 +-
 gst/rtp/gstrtpvrawpay.c                       |    4 +-
 gst/rtp/meson.build                           |    2 +
 gst/rtpmanager/Makefile.am                    |    1 -
 gst/rtpmanager/Makefile.in                    |  103 +-
 gst/rtpmanager/gstrtpbin.c                    |  117 +-
 gst/rtpmanager/gstrtpbin.h                    |    3 +
 gst/rtpmanager/gstrtpjitterbuffer.c           |  180 +-
 gst/rtpmanager/gstrtprtxreceive.c             |   63 +-
 gst/rtpmanager/gstrtprtxsend.c                |   21 +-
 gst/rtpmanager/rtpjitterbuffer.c              |   38 +
 gst/rtpmanager/rtpjitterbuffer.h              |    2 +
 gst/rtpmanager/rtpsession.c                   |   25 +-
 gst/rtpmanager/rtpsource.c                    |    3 +-
 gst/rtsp/Makefile.am                          |    1 -
 gst/rtsp/Makefile.in                          |   62 +-
 gst/rtsp/gstrtspsrc.c                         | 1185 ++++++--
 gst/rtsp/gstrtspsrc.h                         |   20 +-
 gst/shapewipe/Makefile.am                     |    1 -
 gst/shapewipe/Makefile.in                     |   47 +-
 gst/smpte/Makefile.am                         |    1 -
 gst/smpte/Makefile.in                         |   69 +-
 gst/spectrum/Makefile.am                      |    1 -
 gst/spectrum/Makefile.in                      |   47 +-
 gst/spectrum/gstspectrum.c                    |    2 +-
 gst/udp/Makefile.am                           |    1 -
 gst/udp/Makefile.in                           |   70 +-
 gst/udp/gstmultiudpsink.c                     |   61 +-
 gst/udp/gstudpsrc.c                           |    4 +-
 gst/videobox/Makefile.am                      |    1 -
 gst/videobox/Makefile.in                      |   51 +-
 gst/videobox/gstvideoboxorc-dist.c            |    4 +-
 gst/videocrop/Makefile.am                     |    1 -
 gst/videocrop/Makefile.in                     |   51 +-
 gst/videocrop/gstvideocrop.c                  |  159 +-
 gst/videofilter/Makefile.am                   |    1 -
 gst/videofilter/Makefile.in                   |   63 +-
 gst/videomixer/Makefile.am                    |    1 -
 gst/videomixer/Makefile.in                    |   55 +-
 gst/videomixer/videomixerorc-dist.c           |   36 +-
 gst/wavenc/Makefile.am                        |    1 -
 gst/wavenc/Makefile.in                        |   49 +-
 gst/wavparse/Makefile.am                      |    1 -
 gst/wavparse/Makefile.in                      |   47 +-
 gst/y4m/Makefile.am                           |    1 -
 gst/y4m/Makefile.in                           |   49 +-
 m4/Makefile.in                                |   38 +-
 meson.build                                   |  110 +-
 meson_options.txt                             |    4 +
 pkgconfig/Makefile.in                         |   38 +-
 po/POTFILES.in                                |    5 +-
 po/af.gmo                                     |  Bin 625 -> 518 bytes
 po/af.po                                      |  112 +-
 po/az.gmo                                     |  Bin 682 -> 578 bytes
 po/az.po                                      |  112 +-
 po/bg.gmo                                     |  Bin 16489 -> 15532 bytes
 po/bg.po                                      |  143 +-
 po/ca.gmo                                     |  Bin 8708 -> 7987 bytes
 po/ca.po                                      |  153 +-
 po/cs.gmo                                     |  Bin 13098 -> 12286 bytes
 po/cs.po                                      |  143 +-
 po/da.gmo                                     |  Bin 12123 -> 11353 bytes
 po/da.po                                      |  143 +-
 po/de.gmo                                     |  Bin 13259 -> 12451 bytes
 po/de.po                                      |  148 +-
 po/el.gmo                                     |  Bin 11173 -> 10351 bytes
 po/el.po                                      |  141 +-
 po/en_GB.gmo                                  |  Bin 630 -> 522 bytes
 po/en_GB.po                                   |  112 +-
 po/eo.gmo                                     |  Bin 1203 -> 1095 bytes
 po/eo.po                                      |  102 +-
 po/es.gmo                                     |  Bin 8994 -> 8273 bytes
 po/es.po                                      |  153 +-
 po/eu.gmo                                     |  Bin 7412 -> 6651 bytes
 po/eu.po                                      |  153 +-
 po/fi.gmo                                     |  Bin 7703 -> 6972 bytes
 po/fi.po                                      |  151 +-
 po/fr.gmo                                     |  Bin 13818 -> 13006 bytes
 po/fr.po                                      |  144 +-
 po/fur.gmo                                    |  Bin 12144 -> 11314 bytes
 po/fur.po                                     |  142 +-
 po/gl.gmo                                     |  Bin 10379 -> 9662 bytes
 po/gl.po                                      |  151 +-
 po/gst-plugins-good-1.0.pot                   |  257 +-
 po/hr.gmo                                     |  Bin 12730 -> 11929 bytes
 po/hr.po                                      |  143 +-
 po/hu.gmo                                     |  Bin 13234 -> 12436 bytes
 po/hu.po                                      |  143 +-
 po/id.gmo                                     |  Bin 11847 -> 11062 bytes
 po/id.po                                      |  146 +-
 po/it.gmo                                     |  Bin 8152 -> 7464 bytes
 po/it.po                                      |  152 +-
 po/ja.gmo                                     |  Bin 11460 -> 10722 bytes
 po/ja.po                                      |  158 +-
 po/lt.gmo                                     |  Bin 7245 -> 6508 bytes
 po/lt.po                                      |  151 +-
 po/lv.gmo                                     |  Bin 10071 -> 9207 bytes
 po/lv.po                                      |  146 +-
 po/meson.build                                |    8 +-
 po/mt.gmo                                     |  Bin 5727 -> 5595 bytes
 po/mt.po                                      |  121 +-
 po/nb.gmo                                     |  Bin 12002 -> 11243 bytes
 po/nb.po                                      |  146 +-
 po/nl.gmo                                     |  Bin 12494 -> 11728 bytes
 po/nl.po                                      |  146 +-
 po/or.gmo                                     |  Bin 791 -> 622 bytes
 po/or.po                                      |  112 +-
 po/pl.gmo                                     |  Bin 13017 -> 12176 bytes
 po/pl.po                                      |  143 +-
 po/pt_BR.gmo                                  |  Bin 12757 -> 11940 bytes
 po/pt_BR.po                                   |  147 +-
 po/ro.gmo                                     |  Bin 7778 -> 7075 bytes
 po/ro.po                                      |  152 +-
 po/ru.gmo                                     |  Bin 16766 -> 15839 bytes
 po/ru.po                                      |  146 +-
 po/sk.gmo                                     |  Bin 12156 -> 11336 bytes
 po/sk.po                                      |  143 +-
 po/sl.gmo                                     |  Bin 9950 -> 9123 bytes
 po/sl.po                                      |  146 +-
 po/sq.gmo                                     |  Bin 644 -> 538 bytes
 po/sq.po                                      |  112 +-
 po/sr.gmo                                     |  Bin 16281 -> 15285 bytes
 po/sr.po                                      |  146 +-
 po/sv.gmo                                     |  Bin 12467 -> 11676 bytes
 po/sv.po                                      |  146 +-
 po/tr.gmo                                     |  Bin 12244 -> 11422 bytes
 po/tr.po                                      |  146 +-
 po/uk.gmo                                     |  Bin 16880 -> 15946 bytes
 po/uk.po                                      |  148 +-
 po/vi.gmo                                     |  Bin 14461 -> 13669 bytes
 po/vi.po                                      |  146 +-
 po/zh_CN.gmo                                  |  Bin 11526 -> 10739 bytes
 po/zh_CN.po                                   |  146 +-
 po/zh_HK.gmo                                  |  Bin 1444 -> 1181 bytes
 po/zh_HK.po                                   |  121 +-
 po/zh_TW.gmo                                  |  Bin 1443 -> 1180 bytes
 po/zh_TW.po                                   |  121 +-
 sys/Makefile.am                               |   41 +-
 sys/Makefile.in                               |   74 +-
 sys/directsound/Makefile.am                   |   23 +-
 sys/directsound/Makefile.in                   |  117 +-
 sys/directsound/gstdirectsounddevice.c        |  266 ++
 sys/directsound/gstdirectsounddevice.h        |   74 +
 sys/directsound/gstdirectsoundplugin.c        |    6 +-
 sys/directsound/gstdirectsoundsink.c          |   46 +-
 sys/directsound/gstdirectsoundsink.h          |   11 +
 sys/directsound/meson.build                   |    2 +-
 sys/meson.build                               |    7 +-
 sys/oss/Makefile.am                           |    1 -
 sys/oss/Makefile.in                           |   59 +-
 sys/oss/meson.build                           |   28 +
 sys/oss4/Makefile.am                          |    1 -
 sys/oss4/Makefile.in                          |   62 +-
 sys/oss4/meson.build                          |   23 +
 sys/osxaudio/Makefile.am                      |    1 -
 sys/osxaudio/Makefile.in                      |   75 +-
 sys/osxvideo/Makefile.am                      |   13 +-
 sys/osxvideo/Makefile.in                      |  100 +-
 sys/osxvideo/cocoawindow.m                    |   18 +-
 sys/osxvideo/osxvideosink.m                   |   21 +-
 sys/sunaudio/Makefile.am                      |   26 -
 sys/sunaudio/gstsunaudiomixer.c               |  104 -
 sys/sunaudio/gstsunaudiomixer.h               |   51 -
 sys/sunaudio/gstsunaudiomixerctrl.c           |  585 ----
 sys/sunaudio/gstsunaudiomixerctrl.h           |  189 --
 sys/sunaudio/gstsunaudiomixeroptions.c        |  157 -
 sys/sunaudio/gstsunaudiomixeroptions.h        |   65 -
 sys/sunaudio/gstsunaudiomixertrack.c          |  158 -
 sys/sunaudio/gstsunaudiomixertrack.h          |   78 -
 sys/sunaudio/gstsunaudiosink.c                |  650 -----
 sys/sunaudio/gstsunaudiosink.h                |   78 -
 sys/sunaudio/gstsunaudiosrc.c                 |  421 ---
 sys/sunaudio/gstsunaudiosrc.h                 |   67 -
 sys/v4l2/Makefile.am                          |   14 +-
 sys/v4l2/Makefile.in                          |  182 +-
 sys/v4l2/ext/types-compat.h                   |   21 +-
 sys/v4l2/ext/v4l2-common.h                    |   46 +-
 sys/v4l2/ext/v4l2-controls.h                  |   34 +-
 sys/v4l2/ext/videodev2.h                      |  288 +-
 sys/v4l2/gstv4l2.c                            |   42 +-
 sys/v4l2/gstv4l2allocator.c                   |  194 +-
 sys/v4l2/gstv4l2allocator.h                   |    8 +-
 sys/v4l2/gstv4l2bufferpool.c                  |  254 +-
 sys/v4l2/gstv4l2bufferpool.h                  |    5 +-
 sys/v4l2/gstv4l2colorbalance.h                |    3 +-
 sys/v4l2/gstv4l2deviceprovider.c              |    9 +-
 sys/v4l2/gstv4l2h263enc.c                     |  116 +
 sys/v4l2/gstv4l2h263enc.h                     |   60 +
 sys/v4l2/gstv4l2h264enc.c                     |  325 +++
 sys/v4l2/gstv4l2h264enc.h                     |   60 +
 sys/v4l2/gstv4l2mpeg4enc.c                    |  222 ++
 sys/v4l2/gstv4l2mpeg4enc.h                    |   60 +
 sys/v4l2/gstv4l2object.c                      |  613 ++--
 sys/v4l2/gstv4l2object.h                      |  131 +-
 sys/v4l2/gstv4l2radio.c                       |    8 +-
 sys/v4l2/gstv4l2sink.c                        |   20 +-
 sys/v4l2/gstv4l2sink.h                        |    3 -
 sys/v4l2/gstv4l2src.c                         |  400 ++-
 sys/v4l2/gstv4l2src.h                         |    2 -
 sys/v4l2/gstv4l2transform.c                   |   13 +-
 sys/v4l2/gstv4l2transform.h                   |    4 +-
 sys/v4l2/gstv4l2tuner.c                       |    2 +-
 sys/v4l2/gstv4l2videodec.c                    |  257 +-
 sys/v4l2/gstv4l2videodec.h                    |    4 +-
 sys/v4l2/gstv4l2videoenc.c                    | 1189 ++++++++
 sys/v4l2/gstv4l2videoenc.h                    |   97 +
 sys/v4l2/gstv4l2vidorient.c                   |    2 +-
 sys/v4l2/gstv4l2vp8enc.c                      |  161 ++
 sys/v4l2/gstv4l2vp8enc.h                      |   60 +
 sys/v4l2/gstv4l2vp9enc.c                      |  160 ++
 sys/v4l2/gstv4l2vp9enc.h                      |   60 +
 sys/v4l2/meson.build                          |    6 +
 sys/v4l2/v4l2_calls.c                         |  102 +-
 sys/v4l2/v4l2_calls.h                         |  138 -
 sys/waveform/Makefile.am                      |   11 +-
 sys/waveform/Makefile.in                      |   98 +-
 sys/ximage/Makefile.am                        |    1 -
 sys/ximage/Makefile.in                        |   51 +-
 tests/Makefile.in                             |   38 +-
 tests/check/Makefile.am                       |   53 +-
 tests/check/Makefile.in                       |  379 ++-
 tests/check/elements/aacparse.c               |   39 +
 tests/check/elements/autodetect.c             |    3 +-
 tests/check/elements/matroskademux.c          |  201 +-
 tests/check/elements/matroskamux.c            | 1193 +++++---
 tests/check/elements/mpg123audiodec.c         |  534 ++++
 tests/check/elements/rtp-payloading.c         |   26 +
 tests/check/elements/rtpbin.c                 |  216 +-
 tests/check/elements/rtph264.c                |  311 ++
 tests/check/elements/rtpsession.c             |  726 ++---
 tests/check/elements/splitmux.c               |  150 +-
 tests/check/elements/sunaudio.c               |   95 -
 tests/check/elements/udpsink.c                |   38 +-
 tests/check/elements/udpsrc.c                 |   37 +-
 tests/check/gst-plugins-good.supp             |   20 +
 tests/check/meson.build                       |    8 +-
 tests/check/pipelines/lame.c                  |  131 +
 tests/check/pipelines/tagschecking.c          |   12 +-
 tests/check/pipelines/twolame.c               |   22 +
 tests/examples/Makefile.am                    |   10 +-
 tests/examples/Makefile.in                    |   44 +-
 tests/examples/audiofx/Makefile.in            |   38 +-
 tests/examples/audiofx/meson.build            |   12 +
 tests/examples/cairo/Makefile.in              |   38 +-
 tests/examples/cairo/meson.build              |    7 +
 tests/examples/equalizer/Makefile.in          |   38 +-
 tests/examples/equalizer/meson.build          |    6 +
 tests/examples/gtk/Makefile.am                |   39 +
 tests/examples/gtk/Makefile.in                |  983 +++++++
 tests/examples/gtk/glliveshader.c             |  350 +++
 tests/examples/gtk/gtkglsink.c                |  200 ++
 tests/examples/gtk/gtksink.c                  |  185 ++
 tests/examples/jack/Makefile.in               |   38 +-
 tests/examples/jack/meson.build               |    7 +
 tests/examples/level/Makefile.in              |   38 +-
 tests/examples/level/meson.build              |    5 +
 tests/examples/meson.build                    |   15 +
 tests/examples/rtp/Makefile.in                |   38 +-
 tests/examples/rtp/meson.build                |   16 +
 tests/examples/shapewipe/Makefile.in          |   38 +-
 tests/examples/shapewipe/meson.build          |    5 +
 tests/examples/spectrum/Makefile.in           |   38 +-
 tests/examples/spectrum/meson.build           |   17 +
 tests/examples/v4l2/Makefile.am               |    6 +-
 tests/examples/v4l2/Makefile.in               |   75 +-
 tests/examples/v4l2/camctrl.c                 |   18 +-
 tests/examples/v4l2/meson.build               |   11 +
 tests/examples/v4l2/v4l2src-renegotiate.c     |  173 ++
 tests/files/Makefile.am                       |    5 +-
 tests/files/Makefile.in                       |   42 +-
 tests/files/cbr_stream.mp3                    |  Bin 0 -> 3135 bytes
 tests/files/h264.rtp                          |  Bin 0 -> 3069 bytes
 tests/files/stream.mp2                        |  Bin 0 -> 2925 bytes
 tests/files/vbr_stream.mp3                    |  Bin 0 -> 3798 bytes
 tests/icles/Makefile.in                       |   38 +-
 tests/icles/meson.build                       |   38 +
 tests/icles/test-accurate-seek.c              |   28 +-
 tests/meson.build                             |    3 +-
 1025 files changed, 46442 insertions(+), 15023 deletions(-)
 delete mode 100644 config.h.meson
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-gtkglsink.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-gtksink.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-lamemp3enc.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-mpg123audiodec.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-plugin-gtk.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-plugin-lame.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-plugin-mpg123.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-plugin-qmlgl.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-plugin-twolame.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-qmlglsink.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-qmlglsrc.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpL8depay.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpL8pay.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-twolame.html
 create mode 100644 docs/plugins/inspect/plugin-gtk.xml
 create mode 100644 docs/plugins/inspect/plugin-lame.xml
 create mode 100644 docs/plugins/inspect/plugin-mpg123.xml
 create mode 100644 docs/plugins/inspect/plugin-qmlgl.xml
 create mode 100644 docs/plugins/inspect/plugin-twolame.xml
 create mode 100644 ext/aalib/meson.build
 create mode 100644 ext/gtk/Makefile.am
 create mode 100644 ext/gtk/Makefile.in
 create mode 100644 ext/gtk/gstgtkbasesink.c
 create mode 100644 ext/gtk/gstgtkbasesink.h
 create mode 100644 ext/gtk/gstgtkglsink.c
 create mode 100644 ext/gtk/gstgtkglsink.h
 create mode 100644 ext/gtk/gstgtksink.c
 create mode 100644 ext/gtk/gstgtksink.h
 create mode 100644 ext/gtk/gstgtkutils.c
 create mode 100644 ext/gtk/gstgtkutils.h
 create mode 100644 ext/gtk/gstplugin.c
 create mode 100644 ext/gtk/gtkgstbasewidget.c
 create mode 100644 ext/gtk/gtkgstbasewidget.h
 create mode 100644 ext/gtk/gtkgstglwidget.c
 create mode 100644 ext/gtk/gtkgstglwidget.h
 create mode 100644 ext/gtk/gtkgstwidget.c
 create mode 100644 ext/gtk/gtkgstwidget.h
 create mode 100644 ext/gtk/meson.build
 create mode 100644 ext/lame/Makefile.am
 rename {sys/sunaudio => ext/lame}/Makefile.in (71%)
 create mode 100644 ext/lame/gstlamemp3enc.c
 create mode 100644 ext/lame/gstlamemp3enc.h
 create mode 100644 ext/lame/meson.build
 rename sys/sunaudio/gstsunaudio.c => ext/lame/plugin.c (53%)
 create mode 100644 ext/libcaca/meson.build
 create mode 100644 ext/mpg123/Makefile.am
 create mode 100644 ext/mpg123/Makefile.in
 create mode 100644 ext/mpg123/gstmpg123audiodec.c
 create mode 100644 ext/mpg123/gstmpg123audiodec.h
 create mode 100644 ext/mpg123/meson.build
 create mode 100644 ext/qt/Makefile.am
 create mode 100644 ext/qt/Makefile.in
 create mode 100644 ext/qt/gstplugin.cc
 create mode 100644 ext/qt/gstqsgtexture.cc
 create mode 100644 ext/qt/gstqsgtexture.h
 create mode 100644 ext/qt/gstqtgl.h
 create mode 100644 ext/qt/gstqtglutility.cc
 create mode 100644 ext/qt/gstqtglutility.h
 create mode 100644 ext/qt/gstqtsink.cc
 create mode 100644 ext/qt/gstqtsink.h
 create mode 100644 ext/qt/gstqtsrc.cc
 create mode 100644 ext/qt/gstqtsrc.h
 create mode 100644 ext/qt/qtitem.cc
 create mode 100644 ext/qt/qtitem.h
 create mode 100644 ext/qt/qtwindow.cc
 create mode 100644 ext/qt/qtwindow.h
 create mode 100644 ext/raw1394/meson.build
 create mode 100644 ext/twolame/Makefile.am
 create mode 100644 ext/twolame/Makefile.in
 create mode 100644 ext/twolame/gsttwolamemp2enc.c
 create mode 100644 ext/twolame/gsttwolamemp2enc.h
 create mode 100644 ext/twolame/meson.build
 create mode 100644 gst/isomp4/qtdemux_debug.h
 create mode 100644 gst/rtp/gstrtpL8depay.c
 create mode 100644 gst/rtp/gstrtpL8depay.h
 create mode 100644 gst/rtp/gstrtpL8pay.c
 create mode 100644 gst/rtp/gstrtpL8pay.h
 create mode 100644 sys/directsound/gstdirectsounddevice.c
 create mode 100644 sys/directsound/gstdirectsounddevice.h
 create mode 100644 sys/oss/meson.build
 create mode 100644 sys/oss4/meson.build
 delete mode 100644 sys/sunaudio/Makefile.am
 delete mode 100644 sys/sunaudio/gstsunaudiomixer.c
 delete mode 100644 sys/sunaudio/gstsunaudiomixer.h
 delete mode 100644 sys/sunaudio/gstsunaudiomixerctrl.c
 delete mode 100644 sys/sunaudio/gstsunaudiomixerctrl.h
 delete mode 100644 sys/sunaudio/gstsunaudiomixeroptions.c
 delete mode 100644 sys/sunaudio/gstsunaudiomixeroptions.h
 delete mode 100644 sys/sunaudio/gstsunaudiomixertrack.c
 delete mode 100644 sys/sunaudio/gstsunaudiomixertrack.h
 delete mode 100644 sys/sunaudio/gstsunaudiosink.c
 delete mode 100644 sys/sunaudio/gstsunaudiosink.h
 delete mode 100644 sys/sunaudio/gstsunaudiosrc.c
 delete mode 100644 sys/sunaudio/gstsunaudiosrc.h
 create mode 100644 sys/v4l2/gstv4l2h263enc.c
 create mode 100644 sys/v4l2/gstv4l2h263enc.h
 create mode 100644 sys/v4l2/gstv4l2h264enc.c
 create mode 100644 sys/v4l2/gstv4l2h264enc.h
 create mode 100644 sys/v4l2/gstv4l2mpeg4enc.c
 create mode 100644 sys/v4l2/gstv4l2mpeg4enc.h
 create mode 100644 sys/v4l2/gstv4l2videoenc.c
 create mode 100644 sys/v4l2/gstv4l2videoenc.h
 create mode 100644 sys/v4l2/gstv4l2vp8enc.c
 create mode 100644 sys/v4l2/gstv4l2vp8enc.h
 create mode 100644 sys/v4l2/gstv4l2vp9enc.c
 create mode 100644 sys/v4l2/gstv4l2vp9enc.h
 delete mode 100644 sys/v4l2/v4l2_calls.h
 create mode 100644 tests/check/elements/mpg123audiodec.c
 create mode 100644 tests/check/elements/rtph264.c
 delete mode 100644 tests/check/elements/sunaudio.c
 create mode 100644 tests/check/pipelines/lame.c
 create mode 100644 tests/check/pipelines/twolame.c
 create mode 100644 tests/examples/audiofx/meson.build
 create mode 100644 tests/examples/cairo/meson.build
 create mode 100644 tests/examples/equalizer/meson.build
 create mode 100644 tests/examples/gtk/Makefile.am
 create mode 100644 tests/examples/gtk/Makefile.in
 create mode 100644 tests/examples/gtk/glliveshader.c
 create mode 100644 tests/examples/gtk/gtkglsink.c
 create mode 100644 tests/examples/gtk/gtksink.c
 create mode 100644 tests/examples/jack/meson.build
 create mode 100644 tests/examples/level/meson.build
 create mode 100644 tests/examples/meson.build
 create mode 100644 tests/examples/rtp/meson.build
 create mode 100644 tests/examples/shapewipe/meson.build
 create mode 100644 tests/examples/spectrum/meson.build
 create mode 100644 tests/examples/v4l2/meson.build
 create mode 100644 tests/examples/v4l2/v4l2src-renegotiate.c
 create mode 100644 tests/files/cbr_stream.mp3
 create mode 100644 tests/files/h264.rtp
 create mode 100644 tests/files/stream.mp2
 create mode 100644 tests/files/vbr_stream.mp3
 create mode 100644 tests/icles/meson.build

diff --git a/ChangeLog b/ChangeLog
index d9d533776..1414846b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,1138 +1,9 @@
-=== release 1.12.4 ===
-
-2017-12-07  Sebastian Dröge <slomo@coaxion.net>
-
-	* configure.ac:
-	  releasing 1.12.4
-
-2017-12-07 19:03:58 +0200  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/el.po:
-	* po/nl.po:
-	  po: Update translations
-
-2017-12-07 11:15:19 +0000  Tim-Philipp Müller <tim@centricular.com>
-
-	* gst/audioparsers/gstflacparse.c:
-	* gst/audioparsers/gstflacparse.h:
-	  Revert "flacparse: fix header rewriting being ignored"
-	  This caused broken metadata and also looks a bit dodgy.
-	  Revert until we can figure out a solution that works for
-	  all cases and doesn't break anything.
-	  This reverts commit adeee44b07a173b9ab4253216caba8f66dd43abb.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=727802
-	  https://bugzilla.gnome.org/show_bug.cgi?id=785558
-
-2017-08-25 11:57:26 +0200  Haakon Sporsheim <haakon@pexip.com>
-
-	* gst/rtpmanager/rtpsession.c:
-	  rtpsession: Handle zero length feedback packets
-	  https://bugzilla.gnome.org/show_bug.cgi?id=791074
-
-2017-07-10 15:19:34 +0200  Florian Zwoch <fzwoch@gmail.com>
-
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: fix debug log for 'hvcC' codec_data
-	  https://bugzilla.gnome.org/show_bug.cgi?id=784749
-
-2017-11-23 07:59:07 +0100  Edward Hervey <edward@centricular.com>
-
-	* gst/replaygain/rganalysis.c:
-	  rganalysis: Fix left shift of signed values
-	  left shifting signed values is undefined.
-	  Instead of doing "x << offs" which is undefined, do the equivalent
-	  "x * (1 << offs)" which is well defined
-
-2017-11-24 10:36:01 +0200  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/audioparsers/gstflacparse.c:
-	  flacparse: Request at least the full header size when parsing headers
-	  Otherwise baseparse will incrementally send us bigger buffers until the
-	  full header size is reached, which is not only pointless but also means
-	  that baseparse will reallocate and copy into a bigger buffer for every
-	  input buffers. In pull mode that's done in 64kb increments, in push mode
-	  usually in much smaller increments, causing a lot of overhead for
-	  example when parsing high-quality coverart.
-
-2017-10-22 18:26:12 +0800  Jun Xie <jun.xie@samsung.com>
-
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: reset reused QtDemuxStream while parsing a new 'trak'
-	  if QtDemuxStream is reused, then we need to reset it.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=788759
-
-2017-11-18 02:01:58 +1100  Jan Schmidt <jan@centricular.com>
-
-	* gst/multifile/gstsplitmuxpartreader.c:
-	  splitmuxsrc: Don't return FALSE from event handling.
-	  Returning FALSE because we drop an event means that
-	  internal sources like qtdemux might throw an error
-	  and break the whole pipeline. The only time it can
-	  happen is either flushing or shutdown, and those
-	  will be handled anyway.
-
-2017-03-13 18:14:12 +0900  paul.kim <paul.hyunil@lge.com>
-
-	* ext/soup/gstsouphttpsrc.c:
-	  souphttpsrc: Remove range header when seek to 0
-	  This fixes the previous range header is remained if seek to 0 is
-	  attempted.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=779957
-
-2017-06-20 16:28:35 +0200  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
-
-	* tests/files/test-cert.pem:
-	  tests: souphttpsrc: Update test-cert.pem
-	  Recent GnuTLS disregards the Common Name and only looks at the Subject
-	  Alternative Name extension. Since our test-cert has no SAN extension,
-	  validation fails.
-	  Generate a new certificate with SAN. In addition to 127.0.0.1, for good
-	  measure make it valid for localhost and ::1, too.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=784005
-
-2017-06-20 16:39:36 +0200  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
-
-	* tests/check/elements/souphttpsrc.c:
-	  tests: souphttpsrc: Avoid deprecated ssl-ca-file property
-	  SoupSession's ssl-ca-file property is deprecated. Use the recommended
-	  tls-database property.
-	  This is a bit more complex as it requires creating a GTlsFileDatabase
-	  object for an absolute (!) path to the CA certificates file.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=784005
-
-2017-06-20 16:37:55 +0200  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
-
-	* tests/check/elements/souphttpsrc.c:
-	  tests: souphttpsrc: Avoid deprecated server ssl properties
-	  The ssl-cert-file and ssl-key-file properties are deprecated. Use the
-	  soup_server_set_ssl_cert_file function to load the files.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=784005
-
-2017-06-20 16:34:41 +0200  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
-
-	* tests/check/elements/souphttpsrc.c:
-	  tests: souphttpsrc: Make ssl_cert/key_file static
-	  Just a bit of cleanup.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=784005
-
-2017-11-08 16:34:01 +0100  Edward Hervey <edward@centricular.com>
-
-	* ext/soup/gstsouphttpsrc.c:
-	  souphttpsrc: Fix seeking back to 0
-	  This is a regression introduced by "03db374 - souphttpsrc: retry
-	  request on early termination from the server"
-	  The problem was that when seeking back to 0, we would not end up calling
-	  add_range_header() which in addition to adding range headers *ALSO* sets
-	  the read_position to the requested one.
-	  This would result in a wide variety of later failures, like reading
-	  again and again instead of stopping properly.
-
-2017-11-06 21:13:34 +0100  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
-
-	* sys/v4l2/gstv4l2deviceprovider.c:
-	  v4l2deviceprovider: Add missing V4L2_CAP_TOUCH
-	  This define was only added in Linux 4.8. This commit is for the stable
-	  branch only, since we want to avoid bumping the v4l headers in fear of
-	  regressions.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=789197
-
-2017-10-19 14:02:37 +0200  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
-
-	* sys/v4l2/gstv4l2deviceprovider.c:
-	  v4l2deviceprovider: Ignore touch sensing devices
-	  With GST_V4L2_USE_LIBV4L2=1, my laptop's touchpad shows up as a video
-	  source device in gst-device-monitor, but attempting to stream from it
-	  fails because the device doesn't actually support any video formats.
-	  name  : Synaptics RMI4 Touch Sensor
-	  class : Video/Source
-	  caps  : video/x-raw, format=(string)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1;
-	  video/x-raw, format=(string)YV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1;
-	  video/x-raw, format=(string)BGR, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1;
-	  video/x-raw, format=(string)RGB, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1;
-	  properties:
-	  udev-probed = true
-	  device.bus_path = /sys/devices/rmi4-00/rmi4-00.fn54/video4linux/v4l-touch0
-	  sysfs.path = /sys/devices/rmi4-00/rmi4-00.fn54/video4linux/v4l-touch0
-	  device.subsystem = video4linux
-	  device.product.name = "Synaptics\ RMI4\ Touch\ Sensor"
-	  device.capabilities = :capture:
-	  device.api = v4l2
-	  device.path = /dev/v4l-touch0
-	  v4l2.device.driver = rmi4_f54
-	  v4l2.device.card = "Synaptics\ RMI4\ Touch\ Sensor"
-	  v4l2.device.bus_info = rmi4:rmi4-00.fn54
-	  v4l2.device.version = 265480 (0x00040d08)
-	  v4l2.device.capabilities = 2501902337 (0x95200001)
-	  v4l2.device.device_caps = 354418689 (0x15200001)
-	  gst-launch-1.0 v4l2src device=/dev/v4l-touch0 ! ...
-	  v4l2-ctl -d /dev/v4l-touch0 --list-formats reports:
-	  ioctl: VIDIOC_ENUM_FMT
-	  Index       : 0
-	  Type        : Video Capture
-	  Pixel Format: 'TD16'
-	  Name        : 16-bit signed deltas
-	  Index       : 1
-	  Type        : Video Capture
-	  Pixel Format: 'TD08'
-	  Name        : 8-bit signed deltas
-	  Index       : 2
-	  Type        : Video Capture
-	  Pixel Format: 'TU16'
-	  Name        : 16-bit unsigned touch data
-	  https://bugzilla.gnome.org/show_bug.cgi?id=789197
-
-2017-09-23 15:41:30 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
-
-	* gst/flv/gstflvdemux.c:
-	  flvdemux: Ignore invalid H.264 codec data
-	  This code basically skip over codec_data with empty payload. In
-	  this case, the codec_data variable is the size of the header for
-	  the CODEC part of Video Tag. The remaining is supposed to be the
-	  H.264 codec data, hence should not be empty.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=787795
-
-2017-09-24 14:35:01 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
-
-	* gst/flv/gstflvdemux.c:
-	  flvdemux: Only set pixel-aspect-ratio if specified
-	  If it's not specified, we should let the decoder figure it out.
-	  Apparently the code was already in place, all was to make the code
-	  conditional.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=787795
-
-2017-09-23 15:44:09 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
-
-	* gst/flv/gstflvdemux.c:
-	  flvdemux: Don't pull passed the EOS
-	  When a truncated FLV is provided and processed in pull mode, we
-	  may endup trying to pull passed EOS, causing a rather confusing
-	  warning as the pull offset is an integer overflow.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=787795
-
-2017-09-23 15:38:07 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
-
-	* gst/flv/gstflvdemux.c:
-	  flvdemux: Avoid integer overflow on invalid CTS
-	  If the CTS is negative an would lead to a negtive PTS, clip
-	  the CTS so the PTS will be 0.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=787795
-
-2017-10-01 16:09:13 +0200  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: Ignore medias marked as sendonly
-	  We're never going to receive anything from them, so don't create pads
-	  for them. These medias are destinations where *we* could send something.
-
-=== release 1.12.3 ===
-
-2017-09-18 17:47:44 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/gst-plugins-good-plugins.args:
-	* 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-shout2.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:
-	* meson.build:
-	  Release 1.12.3
-
-2017-09-18 16:10:39 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/af.po:
-	* po/az.po:
-	* po/bg.po:
-	* po/ca.po:
-	* po/cs.po:
-	* po/da.po:
-	* po/de.po:
-	* po/el.po:
-	* po/en_GB.po:
-	* po/eo.po:
-	* po/es.po:
-	* po/eu.po:
-	* po/fi.po:
-	* po/fr.po:
-	* po/fur.po:
-	* po/gl.po:
-	* po/hr.po:
-	* po/hu.po:
-	* po/id.po:
-	* po/it.po:
-	* po/ja.po:
-	* po/lt.po:
-	* po/lv.po:
-	* po/mt.po:
-	* po/nb.po:
-	* po/nl.po:
-	* po/or.po:
-	* po/pl.po:
-	* po/pt_BR.po:
-	* po/ro.po:
-	* po/ru.po:
-	* po/sk.po:
-	* po/sl.po:
-	* po/sq.po:
-	* po/sr.po:
-	* po/sv.po:
-	* po/tr.po:
-	* po/uk.po:
-	* po/vi.po:
-	* po/zh_CN.po:
-	* po/zh_HK.po:
-	* po/zh_TW.po:
-	  Update .po files
-
-2017-09-18 16:01:18 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/cs.po:
-	* po/el.po:
-	  po: Update translations
-
-2017-09-13 11:52:09 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
-
-	* sys/v4l2/gstv4l2object.c:
-	  v4l2object: Don't leak the par value
-
-2017-09-05 15:30:40 +0100  Ian Jamison <ian.dev@arkver.com>
-
-	* sys/v4l2/gstv4l2object.c:
-	  v4l2object: Handle BT2020 for colorspace and transfer
-	  This was not fully handled in switches and
-	  ub gst_v4l2_object_get_colorspace();
-	  https://bugzilla.gnome.org/show_bug.cgi?id=787313
-
-2017-09-05 15:29:24 +0100  Ian Jamison <ian.dev@arkver.com>
-
-	* sys/v4l2/gstv4l2object.c:
-	  v4l2object: Fix colorimetry transfer lookup for 4K video
-	  https://bugzilla.gnome.org/show_bug.cgi?id=787160
-
-2017-09-05 12:56:44 +0100  Tim-Philipp Müller <tim@centricular.com>
-
-	* gst/rtp/gstrtph265depay.c:
-	  rtph265depay: fix keyunit detection
-	  https://bugzilla.gnome.org/show_bug.cgi?id=787254
-
-2017-08-24 17:06:38 +1000  Matthew Waters <matthew@centricular.com>
-
-	* gst/rtpmanager/gstrtpbin.c:
-	  rtpbin: also create session when creating the send_rtcp_src_%u pad
-	  If one requests the send_rtcp_src_%u pad before a recv_rtcp_sink_%u pad,
-	  the session/pad would never be created and NULL was returned.
-	  Switching the request order would work.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=786718
-
-2017-08-17 12:13:45 +0100  Tim-Philipp Müller <tim@centricular.com>
-
-	* README:
-	* common:
-	  Automatic update of common submodule
-	  From 48a5d85 to dd9d403
-
-2017-08-14 03:08:41 -0500  Eduard Sinelnikov <eduard@reporty.com>
-
-	* gst/wavparse/gstwavparse.c:
-	* gst/wavparse/gstwavparse.h:
-	  wavparse: Add support for growing WAV files
-	  With some fixes by me.
-
-2017-07-27 17:21:48 +0300  George Kiagiadakis <george.kiagiadakis@collabora.com>
-
-	* ext/vpx/gstvpxenc.c:
-	  vpxenc: discard frames that have been dropped by libvpx
-	  This fixes a memory leak. When dropframe-threshold has been set,
-	  libvpx may output less frames than the input ones, which causes
-	  some GstVideoCodecFrames to queue up in GstVideoEncoder's internal
-	  frame queue with no chance of ever being all released. And because
-	  the frames keep references to the input buffers, the input buffer
-	  pool keeps allocating new buffers and memory usage grows very fast.
-	  For example the following pipeline's memory usage grows at a rate
-	  of about 1GB per minute!
-	  videotestsrc ! capsfilter caps=video/x-raw,width=1920,height=1080,framerate=30/1,format=I420 ! \
-	  vp8enc target-bitrate=1000000 end-usage=cbr dropframe-threshold=95 ! fakesink
-	  https://bugzilla.gnome.org/show_bug.cgi?id=783086
-
-2017-08-08 13:11:58 +0200  Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
-
-	* gst/rtpmanager/rtpstats.c:
-	* gst/rtpmanager/rtpstats.h:
-	  rtpstats: fix unsigned integer comparisons.
-	  Callers of the API (rtpsource, rtpjitterbuffer) pass clock_rate
-	  as a signed integer, and the comparison "<= 0" is used against
-	  it, leading me to think the intention was to have the field
-	  be typed as gint32, not guint32.
-	  This led to situations where we could call scale_int with
-	  a MAX_UINT32 (-1) guint32 as the denom, thus raising an
-	  assertion.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=785991
-
-2017-03-22 15:25:17 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
-
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: allow larger files
-	  For really long files such as contiguous recordings of a whole day, the
-	  50MB limit is not sufficient.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=781458
-
-2017-08-14 15:28:22 +0800  Sky Juan <skyjuan@realtek.com>
-
-	* gst/audioparsers/gstac3parse.c:
-	  ac3parse: fix not-linked handling causing glitches when selecting stream
-	  Fix chain function not handling not-linked from baseparse.
-	  When an input data is separated into 2 buffers, the second buffer
-	  would not be pushed into the adapter if baseparse returns not-linked
-	  for first buffer.
-	  This caused glitches when switching streams and selecting
-	  a stream that was previously unselected.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=786268
-
-2017-08-16 13:57:50 +0200  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
-
-	* gst/goom2k1/filters.c:
-	* gst/goom2k1/filters.h:
-	* gst/goom2k1/goom_core.c:
-	  goom2k1: Convert source files to UTF-8
-	  Causes problems with the new gtk-doc 1.26 otherwise,
-	  but is a good idea in any case.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=786364
-
-2017-08-10 16:08:06 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/isomp4/fourcc.h:
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: Fix offsets for reading lpcm specific fields
-	  We were reading at the completely wrong positions, 16 bytes later in the
-	  data.
-	  Also add support for high-aligned samples.
-
-2017-08-10 15:14:31 +0530  Deepak Srivastava <srivastava.d@samsung.com>
-
-	* gst/wavparse/gstwavparse.c:
-	  wavparse: Fix memory leak in wavparse element
-	  Fixing of leaking the text field of the GstWavParseNote and
-	  GstWavParseLabl structure.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=785429
-
-2017-07-27 09:22:25 +0530  Satya Prakash Gupta <sp.gupta@samsung.com>
-
-	* gst/law/alaw-decode.c:
-	  alawdec: Fix Memory leak in error case
-	  https://bugzilla.gnome.org/show_bug.cgi?id=785435
-
-2017-07-27 14:21:34 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/law/mulaw-decode.c:
-	  mulawdec: Unmap input buffer if failing to map the output buffer
-
-2017-07-18 10:41:40 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/matroska/matroska-mux.c:
-	  matroskamux: For audio tracks, take the default duration from the first buffer
-	  ... if we don't have any better idea from the caps. This allows writing
-	  SimpleBlocks for a majority of audio streams where the duration of
-	  frames is usually fixed. And as a side effect, allows VLC to play
-	  streams with Opus as it only works with SimpleBlocks currently:
-	  https://trac.videolan.org/vlc/ticket/18545
-	  https://bugzilla.gnome.org/show_bug.cgi?id=784969
-
-2017-08-08 10:37:12 +0000  Cyril Lashkevich <notorca@gmail.com>
-
-	* sys/v4l2/gstv4l2bufferpool.c:
-	  v4l2bufferpool: Don't mark jpeg frames as deltas
-	  JPEG formats are encoded, but they never have keyframe flag. But in
-	  fact they are keyframes
-	  https://bugzilla.gnome.org/show_bug.cgi?id=785990
-
-2017-06-27 15:59:18 +0100  Julien Isorce <jisorce@oblong.com>
-
-	* gst/rtpmanager/rtpstats.h:
-	  rtpstats: fix assertion 'denom > 0' failed
-	  gst_util_uint64_scale_int takes a gint as denom parameter
-	  whereas ctx->clock_rate is a guint32.
-	  It happens when gst_rtp_packet_rate_ctx_reset set clock_rate
-	  to -1.
-	  So just define clock_rate as gint like it is done in rtpsource.h
-	  https://bugzilla.gnome.org/show_bug.cgi?id=784250
-
-2017-07-18 00:26:11 +0200  Nicola Murino <nicola.murino@gmail.com>
-
-	* gst/matroska/matroska-mux.c:
-	* gst/matroska/matroska-mux.h:
-	  matroskamux: add properties to control cluster duration
-	  https://bugzilla.gnome.org/show_bug.cgi?id=784971
-
-2017-07-18 10:01:13 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* tests/check/elements/matroskamux.c:
-	  Revert "matroskamux: adjust unit test to modified behaviour"
-	  This reverts commit 8fe478c8a7746cd2c63f20d23e97e26e1a0e6192.
-	  We're back to previous behaviour
-
-2017-06-28 14:05:27 -0500  Matt Fischer <matt.fischer@garmin.com>
-
-	* sys/v4l2/gstv4l2bufferpool.c:
-	  v4l2: Block recursive calls to resurect_buffer
-	  When resurrecting a buffer, the subsequent free call can result
-	  in the group-released handler being called again, which causes
-	  a recursive loop.  This patch blocks the signal handler during
-	  the time that it executes, ensuring that the loop will not occur.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=759292
-
-2017-07-18 11:28:37 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
-
-	* sys/v4l2/gstv4l2object.c:
-	  v4l2: Fix 4K colorimetry
-	  Since 1.6, the transfer function for BT2020 has been changed from BT709
-	  to BT2020_12. It's the same function, but with more precision. As a side
-	  effect, the V4L2 colorpsace didn't match GStreamer colorspace. When
-	  GStreamer ended up making a guess, it would not match anything supported
-	  by V4L2 anymore. This this by using BT2020_12 for BT2020 colorspace and
-	  BT2020 transfer function in replacement of BT709 whenever a 4K
-	  resolution is detected.
-
-2017-07-17 20:47:26 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
-
-	* sys/v4l2/v4l2_calls.c:
-	  v4l2: UVC driver is named uvcvideo these days
-	  The quirk to avoid probing interlacing didn't work anymore as the driver
-	  is now name uvcvideo. This should slightly speed up camera startup.
-
-=== release 1.12.2 ===
-
-2017-07-14 14:03:05 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/gst-plugins-good-plugins.args:
-	* 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-shout2.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:
-	* meson.build:
-	  Release 1.12.2
-
-2017-07-14 13:31:58 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/af.po:
-	* po/az.po:
-	* po/bg.po:
-	* po/ca.po:
-	* po/cs.po:
-	* po/da.po:
-	* po/de.po:
-	* po/el.po:
-	* po/en_GB.po:
-	* po/eo.po:
-	* po/es.po:
-	* po/eu.po:
-	* po/fi.po:
-	* po/fr.po:
-	* po/fur.po:
-	* po/gl.po:
-	* po/hr.po:
-	* po/hu.po:
-	* po/id.po:
-	* po/it.po:
-	* po/ja.po:
-	* po/lt.po:
-	* po/lv.po:
-	* po/mt.po:
-	* po/nb.po:
-	* po/nl.po:
-	* po/or.po:
-	* po/pl.po:
-	* po/pt_BR.po:
-	* po/ro.po:
-	* po/ru.po:
-	* po/sk.po:
-	* po/sl.po:
-	* po/sq.po:
-	* po/sr.po:
-	* po/sv.po:
-	* po/tr.po:
-	* po/uk.po:
-	* po/vi.po:
-	* po/zh_CN.po:
-	* po/zh_HK.po:
-	* po/zh_TW.po:
-	  Update .po files
-
-2017-07-14 13:22:45 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/el.po:
-	  po: Update translations
-
-2017-07-13 12:47:02 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: Fix parsing of RLE depth
-	  Regression introduced by 86b427dc70562f891a551ffc9f96cefe1cafcddd
-	  https://bugzilla.gnome.org/show_bug.cgi?id=784812
-
-2017-05-20 17:09:52 +0200  Josep Torra <jtorra@oblong.com>
-
-	* sys/osxaudio/gstosxcoreaudio.c:
-	  osxaudio: fixes playback of mono streams with no channel-mask field in caps
-	  Fixes a negotiation error seen when trying to playback of a .MOV file with
-	  a mono AAC audio stream decoded by avcdec_aac that doesn't set channel-mask
-	  field but sink was requiring channel-mask=0x3.
-
-2017-07-07 21:15:57 +0900  Yasushi SHOJI <yashi@atmark-techno.com>
-
-	* gst/rtp/gstrtpgsmpay.c:
-	  rtpgsmpay: fix accidental garbage data before actual payload
-	  Do not allocate payload size outbuf if appending payload buffer.
-	  The commit 137672ff1824948bda4b1b1967de8c24a0055b67 attached payload
-	  to the output buffer but forgot to remove payload allocation.  That
-	  effectively doubled payload size and add zero'ed or random bytes.
-	  Makes the following pipeline work again:
-	  gst-launch-1.0 -v audiotestsrc wave=2 ! gsmenc ! rtpgsmpay ! rtpgsmdepay ! gsmdec ! autoaudiosink
-	  https://bugzilla.gnome.org/show_bug.cgi?id=784616
-
-2017-07-03 11:47:13 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
-
-	* gst/rtpmanager/gstrtprtxreceive.c:
-	  rtprtxreceive: Add memory and boundary checks
-	  This element was not checking if mapping the RTP buffer and the payload
-	  worked, and was not checking if the RTX payload was large enough.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=784484
-
-2017-07-03 20:27:29 +0100  Tim-Philipp Müller <tim@centricular.com>
-
-	* gst/imagefreeze/gstimagefreeze.c:
-	  imagefreeze: fix use-after-free on seek event
-	  Get seqnum before unreffing the seek event.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=784486
-
-2017-06-29 18:59:58 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: Create send/recv mutexes once, not on every connect()
-	  Also fixes a crash caused by freeing an uninitialized mutex in an error
-	  case.
-	  https://bugzilla.gnome.org//show_bug.cgi?id=784282
-
-2017-06-22 11:38:56 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: Actually use the receive lock when receiving, not the send lock
-
-=== release 1.12.1 ===
-
-2017-06-20 12:06:22 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/gst-plugins-good-plugins.args:
-	* 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-shout2.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:
-	* meson.build:
-	  Release 1.12.1
-
-2017-06-20 11:20:12 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/af.po:
-	* po/az.po:
-	* po/bg.po:
-	* po/ca.po:
-	* po/cs.po:
-	* po/da.po:
-	* po/de.po:
-	* po/el.po:
-	* po/en_GB.po:
-	* po/eo.po:
-	* po/es.po:
-	* po/eu.po:
-	* po/fi.po:
-	* po/fr.po:
-	* po/fur.po:
-	* po/gl.po:
-	* po/hr.po:
-	* po/hu.po:
-	* po/id.po:
-	* po/it.po:
-	* po/ja.po:
-	* po/lt.po:
-	* po/lv.po:
-	* po/mt.po:
-	* po/nb.po:
-	* po/nl.po:
-	* po/or.po:
-	* po/pl.po:
-	* po/pt_BR.po:
-	* po/ro.po:
-	* po/ru.po:
-	* po/sk.po:
-	* po/sl.po:
-	* po/sq.po:
-	* po/sr.po:
-	* po/sv.po:
-	* po/tr.po:
-	* po/uk.po:
-	* po/vi.po:
-	* po/zh_CN.po:
-	* po/zh_HK.po:
-	* po/zh_TW.po:
-	  Update .po files
-
-2017-06-20 11:08:32 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/bg.po:
-	* po/da.po:
-	* po/de.po:
-	* po/el.po:
-	* po/fr.po:
-	* po/hr.po:
-	* po/hu.po:
-	* po/nb.po:
-	* po/pl.po:
-	* po/ru.po:
-	* po/sr.po:
-	* po/sv.po:
-	* po/tr.po:
-	* po/uk.po:
-	* po/vi.po:
-	* po/zh_CN.po:
-	  po: Update translations
-
-2017-06-13 17:40:19 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
-
-	* gst/multifile/gstsplitmuxsink.c:
-	  splitmux: Drop allocation queries
-	  They can cause us to deadlock, while we're waiting for a new frame and
-	  upstream is waiting for the allocation query to be answered before
-	  sending a frame
-	  https://bugzilla.gnome.org/show_bug.cgi?id=783753
-
-2017-06-15 10:40:51 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/rtsp/gstrtspsrc.c:
-	* gst/rtsp/gstrtspsrc.h:
-	  rtspsrc: Use a mutex for protecting against concurrent send/receives
-	  We currently send data to the RTSP connection from multiple threads:
-	  whenever a command is to be handled and whenever RTCP is generated. This
-	  can cause data corruption or worse if both happen at the same time.
-	  As such, protect gst_rtsp_connection_send() and gst_rtsp_connection_receive()
-	  calls with a mutex. While this means that we hold a mutex during the IO
-	  operation, this is not actually a problem as the IO operation can be
-	  interrupted (gst_rtsp_connection_flush()) at any time and is blocking by
-	  itself anyway.
-
-2017-06-15 11:50:44 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/isomp4/atoms.c:
-	  qtmux: Un-merge the last two stsc entries after serializing
-	  The last entry will most likely get new samples added to it in "robust"
-	  muxing mode, changing the samples_per_chunk and thus making it wrong to
-	  keep the last two entries merged. It will run into an assertion later
-	  when adding a new sample to the chunk.
-	  Thanks to gdiener@cardinalpeak.com for the analysis of the bug and
-	  proposal for a solution.
-
-2017-06-14 00:09:25 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/wavparse/gstwavparse.c:
-	  wavparse: Actually clip to upstream size instead of size of the data chunk
-	  There might be other chunks after the data chunk, so clipping the chunk
-	  size with the data size can lead to a negative number and all following
-	  calculations go wrong and cause crashes or worse.
-	  This was introduced in 3ac119bbe2c360e28c087cf3852ea769d611b120.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=783760
-
-2017-05-30 22:23:10 +0200  Juan Navarro <juan.navarro@gmx.es>
-
-	* gst/rtpmanager/rtpsession.c:
-	  rtpsession: print value of unknown RTCP Payload Type
-	  This adds printing the actual value of any unknown RTCP PT
-	  to the already existing WARNING log message.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=783248
-
-2017-06-02 11:30:15 +0100  Tim-Philipp Müller <tim@centricular.com>
-
-	* gst/rtp/gstrtph265depay.c:
-	  rtph265depay: fix caps leak
-
-2017-05-24 11:33:05 +0530  vijay <vijay.palaniswamy@in.bosch.com>
-
-	* gst/audioparsers/gstaacparse.c:
-	  aacparse : Fix, Caps were not set while reusing aacparse
-	  While reusing aacparse caps were not set.This fix enables aacparse to reuse in same pipeline.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=783027
-
-2017-05-16 12:56:15 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
-
-	* gst/isomp4/gstqtmux.c:
-	  qtmux: Do not check timecode data for mp4 container
-	  Timecode trak is only supported for mov right now, not for mp4. That
-	  code would otherwise create an invalid trak if the muxed video contained
-	  timecode metadata.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=782684
-
-2017-05-10 15:58:41 +0200  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/isomp4/gstqtmux.c:
-	  qtmux: Lateness is in QT timescale, diff in GstClockTime
-	  Print the right one in debug output to get meaningful numbers.
-
-2017-05-09 11:41:25 +0200  Sebastian Dröge <sebastian@centricular.com>
-
-	* ext/vpx/gstvpxdec.c:
-	  vpxdec: Set fb->priv to NULL after freeing just in case
-	  https://bugzilla.gnome.org/show_bug.cgi?id=782359
-
-2017-05-08 15:22:00 +0000  Dustin Spicuzza <dustin@virtualroadside.com>
-
-	* sys/directsound/gstdirectsoundsink.c:
-	* sys/directsound/gstdirectsoundsink.h:
-	  directsoundsink: Use GstClock API instead of Sleep() for waiting
-	  It's more accurate and allows cancellation.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=773681
-
-2017-05-08 15:05:45 +0000  Tim-Philipp Müller <tim@centricular.com>
-
-	* ext/vpx/gstvp9dec.c:
-	  vpx: fix build against older libvpx versions
-	  Such as 1.3.0 as on raspbian.
-
-2017-05-03 23:23:10 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
-
-	* sys/directsound/gstdirectsoundsink.c:
-	  directsoundsink: Fix corner case causing large CPU usage
-	  We were unnecessarily looping/goto-ing repeatedly when we had exactly
-	  the amount of data as the free space, and also when the free space was
-	  too small. This, as it turns out, is a very common scenario with
-	  Directsound on Windows.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=773681
-	  We have to do polling here because the event notification API that
-	  Directsound exposes cannot be used with live playback since all events
-	  must be registered in advance with the capture buffer, you cannot
-	  add/remove them once playback has begun. Directsoundsrc had the same
-	  problem.
-	  See also: https://bugzilla.gnome.org/show_bug.cgi?id=781249
-
 === release 1.12.0 ===
 
-2017-05-04 15:38:34 +0300  Sebastian Dröge <sebastian@centricular.com>
+2017-05-04  Sebastian Dröge <slomo@coaxion.net>
 
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
 	* configure.ac:
-	* docs/plugins/gst-plugins-good-plugins.args:
-	* 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-shout2.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:
-	* meson.build:
-	  Release 1.12.0
-
-2017-05-04 15:07:27 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/af.po:
-	* po/az.po:
-	* po/bg.po:
-	* po/ca.po:
-	* po/cs.po:
-	* po/da.po:
-	* po/de.po:
-	* po/el.po:
-	* po/en_GB.po:
-	* po/eo.po:
-	* po/es.po:
-	* po/eu.po:
-	* po/fi.po:
-	* po/fr.po:
-	* po/fur.po:
-	* po/gl.po:
-	* po/hr.po:
-	* po/hu.po:
-	* po/id.po:
-	* po/it.po:
-	* po/ja.po:
-	* po/lt.po:
-	* po/lv.po:
-	* po/mt.po:
-	* po/nb.po:
-	* po/nl.po:
-	* po/or.po:
-	* po/pl.po:
-	* po/pt_BR.po:
-	* po/ro.po:
-	* po/ru.po:
-	* po/sk.po:
-	* po/sl.po:
-	* po/sq.po:
-	* po/sr.po:
-	* po/sv.po:
-	* po/tr.po:
-	* po/uk.po:
-	* po/vi.po:
-	* po/zh_CN.po:
-	* po/zh_HK.po:
-	* po/zh_TW.po:
-	  Update .po files
+	  releasing 1.12.0
 
 2017-05-04 13:47:20 +0300  Sebastian Dröge <sebastian@centricular.com>
 
diff --git a/Makefile.am b/Makefile.am
index cdffccb67..12cb59a8c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -18,7 +18,7 @@ EXTRA_DIST = \
 	AUTHORS COPYING NEWS README RELEASE REQUIREMENTS \
 	ChangeLog gst-plugins-good.doap autogen.sh \
 	$(shell find "$(top_srcdir)" -type f -name meson.build ! -path "$(top_srcdir)/$(PACKAGE_TARNAME)-*" ) \
-	meson_options.txt config.h.meson
+	meson_options.txt
 
 DISTCLEANFILES = _stdint.h
 
@@ -65,7 +65,9 @@ CRUFT_FILES = \
 	$(top_builddir)/gst/videofilter/.libs/*videoflip.{so,dll,DLL,dylib} \
 	$(top_builddir)/gst/videofilter/.libs/*videobalance.{so,dll,DLL,dylib} \
 	$(top_builddir)/gst/videofilter/.libs/*gamma.{so,dll,DLL,dylib} \
-	$(top_builddir)/sys/oss4/.libs/libgstoss4audio.so
+	$(top_builddir)/sys/directsound/.libs/libgstdirectsoundsink.{dll,DLL} \
+	$(top_builddir)/sys/oss4/.libs/libgstoss4audio.so \
+	$(top_builddir)/sys/waveform/.libs/libgstwaveformsink.{dll,DLL}
 
 CRUFT_DIRS = \
 	$(top_srcdir)/docs/plugins/tmpl \
diff --git a/Makefile.in b/Makefile.in
index ec1aea33f..34d68ddfb 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -301,6 +301,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -324,6 +325,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -339,6 +342,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -361,10 +366,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -379,6 +391,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -396,6 +409,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -408,6 +423,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -426,6 +443,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -469,9 +489,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -485,11 +516,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -597,7 +633,7 @@ EXTRA_DIST = \
 	AUTHORS COPYING NEWS README RELEASE REQUIREMENTS \
 	ChangeLog gst-plugins-good.doap autogen.sh \
 	$(shell find "$(top_srcdir)" -type f -name meson.build ! -path "$(top_srcdir)/$(PACKAGE_TARNAME)-*" ) \
-	meson_options.txt config.h.meson
+	meson_options.txt
 
 DISTCLEANFILES = _stdint.h
 noinst_HEADERS = \
@@ -621,7 +657,9 @@ CRUFT_FILES = \
 	$(top_builddir)/gst/videofilter/.libs/*videoflip.{so,dll,DLL,dylib} \
 	$(top_builddir)/gst/videofilter/.libs/*videobalance.{so,dll,DLL,dylib} \
 	$(top_builddir)/gst/videofilter/.libs/*gamma.{so,dll,DLL,dylib} \
-	$(top_builddir)/sys/oss4/.libs/libgstoss4audio.so
+	$(top_builddir)/sys/directsound/.libs/libgstdirectsoundsink.{dll,DLL} \
+	$(top_builddir)/sys/oss4/.libs/libgstoss4audio.so \
+	$(top_builddir)/sys/waveform/.libs/libgstwaveformsink.{dll,DLL}
 
 CRUFT_DIRS = \
 	$(top_srcdir)/docs/plugins/tmpl \
diff --git a/NEWS b/NEWS
index 62d10ed59..385e4b631 100644
--- a/NEWS
+++ b/NEWS
@@ -1,22 +1,18 @@
-# GStreamer 1.12 Release Notes
+# GStreamer 1.14 Release Notes
 
-GStreamer 1.12.0 was originally released on 4th May 2017.
-The latest bug-fix release in the 1.12 series is [1.12.4](#1.12.4) and was
-released on 7 December 2017.
+GStreamer 1.14.0 has not been released yet. It is scheduled for release
+in late February / early March 2018.
 
-The GStreamer team is proud to announce a new major feature release in the
-stable 1.x API series of your favourite cross-platform multimedia framework!
-
-As always, this release is again packed with new features, bug fixes and other
-improvements.
+There are unstable pre-releases available for testing and development purposes.
+The latest pre-release is version 1.13.1 and was released on 15 February 2018.
 
-See [https://gstreamer.freedesktop.org/releases/1.12/][latest] for the latest
+See [https://gstreamer.freedesktop.org/releases/1.14/][latest] for the latest
 version of this document.
 
-*Last updated: Thursday 7 December 2017, 16:30 UTC [(log)][gitlog]*
+*Last updated: Thursday 15 February 2018, 16:30 UTC [(log)][gitlog]*
 
-[latest]: https://gstreamer.freedesktop.org/releases/1.12/
-[gitlog]: https://cgit.freedesktop.org/gstreamer/www/log/src/htdocs/releases/1.12/release-notes-1.12.md
+[latest]: https://gstreamer.freedesktop.org/releases/1.14/
+[gitlog]: https://cgit.freedesktop.org/gstreamer/www/log/src/htdocs/releases/1.14/release-notes-1.14.md
 
 ## Introduction
 
@@ -28,819 +24,127 @@ improvements.
 
 ## Highlights
 
-- new `msdk` plugin for Intel's Media SDK for hardware-accelerated video
-  encoding and decoding on Intel graphics hardware on Windows or Linux.
-
-- `x264enc` can now use multiple x264 library versions compiled for different
-  bit depths at runtime, to transparently provide support for multiple bit
-  depths.
-
-- `videoscale` and `videoconvert` now support multi-threaded scaling and
-  conversion, which is particularly useful with higher resolution video.
-
-- `h264parse` will now automatically insert AU delimiters if needed when
-  outputting byte-stream format, which improves standard compliance and
-  is needed in particular for HLS playback on iOS/macOS.
-
-- `rtpbin` has acquired bundle support for incoming streams
+- this section will be completed shortly
 
 ## Major new features and changes
 
 ### Noteworthy new API
 
-- The video library gained support for a number of new video formats:
-
-  - `GBR_12LE`, `GBR_12BE`, `GBRA_12LE`, `GBRA_12BE` (planar 4:4:4 RGB/RGBA, 12 bits per channel)
-  - `GBRA_10LE`, `GBRA_10BE` (planar 4:4:4:4 RGBA, 10 bits per channel)
-  - `GBRA` (planar 4:4:4:4 ARGB, 8 bits per channel)
-  - `I420_12BE`, `I420_12LE` (planar 4:2:0 YUV, 12 bits per channel)
-  - `I422_12BE`,`I422_12LE` (planar 4:2:2 YUV, 12 bits per channel)
-  - `Y444_12BE`, `Y444_12LE` (planar 4:4:4 YUV, 12 bits per channel)
-  - `VYUY` (another packed 4:2:2 YUV format)
-
-- The high-level `GstPlayer` API was extended with functions for taking video
-  snapshots and enabling accurate seeking. It can optionally also use the
-  still-experimental `playbin3` element now.
+- this section will be filled in shortly
 
 ### New Elements
 
-- msdk: new plugin for Intel's Media SDK for hardware-accelerated video encoding
-  and decoding on Intel graphics hardware on Windows or Linux. This includes
-  an H.264 encoder/decoder (`msdkh264dec`, `msdkh264enc`),
-  an H.265 encoder/decoder (`msdkh265dec`, `msdkh265enc`),
-  an MJPEG encoder/encoder (`msdkmjpegdec`, `msdkmjpegenc`),
-  an MPEG-2 video encoder (`msdkmpeg2enc`) and a VP8 encoder (`msdkvp8enc`).
-
-- `iqa` is a new Image Quality Assessment plugin based on [DSSIM][dssim],
-  similar to the old (unported) videomeasure element.
-
-- The `faceoverlay` element, which allows you to overlay SVG graphics over
-  a detected face in a video stream, has been ported from 0.10.
-
-- our `ffmpeg` wrapper plugin now exposes/maps the ffmpeg Opus audio decoder
-  (`avdec_opus`) as well as the GoPro CineForm HD / CFHD decoder (`avdec_cfhd`),
-  and also a parser/writer for the IVF format (`avdemux_ivf` and `avmux_ivf`).
-
-- `audiobuffersplit` is a new element that splits raw audio buffers into
-  equal-sized buffers
-
-- `audiomixmatrix` is a new element that mixes N:M audio channels according to
-  a configured mix matrix.
-
-- The `timecodewait` element got renamed to `avwait` and can operate in
-  different modes now.
-
-- The `opencv` video processing plugin has gained a new `dewarp` element that
-  dewarps fisheye images.
-
-- `ttml` is a new plugin for parsing and rendering subtitles in Timed Text
-  Markup Language (TTML) format. For the time being these elements will not
-  be autoplugged during media playback however, unless the `GST_TTML_AUTOPLUG=1`
-  environment variable is set. Only the EBU-TT-D profile is supported at this
-  point.
-
-[dssim]: https://github.com/pornel/dssim
+- this section will be filled in shortly
 
 ### New element features and additions
 
-- `x264enc` can now use multiple x264 library versions compiled for different
-  bit depths at runtime, to transparently provide support for multiple bit
-  depths. A new configure parameter `--with-x264-libraries` has been added to
-  specify additional paths to look for additional x264 libraries to load.
-  Background is that the libx264 library is always compile for one specific
-  bit depth and the `x264enc` element would simply support the depth supported
-  by the underlying library. Now we can support multiple depths.
-
-- `x264enc` also picks up the interlacing mode automatically from the input
-  caps now and passed interlacing/TFF information correctly to the library.
-
-- `videoscale` and `videoconvert` now support multi-threaded scaling and
-  conversion, which is particularly useful with higher resolution video.
-  This has to be enabled explicitly via the `"n-threads"` property.
-
-- `videorate`'s new `"rate"` property lets you set a speed factor
-  on the output stream
-
-- `splitmuxsink`'s buffer collection and scheduling was rewritten to make
-  processing and splitting deterministic; before it was possible for a buffer
-  to end up in a different file chunk in different runs. `splitmuxsink` also
-  gained a new `"format-location-full"` signal that works just like the existing
-  `"format-location"` signal only that it is also passed the primary stream's
-  first buffer as argument, so that it is possible to construct the file name
-  based on metadata such as the buffer timestamp or any GstMeta attached to
-  the buffer. The new `"max-size-timecode"` property allows for timecode-based
-  splitting. `splitmuxsink` will now also automatically start a new file if the
-  input caps change in an incompatible way.
-
-- `fakesink` has a new `"drop-out-of-segment"` property to not drop
-  out-of-segment buffers, which is useful for debugging purposes.
-
-- `identity` gained a `"ts-offset"` property.
-
-- both `fakesink` and `identity` now also print what kind of metas are attached
-  to buffers when printing buffer details via the `"last-message"` property
-  used by `gst-launch-1.0 -v`.
-
-- multiqueue: made `"min-interleave-time"` a configurable property.
-
-- video nerds will be thrilled to know that `videotestsrc`'s snow is now
-  deterministic. `videotestsrc` also gained some new properties to make the
-  ball pattern based on system time, and invert colours each second
-  (`"animation-mode"`, `"motion"`, and `"flip"` properties).
-
-- `oggdemux` reverse playback should work again now. You're welcome.
-
-- `playbin3` and `urisourcebin` now have buffering enabled by default, and
-  buffering message aggregation was fixed.
-
-- `tcpclientsrc` now has a `"timeout"` property
-
-- `appsink` has gained support for buffer lists. For backwards compatibility
-  reasons users need to enable this explicitly with `gst_app_sink_set_buffer_list_support()`,
-  however. Once activated, a pulled `GstSample` can contain either a buffer
-  list or a single buffer.
-
-- `splitmuxsrc` reverse playback was fixed and handling of sparse streams, such
-  as subtitle tracks or metadata tracks, was improved.
-
-- `matroskamux` has acquired support for muxing G722 audio; it also marks all
-  buffers as keyframes now when streaming only audio, so that `tcpserversink`
-  will behave properly with audio-only streams.
-
-- `qtmux` gained support for ProRes 4444 XQ, HEVC/H.265 and CineForm (GoPro) formats,
-  and generally writes more video stream-related metadata into the track headers.
-  It is also allows configuration of the maximum interleave size in bytes and
-  time now. For fragmented mp4 we always write the `tfdt` atom now as required
-  by the DASH spec.
-
-- `qtdemux` supports FLAC, xvid, mp2, S16L and CineForm (GoPro) tracks now, and
-  generally tries harder to extract more video-related information from track
-  headers, such as colorimetry or interlacing details. It also received a
-  couple of fixes for the scenario where upstream operates in TIME format and
-  feeds chunks to qtdemux (e.g. DASH or MSE).
-
-- `audioecho` has two new properties to apply a delay only to certain channels
-  to create a surround effect, rather than an echo on all channels. This is
-  useful when upmixing from stereo, for example. The `"surround-delay"` property
-  enables this, and the `"surround-mask"` property controls which channels
-  are considered surround sound channels in this case.
-
-- `webrtcdsp` gained various new properties for gain control and also exposes
-  voice activity detection now, in which case it will post `"voice-activity"`
-  messages on the bus whenever the voice detection status changes.
-
-- The `decklink` capture elements for Blackmagic Decklink cards have seen a
-  number of improvements:
-
-  - `decklinkvideosrc` will post a warning message on "no signal" and an info
-    message when the signal lock has been (re)acquired. There is also a new
-    read-only `"signal"` property that can be used to query the signal lock
-    status. The `GAP` flag will be set on buffers that are captured without
-    a signal lock. The new `drop-no-signal-frames` will make `decklinkvideosrc`
-    drop all buffers that have been captured without an input signal. The
-    `"skip-first-time"` property will make the source drop the first few
-    buffers, which is handy since some devices will at first output buffers
-    with the wrong resolution before they manage to figure out the right input
-    format and decide on the actual output caps.
-
-  - `decklinkaudiosrc` supports more than just 2 audio channels now.
-
-  - The capture sources no longer use the "hardware" timestamps which turn
-    out to be useless and instead just use the pipeline clock directly.
-
-- `srtpdec` now also has a readonly `"stats"` property, just like `srtpenc`.
-
-- `rtpbin` gained RTP bundle support, as used by e.g. WebRTC. The first
-   rtpsession will have a `rtpssrcdemux` element inside splitting the streams
-   based on their SSRC and potentially dispatch to a different rtpsession.
-   Because retransmission SSRCs need to be merged with the corresponding media
-   stream the `::on-bundled-ssrc` signal is emitted on `rtpbin` so that the
-   application can find out to which session the SSRC belongs.
-
-- `rtprtxqueue` gained two new properties exposing retransmission
-  statistics (`"requests"` and `"fulfilled-requests"`)
-
-- `kmssink` will now use the preferred mode for the monitor and render to the
-  base plane if nothing else has set a mode yet. This can also be done forcibly
-  in any case via the new `"force-modesetting"` property. Furthermore, `kmssink`
-  now allows only the supported connector resolutions as input caps in order to
-  avoid scaling or positioning of the input stream, as `kmssink` can't know
-  whether scaling or positioning would be more appropriate for the use case at
-  hand.
-
-- `waylandsink` can now take DMAbuf buffers as input in the presence
-  of a compatible Wayland compositor. This enables zero-copy transfer
-  from a decoder or source that outputs DMAbuf. It will also set surface
-  opacity hint to allow better rendering optimization in the compositor.
-
-- `udpsrc` can be bound to more than one interface when joining a
-  multicast group, this is done by giving a comma separate list of
-  interfaces such as multicast-iface="eth0,eth1".
-
-### Plugin moves
-
-- `dataurisrc` moved from gst-plugins-bad to core
-
-- The `rawparse` plugin containing the `rawaudioparse` and `rawvideoparse`
-  elements moved from gst-plugins-bad to gst-plugins-base. These elements
-  supersede the old `videoparse` and `audioparse` elements. They work the
-  same, with just some minor API changes. The old legacy elements still
-  exist in gst-plugins-bad, but may be removed at some point in the future.
-
-- `timecodestamper` is an element that attaches time codes to video buffers
-  in form of `GstVideoTimeCodeMeta`s. It had a `"clock-source"` property
-  which has now been removed because it was fairly useless in practice. It
-  gained some new properties however: the `"first-timecode"` property can
-  be used to set the inital timecode; alternatively `"first-timecode-to-now"`
-  can be set, and then the current system time at the time the first buffer
-  arrives is used as base time for the time codes.
+- this section will be filled in shortly
+
+### Plugin and library moves
 
+- this section will be filled in shortly
 
 ### Plugin removals
 
-- The `mad` mp1/mp2/mp3 decoder plugin was removed from gst-plugins-ugly,
-  as libmad is GPL licensed, has been unmaintained for a very long time, and
-  there are better alternatives available. Use the `mpg123audiodec` element
-  from the `mpg123` plugin in gst-plugins-ugly instead, or `avdec_mp3` from
-  the `gst-libav` module which wraps the ffmpeg library. We expect that we
-  will be able to move mp3 decoding to gst-plugins-good in the next cycle
-  seeing that most patents around mp3 have expired recently or are about to
-  expire.
-
-- The `mimic` plugin was removed from gst-plugins-bad. It contained a decoder
-  and encoder for a video codec used by MSN messenger many many years ago (in
-  a galaxy far far away). The underlying library is unmaintained and no one
-  really needs to use this codec any more. Recorded videos can still be played
-  back with the MIMIC decoder in gst-libav.
+- this section will be filled in shortly
+
 
 ## Miscellaneous API additions
 
-- Request pad name templates passed to `gst_element_request_pad()` may now
-  contain multiple specifiers, such as e.g. `src_%u_%u`.
-
-- [`gst_buffer_iterate_meta_filtered()`][buffer-iterate-meta-filtered] is a
-  variant of `gst_buffer_iterate_meta()` that only returns metas of the
-  requested type and skips all other metas.
-
-- [`gst_pad_task_get_state()`][pad-task-get-state] gets the current state of
-  a task in a thread-safe way.
-
-- [`gst_uri_get_media_fragment_table()`][uri-get-fragment-table] provides the
-  media fragments of an URI as a table of key=value pairs.
-
-- [`gst_print()`][print], [`gst_println()`][println], [`gst_printerr()`][printerr],
-  and [`gst_printerrln()`][printerrln] can be used to print to stdout or stderr.
-  These functions are similar to `g_print()` and `g_printerr()` but they also
-  support all the additional format specifiers provided by the GStreamer
-  logging system, such as e.g. `GST_PTR_FORMAT`.
-
-- a `GstParamSpecArray` has been added, for elements who want to have array
-  type properties, such as the `audiomixmatrix` element for example. There are
-  also two new functions to set and get properties of this type from bindings:
-   - gst_util_set_object_array()
-   - gst_util_get_object_array()
-
-- various helper functions have been added to make it easier to set or get
-  GstStructure fields containing caps-style array or list fields from language
-  bindings (which usually support GValueArray but don't know about the GStreamer
-  specific fundamental types):
-   - [`gst_structure_get_array()`][get-array]
-   - [`gst_structure_set_array()`][set-array]
-   - [`gst_structure_get_list()`][get-list]
-   - [`gst_structure_set_list()`][set-list]
-
-- a new ['dynamic type' registry factory type][dynamic-type] was added to
-  register dynamically loadable GType types. This is useful for automatically
-  loading enum/flags types that are used in caps, such as for example the
-  `GstVideoMultiviewFlagsSet` type used in multiview video caps.
-
-- there is a new [`GstProxyControlBinding`][proxy-control-binding] for use
-  with GstController. This allows proxying the control interface from one
-  property on one GstObject to another property (of the same type) in another
-  GstObject. So e.g. in parent-child relationship, one may need to call
-  `gst_object_sync_values()` on the child and have a binding (set elsewhere)
-  on the parent update the value. This is used in `glvideomixer` and `glsinkbin`
-  for example, where `sync_values()` on the child pad or element will call
-  `sync_values()` on the exposed bin pad or element.
-
-  Note that this doesn't solve GObject property forwarding, that must
-  be taken care of by the implementation manually or using GBinding.
-
-- `gst_base_parse_drain()` has been made public for subclasses to use.
-
-- `gst_base_sink_set_drop_out_of_segment()' can be used by subclasses to
-  prevent GstBaseSink from dropping buffers that fall outside of the segment.
-
-- [`gst_calculate_linear_regression()`][calc-lin-regression] is a new utility
-  function to calculate a linear regression.
-
-- [`gst_debug_get_stack_trace`][get-stack-trace] is an easy way to retrieve a
-  stack trace, which can be useful in tracer plugins.
-
-- allocators: the dmabuf allocator is now sub-classable, and there is a new
-  `GST_CAPS_FEATURE_MEMORY_DMABUF` define.
-
-- video decoder subclasses can use the newly-added function
-  `gst_video_decoder_allocate_output_frame_with_params()` to
-  pass a `GstBufferPoolAcquireParams` to the buffer pool for
-  each buffer allocation.
-
-- the video time code API has gained a dedicated [`GstVideoTimeCodeInterval`][timecode-interval]
-  type plus related API, including functions to add intervals to timecodes.
-
-- There is a new `libgstbadallocators-1.0` library in gst-plugins-bad, which
-  may go away again in future releases once the `GstPhysMemoryAllocator`
-  interface API has been validated by more users and was moved to
-  `libgstallocators-1.0` from gst-plugins-base.
-
-[timecode-interval]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideo.html#gst-video-time-code-interval-new
-[buffer-iterate-meta-filtered]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#gst-buffer-iterate-meta-filtered
-[pad-task-get-state]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-task-get-state
-[uri-get-fragment-table]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUri.html#gst-uri-get-media-fragment-table
-[print]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#gst-print
-[println]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#gst-println
-[printerr]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#gst-printerr
-[printerrln]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#gst-printerrln
-[get-array]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html#gst-structure-get-array
-[set-array]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html#gst-structure-set-array
-[get-list]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html#gst-structure-get-list
-[set-list]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html#gst-structure-set-list
-[dynamic-type]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstDynamicTypeFactory.html
-[proxy-control-binding]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstProxyControlBinding.html
-[calc-lin-regression]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUtils.html#gst-calculate-linear-regression
-[get-stack-trace]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUtils.html#gst-debug-get-stack-trace
+- this section will be filled in shortly
 
 ### GstPlayer
 
-New API has been added to:
-
- - get the number of audio/video/subtitle streams:
-   - `gst_player_media_info_get_number_of_streams()`
-   - `gst_player_media_info_get_number_of_video_streams()`
-   - `gst_player_media_info_get_number_of_audio_streams()`
-   - `gst_player_media_info_get_number_of_subtitle_streams()`
-
- - enable accurate seeking: `gst_player_config_set_seek_accurate()`
-   and `gst_player_config_get_seek_accurate()`
-
- - get a snapshot image of the video in RGBx, BGRx, JPEG, PNG or
-   native format: [`gst_player_get_video_snapshot()`][snapshot]
-
- - selecting use of a specific video sink element
-   ([`gst_player_video_overlay_video_renderer_new_with_sink()`][renderer-with-vsink])
-
- - If the environment variable `GST_PLAYER_USE_PLAYBIN3` is set, GstPlayer will
-   use the still-experimental `playbin3` element and the `GstStreams` API for
-   playback.
-
-[snapshot]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/gst-plugins-bad-libs-gstplayer.html#gst-player-get-video-snapshot
-[renderer-with-vsink]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/gst-plugins-bad-libs-gstplayer-videooverlayvideorenderer.html#gst-player-video-overlay-video-renderer-new-with-sink
+- this section will be filled in shortly
 
 ## Miscellaneous changes
 
-- video caps for interlaced video may contain an optional `"field-order"` field
-  now in the case of `interlaced-mode=interleaved` to signal that the field
-  order is always the same throughout the stream. This is useful to signal to
-  muxers such as mp4mux. The new field is parsed from/to `GstVideoInfo` of course.
-
-- video decoder and video encoder base classes try harder to proxy
-  interlacing, colorimetry and chroma-site related fields in caps properly.
-
-- The buffer stored in the `PROTECTION` events is now left unchanged. This is a
-  change of behaviour since 1.8, especially for the mssdemux element which used to
-  decode the base64 parsed data wrapped in the protection events emitted by the
-  demuxer.
-
-- `PROTECTION` events can now be injected into the pipeline from the application;
-  source elements deriving from GstBaseSrc will forward those downstream now.
-
-- The DASH demuxer is now correctly parsing the MSPR-2.0 ContentProtection nodes
-  and emits Protection events accordingly. Applications relying on those events
-  might need to decode the base64 data stored in the event buffer before using it.
-
-- The registry can now also be disabled by setting the environment variable
-  `GST_REGISTRY_DISABLE=yes`, with similar effect as the `GST_DISABLE_REGISTRY`
-  compile time switch.
-
-- Seeking performance with gstreamer-vaapi based decoders was improved. It would
-  recreate the decoder and surfaces on every seek which can be quite slow.
-
-- more robust handling of input caps changes in videoaggregator-based elements
-  such as `compositor`.
-
-- Lots of adaptive streaming-related fixes across the board (DASH, MSS, HLS). Also:
-
-  - `mssdemux`, the Microsoft Smooth Streaming demuxer, has seen various
-    fixes for live streams, duration reporting and seeking.
-
-  - The DASH manifest parser now extracts MS PlayReady ContentProtection objects
-    from manifests and sends them downstream as `PROTECTION` events. It also
-    supports multiple Period elements in external xml now.
-
-- gst-libav was updated to ffmpeg 3.3 but should still work with any 3.x
-  version.
-
-- GstEncodingProfile has been generally enhanced so it can, for
-  example, be used to get possible profiles for a given file
-  extension. It is now possible to define profiles based on element
-  factory names or using a path to a `.gep` file containing a
-  serialized profile.
-
-- `audioconvert` can now do endianness conversion in-place. All other
-  conversions still require a copy, but e.g. sign conversion and a few others
-  could also be implemented in-place now.
-
-- The new, experimental `playbin3` and `urisourcebin` elements got many
-  bugfixes and improvements and should generally be closer to a full
-  replacement of the old elements.
-
-- `interleave` now supports > 64 channels.
-
-- OpenCV elements, `grabcut` and `retinex` has been ported to use
-  `GstOpencvVideoFilter` base class, increasing code reuse and fixing buffer
-  map/unmap issues. Redundant copie of images has been removed in `edgedetect`,
-  `cvlaplace` and `cvsobel`. This comes with various cleanup and Meson support.
+- this section will be filled in shortly
 
 ### OpenGL integration
 
-- As usual the GStreamer OpenGL integration library has seen numerous
-  fixes and performance improvements all over the place, and is hopefully
-  ready now to become API stable and be moved to gst-plugins-base during the
-  1.14 release cycle.
-
-- The GStreamer OpenGL integration layer has also gained support for the
-  Vivante EGL FB windowing system, which improves performance on platforms
-  such as Freescale iMX.6 for those who are stuck with the proprietary driver.
-  The `qmlglsink` element also supports this now if Qt is used with eglfs or
-  wayland backend, and it works in conjunction with [gstreamer-imx][gstreamer-imx]
-  of course.
-
-- various `qmlglsrc` improvements
-
-[gstreamer-imx]: https://github.com/Freescale/gstreamer-imx
+- this section will be filled in shortly
 
 ## Tracing framework and debugging improvements
 
-- New tracing hooks have been added to track GstMiniObject and GstObject
-  ref/unref operations.
-
-- The memory leaks tracer can optionally use this to retrieve stack traces if
-  enabled with e.g. `GST_TRACERS=leaks(filters="GstEvent,GstMessage",stack-traces-flags=full)`
-
-- The `GST_DEBUG_FILE` environment variable, which can be used to write the
-  debug log output to a file instead of printing it to stderr, can now contain
-  a name pattern, which is useful for automated testing and continuous
-  integration systems. The following format specifiers are supported:
-
-   - `%p`: will be replaced with the PID
-   - `%r`: will be replaced with a random number, which is useful for instance
-     when running two processes with the same PID but in different containers.
+- this section will be filled in shortly
 
 ## Tools
 
-- `gst-inspect-1.0` can now list elements by type with the new `--types`
-   command-line option, e.g. `gst-inspect-1.0 --types=Audio/Encoder` will
-   show a list of audio encoders.
-
-- `gst-launch-1.0` and `gst_parse_launch()` have gained a new operator (`:`)
-   that allows linking all pads between two elements. This is useful in cases
-   where the exact number of pads or type of pads is not known beforehand, such
-   as in the `uridecodebin : encodebin` scenario, for example. In this case,
-   multiple links will be created if the encodebin has multiple profiles
-   compatible with the output of uridecodebin.
-
-- `gst-device-monitor-1.0` now shows a `gst-launch-1.0` snippet for each
-  device that shows how to make use of it in a `gst-launch-1.0` pipeline string.
+- this section will be filled in shortly
 
 ## GStreamer RTSP server
 
-- The RTSP server now also supports Digest authentication in addition to Basic
-  authentication.
-
-- The `GstRTSPClient` class has gained a `pre-*-request` signal and virtual
-  method for each client request type, emitted in the beginning of each rtsp
-  request. These signals or virtual methods let the application validate the
-  requests, configure the media/stream in a certain way and also generate error
-  status codes in case of an error or a bad request.
+- this section will be filled in shortly
 
 ## GStreamer VAAPI
 
-- GstVaapiDisplay now inherits from GstObject, thus the VA display logging
-  messages are better and tracing the context sharing is more readable.
-
-- When uploading raw images into a VA surfaces now VADeriveImages are tried
-  fist, improving the upload performance, if it is possible.
-
-- The decoders and the post-processor now can push dmabuf-based buffers to
-  downstream under certain conditions. For example:
-
-  `GST_GL_PLATFORM=egl gst-play-1.0 video-sample.mkv --videosink=glimagesink`
-
-- Refactored the wrapping of VA surface into gstreamer memory, adding lock
-  when mapping and unmapping, and many other fixes.
-
-- Now `vaapidecodebin` loads `vaapipostproc` dynamically. It is possible to
-  avoid it usage with the environment variable `GST_VAAPI_DISABLE_VPP=1`.
-
-- Regarding encoders: they have primary rank again, since they can discover,
-  in run-time, the color formats they can use for upstream raw buffers and
-  caps renegotiation is now possible. Also the encoders push encoding info
-  downstream via tags.
-
-- About specific encoders: added constant bit-rate encoding mode for VP8 and
-  H265 encoder handles P010_10LE color format.
-
-- Regarding decoders, flush operation has been improved, now the internal VA
-  encoder is not recreated at each flush. Also there are several improvements
-  in the handling of H264 and H265 streams.
-
-- VAAPI plugins try to create their on GstGL context (when available) if they
-  cannot find it in the pipeline, to figure out what type of VA Display they
-  should create.
-
-- Regarding `vaapisink` for X11, if the backend reports that it is unable to
-  render correctly the current color format, an internal VA post-processor, is
-  instantiated (if available) and converts the color format.
+- this section will be filled in shortly
 
 ## GStreamer Editing Services and NLE
 
-- Enhanced auto transition behaviour
-
-- Fix some races in `nlecomposition`
-
-- Allow building with msvc
-
-- Added a UNIX manpage for `ges-launch`
-
-- API changes:
-  - Added ges_deinit (allowing the leak tracer to work properly)
-  - Added ges_layer_get_clips_in_interval
-  - Finally hide internal symbols that should never have been exposed
+- this section will be filled in shortly
 
 ## GStreamer validate
 
-- Port `gst-validate-launcher` to python 3
-
-- `gst-validate-launcher` now checks if blacklisted bugs have been fixed on
-  bugzilla and errors out if it is the case
-
-- Allow building with msvc
-
-- Add ability for the launcher to run GStreamer unit tests
-
-- Added a way to activate the leaks tracer on our tests and fix leaks
-
-- Make the http server multithreaded
-
-- New testsuite for running various test scenarios on the DASH-IF test vectors
+- this section will be filled in shortly
 
 ## GStreamer Python Bindings
 
-- Overrides has been added for IntRange, Int64Range, DoubleRange,
-  FractionRange, Array and List. This finally enables Python programmers
-  to fully read and write GstCaps objects.
+- this section will be filled in shortly
 
 ## Build and Dependencies
 
-- Meson build files are now disted in tarballs, for jhbuild and so distro
-  packagers can start using it. Note that the Meson-based build system is not
-  100% feature-equivalent with the autotools-based one yet.
-
-- Some plugin filenames have been changed to match the plugin names: for example
-  the file name of the `encoding` plugin in gst-plugins-base containing the
-  `encodebin` element was `libgstencodebin.so` and has been changed to
-  `libgstencoding.so`. This affects only a handful of plugins across modules.
-
-  **Developers who install GStreamer from source and just do `make install`**
-  **after updating the source code, without doing `make uninstall` first, will**
-  **have to manually remove the old installed plugin files from the installation**
-  **prefix, or they will get 'Cannot register existing type' critical warnings.**
-
-- Most of the docbook-based documentation (FAQ, Application Development Manual,
-  Plugin Writer's Guide, design documents) has been converted to markdown and
-  moved into a new gst-docs module. The gtk-doc library API references and
-  the plugins documentation are still built as part of the source modules though.
-
-- GStreamer core now optionally uses libunwind and libdw to generate backtraces.
-  This is useful for tracer plugins used during debugging and development.
-
-- There is a new `libgstbadallocators-1.0` library in gst-plugins-bad (which
-  may go away again in future releases once the `GstPhysMemoryAllocator`
-  interface API has been validated by more users).
-
-- `gst-omx` and `gstreamer-vaapi` modules can now also be built using the
-  Meson build system.
-
-- The `qtkitvideosrc` element for macOS was removed. The API is deprecated
-  since 10.9 and it wasn't shipped in the binaries since a few releases.
+- this section will be filled in shortly
 
 ## Platform-specific improvements
 
 ### Android
 
-- androidmedia: add support for VP9 video decoding/encoding and Opus audio
-  decoding (where supported)
+- this section will be filled in shortly
 
-### OS/X and iOS
+### macOS and iOS
 
-- `avfvideosrc`, which represents an iPhone camera or, on a Mac, a screencapture
-  session, so far allowed you to select an input device by device index only.
-  New API adds the ability to select the position (front or back facing) and
-  device-type (wide angle, telephoto, etc.). Furthermore, you can now also
-  specify the orientation (portrait, landscape, etc.) of the videostream.
+- this section will be filled in shortly
 
 ### Windows
 
-- `dx9screencapsrc` can now optionally also capture the cursor.
+- this section will be filled in shortly
 
 ## Contributors
 
-Aleix Conchillo Flaque, Alejandro G. Castro, Aleksandr Slobodeniuk, Alexandru
-Băluț, Alex Ashley, Andre McCurdy, Andrew, Anton Eliasson, Antonio Ospite,
-Arnaud Vrac, Arun Raghavan, Aurélien Zanelli, Axel Menzel, Benjamin Otte,
-Branko Subasic, Brendan Shanks, Carl Karsten, Carlos Rafael Giani, ChangBok
-Chae, Chris Bass, Christian Schaller, christophecvr, Claudio Saavedra,
-Corentin Noël, Dag Gullberg, Daniel Garbanzo, Daniel Shahaf, David Evans,
-David Schleef, David Warman, Dominique Leuenberger, Dongil Park, Douglas
-Bagnall, Edgard Lima, Edward Hervey, Emeric Grange, Enrico Jorns, Enrique
-Ocaña González, Evan Nemerson, Fabian Orccon, Fabien Dessenne, Fabrice Bellet,
-Florent Thiéry, Florian Zwoch, Francisco Velazquez, Frédéric Dalleau, Garima
-Gaur, Gaurav Gupta, George Kiagiadakis, Georg Lippitsch, Göran Jönsson, Graham
-Leggett, Guillaume Desmottes, Gurkirpal Singh, Haihua Hu, Hanno Boeck, Havard
-Graff, Heekyoung Seo, hoonhee.lee, Hyunjun Ko, Imre Eörs, Iñaki García
-Etxebarria, Jagadish, Jagyum Koo, Jan Alexander Steffens (heftig), Jan
-Schmidt, Jean-Christophe Trotin, Jochen Henneberg, Jonas Holmberg, Joris
-Valette, Josep Torra, Juan Pablo Ugarte, Julien Isorce, Jürgen Sachs, Koop
-Mast, Kseniia Vasilchuk, Lars Wendler, leigh123linux@googlemail.com, Luis de
-Bethencourt, Lyon Wang, Marcin Kolny, Marinus Schraal, Mark Nauwelaerts,
-Mathieu Duponchelle, Matthew Waters, Matt Staples, Michael Dutka, Michael
-Olbrich, Michael Smith, Michael Tretter, Miguel París Díaz, namanyadav12, Neha
-Arora, Nick Kallen, Nicola Murino, Nicolas Dechesne, Nicolas Dufresne, Nicolas
-Huet, Nirbheek Chauhan, Ole André Vadla Ravnås, Olivier Crête, Patricia
-Muscalu, Peter Korsgaard, Peter Seiderer, Petr Kulhavy, Philippe Normand,
-Philippe Renon, Philipp Zabel, Rahul Bedarkar, Reynaldo H. Verdejo Pinochet,
-Ricardo Ribalda Delgado, Rico Tzschichholz, Руслан Ижбулатов, Samuel Maroy,
-Santiago Carot-Nemesio, Scott D Phillips, Sean DuBois, Sebastian Dröge, Sergey
-Borovkov, Seungha Yang, shakin chou, Song Bing, Søren Juul, Sreerenj
-Balachandran, Stefan Kost, Stefan Sauer, Stepan Salenikovich, Stian Selnes,
-Stuart Weaver, suhas2go, Thiago Santos, Thibault Saunier, Thomas Bluemel,
-Thomas Petazzoni, Tim-Philipp Müller, Ting-Wei Lan, Tobias Mueller, Todor
-Tomov, Tomasz Zajac, Ulf Olsson, Ursula Maplehurst, Víctor Manuel Jáquez Leal,
-Victor Toso, Vincent Penquerc'h, Vineeth TM, Vinod Kesti, Vitor Massaru Iha,
-Vivia Nikolaidou, WeiChungChang, William Manley, Wim Taymans, Wojciech
-Przybyl, Wonchul Lee, Xavier Claessens, Yasushi SHOJI
+- this section will be filled in shortly
 
 ... and many others who have contributed bug reports, translations, sent
 suggestions or helped testing.
 
-## Bugs fixed in 1.12
+## Bugs fixed in 1.14
+
+- this section will be filled in shortly
 
-More than [635 bugs][bugs-fixed-in-1.12] have been fixed during
-the development of 1.12.
+More than [704 bugs][bugs-fixed-in-1.14] have been fixed during
+the development of 1.14.
 
 This list does not include issues that have been cherry-picked into the
-stable 1.10 branch and fixed there as well, all fixes that ended up in the
-1.10 branch are also included in 1.12.
+stable 1.12 branch and fixed there as well, all fixes that ended up in the
+1.12 branch are also included in 1.14.
 
 This list also does not include issues that have been fixed without a bug
 report in bugzilla, so the actual number of fixes is much higher.
 
-[bugs-fixed-in-1.12]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=213265&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.10.1&target_milestone=1.10.2&target_milestone=1.10.3&target_milestone=1.10.4&target_milestone=1.11.1&target_milestone=1.11.2&target_milestone=1.11.3&target_milestone=1.11.4&target_milestone=1.11.90&target_milestone=1.11.91&target_milestone=1.12.0
+[bugs-fixed-in-1.14]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=213265&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.12.1&target_milestone=1.12.2&target_milestone=1.12.3&target_milestone=1.12.4&target_milestone=1.13.1&target_milestone=1.13.2&target_milestone=1.13.3&target_milestone=1.13.4&target_milestone=1.13.90&target_milestone=1.13.91&target_milestone=1.14.0
 
-## Stable 1.12 branch
+## Stable 1.14 branch
 
-After the 1.12.0 release there will be several 1.12.x bug-fix releases which
+After the 1.14.0 release there will be several 1.14.x bug-fix releases which
 will contain bug fixes which have been deemed suitable for a stable branch,
 but no new features or intrusive changes will be added to a bug-fix release
-usually. The 1.12.x bug-fix releases will be made from the git 1.12 branch, which
-is a stable branch.
-
-### 1.12.0
-
-1.12.0 was released on 4th May 2017.
-
-<a name="1.12.1"></a>
+usually. The 1.14.x bug-fix releases will be made from the git 1.14 branch,
+which is a stable branch.
 
-### 1.12.1
+### 1.14.0
 
-The first 1.12 bug-fix release (1.12.1) was released on 20 June 2017.
-This release only contains bugfixes and it should be safe to update from 1.12.x.
-
-#### Major bugfixes in 1.12.1
-
- - Various fixes for crashes, assertions, deadlocks and memory leaks
- - Fix for regression when seeking to the end of ASF files
- - Fix for regression in (raw)videoparse that caused it to omit video metadata
- - Fix for regression in discoverer that made it show more streams than
-   actually available
- - Numerous bugfixes to the adaptive demuxer base class and the DASH demuxer
- - Various playbin3/urisourcebin related bugfixes
- - Vivante DirectVIV (imx6) texture uploader works with single-plane (e.g.
-   RGB) video formats now
- - Intel Media SDK encoder now outputs valid PTS and keyframe flags
- - OpenJPEG2000 plugin can be loaded again on MacOS and correctly displays
-   8 bit RGB images now
- - Fixes to DirectSound source/sink for high CPU usage and wrong
-   latency/buffer size calculations
- - gst-libav was updated to ffmpeg n3.3.2
- - ... and many, many more!
-
-For a full list of bugfixes see [Bugzilla][buglist-1.12.1]. Note that this is
-not the full list of changes. For the full list of changes please refer to the
-GIT logs or ChangeLogs of the particular modules.
-
-[buglist-1.12.1]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=225693&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.12.1
-
-<a name="1.12.2"></a>
-
-### 1.12.2
-
-The second 1.12 bug-fix release (1.12.2) was released on 14 July 2017.
-This release only contains bugfixes and it should be safe to update from 1.12.x.
-
-#### Major bugfixes in 1.12.2
-
- - Various fixes for crashes, assertions, deadlocks and memory leaks
- - Regression fix for playback of live HLS streams
- - Regression fix for crash when playing back a tunneled RTSP stream
- - Regression fix for playback of RLE animations in MOV containers
- - Regression fix for RTP GSM payloading producing corrupted output
- - Major bugfixes to the MXF demuxer, mostly related to seeking and
-   fixes to the frame reordering handling in the MXF muxer and demuxer
- - Fix for playback of mono streams on MacOS
- - More fixes for index handling of ASF containers
- - Various fixes to adaptivedemux, DASH and HLS demuxers
- - Fix deadlock in gstreamer-editing-services during class initialization
- - ... and many, many more!
-
-For a full list of bugfixes see [Bugzilla][buglist-1.12.2]. Note that this is
-not the full list of changes. For the full list of changes please refer to the
-GIT logs or ChangeLogs of the particular modules.
-
-[buglist-1.12.2]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=225693&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.12.2
-
-<a name="1.12.3"></a>
-
-### 1.12.3
-
-The third 1.12 bug-fix release (1.12.3) was released on 18 September 2017.
-This release only contains bugfixes and it should be safe to update from 1.12.x.
-
-#### Major bugfixes in 1.12.3
-
- - Fix for infinite recursion on buffer free in v4l2
- - Fix for glimagesink crash on macOS when used via autovideosink
- - Fix for huge overhead in matroskamux caused by writing one Cluster per
-   audio-frame in audio-only streams. Also use SimpleBlocks for Opus and other
-   audio codecs, which works around a bug in VLC that prevented Opus streams
-   to be played and decreases overhead even more
- - Fix for flushing seeks in rtpmsrc always causing an error
- - Fix for timestamp overflows in calculations in audio encoder base class
- - Fix for RTP h265 depayloader marking P-frames as I-frames
- - Fix for long connection delays of clients in RTSP server
- - Fixes for event handling in queue and queue2 elements, and updates to
-   buffering levels on NOT_LINKED streams
- - Various fixes to event and buffering handling in decodebin3/playbin3
- - Various fixes for memory leaks, deadlocks and crashes in all modules
- - ... and many, many more!
-
-For a full list of bugfixes see [Bugzilla][buglist-1.12.3]. Note that this is
-not the full list of changes. For the full list of changes please refer to the
-GIT logs or ChangeLogs of the particular modules.
-
-[buglist-1.12.3]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=248880&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.12.3
-
-### 1.12.4
-
-The fourth 1.12 bug-fix release (1.12.4) was released on 7 December 2017.
-This release only contains bugfixes and it should be safe to update from 1.12.x.
-
-#### Major bugfixes in 1.12.4
-
- - Dozens of fixes for various issues detected with the help of Google's OSS-Fuzz
-   project: https://github.com/google/oss-fuzz
-   Details to be found there in the bug tracker
- - Performance regressions with registering debug categories after gst_init()
-   were fixed
- - Regression with seeking back to 0 in souphttpsrc was fixed
- - Regression with header rewriting in flacparse was fixed
- - Regression with playbin/playsink leaking sinks was fixed
- - Inconsistencies with DROPPED/HANDLED handling in pad probe handlers are fixed
- - gst_bin_iterate_sorted() always returns sources last now, as documented
- - gst_query_writable_structure() will never return NULL, for consistency with events
- - Removal of metas from gst_buffer_meta_foreach() works correctly now
- - OpenJPEG plugin builds with OpenJPEG >= 2.3
- - CDIO plugin builds with CDIO >= 1.0
- - gstreamer-vaapi works correctly with libva 1.0
- - gst-libav was updated to ffmpeg 3.3.5
- - Various fixes for memory leaks, deadlocks and crashes in all modules
- - ... and many, many more!
-
-For a full list of bugfixes see [Bugzilla][buglist-1.12.4]. Note that this is
-not the full list of changes. For the full list of changes please refer to the
-GIT logs or ChangeLogs of the particular modules.
-
-[buglist-1.12.4]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=270310&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.12.4
+1.14.0 is scheduled to be released in late February / early March 2018.
 
 ## Known Issues
 
@@ -849,24 +153,22 @@ GIT logs or ChangeLogs of the particular modules.
 
 [bug-770264]: https://bugzilla.gnome.org/show_bug.cgi?id=770264
 
-## Schedule for 1.14
+## Schedule for 1.16
 
-Our next major feature release will be 1.14, and 1.13 will be the unstable
-development version leading up to the stable 1.14 release. The development
-of 1.13/1.14 will happen in the git master branch.
+Our next major feature release will be 1.16, and 1.15 will be the unstable
+development version leading up to the stable 1.16 release. The development
+of 1.15/1.16 will happen in the git master branch.
 
-The plan for the 1.14 development cycle is yet to be confirmed, but it is
-expected that feature freeze will be around early December 2017
-followed by several 1.13 pre-releases and the new 1.14 stable release
-in late December or some time in January.
+The plan for the 1.16 development cycle is yet to be confirmed, but it is
+expected that feature freeze will be around August 2017
+followed by several 1.15 pre-releases and the new 1.16 stable release
+in September.
 
-1.14 will be backwards-compatible to the stable 1.12, 1.10, 1.8, 1.6, 1.4,
+1.16 will be backwards-compatible to the stable 1.14, 1.12, 1.10, 1.8, 1.6, 1.4,
 1.2 and 1.0 release series.
 
 - - -
 
-*These release notes have been prepared by Olivier Crête, Sebastian Dröge,
-Nicolas Dufresne, Víctor Manuel Jáquez Leal, Tim-Philipp Müller, Philippe
-Normand and Thibault Saunier.*
+*These release notes have been prepared by Tim-Philipp Müller.*
 
 *License: [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)*
diff --git a/README b/README
index 9d628955b..cf328433f 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-GStreamer 1.12.x stable series
+GStreamer 1.13.x development series
 
 WHAT IT IS
 ----------
diff --git a/RELEASE b/RELEASE
index 1ea8851bd..3311f7d4b 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,15 +1,16 @@
 
-Release notes for GStreamer Good Plugins 1.12.4
+Release notes for GStreamer Good Plugins 1.12.0
 
-The GStreamer team is proud to announce the fourth bugfix release in the stable
-1.12 release series of your favourite cross-platform multimedia framework!
+The GStreamer team is pleased to announce the first release in the stable 1.12
+release series. The 1.12 release series is adding new features on top of the
+1.0, 1.2, 1.4, 1.6, 1.8 and 1.10 series and is part of the API and ABI-stable
+1.x release series of the GStreamer multimedia framework.
 
 
-This release only contains bugfixes and it is safe to update from 1.12.x. For a
-full list of bugfixes see Bugzilla.
+Full release notes can be found here
 
 
-See /releases/1.12/ for the full release notes.
+Binaries for Android, iOS, Mac OS X and Windows will be provided in the next days.
 
 
 "Such ingratitude.  After all the times I've saved your life."
@@ -55,16 +56,7 @@ contains a set of codecs plugins based on libav (formerly gst-ffmpeg)
 
 Bugs fixed in this release
      
-      * 788777 : rtpjitterbuffer/h264parse timestamp issue (regression)
-      * 779957 : souphttpsrc: Manipulate range header when seek to 0
-      * 783542 : souphttpsrc: test_https unit test failure
-      * 784749 : qtdemux: fix debug log for 'hvcC' codec_data
-      * 787795 : flvdemux: unable to handle file that works fine in ffmpeg
-      * 788759 : qtdemux: fix 'stsd' table leak and nested caps leak
-      * 789197 : gst-device-monitor shows broken touch " video " sources
-      * 791034 : rtpjitterbuffer fails to create ptp_clock
-      * 791074 : rtpsession: Handle zero length feedback packets
-      * 787586 : souphttpsrc : Issue with gst-plugins-good v1.12 during seek request on SRT file [regression]
+      * 782042 : qtdemux: Fix crash on mss stream caused by invalid stsd entry access
 
 ==== Download ====
 
@@ -101,14 +93,6 @@ subscribe to the gstreamer-devel list.
         
 Contributors to this release
     
-      * Edward Hervey
-      * Florian Zwoch
-      * Haakon Sporsheim
-      * Jan Alexander Steffens (heftig)
-      * Jan Schmidt
-      * Jun Xie
-      * Nicolas Dufresne
       * Sebastian Dröge
-      * Tim-Philipp Müller
-      * paul.kim
+      * Seungha Yang
  
\ No newline at end of file
diff --git a/REQUIREMENTS b/REQUIREMENTS
index 5f1b10631..140e8245c 100644
--- a/REQUIREMENTS
+++ b/REQUIREMENTS
@@ -125,6 +125,18 @@ DebianPackage:  libdv4-dev
 Plugins:        dv (dvdec)
 URL:            http://libdv.sourceforge.net/
 
+Package:	liblame
+Version:	>= 3.98
+DebianPackage:	libmp3lame-dev
+Plugins:	lame (lamemp3enc)
+URL:		http://www.mp3dev.org/mp3/
+
+Package:	libmpg123
+Version:        >= 1.3
+DebianPackage:  libpng12-dev
+Plugins:        mpg123 (mpg123audiodec)
+URL:		https://www.mpg123.de/api/
+
 Package:        Libpng
 Version:        >= 1.2
 DebianPackage:  libpng12-dev
@@ -152,6 +164,12 @@ DebianPackage:  libtag1-dev
 Plugins:        taglib (id3v2mux)
 URL:            http://taglib.github.io/
 
+Package:	twolame
+Version:	>= 0.3.13
+DebianPackage:	libtwolame-dev
+Plugins:	twolame (twolamemp2enc)
+URL:		http://www.twolame.org
+
 Package:        zlib
 DebianPackage:  zlib1g-dev
 Plugins:        isomp4 (qtdemux), matroska (matroskademux)
diff --git a/common/Makefile.in b/common/Makefile.in
index 5072aede3..aca3bd380 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -265,6 +265,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -288,6 +289,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -303,6 +306,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -325,10 +330,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -343,6 +355,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -360,6 +373,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -372,6 +387,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -390,6 +407,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -433,9 +453,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -449,11 +480,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/common/check.mak b/common/check.mak
index 66497ff6d..9336c4473 100644
--- a/common/check.mak
+++ b/common/check.mak
@@ -94,7 +94,11 @@ AM_TESTS_ENVIRONMENT = CK_DEFAULT_TIMEOUT=20
 	@$(AM_TESTS_ENVIRONMENT)					\
 	CK_FORK=no						\
 	$(LIBTOOL) --mode=execute				\
-	gdb $*
+	gdb $(GDB_ARGS) $*
+
+%.gdb-forever: %
+	@while $(MAKE) GDB_ARGS="-ex run -ex quit" $*.gdb ; do	\
+	  sleep 1; done
 
 %.lcov-reset:
 	$(MAKE) $*.lcov-run
diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj
index 2e84775a0..9d9fee416 100755
--- a/common/gstdoc-scangobj
+++ b/common/gstdoc-scangobj
@@ -295,6 +295,7 @@ get_object_types (void)
           g_warning ("Could not load plugin feature %s",
                      gst_plugin_feature_get_name (feature));
         }
+        factories = g_list_prepend (factories, feature);
 
         if (GST_IS_ELEMENT_FACTORY (feature)) {
           const gchar *pad_dir[] = { "unknown","source","sink" };
@@ -304,7 +305,6 @@ get_object_types (void)
           $debug_log ("  feature: %s", gst_plugin_feature_get_name (feature));
 
           factory = GST_ELEMENT_FACTORY (feature);
-          factories = g_list_prepend (factories, factory);
 
           if (reinspect) {
             /* output element data */
@@ -332,6 +332,16 @@ get_object_types (void)
             g_list_free (pads);
             fputs ("      </pads>\\n    </element>\\n", inspect);
           }
+        } else if (GST_IS_TRACER_FACTORY (feature)) {
+          $debug_log ("  feature: %s", gst_plugin_feature_get_name (feature));
+
+          if (reinspect) {
+            /* output element data */
+            fputs ("    <tracer>\\n", inspect);
+            fputs (xmlprint(6, "name", gst_plugin_feature_get_name (feature)),inspect);
+
+            fputs ("    </tracer>\\n", inspect);
+          }
         }
         features = g_list_next (features);
       }
@@ -354,14 +364,22 @@ get_object_types (void)
 
     /* fill it */
     while (l) {
-      factory = GST_ELEMENT_FACTORY (l->data);
-      type = gst_element_factory_get_element_type (factory);
+      const gchar *name = NULL;
+      type = 0;
+      if (GST_IS_ELEMENT_FACTORY (l->data)) {
+        factory = GST_ELEMENT_FACTORY (l->data);
+        type = gst_element_factory_get_element_type (factory);
+        name = gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME);
+      } else if (GST_IS_TRACER_FACTORY (l->data)) {
+        GstTracerFactory *t = GST_TRACER_FACTORY (l->data);
+        type = gst_tracer_factory_get_tracer_type (t);
+        name = gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (t));
+      }
       if (type != 0) {
-        $debug_log ("adding type for factory %s", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME));
+        $debug_log ("adding type for factory %s", name);
         object_types[i++] = type;
       } else {
-        g_message ("type info for factory %s not found",
-            gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME));
+        g_message ("type info for factory %s not found", name);
       }
       l = g_list_next (l);
     }
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index fbc899775..3438b8469 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -205,6 +205,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -228,6 +229,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -243,6 +246,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -265,10 +270,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -283,6 +295,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -300,6 +313,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -312,6 +327,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -330,6 +347,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -373,9 +393,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -389,11 +420,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/common/plugins.xsl b/common/plugins.xsl
index 60515b6a9..2c5020383 100644
--- a/common/plugins.xsl
+++ b/common/plugins.xsl
@@ -111,6 +111,45 @@
     </exsl:document>
   </xsl:template>
 
+  <xsl:template match="tracer">
+    <xsl:element name="varlistentry">
+      <xsl:element name="term">
+        <xsl:element name="link">
+          <xsl:attribute name="linkend"><xsl:value-of select="$module" />-plugins-<xsl:value-of select="name"/>tracer</xsl:attribute>
+          <xsl:value-of select="name" />
+        </xsl:element>
+      </xsl:element>
+      <!--<xsl:element name="listitem">
+        <xsl:element name="simpara"><xsl:value-of select="description" /></xsl:element>
+      </xsl:element>-->
+    </xsl:element>
+    <xsl:variable name="name"><xsl:copy-of select="name"/></xsl:variable>
+    <exsl:document href="{concat ('xml/tracer-', $name, '-details.xml')}" method="xml" indent="yes">
+
+      <xsl:element name="refsynopsisdiv">
+        <xsl:element name="refsect2">
+          <xsl:element name="title">Tracer Information</xsl:element>
+          <xsl:element name="variablelist">
+
+            <!-- plugin name and link -->
+            <xsl:element name="varlistentry">
+              <xsl:element name="term">plugin</xsl:element>
+              <xsl:element name="listitem">
+                <xsl:element name="simpara">
+                  <xsl:element name="link">
+                    <xsl:attribute name="linkend">plugin-<xsl:value-of select="../../name"/></xsl:attribute>
+                    <xsl:value-of select="../../name" />
+                  </xsl:element>
+                </xsl:element>
+              </xsl:element>
+            </xsl:element>
+          </xsl:element> <!-- variablelist -->
+        </xsl:element> <!-- refsect2 -->
+      </xsl:element> <!-- refsynopsisdiv -->
+
+    </exsl:document>
+  </xsl:template>
+
   <xsl:template match="plugin">
     <xsl:element name="refentry">
       <xsl:attribute name="id"><xsl:value-of select="$module" />-plugins-plugin-<xsl:value-of select="name"/></xsl:attribute>
diff --git a/config.guess b/config.guess
index 2e9ad7fe8..31e01efec 100755
--- a/config.guess
+++ b/config.guess
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2016 Free Software Foundation, Inc.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2016-10-02'
+timestamp='2017-11-07'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@ timestamp='2016-10-02'
 # 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/>.
+# along with this program; if not, see <https://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
@@ -27,7 +27,7 @@ timestamp='2016-10-02'
 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 #
 # Please send patches to <config-patches@gnu.org>.
 
@@ -39,7 +39,7 @@ Usage: $0 [OPTION]
 
 Output the configuration name of the system \`$me' is run on.
 
-Operation modes:
+Options:
   -h, --help         print this help, then exit
   -t, --time-stamp   print date of last modification, then exit
   -v, --version      print version number, then exit
@@ -50,7 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -244,6 +244,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
 	echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
 	exit ;;
+    *:MidnightBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE}
+	exit ;;
     *:ekkoBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
 	exit ;;
@@ -259,6 +262,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     *:Sortix:*:*)
 	echo ${UNAME_MACHINE}-unknown-sortix
 	exit ;;
+    *:Redox:*:*)
+	echo ${UNAME_MACHINE}-unknown-redox
+	exit ;;
     alpha:OSF1:*:*)
 	case $UNAME_RELEASE in
 	*4.0)
@@ -315,15 +321,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	exitcode=$?
 	trap '' 0
 	exit $exitcode ;;
-    Alpha\ *:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# Should we change UNAME_MACHINE based on the output of uname instead
-	# of the specific Alpha model?
-	echo alpha-pc-interix
-	exit ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit ;;
     Amiga*:UNIX_System_V:4.0:*)
 	echo m68k-unknown-sysv4
 	exit ;;
@@ -485,13 +482,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 #endif
 	#if defined (host_mips) && defined (MIPSEB)
 	#if defined (SYSTYPE_SYSV)
-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	  printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
 	#endif
 	#if defined (SYSTYPE_SVR4)
-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	  printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
 	#endif
 	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	  printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
 	#endif
 	#endif
 	  exit (-1);
@@ -614,7 +611,7 @@ EOF
     *:AIX:*:*)
 	echo rs6000-ibm-aix
 	exit ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
 	echo romp-ibm-bsd4.4
 	exit ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
@@ -635,8 +632,8 @@ EOF
     9000/[34678]??:HP-UX:*:*)
 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
 	case "${UNAME_MACHINE}" in
-	    9000/31? )            HP_ARCH=m68000 ;;
-	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/31?)            HP_ARCH=m68000 ;;
+	    9000/[34]??)         HP_ARCH=m68k ;;
 	    9000/[678][0-9][0-9])
 		if [ -x /usr/bin/getconf ]; then
 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
@@ -749,7 +746,7 @@ EOF
 		{ echo "$SYSTEM_NAME"; exit; }
 	echo unknown-hitachi-hiuxwe2
 	exit ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
 	echo hppa1.1-hp-bsd
 	exit ;;
     9000/8??:4.3bsd:*:*)
@@ -758,7 +755,7 @@ EOF
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
 	echo hppa1.0-hp-mpeix
 	exit ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
 	echo hppa1.1-hp-osf
 	exit ;;
     hp8??:OSF1:*:*)
@@ -837,10 +834,11 @@ EOF
 	UNAME_PROCESSOR=`/usr/bin/uname -p`
 	case ${UNAME_PROCESSOR} in
 	    amd64)
-		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-	    *)
-		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+		UNAME_PROCESSOR=x86_64 ;;
+	    i386)
+		UNAME_PROCESSOR=i586 ;;
 	esac
+	echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
 	exit ;;
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
@@ -854,10 +852,6 @@ EOF
     *:MSYS*:*)
 	echo ${UNAME_MACHINE}-pc-msys
 	exit ;;
-    i*:windows32*:*)
-	# uname -m includes "-pc" on this system.
-	echo ${UNAME_MACHINE}-mingw32
-	exit ;;
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
@@ -873,27 +867,12 @@ EOF
 		echo ia64-unknown-interix${UNAME_RELEASE}
 		exit ;;
 	esac ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-	echo i${UNAME_MACHINE}-pc-mks
-	exit ;;
-    8664:Windows_NT:*)
-	echo x86_64-pc-mks
-	exit ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-	# UNAME_MACHINE based on the output of uname instead of i386?
-	echo i586-pc-interix
-	exit ;;
     i*:UWIN*:*)
 	echo ${UNAME_MACHINE}-pc-uwin
 	exit ;;
     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
 	echo x86_64-unknown-cygwin
 	exit ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
-	exit ;;
     prep*:SunOS:5.*:*)
 	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
@@ -1096,7 +1075,7 @@ EOF
     i*86:*DOS:*:*)
 	echo ${UNAME_MACHINE}-pc-msdosdjgpp
 	exit ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+    i*86:*:4.*:*)
 	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
 		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
@@ -1303,14 +1282,21 @@ EOF
 	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
 	    if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
 		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		    (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-		    grep IS_64BIT_ARCH >/dev/null
+		       (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+		       grep IS_64BIT_ARCH >/dev/null
 		then
 		    case $UNAME_PROCESSOR in
 			i386) UNAME_PROCESSOR=x86_64 ;;
 			powerpc) UNAME_PROCESSOR=powerpc64 ;;
 		    esac
 		fi
+		# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+		if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+		       (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+		       grep IS_PPC >/dev/null
+		then
+		    UNAME_PROCESSOR=powerpc
+		fi
 	    fi
 	elif test "$UNAME_PROCESSOR" = i386 ; then
 	    # Avoid executing cc on OS X 10.9, as it ships with a stub
@@ -1334,15 +1320,18 @@ EOF
     *:QNX:*:4*)
 	echo i386-pc-qnx
 	exit ;;
-    NEO-?:NONSTOP_KERNEL:*:*)
+    NEO-*:NONSTOP_KERNEL:*:*)
 	echo neo-tandem-nsk${UNAME_RELEASE}
 	exit ;;
     NSE-*:NONSTOP_KERNEL:*:*)
 	echo nse-tandem-nsk${UNAME_RELEASE}
 	exit ;;
-    NSR-?:NONSTOP_KERNEL:*:*)
+    NSR-*:NONSTOP_KERNEL:*:*)
 	echo nsr-tandem-nsk${UNAME_RELEASE}
 	exit ;;
+    NSX-*:NONSTOP_KERNEL:*:*)
+	echo nsx-tandem-nsk${UNAME_RELEASE}
+	exit ;;
     *:NonStop-UX:*:*)
 	echo mips-compaq-nonstopux
 	exit ;;
@@ -1414,16 +1403,28 @@ EOF
 	exit ;;
 esac
 
+echo "$0: unable to guess system type" >&2
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in
+    mips:Linux | mips64:Linux)
+	# If we got here on MIPS GNU/Linux, output extra information.
+	cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+	;;
+esac
+
 cat >&2 <<EOF
-$0: unable to guess system type
 
 This script (version $timestamp), has failed to recognize the
-operating system you are using. If your script is old, overwrite
-config.guess and config.sub with the latest versions from:
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
 
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 and
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 If $0 has already been updated, send the following data and any
 information you think might be pertinent to config-patches@gnu.org to
@@ -1455,7 +1456,7 @@ EOF
 exit 1
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'write-file-functions 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
diff --git a/config.h.in b/config.h.in
index 3b317b6aa..41509cf55 100644
--- a/config.h.in
+++ b/config.h.in
@@ -61,9 +61,6 @@
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
 #undef GST_PACKAGE_RELEASE_DATETIME
 
-/* Define if static plugins should be built */
-#undef GST_PLUGIN_BUILD_STATIC
-
 /* Define if Video4Linux probe shall be run at plugin load */
 #undef GST_V4L2_ENABLE_PROBE
 
@@ -194,6 +191,12 @@
 /* Define to enable Video 4 Linux 2 (used by video4linux2). */
 #undef HAVE_GST_V4L2
 
+/* Define to enable Gtk+ elements (used by gtk). */
+#undef HAVE_GTK3
+
+/* Define if Gtk+ 3.0 GL is installed */
+#undef HAVE_GTK3_GL
+
 /* Whether gudev is available for device detection */
 #undef HAVE_GUDEV
 
@@ -224,6 +227,9 @@
 /* Define to enable jpeg library (used by jpeg). */
 #undef HAVE_JPEG
 
+/* Define to enable lame mp3 encoder library (used by lame). */
+#undef HAVE_LAME
+
 /* Define to enable libcaca coloured ASCII art (used by cacasink). */
 #undef HAVE_LIBCACA
 
@@ -233,6 +239,9 @@
 /* Define to enable Portable Network Graphics library (used by png). */
 #undef HAVE_LIBPNG
 
+/* Defined if libpng version is 1.5.1 or newer */
+#undef HAVE_LIBPNG_1_5
+
 /* Whether libv4l2 is available for video buffer conversion */
 #undef HAVE_LIBV4L2
 
@@ -242,6 +251,9 @@
 /* Define to 1 if you have a working `mmap' system call. */
 #undef HAVE_MMAP
 
+/* Define to enable mpg123 audio decoder (used by mpg123). */
+#undef HAVE_MPG123
+
 /* Use Orc */
 #undef HAVE_ORC
 
@@ -278,6 +290,24 @@
 /* Define to enable pulseaudio plug-in (used by pulseaudio). */
 #undef HAVE_PULSE
 
+/* Define to enable Qt elements (used by qt). */
+#undef HAVE_QT
+
+/* Define if Qt eglfs integration is installed */
+#undef HAVE_QT_EGLFS
+
+/* Define if Qt iOS integration is installed */
+#undef HAVE_QT_IOS
+
+/* Define if Qt Mac integration is installed */
+#undef HAVE_QT_MAC
+
+/* Define if Qt Wayland integration is installed */
+#undef HAVE_QT_WAYLAND
+
+/* Define if Qt X11 integration is installed */
+#undef HAVE_QT_X11
+
 /* Define if RDTSC is available */
 #undef HAVE_RDTSC
 
@@ -308,9 +338,6 @@
 /* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
-/* Define to enable Sun Audio (used by sunaudio). */
-#undef HAVE_SUNAUDIO
-
 /* Define to 1 if you have the <sys/ioctl.h> header file. */
 #undef HAVE_SYS_IOCTL_H
 
@@ -332,6 +359,9 @@
 /* Define to enable taglib tagging library (used by taglib). */
 #undef HAVE_TAGLIB
 
+/* Define to enable twolame (used by twolame). */
+#undef HAVE_TWOLAME
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
@@ -423,6 +453,9 @@
 /* The size of `long', as computed by sizeof. */
 #undef SIZEOF_LONG
 
+/* The size of `off_t', as computed by sizeof. */
+#undef SIZEOF_OFF_T
+
 /* The size of `short', as computed by sizeof. */
 #undef SIZEOF_SHORT
 
diff --git a/config.h.meson b/config.h.meson
deleted file mode 100644
index 9f134e1f4..000000000
--- a/config.h.meson
+++ /dev/null
@@ -1,430 +0,0 @@
-/* config.h.in.  Generated from configure.ac by autoheader.  */
-
-/* Define if building universal (internal helper macro) */
-#mesondefine AC_APPLE_UNIVERSAL_BUILD
-
-/* Default audio sink */
-#mesondefine DEFAULT_AUDIOSINK
-
-/* Default audio source */
-#mesondefine DEFAULT_AUDIOSRC
-
-/* Default video sink */
-#mesondefine DEFAULT_VIDEOSINK
-
-/* Default video source */
-#mesondefine DEFAULT_VIDEOSRC
-
-/* Default visualizer */
-#mesondefine DEFAULT_VISUALIZER
-
-/* Disable Orc */
-#mesondefine DISABLE_ORC
-
-/* Define to 1 if translation of program messages to the user's native
-   language is requested. */
-#mesondefine ENABLE_NLS
-
-/* gettext package name */
-#mesondefine GETTEXT_PACKAGE
-
-/* The GIO library directory. */
-#mesondefine GIO_LIBDIR
-
-/* The GIO modules directory. */
-#mesondefine GIO_MODULE_DIR
-
-/* GStreamer API Version */
-#mesondefine GST_API_VERSION
-
-/* Defined if gcov is enabled to force a rebuild due to config.h changing */
-#mesondefine GST_GCOV_ENABLED
-
-/* Default errorlevel to use */
-#mesondefine GST_LEVEL_DEFAULT
-
-/* GStreamer license */
-#mesondefine GST_LICENSE
-
-/* package name in plugins */
-#mesondefine GST_PACKAGE_NAME
-
-/* package origin */
-#mesondefine GST_PACKAGE_ORIGIN
-
-/* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#mesondefine GST_PACKAGE_RELEASE_DATETIME
-
-/* Define if static plugins should be built */
-#mesondefine GST_PLUGIN_BUILD_STATIC
-
-/* Define to enable probing of V4L2 devices */
-#mesondefine GST_V4L2_ENABLE_PROBE
-
-/* Define to enable aalib ASCII Art library (used by aasink). */
-#mesondefine HAVE_AALIB
-
-/* Define to 1 if you have the `asinh' function. */
-#mesondefine HAVE_ASINH
-
-/* Define to enable bz2 library for matroska . */
-#mesondefine HAVE_BZ2
-
-/* Define to enable Cairo graphics rendering and gobject bindings (used by
-   cairo). */
-#mesondefine HAVE_CAIRO
-
-/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
-   CoreFoundation framework. */
-#mesondefine HAVE_CFLOCALECOPYCURRENT
-
-/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
-   the CoreFoundation framework. */
-#mesondefine HAVE_CFPREFERENCESCOPYAPPVALUE
-
-/* Define to 1 if you have the `clock_gettime' function. */
-#mesondefine HAVE_CLOCK_GETTIME
-
-/* Define to 1 if you have the `cosh' function. */
-#mesondefine HAVE_COSH
-
-/* Define if the target CPU is an Alpha */
-#mesondefine HAVE_CPU_ALPHA
-
-/* Define if the target CPU is an ARM */
-#mesondefine HAVE_CPU_ARM
-
-/* Define if the target CPU is a CRIS */
-#mesondefine HAVE_CPU_CRIS
-
-/* Define if the target CPU is a CRISv32 */
-#mesondefine HAVE_CPU_CRISV32
-
-/* Define if the target CPU is a HPPA */
-#mesondefine HAVE_CPU_HPPA
-
-/* Define if the target CPU is an x86 */
-#mesondefine HAVE_CPU_I386
-
-/* Define if the target CPU is a IA64 */
-#mesondefine HAVE_CPU_IA64
-
-/* Define if the target CPU is a M68K */
-#mesondefine HAVE_CPU_M68K
-
-/* Define if the target CPU is a MIPS */
-#mesondefine HAVE_CPU_MIPS
-
-/* Define if the target CPU is a PowerPC */
-#mesondefine HAVE_CPU_PPC
-
-/* Define if the target CPU is a 64 bit PowerPC */
-#mesondefine HAVE_CPU_PPC64
-
-/* Define if the target CPU is a S390 */
-#mesondefine HAVE_CPU_S390
-
-/* Define if the target CPU is a SPARC */
-#mesondefine HAVE_CPU_SPARC
-
-/* Define if the target CPU is a x86_64 */
-#mesondefine HAVE_CPU_X86_64
-
-/* Define if the GNU dcgettext() function is already present or preinstalled.
-   */
-#mesondefine HAVE_DCGETTEXT
-
-/* Define to enable DirectSound plug-in (used by directsoundsink). */
-#mesondefine HAVE_DIRECTSOUND
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#mesondefine HAVE_DLFCN_H
-
-/* define for working do while(0) macros */
-#mesondefine HAVE_DOWHILE_MACROS
-
-/* Define to enable raw1394 and avc1394 library (used by 1394). */
-#mesondefine HAVE_DV1394
-
-/* Define to enable building of experimental plug-ins. */
-#mesondefine HAVE_EXPERIMENTAL
-
-/* Define to enable building of plug-ins with external deps. */
-#mesondefine HAVE_EXTERNAL
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#mesondefine HAVE_FCNTL_H
-
-/* FIONREAD ioctl found in sys/filio.h */
-#mesondefine HAVE_FIONREAD_IN_SYS_FILIO
-
-/* FIONREAD ioctl found in sys/ioclt.h */
-#mesondefine HAVE_FIONREAD_IN_SYS_IOCTL
-
-/* Define to enable FLAC lossless audio (used by flac). */
-#mesondefine HAVE_FLAC
-
-/* Define to 1 if you have the `fpclass' function. */
-#mesondefine HAVE_FPCLASS
-
-/* Define if compiler supports gcc inline assembly */
-#mesondefine HAVE_GCC_ASM
-
-/* Define to enable GDK pixbuf (used by gdkpixbuf). */
-#mesondefine HAVE_GDK_PIXBUF
-
-/* Define to 1 if you have the `getpagesize' function. */
-#mesondefine HAVE_GETPAGESIZE
-
-/* Define if the GNU gettext() function is already present or preinstalled. */
-#mesondefine HAVE_GETTEXT
-
-/* Define to enable Video 4 Linux 2 (used by video4linux2). */
-#mesondefine HAVE_GST_V4L2
-
-/* Whether gudev is available for device detection */
-#mesondefine HAVE_GUDEV
-
-/* Define if you have the iconv() function and it works. */
-#mesondefine HAVE_ICONV
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#mesondefine HAVE_INTTYPES_H
-
-/* building for iOS platofrm */
-#mesondefine HAVE_IOS
-
-/* Define if we have struct ip_mreqn */
-#mesondefine HAVE_IP_MREQN
-
-/* Define to 1 if you have the `isinf' function. */
-#mesondefine HAVE_ISINF
-
-/* Define to enable Jack (used by jack). */
-#mesondefine HAVE_JACK
-
-/* defined if jack >= 0.120.1 is available */
-#mesondefine HAVE_JACK_0_120_1
-
-/* defined if jack >= 1.9.7 is available */
-#mesondefine HAVE_JACK_1_9_7
-
-/* Define to enable jpeg library (used by jpeg). */
-#mesondefine HAVE_JPEG
-
-/* Define to enable libcaca coloured ASCII art (used by cacasink). */
-#mesondefine HAVE_LIBCACA
-
-/* Define to enable libdv DV demuxer/decoder (used by dv). */
-#mesondefine HAVE_LIBDV
-
-/* Define to enable Portable Network Graphics library (used by png). */
-#mesondefine HAVE_LIBPNG
-
-/* Whether libv4l2 is available for video buffer conversion */
-#mesondefine HAVE_LIBV4L2
-
-/* Define to 1 if you have the <memory.h> header file. */
-#mesondefine HAVE_MEMORY_H
-
-/* Define to 1 if you have a working `mmap' system call. */
-#mesondefine HAVE_MMAP
-
-/* Use Orc */
-#mesondefine HAVE_ORC
-
-/* Define to enable OSS audio (used by ossaudio). */
-#mesondefine HAVE_OSS
-
-/* Define to enable Open Sound System 4 (used by oss4). */
-#mesondefine HAVE_OSS4
-
-/* Define if OSS includes are in /machine/ */
-#mesondefine HAVE_OSS_INCLUDE_IN_MACHINE
-
-/* Define if OSS includes are in / */
-#mesondefine HAVE_OSS_INCLUDE_IN_ROOT
-
-/* Define if OSS includes are in /sys/ */
-#mesondefine HAVE_OSS_INCLUDE_IN_SYS
-
-/* Define to enable OSX audio (used by osxaudio). */
-#mesondefine HAVE_OSX_AUDIO
-
-/* Define to enable OSX video (used by osxvideosink). */
-#mesondefine HAVE_OSX_VIDEO
-
-/* Define to 1 if you have the <process.h> header file. */
-#mesondefine HAVE_PROCESS_H
-
-/* Define to enable pulseaudio plug-in (used by pulseaudio). */
-#mesondefine HAVE_PULSE
-
-/* Define if RDTSC is available */
-#mesondefine HAVE_RDTSC
-
-/* Define to 1 if you have the `rint' function. */
-#mesondefine HAVE_RINT
-
-/* Define to enable Shoutcast/Icecast client library (used by shout2). */
-#mesondefine HAVE_SHOUT2
-
-/* Define to 1 if you have the `sinh' function. */
-#mesondefine HAVE_SINH
-
-/* Define to enable soup http client plugin (2.4) (used by souphttpsrc). */
-#mesondefine HAVE_SOUP
-
-/* Define to enable speex speech codec (used by speex). */
-#mesondefine HAVE_SPEEX
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#mesondefine HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#mesondefine HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#mesondefine HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#mesondefine HAVE_STRING_H
-
-/* Define to enable Sun Audio (used by sunaudio). */
-#mesondefine HAVE_SUNAUDIO
-
-/* Define to 1 if you have the <sys/ioctl.h> header file. */
-#mesondefine HAVE_SYS_IOCTL_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#mesondefine HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#mesondefine HAVE_SYS_SOCKET_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#mesondefine HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#mesondefine HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#mesondefine HAVE_SYS_TYPES_H
-
-/* Define to enable taglib tagging library (used by taglib). */
-#mesondefine HAVE_TAGLIB
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#mesondefine HAVE_UNISTD_H
-
-/* Define if valgrind should be used */
-#mesondefine HAVE_VALGRIND
-
-/* Defined if the VP8 decoder is available */
-#mesondefine HAVE_VP8_DECODER
-
-/* Defined if the VP8 encoder is available */
-#mesondefine HAVE_VP8_ENCODER
-
-/* Defined if the VP9 decoder is available */
-#mesondefine HAVE_VP9_DECODER
-
-/* Defined if the VP9 encoder is available */
-#mesondefine HAVE_VP9_ENCODER
-
-/* Define to enable VPX decoder (used by vpx). */
-#mesondefine HAVE_VPX
-
-/* Define to enable Win32 WaveForm (used by waveformsink). */
-#mesondefine HAVE_WAVEFORM
-
-/* Define to enable wavpack plug-in (used by wavpack). */
-#mesondefine HAVE_WAVPACK
-
-/* Define to enable X libraries and plugins (used by ximagesrc). */
-#mesondefine HAVE_X
-
-/* Define to enable X Shared Memory extension. */
-#mesondefine HAVE_XSHM
-
-/* Define to enable zlib support for qtdemux/matroska. */
-#mesondefine HAVE_ZLIB
-
-/* the host CPU */
-#mesondefine HOST_CPU
-
-/* gettext locale dir */
-#mesondefine LOCALEDIR
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-#mesondefine LT_OBJDIR
-
-/* Name of package */
-#mesondefine PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#mesondefine PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#mesondefine PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#mesondefine PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#mesondefine PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#mesondefine PACKAGE_URL
-
-/* Define to the version of this package. */
-#mesondefine PACKAGE_VERSION
-
-/* directory where plugins are located */
-#mesondefine PLUGINDIR
-
-/* The size of `char', as computed by sizeof. */
-#mesondefine SIZEOF_CHAR
-
-/* The size of `int', as computed by sizeof. */
-#mesondefine SIZEOF_INT
-
-/* The size of `long', as computed by sizeof. */
-#mesondefine SIZEOF_LONG
-
-/* The size of `short', as computed by sizeof. */
-#mesondefine SIZEOF_SHORT
-
-/* The size of `void*', as computed by sizeof. */
-#mesondefine SIZEOF_VOIDP
-
-/* defined if speex 1.0.x API detected */
-#mesondefine SPEEX_1_0
-
-/* Define to 1 if you have the ANSI C header files. */
-#mesondefine STDC_HEADERS
-
-/* the target CPU */
-#mesondefine TARGET_CPU
-
-/* Version number of package */
-#mesondefine VERSION
-
-/* old wavpack API */
-#mesondefine WAVPACK_OLD_API
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
-   significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-#  define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-#  undef WORDS_BIGENDIAN
-# endif
-#endif
-
-/* Define to 1 if the X Window System is missing or not being used. */
-#mesondefine X_DISPLAY_MISSING
diff --git a/config.sub b/config.sub
index dd2ca93c6..00f68b8e5 100755
--- a/config.sub
+++ b/config.sub
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2016 Free Software Foundation, Inc.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2016-11-04'
+timestamp='2017-11-23'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@ timestamp='2016-11-04'
 # 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/>.
+# along with this program; if not, see <https://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
@@ -33,7 +33,7 @@ timestamp='2016-11-04'
 # Otherwise, we print the canonical config type on stdout and succeed.
 
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
@@ -57,7 +57,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
 
 Canonicalize a configuration name.
 
-Operation modes:
+Options:
   -h, --help         print this help, then exit
   -t, --time-stamp   print date of last modification, then exit
   -v, --version      print version number, then exit
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -229,9 +229,6 @@ case $os in
 	-ptx*)
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
 		;;
-	-windowsnt*)
-		os=`echo $os | sed -e 's/windowsnt/winnt/'`
-		;;
 	-psos*)
 		os=-psos
 		;;
@@ -263,7 +260,7 @@ case $basic_machine in
 	| fido | fr30 | frv | ft32 \
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| hexagon \
-	| i370 | i860 | i960 | ia64 \
+	| i370 | i860 | i960 | ia16 | ia64 \
 	| ip2k | iq2000 \
 	| k1om \
 	| le32 | le64 \
@@ -315,7 +312,7 @@ case $basic_machine in
 	| ubicom32 \
 	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
 	| visium \
-	| we32k \
+	| wasm32 \
 	| x86 | xc16x | xstormy16 | xtensa \
 	| z8k | z80)
 		basic_machine=$basic_machine-unknown
@@ -388,7 +385,7 @@ case $basic_machine in
 	| h8300-* | h8500-* \
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| hexagon-* \
-	| i*86-* | i860-* | i960-* | ia64-* \
+	| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
 	| ip2k-* | iq2000-* \
 	| k1om-* \
 	| le32-* | le64-* \
@@ -446,6 +443,7 @@ case $basic_machine in
 	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
 	| vax-* \
 	| visium-* \
+	| wasm32-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* \
 	| xstormy16-* | xtensa*-* \
@@ -641,7 +639,7 @@ case $basic_machine in
 		basic_machine=rs6000-bull
 		os=-bosx
 		;;
-	dpx2* | dpx2*-bull)
+	dpx2*)
 		basic_machine=m68k-bull
 		os=-sysv3
 		;;
@@ -903,7 +901,7 @@ case $basic_machine in
 		basic_machine=v70-nec
 		os=-sysv
 		;;
-	next | m*-next )
+	next | m*-next)
 		basic_machine=m68k-next
 		case $os in
 		    -nextstep* )
@@ -948,6 +946,9 @@ case $basic_machine in
 	nsr-tandem)
 		basic_machine=nsr-tandem
 		;;
+	nsx-tandem)
+		basic_machine=nsx-tandem
+		;;
 	op50n-* | op60c-*)
 		basic_machine=hppa1.1-oki
 		os=-proelf
@@ -1243,6 +1244,9 @@ case $basic_machine in
 		basic_machine=a29k-wrs
 		os=-vxworks
 		;;
+	wasm32)
+		basic_machine=wasm32-unknown
+		;;
 	w65*)
 		basic_machine=w65-wdc
 		os=-none
@@ -1251,6 +1255,9 @@ case $basic_machine in
 		basic_machine=hppa1.1-winbond
 		os=-proelf
 		;;
+	x64)
+		basic_machine=x86_64-pc
+		;;
 	xbox)
 		basic_machine=i686-pc
 		os=-mingw32
@@ -1358,8 +1365,8 @@ esac
 if [ x"$os" != x"" ]
 then
 case $os in
-	# First match some system type aliases
-	# that might get confused with valid system types.
+	# First match some system type aliases that might get confused
+	# with valid system types.
 	# -solaris* is a basic system type, with this one exception.
 	-auroraux)
 		os=-auroraux
@@ -1379,9 +1386,9 @@ case $os in
 	-gnu/linux*)
 		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
 		;;
-	# First accept the basic system types.
+	# Now accept the basic system types.
 	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
+	# Each alternative MUST end in a * to match a version number.
 	# -sysv* is not here because it comes later, after sysvr4.
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
@@ -1397,7 +1404,7 @@ case $os in
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* | -cegcc* \
+	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
 	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
 	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
@@ -1409,7 +1416,7 @@ case $os in
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
 	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
-	      | -onefs* | -tirtos* | -phoenix* | -fuchsia*)
+	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1484,7 +1491,7 @@ case $os in
 	-nova*)
 		os=-rtmk-nova
 		;;
-	-ns2 )
+	-ns2)
 		os=-nextstep2
 		;;
 	-nsk*)
@@ -1539,6 +1546,19 @@ case $os in
 	-dicos*)
 		os=-dicos
 		;;
+	-pikeos*)
+		# Until real need of OS specific support for
+		# particular features comes up, bare metal
+		# configurations are quite functional.
+		case $basic_machine in
+		    arm*)
+			os=-eabi
+			;;
+		    *)
+			os=-elf
+			;;
+		esac
+		;;
 	-nacl*)
 		;;
 	-ios)
@@ -1638,6 +1658,9 @@ case $basic_machine in
 	sparc-* | *-sun)
 		os=-sunos4.1.1
 		;;
+	pru-*)
+		os=-elf
+		;;
 	*-be)
 		os=-beos
 		;;
@@ -1683,7 +1706,7 @@ case $basic_machine in
 	m88k-omron*)
 		os=-luna
 		;;
-	*-next )
+	*-next)
 		os=-nextstep
 		;;
 	*-sequent)
@@ -1818,7 +1841,7 @@ echo $basic_machine$os
 exit
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'write-file-functions 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
diff --git a/configure b/configure
index 40069448d..58b7c718e 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.12.4.
+# Generated by GNU Autoconf 2.69 for GStreamer Good Plug-ins 1.13.1.
 #
 # 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.12.4'
-PACKAGE_STRING='GStreamer Good Plug-ins 1.12.4'
+PACKAGE_VERSION='1.13.1'
+PACKAGE_STRING='GStreamer Good Plug-ins 1.13.1'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -646,6 +646,9 @@ GST_CXXFLAGS
 GST_OPTION_OBJCFLAGS
 GST_OPTION_CXXFLAGS
 GST_OPTION_CFLAGS
+EXTRA_CFLAGS
+VISIBILITY_CXXFLAGS
+VISIBILITY_CFLAGS
 DEPRECATED_CFLAGS
 PROFILE_CFLAGS
 USE_BZ2_FALSE
@@ -667,6 +670,10 @@ VPX_130_LIBS
 VPX_130_CFLAGS
 VPX_LIBS
 VPX_CFLAGS
+USE_TWOLAME_FALSE
+USE_TWOLAME_TRUE
+TWOLAME_LIBS
+TWOLAME_CFLAGS
 USE_TAGLIB_FALSE
 USE_TAGLIB_TRUE
 TAGLIB_CXXFLAGS
@@ -684,6 +691,23 @@ USE_SHOUT2_FALSE
 USE_SHOUT2_TRUE
 SHOUT2_LIBS
 SHOUT2_CFLAGS
+USE_QT_FALSE
+USE_QT_TRUE
+QT_MAC_LIBS
+QT_MAC_CFLAGS
+GNUSTL_LIBS
+GNUSTL_CFLAGS
+QT_ANDROID_LIBS
+QT_ANDROID_CFLAGS
+QT_WAYLAND_LIBS
+QT_WAYLAND_CFLAGS
+QT_X11_LIBS
+QT_X11_CFLAGS
+UIC
+RCC
+MOC
+QT_LIBS
+QT_CFLAGS
 USE_LIBIEC61883_FALSE
 USE_LIBIEC61883_TRUE
 USE_DV1394_FALSE
@@ -700,8 +724,14 @@ USE_PULSE_FALSE
 USE_PULSE_TRUE
 PULSE_LIBS
 PULSE_CFLAGS
+USE_MPG123_FALSE
+USE_MPG123_TRUE
+MPG123_LIBS
+MPG123_CFLAGS
 USE_LIBPNG_FALSE
 USE_LIBPNG_TRUE
+LIBPNG_1_5_LIBS
+LIBPNG_1_5_CFLAGS
 LIBPNG_LIBS
 LIBPNG_CFLAGS
 USE_LIBDV_FALSE
@@ -712,6 +742,11 @@ USE_LIBCACA_FALSE
 USE_LIBCACA_TRUE
 LIBCACA_LIBS
 LIBCACA_CFLAGS
+USE_LAME_FALSE
+USE_LAME_TRUE
+HAVE_LAME
+LAME_LIBS
+LAME_CFLAGS
 USE_JPEG_FALSE
 USE_JPEG_TRUE
 JPEG_LIBS
@@ -723,6 +758,18 @@ JACK_0_120_1_LIBS
 JACK_0_120_1_CFLAGS
 JACK_LIBS
 JACK_CFLAGS
+USE_GTK3_GL_FALSE
+USE_GTK3_GL_TRUE
+USE_GTK3_FALSE
+USE_GTK3_TRUE
+GTK3_WAYLAND_LIBS
+GTK3_WAYLAND_CFLAGS
+GTK3_X11_LIBS
+GTK3_X11_CFLAGS
+GTK3_GL_LIBS
+GTK3_GL_CFLAGS
+GTK3_LIBS
+GTK3_CFLAGS
 USE_GDK_PIXBUF_FALSE
 USE_GDK_PIXBUF_TRUE
 GDK_PIXBUF_LIBS
@@ -764,8 +811,6 @@ HAVE_IOS_FALSE
 HAVE_IOS_TRUE
 USE_OSX_AUDIO_FALSE
 USE_OSX_AUDIO_TRUE
-USE_SUNAUDIO_FALSE
-USE_SUNAUDIO_TRUE
 USE_OSS4_FALSE
 USE_OSS4_TRUE
 USE_OSS_FALSE
@@ -876,9 +921,6 @@ ERROR_CXXFLAGS
 WARNING_CXXFLAGS
 ERROR_CFLAGS
 WARNING_CFLAGS
-GST_PLUGIN_BUILD_STATIC_FALSE
-GST_PLUGIN_BUILD_STATIC_TRUE
-GST_PLUGIN_LIBTOOLFLAGS
 plugindir
 PLUGINDIR
 GST_LICENSE
@@ -895,6 +937,8 @@ GST_PREFIX
 GLIB_PREFIX
 HAVE_GST_CHECK_FALSE
 HAVE_GST_CHECK_TRUE
+GST_GL_LIBS
+GST_GL_CFLAGS
 GSTPB_PLUGINS_DIR
 GST_PLUGINS_BASE_DIR
 GST_PLUGINS_BASE_LIBS
@@ -1236,7 +1280,6 @@ enable_gobject_cast_checks
 enable_glib_asserts
 enable_orc
 enable_Bsymbolic
-enable_static_plugins
 with_default_audiosink
 with_default_audiosrc
 with_default_videosink
@@ -1289,7 +1332,6 @@ enable_directsound
 enable_waveform
 enable_oss
 enable_oss4
-enable_sunaudio
 enable_osx_audio
 enable_osx_video
 enable_gst_v4l2
@@ -1304,18 +1346,26 @@ enable_aalibtest
 enable_cairo
 enable_flac
 enable_gdk_pixbuf
+enable_gtk3
 enable_jack
 enable_jpeg
 with_jpeg_mmx
+enable_lame
 enable_libcaca
 enable_libdv
 enable_libpng
+enable_mpg123
 enable_pulse
 enable_dv1394
+enable_qt
+with_moc
+with_rcc
+with_uic
 enable_shout2
 enable_soup
 enable_speex
 enable_taglib
+enable_twolame
 enable_vpx
 enable_wavpack
 enable_zlib
@@ -1363,6 +1413,8 @@ GST_CHECK_CFLAGS
 GST_CHECK_LIBS
 GST_PLUGINS_BASE_CFLAGS
 GST_PLUGINS_BASE_LIBS
+GST_GL_CFLAGS
+GST_GL_LIBS
 GTK_CFLAGS
 GTK_LIBS
 GTK_X11_CFLAGS
@@ -1385,6 +1437,14 @@ FLAC_CFLAGS
 FLAC_LIBS
 GDK_PIXBUF_CFLAGS
 GDK_PIXBUF_LIBS
+GTK3_CFLAGS
+GTK3_LIBS
+GTK3_GL_CFLAGS
+GTK3_GL_LIBS
+GTK3_X11_CFLAGS
+GTK3_X11_LIBS
+GTK3_WAYLAND_CFLAGS
+GTK3_WAYLAND_LIBS
 JACK_CFLAGS
 JACK_LIBS
 JACK_0_120_1_CFLAGS
@@ -1397,12 +1457,28 @@ LIBDV_CFLAGS
 LIBDV_LIBS
 LIBPNG_CFLAGS
 LIBPNG_LIBS
+LIBPNG_1_5_CFLAGS
+LIBPNG_1_5_LIBS
+MPG123_CFLAGS
+MPG123_LIBS
 PULSE_CFLAGS
 PULSE_LIBS
 RAW1394_CFLAGS
 RAW1394_LIBS
 LIBIEC61883_CFLAGS
 LIBIEC61883_LIBS
+QT_CFLAGS
+QT_LIBS
+QT_X11_CFLAGS
+QT_X11_LIBS
+QT_WAYLAND_CFLAGS
+QT_WAYLAND_LIBS
+QT_ANDROID_CFLAGS
+QT_ANDROID_LIBS
+GNUSTL_CFLAGS
+GNUSTL_LIBS
+QT_MAC_CFLAGS
+QT_MAC_LIBS
 SHOUT2_CFLAGS
 SHOUT2_LIBS
 SOUP_CFLAGS
@@ -1411,6 +1487,8 @@ SPEEX_CFLAGS
 SPEEX_LIBS
 TAGLIB_CFLAGS
 TAGLIB_LIBS
+TWOLAME_CFLAGS
+TWOLAME_LIBS
 VPX_CFLAGS
 VPX_LIBS
 VPX_130_CFLAGS
@@ -1969,7 +2047,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.12.4 to adapt to many kinds of systems.
+\`configure' configures GStreamer Good Plug-ins 1.13.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2042,7 +2120,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.12.4:";;
+     short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.13.1:";;
    esac
   cat <<\_ACEOF
 
@@ -2086,7 +2164,6 @@ Optional Features:
                           Enable GLib assertion
   --enable-orc            use Orc if installed
   --disable-Bsymbolic     avoid linking with -Bsymbolic
-  --enable-static-plugins build static plugins [default=no]
   --disable-alpha         disable dependency-less alpha plugin
   --disable-apetag        disable dependency-less apetag plugin
   --disable-audiofx       disable dependency-less audiofx plugin
@@ -2134,7 +2211,6 @@ Optional Features:
   --disable-waveform           disable Win32 WaveForm: waveformsink
   --disable-oss                disable OSS audio: ossaudio
   --disable-oss4               disable Open Sound System 4: oss4
-  --disable-sunaudio           disable Sun Audio: sunaudio
   --disable-osx_audio          disable OSX audio: osxaudio
   --disable-osx_video          disable OSX video: osxvideosink
   --disable-gst_v4l2           disable Video 4 Linux 2: video4linux2
@@ -2145,17 +2221,22 @@ Optional Features:
   --disable-cairo              disable Cairo graphics rendering and gobject bindings: cairo
   --disable-flac               disable FLAC lossless audio: flac
   --disable-gdk_pixbuf         disable GDK pixbuf: gdkpixbuf
+  --disable-gtk3               disable Gtk+ elements: gtk
   --disable-jack               disable Jack: jack
   --disable-jpeg               disable jpeg library: jpeg
+  --disable-lame               disable lame mp3 encoder library: lame
   --disable-libcaca            disable libcaca coloured ASCII art: cacasink
   --disable-libdv              disable libdv DV demuxer/decoder: dv
   --disable-libpng             disable Portable Network Graphics library: png
+  --disable-mpg123             disable mpg123 audio decoder: mpg123
   --disable-pulse              disable pulseaudio plug-in: pulseaudio
   --disable-dv1394             disable raw1394 and avc1394 library: 1394
+  --disable-qt                 disable Qt elements: qt
   --disable-shout2             disable Shoutcast/Icecast client library: shout2
   --disable-soup               disable soup http client plugin (2.4): souphttpsrc
   --disable-speex              disable speex speech codec: speex
   --disable-taglib             disable taglib tagging library: taglib
+  --disable-twolame            disable twolame: twolame
   --disable-vpx                disable VPX decoder: vpx
   --disable-wavpack            disable wavpack plug-in: wavpack
   --disable-zlib               disable zlib support for qtdemux/matroska
@@ -2205,6 +2286,9 @@ Optional Packages:
   --with-aalib-exec-prefix=PFX
                           exec prefix where AALIB is installed (optional)
   --with-jpeg-mmx, path to MMX'ified JPEG library
+  --with-moc              Set location of qt moc tool
+  --with-rcc              Set location of qt rcc tool
+  --with-uic              Set location of qt uic tool
 
 Some influential environment variables:
   CC          C compiler command
@@ -2262,6 +2346,9 @@ Some influential environment variables:
               C compiler flags for GST_PLUGINS_BASE, overriding pkg-config
   GST_PLUGINS_BASE_LIBS
               linker flags for GST_PLUGINS_BASE, overriding pkg-config
+  GST_GL_CFLAGS
+              C compiler flags for GST_GL, overriding pkg-config
+  GST_GL_LIBS linker flags for GST_GL, overriding pkg-config
   GTK_CFLAGS  C compiler flags for GTK, overriding pkg-config
   GTK_LIBS    linker flags for GTK, overriding pkg-config
   GTK_X11_CFLAGS
@@ -2295,6 +2382,20 @@ Some influential environment variables:
               C compiler flags for GDK_PIXBUF, overriding pkg-config
   GDK_PIXBUF_LIBS
               linker flags for GDK_PIXBUF, overriding pkg-config
+  GTK3_CFLAGS C compiler flags for GTK3, overriding pkg-config
+  GTK3_LIBS   linker flags for GTK3, overriding pkg-config
+  GTK3_GL_CFLAGS
+              C compiler flags for GTK3_GL, overriding pkg-config
+  GTK3_GL_LIBS
+              linker flags for GTK3_GL, overriding pkg-config
+  GTK3_X11_CFLAGS
+              C compiler flags for GTK3_X11, overriding pkg-config
+  GTK3_X11_LIBS
+              linker flags for GTK3_X11, overriding pkg-config
+  GTK3_WAYLAND_CFLAGS
+              C compiler flags for GTK3_WAYLAND, overriding pkg-config
+  GTK3_WAYLAND_LIBS
+              linker flags for GTK3_WAYLAND, overriding pkg-config
   JACK_CFLAGS C compiler flags for JACK, overriding pkg-config
   JACK_LIBS   linker flags for JACK, overriding pkg-config
   JACK_0_120_1_CFLAGS
@@ -2315,6 +2416,13 @@ Some influential environment variables:
   LIBPNG_CFLAGS
               C compiler flags for LIBPNG, overriding pkg-config
   LIBPNG_LIBS linker flags for LIBPNG, overriding pkg-config
+  LIBPNG_1_5_CFLAGS
+              C compiler flags for LIBPNG_1_5, overriding pkg-config
+  LIBPNG_1_5_LIBS
+              linker flags for LIBPNG_1_5, overriding pkg-config
+  MPG123_CFLAGS
+              C compiler flags for MPG123, overriding pkg-config
+  MPG123_LIBS linker flags for MPG123, overriding pkg-config
   PULSE_CFLAGS
               C compiler flags for PULSE, overriding pkg-config
   PULSE_LIBS  linker flags for PULSE, overriding pkg-config
@@ -2326,6 +2434,25 @@ Some influential environment variables:
               C compiler flags for LIBIEC61883, overriding pkg-config
   LIBIEC61883_LIBS
               linker flags for LIBIEC61883, overriding pkg-config
+  QT_CFLAGS   C compiler flags for QT, overriding pkg-config
+  QT_LIBS     linker flags for QT, overriding pkg-config
+  QT_X11_CFLAGS
+              C compiler flags for QT_X11, overriding pkg-config
+  QT_X11_LIBS linker flags for QT_X11, overriding pkg-config
+  QT_WAYLAND_CFLAGS
+              C compiler flags for QT_WAYLAND, overriding pkg-config
+  QT_WAYLAND_LIBS
+              linker flags for QT_WAYLAND, overriding pkg-config
+  QT_ANDROID_CFLAGS
+              C compiler flags for QT_ANDROID, overriding pkg-config
+  QT_ANDROID_LIBS
+              linker flags for QT_ANDROID, overriding pkg-config
+  GNUSTL_CFLAGS
+              C compiler flags for GNUSTL, overriding pkg-config
+  GNUSTL_LIBS linker flags for GNUSTL, overriding pkg-config
+  QT_MAC_CFLAGS
+              C compiler flags for QT_MAC, overriding pkg-config
+  QT_MAC_LIBS linker flags for QT_MAC, overriding pkg-config
   SHOUT2_CFLAGS
               C compiler flags for SHOUT2, overriding pkg-config
   SHOUT2_LIBS linker flags for SHOUT2, overriding pkg-config
@@ -2337,6 +2464,10 @@ Some influential environment variables:
   TAGLIB_CFLAGS
               C compiler flags for TAGLIB, overriding pkg-config
   TAGLIB_LIBS linker flags for TAGLIB, overriding pkg-config
+  TWOLAME_CFLAGS
+              C compiler flags for TWOLAME, overriding pkg-config
+  TWOLAME_LIBS
+              linker flags for TWOLAME, overriding pkg-config
   VPX_CFLAGS  C compiler flags for VPX, overriding pkg-config
   VPX_LIBS    linker flags for VPX, overriding pkg-config
   VPX_130_CFLAGS
@@ -2418,7 +2549,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Good Plug-ins configure 1.12.4
+GStreamer Good Plug-ins configure 1.13.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3229,7 +3360,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.12.4, which was
+It was created by GStreamer Good Plug-ins $as_me 1.13.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4211,7 +4342,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-good'
- VERSION='1.12.4'
+ VERSION='1.13.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4422,9 +4553,9 @@ fi
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.12.4 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.12.4 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.12.4 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.13.1 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.13.1 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.13.1 | cut -d'.' -f3)
 
 
 
@@ -4435,7 +4566,7 @@ fi
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.12.4 | cut -d'.' -f4)
+  NANO=$(echo 1.13.1 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -4489,6 +4620,8 @@ fi
 
 
 
+
+
 # Check whether --enable-silent-rules was given.
 if test "${enable_silent_rules+set}" = set; then :
   enableval=$enable_silent_rules;
@@ -9276,10 +9409,10 @@ fi
 done
 
 
-  GST_CURRENT=1204
+  GST_CURRENT=1301
   GST_REVISION=0
-  GST_AGE=1204
-  GST_LIBVERSION=1204:0:1204
+  GST_AGE=1301
+  GST_LIBVERSION=1301:0:1301
 
 
 
@@ -13907,8 +14040,8 @@ CC=$lt_save_CC
 
 
 
-GST_REQ=1.12.0
-GSTPB_REQ=1.12.0
+GST_REQ=1.13.1
+GSTPB_REQ=1.13.1
 
 
 
@@ -25372,6 +25505,39 @@ $as_echo "#define HAVE_MMAP 1" >>confdefs.h
 fi
 rm -f conftest.mmap conftest.txt
 
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5
+$as_echo_n "checking size of off_t... " >&6; }
+if ${ac_cv_sizeof_off_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t"        "$ac_includes_default"; then :
+
+else
+  if test "$ac_cv_type_off_t" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (off_t)
+See \`config.log' for more details" "$LINENO" 5; }
+   else
+     ac_cv_sizeof_off_t=0
+   fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5
+$as_echo "$ac_cv_sizeof_off_t" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_OFF_T $ac_cv_sizeof_off_t
+_ACEOF
+
+
  if test "x$ac_cv_func_mmap_fixed_mapped" = "xyes"; then
   GST_HAVE_MMAP_TRUE=
   GST_HAVE_MMAP_FALSE='#'
@@ -26555,6 +26721,145 @@ $as_echo "$as_me: Using GStreamer Core Plugins in $GST_PLUGINS_DIR" >&6;}
 { $as_echo "$as_me:${as_lineno-$LINENO}: Using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR" >&5
 $as_echo "$as_me: Using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR" >&6;}
 
+
+  which="gstreamer-gl-$GST_API_VERSION"
+    required=$GST_REQ
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_GL" >&5
+$as_echo_n "checking for GST_GL... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GST_GL_CFLAGS"; then
+        pkg_cv_GST_GL_CFLAGS="$GST_GL_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GST_GL_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GST_GL_LIBS"; then
+        pkg_cv_GST_GL_LIBS="$GST_GL_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GST_GL_LIBS=`$PKG_CONFIG --libs "$which" 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
+	        GST_GL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"`
+        else
+	        GST_GL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$GST_GL_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+      HAVE_GST_GL="no"
+      if test "x$required" = "xyes"; then
+        as_fn_error $? "$GST_GL_PKG_ERRORS" "$LINENO" 5
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_GL_PKG_ERRORS" >&5
+$as_echo "$as_me: $GST_GL_PKG_ERRORS" >&6;}
+      fi
+
+elif test $pkg_failed = untried; then
+
+      HAVE_GST_GL="no"
+      if test "x$required" = "xyes"; then
+        as_fn_error $? "$GST_GL_PKG_ERRORS" "$LINENO" 5
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_GL_PKG_ERRORS" >&5
+$as_echo "$as_me: $GST_GL_PKG_ERRORS" >&6;}
+      fi
+
+else
+	GST_GL_CFLAGS=$pkg_cv_GST_GL_CFLAGS
+	GST_GL_LIBS=$pkg_cv_GST_GL_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+      HAVE_GST_GL="yes"
+
+fi
+
+
+
+if test "x$HAVE_GST_GL" = "xyes"; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking GStreamer OpenGL window systems ..." >&5
+$as_echo_n "checking GStreamer OpenGL window systems ...... " >&6; }
+  GST_GL_WINSYS=`$PKG_CONFIG --variable=gl_winsys gstreamer-gl-1.0`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GST_GL_WINSYS" >&5
+$as_echo "$GST_GL_WINSYS" >&6; }
+  GST_GL_HAVE_WINDOW_X11=""
+  GST_GL_HAVE_WINDOW_WAYLAND=""
+  GST_GL_HAVE_WINDOW_ANDROID=""
+  GST_GL_HAVE_WINDOW_COCOA=""
+  GST_GL_HAVE_WINDOW_EAGL=""
+  case "$GST_GL_WINSYS" in  *x11*) GST_GL_HAVE_WINDOW_X11="1" ;; esac
+  case "$GST_GL_WINSYS" in  *wayland*) GST_GL_HAVE_WINDOW_WAYLAND="1" ;; esac
+  case "$GST_GL_WINSYS" in  *android*) GST_GL_HAVE_WINDOW_ANDROID="1" ;; esac
+  case "$GST_GL_WINSYS" in  *cocoa*) GST_GL_HAVE_WINDOW_COCOA="1" ;; esac
+  case "$GST_GL_WINSYS" in  *eagl*) GST_GL_HAVE_WINDOW_EAGL="1" ;; esac
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking GStreamer OpenGL platforms ..." >&5
+$as_echo_n "checking GStreamer OpenGL platforms ...... " >&6; }
+  GST_GL_PLATFORMS=`$PKG_CONFIG --variable=gl_platforms gstreamer-gl-1.0`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GST_GL_PLATFORMS" >&5
+$as_echo "$GST_GL_PLATFORMS" >&6; }
+  GST_GL_HAVE_PLATFORM_GLX=""
+  GST_GL_HAVE_PLATFORM_EGL=""
+  GST_GL_HAVE_PLATFORM_CGL=""
+  GST_GL_HAVE_PLATFORM_EAGL=""
+  case "$GST_GL_PLATFORMS" in  *glx*) GST_GL_HAVE_PLATFORM_GLX="1" ;; esac
+  case "$GST_GL_PLATFORMS" in  *egl*) GST_GL_HAVE_PLATFORM_EGL="1" ;; esac
+  case "$GST_GL_PLATFORMS" in  *cgl*) GST_GL_HAVE_PLATFORM_CGL="1" ;; esac
+  case "$GST_GL_PLATFORMS" in  *eagl*) GST_GL_HAVE_PLATFORM_EAGL="1" ;; esac
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking GStreamer OpenGL apis ..." >&5
+$as_echo_n "checking GStreamer OpenGL apis ...... " >&6; }
+  GST_GL_APIS=`$PKG_CONFIG --variable=gl_apis gstreamer-gl-1.0`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GST_GL_APIS" >&5
+$as_echo "$GST_GL_APIS" >&6; }
+  GST_GL_HAVE_API_GLES2=""
+  GST_GL_HAVE_API_GL=""
+  case "$GST_GL_APIS" in  *gles2*) GST_GL_HAVE_API_GLES2="1" ;; esac
+  case "$GST_GL_APIS" in "gl"|"gl "*|*" gl"|*" gl "*) GST_GL_HAVE_API_GL="1" ;; esac
+fi
+
  if test "x$HAVE_GST_CHECK" = "xyes"; then
   HAVE_GST_CHECK_TRUE=
   HAVE_GST_CHECK_FALSE='#'
@@ -26903,42 +27208,6 @@ _ACEOF
   fi
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static plugins or not" >&5
-$as_echo_n "checking whether to build static plugins or not... " >&6; }
-# Check whether --enable-static-plugins was given.
-if test "${enable_static_plugins+set}" = set; then :
-  enableval=$enable_static_plugins; case $enableval in #(
-  no) :
-     ;; #(
-  yes) :
-     ;; #(
-  *) :
-    as_fn_error $? "bad value \"$enableval\" for --enable-static-plugins" "$LINENO" 5 ;;
-esac
-else
-  enable_static_plugins=no
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static_plugins" >&5
-$as_echo "$enable_static_plugins" >&6; }
-if test "x$enable_static_plugins" = xyes; then
-
-$as_echo "#define GST_PLUGIN_BUILD_STATIC 1" >>confdefs.h
-
-  GST_PLUGIN_LIBTOOLFLAGS=""
-else
-  GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
-fi
-
- if test "x$enable_static_plugins" = "xyes"; then
-  GST_PLUGIN_BUILD_STATIC_TRUE=
-  GST_PLUGIN_BUILD_STATIC_FALSE='#'
-else
-  GST_PLUGIN_BUILD_STATIC_TRUE='#'
-  GST_PLUGIN_BUILD_STATIC_FALSE=
-fi
-
-
 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
 NO_WARNINGS=""
 
@@ -30436,102 +30705,6 @@ fi
 
 
 
-echo
-{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Sun Audio ***" >&5
-$as_echo "$as_me: *** checking feature: Sun Audio ***" >&6;}
-if test "xsunaudio" != "x"
-then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: sunaudio ***" >&5
-$as_echo "$as_me: *** for plug-ins: sunaudio ***" >&6;}
-fi
-NOUSE=
-if test "x$USE_SUNAUDIO" = "xno"; then
-  NOUSE="yes"
-fi
-# Check whether --enable-sunaudio was given.
-if test "${enable_sunaudio+set}" = set; then :
-  enableval=$enable_sunaudio;  case "${enableval}" in
-      yes) USE_SUNAUDIO=yes;;
-      no) USE_SUNAUDIO=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-sunaudio" "$LINENO" 5 ;;
-    esac
-else
-   USE_SUNAUDIO=yes
-fi
-
-if test "x$NOUSE" = "xyes"; then
-  USE_SUNAUDIO="no"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** sunaudio pre-configured not to be built" >&5
-$as_echo "$as_me: WARNING: *** sunaudio pre-configured not to be built" >&2;}
-fi
-NOUSE=
-
-if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " SUNAUDIO " > /dev/null; then
-  USE_SUNAUDIO="no"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** sunaudio not ported" >&5
-$as_echo "$as_me: WARNING: *** sunaudio not ported" >&2;}
-fi
-
-
-if test x$USE_SUNAUDIO = xyes; then
-
-  gst_check_save_LIBS=$LIBS
-  gst_check_save_LDFLAGS=$LDFLAGS
-  gst_check_save_CFLAGS=$CFLAGS
-  gst_check_save_CPPFLAGS=$CPPFLAGS
-  gst_check_save_CXXFLAGS=$CXXFLAGS
-
-  HAVE_SUNAUDIO=no
-
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/audioio.h" "ac_cv_header_sys_audioio_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_audioio_h" = xyes; then :
-  HAVE_SUNAUDIO="yes"
-else
-  HAVE_SUNAUDIO="no"
-fi
-
-
-
-
-  LIBS=$gst_check_save_LIBS
-  LDFLAGS=$gst_check_save_LDFLAGS
-  CFLAGS=$gst_check_save_CFLAGS
-  CPPFLAGS=$gst_check_save_CPPFLAGS
-  CXXFLAGS=$gst_check_save_CXXFLAGS
-
-    if test x$HAVE_SUNAUDIO = xno; then
-    USE_SUNAUDIO=no
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: sunaudio" >&5
-$as_echo "$as_me: *** These plugins will be built: sunaudio" >&6;}
-  fi
-fi
-if test x$USE_SUNAUDIO = xyes; then
-  :
-  if test "xsunaudio" != "x"; then
-    GST_PLUGINS_YES="\tsunaudio\n$GST_PLUGINS_YES"
-  fi
-
-$as_echo "#define HAVE_SUNAUDIO /**/" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: sunaudio" >&5
-$as_echo "$as_me: *** These plugins will not be built: sunaudio" >&6;}
-  if test "xsunaudio" != "x"; then
-    GST_PLUGINS_NO="\tsunaudio\n$GST_PLUGINS_NO"
-  fi
-  :
-fi
- if test x$USE_SUNAUDIO = xyes; then
-  USE_SUNAUDIO_TRUE=
-  USE_SUNAUDIO_FALSE='#'
-else
-  USE_SUNAUDIO_TRUE='#'
-  USE_SUNAUDIO_FALSE=
-fi
-
-
-
 HAVE_IOS="no"
 echo
 { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: OSX audio ***" >&5
@@ -32449,6 +32622,424 @@ fi
 
 
 
+HAVE_GTK3_GL="no"
+echo
+{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Gtk+ elements ***" >&5
+$as_echo "$as_me: *** checking feature: Gtk+ elements ***" >&6;}
+if test "xgtk" != "x"
+then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: gtk ***" >&5
+$as_echo "$as_me: *** for plug-ins: gtk ***" >&6;}
+fi
+NOUSE=
+if test "x$USE_GTK3" = "xno"; then
+  NOUSE="yes"
+fi
+# Check whether --enable-gtk3 was given.
+if test "${enable_gtk3+set}" = set; then :
+  enableval=$enable_gtk3;  case "${enableval}" in
+      yes) USE_GTK3=yes;;
+      no) USE_GTK3=no;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-gtk3" "$LINENO" 5 ;;
+    esac
+else
+   USE_GTK3=yes
+fi
+
+if test "x$NOUSE" = "xyes"; then
+  USE_GTK3="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** gtk pre-configured not to be built" >&5
+$as_echo "$as_me: WARNING: *** gtk pre-configured not to be built" >&2;}
+fi
+NOUSE=
+
+if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " GTK3 " > /dev/null; then
+  USE_GTK3="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** gtk not ported" >&5
+$as_echo "$as_me: WARNING: *** gtk not ported" >&2;}
+fi
+
+
+if test x$USE_GTK3 = xyes; then
+
+  gst_check_save_LIBS=$LIBS
+  gst_check_save_LDFLAGS=$LDFLAGS
+  gst_check_save_CFLAGS=$CFLAGS
+  gst_check_save_CPPFLAGS=$CPPFLAGS
+  gst_check_save_CXXFLAGS=$CXXFLAGS
+
+  HAVE_GTK3=no
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK3" >&5
+$as_echo_n "checking for GTK3... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GTK3_CFLAGS"; then
+        pkg_cv_GTK3_CFLAGS="$GTK3_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK3_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GTK3_LIBS"; then
+        pkg_cv_GTK3_LIBS="$GTK3_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK3_LIBS=`$PKG_CONFIG --libs "gtk+-3.0" 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
+	        GTK3_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-3.0"`
+        else
+	        GTK3_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-3.0"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$GTK3_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+    HAVE_GTK3="no"
+
+elif test $pkg_failed = untried; then
+
+    HAVE_GTK3="no"
+
+else
+	GTK3_CFLAGS=$pkg_cv_GTK3_CFLAGS
+	GTK3_LIBS=$pkg_cv_GTK3_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+
+$as_echo "#define HAVE_GTK3 1" >>confdefs.h
+
+    HAVE_GTK3="yes"
+
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK3_GL" >&5
+$as_echo_n "checking for GTK3_GL... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GTK3_GL_CFLAGS"; then
+        pkg_cv_GTK3_GL_CFLAGS="$GTK3_GL_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.15.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.15.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK3_GL_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.15.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GTK3_GL_LIBS"; then
+        pkg_cv_GTK3_GL_LIBS="$GTK3_GL_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.15.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.15.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK3_GL_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.15.0" 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
+	        GTK3_GL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-3.0 >= 3.15.0"`
+        else
+	        GTK3_GL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-3.0 >= 3.15.0"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$GTK3_GL_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+      HAVE_GTK3_GL="no"
+
+elif test $pkg_failed = untried; then
+
+      HAVE_GTK3_GL="no"
+
+else
+	GTK3_GL_CFLAGS=$pkg_cv_GTK3_GL_CFLAGS
+	GTK3_GL_LIBS=$pkg_cv_GTK3_GL_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+    GDK_WINDOWING="no"
+    if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK3_X11" >&5
+$as_echo_n "checking for GTK3_X11... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GTK3_X11_CFLAGS"; then
+        pkg_cv_GTK3_X11_CFLAGS="$GTK3_X11_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-x11-3.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-x11-3.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK3_X11_CFLAGS=`$PKG_CONFIG --cflags "gtk+-x11-3.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GTK3_X11_LIBS"; then
+        pkg_cv_GTK3_X11_LIBS="$GTK3_X11_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-x11-3.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-x11-3.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK3_X11_LIBS=`$PKG_CONFIG --libs "gtk+-x11-3.0" 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
+	        GTK3_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-x11-3.0"`
+        else
+	        GTK3_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-x11-3.0"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$GTK3_X11_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Gtk X11 integration" >&5
+$as_echo "$as_me: Could not find Gtk X11 integration" >&6;}
+elif test $pkg_failed = untried; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Gtk X11 integration" >&5
+$as_echo "$as_me: Could not find Gtk X11 integration" >&6;}
+else
+	GTK3_X11_CFLAGS=$pkg_cv_GTK3_X11_CFLAGS
+	GTK3_X11_LIBS=$pkg_cv_GTK3_X11_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+        GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
+        GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
+        GDK_WINDOWING="yes"
+
+fi
+    fi
+    if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK3_WAYLAND" >&5
+$as_echo_n "checking for GTK3_WAYLAND... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GTK3_WAYLAND_CFLAGS"; then
+        pkg_cv_GTK3_WAYLAND_CFLAGS="$GTK3_WAYLAND_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-wayland-3.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-wayland-3.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK3_WAYLAND_CFLAGS=`$PKG_CONFIG --cflags "gtk+-wayland-3.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GTK3_WAYLAND_LIBS"; then
+        pkg_cv_GTK3_WAYLAND_LIBS="$GTK3_WAYLAND_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-wayland-3.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-wayland-3.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK3_WAYLAND_LIBS=`$PKG_CONFIG --libs "gtk+-wayland-3.0" 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
+	        GTK3_WAYLAND_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-wayland-3.0"`
+        else
+	        GTK3_WAYLAND_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-wayland-3.0"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$GTK3_WAYLAND_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Gtk Wayland integration" >&5
+$as_echo "$as_me: Could not find Gtk Wayland integration" >&6;}
+elif test $pkg_failed = untried; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Gtk Wayland integration" >&5
+$as_echo "$as_me: Could not find Gtk Wayland integration" >&6;}
+else
+	GTK3_WAYLAND_CFLAGS=$pkg_cv_GTK3_WAYLAND_CFLAGS
+	GTK3_WAYLAND_LIBS=$pkg_cv_GTK3_WAYLAND_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+        GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
+        GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
+        GDK_WINDOWING="yes"
+
+fi
+    fi
+    if test "x$GDK_WINDOWING" = "xyes" -a "x$HAVE_GST_GL" = "xyes"; then
+
+$as_echo "#define HAVE_GTK3_GL 1" >>confdefs.h
+
+      HAVE_GTK3_GL="yes"
+    fi
+
+fi
+
+
+  LIBS=$gst_check_save_LIBS
+  LDFLAGS=$gst_check_save_LDFLAGS
+  CFLAGS=$gst_check_save_CFLAGS
+  CPPFLAGS=$gst_check_save_CPPFLAGS
+  CXXFLAGS=$gst_check_save_CXXFLAGS
+
+    if test x$HAVE_GTK3 = xno; then
+    USE_GTK3=no
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: gtk" >&5
+$as_echo "$as_me: *** These plugins will be built: gtk" >&6;}
+  fi
+fi
+if test x$USE_GTK3 = xyes; then
+  :
+  if test "xgtk" != "x"; then
+    GST_PLUGINS_YES="\tgtk\n$GST_PLUGINS_YES"
+  fi
+
+$as_echo "#define HAVE_GTK3 /**/" >>confdefs.h
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: gtk" >&5
+$as_echo "$as_me: *** These plugins will not be built: gtk" >&6;}
+  if test "xgtk" != "x"; then
+    GST_PLUGINS_NO="\tgtk\n$GST_PLUGINS_NO"
+  fi
+  :
+fi
+ if test x$USE_GTK3 = xyes; then
+  USE_GTK3_TRUE=
+  USE_GTK3_FALSE='#'
+else
+  USE_GTK3_TRUE='#'
+  USE_GTK3_FALSE=
+fi
+
+
+ if test "x$HAVE_GTK3_GL" = "xyes"; then
+  USE_GTK3_GL_TRUE=
+  USE_GTK3_GL_FALSE='#'
+else
+  USE_GTK3_GL_TRUE='#'
+  USE_GTK3_GL_FALSE=
+fi
+
+
 echo
 { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Jack ***" >&5
 $as_echo "$as_me: *** checking feature: Jack ***" >&6;}
@@ -33000,6 +33591,201 @@ fi
 
 
 
+echo
+{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: lame mp3 encoder library ***" >&5
+$as_echo "$as_me: *** checking feature: lame mp3 encoder library ***" >&6;}
+if test "xlame" != "x"
+then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: lame ***" >&5
+$as_echo "$as_me: *** for plug-ins: lame ***" >&6;}
+fi
+NOUSE=
+if test "x$USE_LAME" = "xno"; then
+  NOUSE="yes"
+fi
+# Check whether --enable-lame was given.
+if test "${enable_lame+set}" = set; then :
+  enableval=$enable_lame;  case "${enableval}" in
+      yes) USE_LAME=yes;;
+      no) USE_LAME=no;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-lame" "$LINENO" 5 ;;
+    esac
+else
+   USE_LAME=yes
+fi
+
+if test "x$NOUSE" = "xyes"; then
+  USE_LAME="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** lame pre-configured not to be built" >&5
+$as_echo "$as_me: WARNING: *** lame pre-configured not to be built" >&2;}
+fi
+NOUSE=
+
+if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " LAME " > /dev/null; then
+  USE_LAME="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** lame not ported" >&5
+$as_echo "$as_me: WARNING: *** lame not ported" >&2;}
+fi
+
+
+if test x$USE_LAME = xyes; then
+
+  gst_check_save_LIBS=$LIBS
+  gst_check_save_LDFLAGS=$LDFLAGS
+  gst_check_save_CFLAGS=$CFLAGS
+  gst_check_save_CPPFLAGS=$CPPFLAGS
+  gst_check_save_CXXFLAGS=$CXXFLAGS
+
+  HAVE_LAME=no
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lame_init in -lmp3lame" >&5
+$as_echo_n "checking for lame_init in -lmp3lame... " >&6; }
+if ${ac_cv_lib_mp3lame_lame_init+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lmp3lame $LIBM $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 lame_init ();
+int
+main ()
+{
+return lame_init ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_mp3lame_lame_init=yes
+else
+  ac_cv_lib_mp3lame_lame_init=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_mp3lame_lame_init" >&5
+$as_echo "$ac_cv_lib_mp3lame_lame_init" >&6; }
+if test "x$ac_cv_lib_mp3lame_lame_init" = xyes; then :
+  HAVE_LAME=yes
+else
+  HAVE_LAME=no
+fi
+
+  if test "x$HAVE_LAME" = "xyes"; then
+    ac_fn_c_check_header_mongrel "$LINENO" "lame/lame.h" "ac_cv_header_lame_lame_h" "$ac_includes_default"
+if test "x$ac_cv_header_lame_lame_h" = xyes; then :
+  :
+else
+  HAVE_LAME=no
+fi
+
+
+    if test "x$HAVE_LAME" = "xyes"; then
+
+    HAVE_LAME="yes"
+    LAME_LIBS="-lmp3lame $LIBM"
+        LAME_CFLAGS=""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <lame/lame.h>
+int
+main ()
+{
+ int preset = MEDIUM
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  LAME_CFLAGS="-DGSTLAME_PRESET"
+else
+  LAME_CFLAGS=""
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <lame/lame.h>
+int
+main ()
+{
+
+        void *ptr = &lame_set_VBR_quality
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  LAME_CFLAGS="$LAME_CFLAGS -DHAVE_LAME_SET_VBR_QUALITY"
+else
+  LAME_CFLAGS="$LAME_CFLAGS"
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
+
+    else
+      :
+    fi
+  else
+    :
+  fi
+
+
+
+
+
+  LIBS=$gst_check_save_LIBS
+  LDFLAGS=$gst_check_save_LDFLAGS
+  CFLAGS=$gst_check_save_CFLAGS
+  CPPFLAGS=$gst_check_save_CPPFLAGS
+  CXXFLAGS=$gst_check_save_CXXFLAGS
+
+    if test x$HAVE_LAME = xno; then
+    USE_LAME=no
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: lame" >&5
+$as_echo "$as_me: *** These plugins will be built: lame" >&6;}
+  fi
+fi
+if test x$USE_LAME = xyes; then
+  :
+  if test "xlame" != "x"; then
+    GST_PLUGINS_YES="\tlame\n$GST_PLUGINS_YES"
+  fi
+
+$as_echo "#define HAVE_LAME /**/" >>confdefs.h
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: lame" >&5
+$as_echo "$as_me: *** These plugins will not be built: lame" >&6;}
+  if test "xlame" != "x"; then
+    GST_PLUGINS_NO="\tlame\n$GST_PLUGINS_NO"
+  fi
+  :
+fi
+ if test x$USE_LAME = xyes; then
+  USE_LAME_TRUE=
+  USE_LAME_FALSE='#'
+else
+  USE_LAME_TRUE='#'
+  USE_LAME_FALSE=
+fi
+
+
+
 echo
 { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: libcaca coloured ASCII art ***" >&5
 $as_echo "$as_me: *** checking feature: libcaca coloured ASCII art ***" >&6;}
@@ -33508,6 +34294,83 @@ $as_echo "yes" >&6; }
 fi
 
 
+  if test $HAVE_LIBPNG = "yes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBPNG_1_5" >&5
+$as_echo_n "checking for LIBPNG_1_5... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$LIBPNG_1_5_CFLAGS"; then
+        pkg_cv_LIBPNG_1_5_CFLAGS="$LIBPNG_1_5_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng >= 1.5.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libpng >= 1.5.1") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBPNG_1_5_CFLAGS=`$PKG_CONFIG --cflags "libpng >= 1.5.1" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$LIBPNG_1_5_LIBS"; then
+        pkg_cv_LIBPNG_1_5_LIBS="$LIBPNG_1_5_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng >= 1.5.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libpng >= 1.5.1") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBPNG_1_5_LIBS=`$PKG_CONFIG --libs "libpng >= 1.5.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
+	        LIBPNG_1_5_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpng >= 1.5.1"`
+        else
+	        LIBPNG_1_5_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpng >= 1.5.1"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$LIBPNG_1_5_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                true
+elif test $pkg_failed = untried; then
+	true
+else
+	LIBPNG_1_5_CFLAGS=$pkg_cv_LIBPNG_1_5_CFLAGS
+	LIBPNG_1_5_LIBS=$pkg_cv_LIBPNG_1_5_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+
+$as_echo "#define HAVE_LIBPNG_1_5 1" >>confdefs.h
+
+
+fi
+  fi
 
 
   LIBS=$gst_check_save_LIBS
@@ -33549,6 +34412,167 @@ fi
 
 
 
+echo
+{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: mpg123 audio decoder ***" >&5
+$as_echo "$as_me: *** checking feature: mpg123 audio decoder ***" >&6;}
+if test "xmpg123" != "x"
+then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: mpg123 ***" >&5
+$as_echo "$as_me: *** for plug-ins: mpg123 ***" >&6;}
+fi
+NOUSE=
+if test "x$USE_MPG123" = "xno"; then
+  NOUSE="yes"
+fi
+# Check whether --enable-mpg123 was given.
+if test "${enable_mpg123+set}" = set; then :
+  enableval=$enable_mpg123;  case "${enableval}" in
+      yes) USE_MPG123=yes;;
+      no) USE_MPG123=no;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-mpg123" "$LINENO" 5 ;;
+    esac
+else
+   USE_MPG123=yes
+fi
+
+if test "x$NOUSE" = "xyes"; then
+  USE_MPG123="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** mpg123 pre-configured not to be built" >&5
+$as_echo "$as_me: WARNING: *** mpg123 pre-configured not to be built" >&2;}
+fi
+NOUSE=
+
+if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " MPG123 " > /dev/null; then
+  USE_MPG123="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** mpg123 not ported" >&5
+$as_echo "$as_me: WARNING: *** mpg123 not ported" >&2;}
+fi
+
+
+if test x$USE_MPG123 = xyes; then
+
+  gst_check_save_LIBS=$LIBS
+  gst_check_save_LDFLAGS=$LDFLAGS
+  gst_check_save_CFLAGS=$CFLAGS
+  gst_check_save_CPPFLAGS=$CPPFLAGS
+  gst_check_save_CXXFLAGS=$CXXFLAGS
+
+  HAVE_MPG123=no
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPG123" >&5
+$as_echo_n "checking for MPG123... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$MPG123_CFLAGS"; then
+        pkg_cv_MPG123_CFLAGS="$MPG123_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmpg123 >= 1.13\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libmpg123 >= 1.13") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_MPG123_CFLAGS=`$PKG_CONFIG --cflags "libmpg123 >= 1.13" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$MPG123_LIBS"; then
+        pkg_cv_MPG123_LIBS="$MPG123_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmpg123 >= 1.13\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libmpg123 >= 1.13") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_MPG123_LIBS=`$PKG_CONFIG --libs "libmpg123 >= 1.13" 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
+	        MPG123_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libmpg123 >= 1.13"`
+        else
+	        MPG123_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libmpg123 >= 1.13"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$MPG123_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                HAVE_MPG123="no"
+elif test $pkg_failed = untried; then
+	HAVE_MPG123="no"
+else
+	MPG123_CFLAGS=$pkg_cv_MPG123_CFLAGS
+	MPG123_LIBS=$pkg_cv_MPG123_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	HAVE_MPG123="yes"
+fi
+
+
+
+
+  LIBS=$gst_check_save_LIBS
+  LDFLAGS=$gst_check_save_LDFLAGS
+  CFLAGS=$gst_check_save_CFLAGS
+  CPPFLAGS=$gst_check_save_CPPFLAGS
+  CXXFLAGS=$gst_check_save_CXXFLAGS
+
+    if test x$HAVE_MPG123 = xno; then
+    USE_MPG123=no
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: mpg123" >&5
+$as_echo "$as_me: *** These plugins will be built: mpg123" >&6;}
+  fi
+fi
+if test x$USE_MPG123 = xyes; then
+  :
+  if test "xmpg123" != "x"; then
+    GST_PLUGINS_YES="\tmpg123\n$GST_PLUGINS_YES"
+  fi
+
+$as_echo "#define HAVE_MPG123 /**/" >>confdefs.h
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: mpg123" >&5
+$as_echo "$as_me: *** These plugins will not be built: mpg123" >&6;}
+  if test "xmpg123" != "x"; then
+    GST_PLUGINS_NO="\tmpg123\n$GST_PLUGINS_NO"
+  fi
+  :
+fi
+ if test x$USE_MPG123 = xyes; then
+  USE_MPG123_TRUE=
+  USE_MPG123_FALSE='#'
+else
+  USE_MPG123_TRUE='#'
+  USE_MPG123_FALSE=
+fi
+
+
+
 echo
 { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: pulseaudio plug-in ***" >&5
 $as_echo "$as_me: *** checking feature: pulseaudio plug-in ***" >&6;}
@@ -34407,6 +35431,782 @@ else
 fi
 
 
+echo
+{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Qt elements ***" >&5
+$as_echo "$as_me: *** checking feature: Qt elements ***" >&6;}
+if test "xqt" != "x"
+then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: qt ***" >&5
+$as_echo "$as_me: *** for plug-ins: qt ***" >&6;}
+fi
+NOUSE=
+if test "x$USE_QT" = "xno"; then
+  NOUSE="yes"
+fi
+# Check whether --enable-qt was given.
+if test "${enable_qt+set}" = set; then :
+  enableval=$enable_qt;  case "${enableval}" in
+      yes) USE_QT=yes;;
+      no) USE_QT=no;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-qt" "$LINENO" 5 ;;
+    esac
+else
+   USE_QT=yes
+fi
+
+if test "x$NOUSE" = "xyes"; then
+  USE_QT="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** qt pre-configured not to be built" >&5
+$as_echo "$as_me: WARNING: *** qt pre-configured not to be built" >&2;}
+fi
+NOUSE=
+
+if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " QT " > /dev/null; then
+  USE_QT="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** qt not ported" >&5
+$as_echo "$as_me: WARNING: *** qt not ported" >&2;}
+fi
+
+
+if test x$USE_QT = xyes; then
+
+  gst_check_save_LIBS=$LIBS
+  gst_check_save_LDFLAGS=$LDFLAGS
+  gst_check_save_CFLAGS=$CFLAGS
+  gst_check_save_CPPFLAGS=$CPPFLAGS
+  gst_check_save_CXXFLAGS=$CXXFLAGS
+
+  HAVE_QT=no
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT" >&5
+$as_echo_n "checking for QT... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_CFLAGS"; then
+        pkg_cv_QT_CFLAGS="$QT_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_CFLAGS=`$PKG_CONFIG --cflags "Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_LIBS"; then
+        pkg_cv_QT_LIBS="$QT_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_LIBS=`$PKG_CONFIG --libs "Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0" 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
+	        QT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0"`
+        else
+	        QT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$QT_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+      HAVE_QT="no"
+
+elif test $pkg_failed = untried; then
+
+      HAVE_QT="no"
+
+else
+	QT_CFLAGS=$pkg_cv_QT_CFLAGS
+	QT_LIBS=$pkg_cv_QT_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+      QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
+      QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
+
+# Check whether --with-moc was given.
+if test "${with_moc+set}" = set; then :
+  withval=$with_moc; MOC=$withval
+fi
+
+      for ac_prog in moc-qt5 moc
+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_MOC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MOC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MOC="$MOC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in "${QT_HOST_PATH}" "${QT_PATH}/bin"
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_MOC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MOC=$ac_cv_path_MOC
+if test -n "$MOC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5
+$as_echo "$MOC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$MOC" && break
+done
+test -n "$MOC" || MOC="moc"
+
+
+# Check whether --with-rcc was given.
+if test "${with_rcc+set}" = set; then :
+  withval=$with_rcc; RCC=$withval
+fi
+
+      for ac_prog in rcc-qt5 rcc
+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_RCC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $RCC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_RCC="$RCC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in "${QT_HOST_PATH}" "${QT_PATH}/bin"
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_RCC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+RCC=$ac_cv_path_RCC
+if test -n "$RCC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RCC" >&5
+$as_echo "$RCC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$RCC" && break
+done
+test -n "$RCC" || RCC="rcc"
+
+
+# Check whether --with-uic was given.
+if test "${with_uic+set}" = set; then :
+  withval=$with_uic; UIC=$withval
+fi
+
+      for ac_prog in uic-qt5 uic
+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_UIC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $UIC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_UIC="$UIC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in "${QT_HOST_PATH}" "${QT_PATH}/bin"
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_UIC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+UIC=$ac_cv_path_UIC
+if test -n "$UIC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UIC" >&5
+$as_echo "$UIC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$UIC" && break
+done
+test -n "$UIC" || UIC="uic"
+
+      if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: One of the required qt build programs was not found" >&5
+$as_echo "$as_me: WARNING: One of the required qt build programs was not found" >&2;}
+        HAVE_QT="no"
+      else
+        HAVE_QT="yes"
+        HAVE_QT_WINDOWING="no"
+        QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
+        QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
+        if test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"; then :
+
+          QT_CFLAGS="$QT_CFLAGS -I$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH"
+          HAVE_QT_QPA_HEADER="yes"
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: Cannot find QPA" >&5
+$as_echo "$as_me: Cannot find QPA" >&6;}
+fi
+        if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1" || test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT_X11" >&5
+$as_echo_n "checking for QT_X11... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_X11_CFLAGS"; then
+        pkg_cv_QT_X11_CFLAGS="$QT_X11_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5X11Extras\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5X11Extras") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_X11_CFLAGS=`$PKG_CONFIG --cflags "Qt5X11Extras" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_X11_LIBS"; then
+        pkg_cv_QT_X11_LIBS="$QT_X11_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5X11Extras\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5X11Extras") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_X11_LIBS=`$PKG_CONFIG --libs "Qt5X11Extras" 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
+	        QT_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "Qt5X11Extras"`
+        else
+	        QT_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "Qt5X11Extras"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$QT_X11_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Qt X11 integration" >&5
+$as_echo "$as_me: Could not find Qt X11 integration" >&6;}
+elif test $pkg_failed = untried; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Qt X11 integration" >&5
+$as_echo "$as_me: Could not find Qt X11 integration" >&6;}
+else
+	QT_X11_CFLAGS=$pkg_cv_QT_X11_CFLAGS
+	QT_X11_LIBS=$pkg_cv_QT_X11_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+
+$as_echo "#define HAVE_QT_X11 /**/" >>confdefs.h
+
+            QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
+            QT_LIBS="$QT_LIBS $QT_X11_LIBS"
+            HAVE_QT_WINDOWING="yes"
+
+fi
+        fi
+        if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1" -a "x$HAVE_QT_QPA_HEADER" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT_WAYLAND" >&5
+$as_echo_n "checking for QT_WAYLAND... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_WAYLAND_CFLAGS"; then
+        pkg_cv_QT_WAYLAND_CFLAGS="$QT_WAYLAND_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5WaylandClient\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5WaylandClient") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_WAYLAND_CFLAGS=`$PKG_CONFIG --cflags "Qt5WaylandClient" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_WAYLAND_LIBS"; then
+        pkg_cv_QT_WAYLAND_LIBS="$QT_WAYLAND_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5WaylandClient\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5WaylandClient") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_WAYLAND_LIBS=`$PKG_CONFIG --libs "Qt5WaylandClient" 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
+	        QT_WAYLAND_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "Qt5WaylandClient"`
+        else
+	        QT_WAYLAND_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "Qt5WaylandClient"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$QT_WAYLAND_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Qt Wayland integration" >&5
+$as_echo "$as_me: Could not find Qt Wayland integration" >&6;}
+elif test $pkg_failed = untried; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Qt Wayland integration" >&5
+$as_echo "$as_me: Could not find Qt Wayland integration" >&6;}
+else
+	QT_WAYLAND_CFLAGS=$pkg_cv_QT_WAYLAND_CFLAGS
+	QT_WAYLAND_LIBS=$pkg_cv_QT_WAYLAND_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+
+$as_echo "#define HAVE_QT_WAYLAND /**/" >>confdefs.h
+
+            QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
+            QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
+            HAVE_QT_WINDOWING="yes"
+
+fi
+        fi
+        if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
+          if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT_ANDROID" >&5
+$as_echo_n "checking for QT_ANDROID... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_ANDROID_CFLAGS"; then
+        pkg_cv_QT_ANDROID_CFLAGS="$QT_ANDROID_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5AndroidExtras\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5AndroidExtras") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_ANDROID_CFLAGS=`$PKG_CONFIG --cflags "Qt5AndroidExtras" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_ANDROID_LIBS"; then
+        pkg_cv_QT_ANDROID_LIBS="$QT_ANDROID_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5AndroidExtras\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5AndroidExtras") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_ANDROID_LIBS=`$PKG_CONFIG --libs "Qt5AndroidExtras" 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
+	        QT_ANDROID_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "Qt5AndroidExtras"`
+        else
+	        QT_ANDROID_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "Qt5AndroidExtras"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$QT_ANDROID_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Qt Android integration" >&5
+$as_echo "$as_me: Could not find Qt Android integration" >&6;}
+elif test $pkg_failed = untried; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Qt Android integration" >&5
+$as_echo "$as_me: Could not find Qt Android integration" >&6;}
+else
+	QT_ANDROID_CFLAGS=$pkg_cv_QT_ANDROID_CFLAGS
+	QT_ANDROID_LIBS=$pkg_cv_QT_ANDROID_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+              # c++ on android requires a standard library and there are multiple
+              # choices.  cerbero provides a pkg-config file the describes a choice
+              # so try to use that.  Outside cerbero one has to pass these flags
+              # manually for the library one is using
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNUSTL" >&5
+$as_echo_n "checking for GNUSTL... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GNUSTL_CFLAGS"; then
+        pkg_cv_GNUSTL_CFLAGS="$GNUSTL_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnustl\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gnustl") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GNUSTL_CFLAGS=`$PKG_CONFIG --cflags "gnustl" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GNUSTL_LIBS"; then
+        pkg_cv_GNUSTL_LIBS="$GNUSTL_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnustl\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gnustl") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GNUSTL_LIBS=`$PKG_CONFIG --libs "gnustl" 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
+	        GNUSTL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gnustl"`
+        else
+	        GNUSTL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gnustl"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$GNUSTL_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Standard C++ library" >&5
+$as_echo "$as_me: Could not find Standard C++ library" >&6;}
+elif test $pkg_failed = untried; then
+
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Standard C++ library" >&5
+$as_echo "$as_me: Could not find Standard C++ library" >&6;}
+else
+	GNUSTL_CFLAGS=$pkg_cv_GNUSTL_CFLAGS
+	GNUSTL_LIBS=$pkg_cv_GNUSTL_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+                QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
+                QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
+
+fi
+
+$as_echo "#define HAVE_QT_EGLFS /**/" >>confdefs.h
+
+              QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
+              QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
+              HAVE_QT_WINDOWING="yes"
+
+fi
+          else
+
+$as_echo "#define HAVE_QT_EGLFS /**/" >>confdefs.h
+
+              HAVE_QT_WINDOWING="yes"
+          fi
+        fi
+        if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT_MAC" >&5
+$as_echo_n "checking for QT_MAC... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_MAC_CFLAGS"; then
+        pkg_cv_QT_MAC_CFLAGS="$QT_MAC_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5MacExtras\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5MacExtras") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_MAC_CFLAGS=`$PKG_CONFIG --cflags "Qt5MacExtras" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_MAC_LIBS"; then
+        pkg_cv_QT_MAC_LIBS="$QT_MAC_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5MacExtras\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5MacExtras") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_MAC_LIBS=`$PKG_CONFIG --libs "Qt5MacExtras" 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
+	        QT_MAC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "Qt5MacExtras"`
+        else
+	        QT_MAC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "Qt5MacExtras"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$QT_MAC_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Qt Mac integration" >&5
+$as_echo "$as_me: Could not find Qt Mac integration" >&6;}
+elif test $pkg_failed = untried; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Qt Mac integration" >&5
+$as_echo "$as_me: Could not find Qt Mac integration" >&6;}
+else
+	QT_MAC_CFLAGS=$pkg_cv_QT_MAC_CFLAGS
+	QT_MAC_LIBS=$pkg_cv_QT_MAC_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+
+$as_echo "#define HAVE_QT_MAC /**/" >>confdefs.h
+
+            QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
+            QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
+            QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
+            HAVE_QT_WINDOWING="yes"
+
+fi
+        fi
+        if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
+          if test "x$HAVE_IOS" = "xyes"; then
+            # iOS doesn't have its own extras package so if we have the core
+            # modules we are good to go
+
+$as_echo "#define HAVE_QT_IOS /**/" >>confdefs.h
+
+            HAVE_QT_WINDOWING="yes"
+          fi
+        fi
+        if test "x$HAVE_QT_WINDOWING" = "xno"; then
+          { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find any Qt Windowing integration" >&5
+$as_echo "$as_me: WARNING: Could not find any Qt Windowing integration" >&2;}
+          HAVE_QT="no"
+        fi
+
+
+      fi
+
+fi
+
+
+  LIBS=$gst_check_save_LIBS
+  LDFLAGS=$gst_check_save_LDFLAGS
+  CFLAGS=$gst_check_save_CFLAGS
+  CPPFLAGS=$gst_check_save_CPPFLAGS
+  CXXFLAGS=$gst_check_save_CXXFLAGS
+
+    if test x$HAVE_QT = xno; then
+    USE_QT=no
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: qt" >&5
+$as_echo "$as_me: *** These plugins will be built: qt" >&6;}
+  fi
+fi
+if test x$USE_QT = xyes; then
+  :
+  if test "xqt" != "x"; then
+    GST_PLUGINS_YES="\tqt\n$GST_PLUGINS_YES"
+  fi
+
+$as_echo "#define HAVE_QT /**/" >>confdefs.h
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: qt" >&5
+$as_echo "$as_me: *** These plugins will not be built: qt" >&6;}
+  if test "xqt" != "x"; then
+    GST_PLUGINS_NO="\tqt\n$GST_PLUGINS_NO"
+  fi
+  :
+fi
+ if test x$USE_QT = xyes; then
+  USE_QT_TRUE=
+  USE_QT_FALSE='#'
+else
+  USE_QT_TRUE='#'
+  USE_QT_FALSE=
+fi
+
+
+
 echo
 { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Shoutcast/Icecast client library ***" >&5
 $as_echo "$as_me: *** checking feature: Shoutcast/Icecast client library ***" >&6;}
@@ -35181,6 +36981,173 @@ fi
 
 
 
+echo
+{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: twolame ***" >&5
+$as_echo "$as_me: *** checking feature: twolame ***" >&6;}
+if test "xtwolame" != "x"
+then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: twolame ***" >&5
+$as_echo "$as_me: *** for plug-ins: twolame ***" >&6;}
+fi
+NOUSE=
+if test "x$USE_TWOLAME" = "xno"; then
+  NOUSE="yes"
+fi
+# Check whether --enable-twolame was given.
+if test "${enable_twolame+set}" = set; then :
+  enableval=$enable_twolame;  case "${enableval}" in
+      yes) USE_TWOLAME=yes;;
+      no) USE_TWOLAME=no;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-twolame" "$LINENO" 5 ;;
+    esac
+else
+   USE_TWOLAME=yes
+fi
+
+if test "x$NOUSE" = "xyes"; then
+  USE_TWOLAME="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** twolame pre-configured not to be built" >&5
+$as_echo "$as_me: WARNING: *** twolame pre-configured not to be built" >&2;}
+fi
+NOUSE=
+
+if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " TWOLAME " > /dev/null; then
+  USE_TWOLAME="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** twolame not ported" >&5
+$as_echo "$as_me: WARNING: *** twolame not ported" >&2;}
+fi
+
+
+if test x$USE_TWOLAME = xyes; then
+
+  gst_check_save_LIBS=$LIBS
+  gst_check_save_LDFLAGS=$LDFLAGS
+  gst_check_save_CFLAGS=$CFLAGS
+  gst_check_save_CPPFLAGS=$CPPFLAGS
+  gst_check_save_CXXFLAGS=$CXXFLAGS
+
+  HAVE_TWOLAME=no
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TWOLAME" >&5
+$as_echo_n "checking for TWOLAME... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$TWOLAME_CFLAGS"; then
+        pkg_cv_TWOLAME_CFLAGS="$TWOLAME_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"twolame >= 0.3.10\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "twolame >= 0.3.10") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_TWOLAME_CFLAGS=`$PKG_CONFIG --cflags "twolame >= 0.3.10" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$TWOLAME_LIBS"; then
+        pkg_cv_TWOLAME_LIBS="$TWOLAME_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"twolame >= 0.3.10\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "twolame >= 0.3.10") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_TWOLAME_LIBS=`$PKG_CONFIG --libs "twolame >= 0.3.10" 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
+	        TWOLAME_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "twolame >= 0.3.10"`
+        else
+	        TWOLAME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "twolame >= 0.3.10"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$TWOLAME_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+      HAVE_TWOLAME="no"
+
+elif test $pkg_failed = untried; then
+
+      HAVE_TWOLAME="no"
+
+else
+	TWOLAME_CFLAGS=$pkg_cv_TWOLAME_CFLAGS
+	TWOLAME_LIBS=$pkg_cv_TWOLAME_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+      HAVE_TWOLAME="yes"
+fi
+
+
+
+
+  LIBS=$gst_check_save_LIBS
+  LDFLAGS=$gst_check_save_LDFLAGS
+  CFLAGS=$gst_check_save_CFLAGS
+  CPPFLAGS=$gst_check_save_CPPFLAGS
+  CXXFLAGS=$gst_check_save_CXXFLAGS
+
+    if test x$HAVE_TWOLAME = xno; then
+    USE_TWOLAME=no
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: twolame" >&5
+$as_echo "$as_me: *** These plugins will be built: twolame" >&6;}
+  fi
+fi
+if test x$USE_TWOLAME = xyes; then
+  :
+  if test "xtwolame" != "x"; then
+    GST_PLUGINS_YES="\ttwolame\n$GST_PLUGINS_YES"
+  fi
+
+$as_echo "#define HAVE_TWOLAME /**/" >>confdefs.h
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: twolame" >&5
+$as_echo "$as_me: *** These plugins will not be built: twolame" >&6;}
+  if test "xtwolame" != "x"; then
+    GST_PLUGINS_NO="\ttwolame\n$GST_PLUGINS_NO"
+  fi
+  :
+fi
+ if test x$USE_TWOLAME = xyes; then
+  USE_TWOLAME_TRUE=
+  USE_TWOLAME_FALSE='#'
+else
+  USE_TWOLAME_TRUE='#'
+  USE_TWOLAME_FALSE=
+fi
+
+
+
+
 echo
 { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: VPX decoder ***" >&5
 $as_echo "$as_me: *** checking feature: VPX decoder ***" >&6;}
@@ -36192,6 +38159,22 @@ else
   USE_GDK_PIXBUF_FALSE=
 fi
 
+ if false; then
+  USE_GTK3_TRUE=
+  USE_GTK3_FALSE='#'
+else
+  USE_GTK3_TRUE='#'
+  USE_GTK3_FALSE=
+fi
+
+ if false; then
+  USE_GTK3_GL_TRUE=
+  USE_GTK3_GL_FALSE='#'
+else
+  USE_GTK3_GL_TRUE='#'
+  USE_GTK3_GL_FALSE=
+fi
+
  if false; then
   USE_JACK_TRUE=
   USE_JACK_FALSE='#'
@@ -36208,6 +38191,14 @@ else
   USE_JPEG_FALSE=
 fi
 
+ if false; then
+  USE_LAME_TRUE=
+  USE_LAME_FALSE='#'
+else
+  USE_LAME_TRUE='#'
+  USE_LAME_FALSE=
+fi
+
  if false; then
   USE_LIBCACA_TRUE=
   USE_LIBCACA_FALSE='#'
@@ -36240,6 +38231,14 @@ else
   USE_LIBPNG_FALSE=
 fi
 
+ if false; then
+  USE_MPG123_TRUE=
+  USE_MPG123_FALSE='#'
+else
+  USE_MPG123_TRUE='#'
+  USE_MPG123_FALSE=
+fi
+
  if false; then
   USE_OSS_TRUE=
   USE_OSS_FALSE='#'
@@ -36280,6 +38279,14 @@ else
   USE_PULSE_FALSE=
 fi
 
+ if false; then
+  USE_QT_TRUE=
+  USE_QT_FALSE='#'
+else
+  USE_QT_TRUE='#'
+  USE_QT_FALSE=
+fi
+
  if false; then
   USE_SHOUT2_TRUE=
   USE_SHOUT2_FALSE='#'
@@ -36304,14 +38311,6 @@ else
   USE_SPEEX_FALSE=
 fi
 
- if false; then
-  USE_SUNAUDIO_TRUE=
-  USE_SUNAUDIO_FALSE='#'
-else
-  USE_SUNAUDIO_TRUE='#'
-  USE_SUNAUDIO_FALSE=
-fi
-
  if false; then
   USE_TAGLIB_TRUE=
   USE_TAGLIB_FALSE='#'
@@ -36320,6 +38319,14 @@ else
   USE_TAGLIB_FALSE=
 fi
 
+ if false; then
+  USE_TWOLAME_TRUE=
+  USE_TWOLAME_FALSE='#'
+else
+  USE_TWOLAME_TRUE='#'
+  USE_TWOLAME_FALSE=
+fi
+
  if false; then
   USE_VPX_TRUE=
   USE_VPX_FALSE='#'
@@ -36376,6 +38383,141 @@ else
 fi
 
 
+VISIBILITY_CFLAGS=""
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -fvisibility=hidden" >&5
+$as_echo_n "checking to see if compiler understands -fvisibility=hidden... " >&6; }
+
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -fvisibility=hidden"
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  flag_ok=yes
+else
+  flag_ok=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CFLAGS="$save_CFLAGS"
+
+  if test "X$flag_ok" = Xyes ; then
+    VISIBILITY_CFLAGS="-fvisibility=hidden"
+    true
+  else
+
+    true
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
+$as_echo "$flag_ok" >&6; }
+
+
+
+VISIBILITY_CXXFLAGS=""
+if test "x$HAVE_CXX" = "xyes"; then
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if c++ compiler understands -fvisibility=hidden" >&5
+$as_echo_n "checking to see if c++ compiler understands -fvisibility=hidden... " >&6; }
+
+  save_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="$CPPFLAGS -fvisibility=hidden"
+
+  ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  flag_ok=yes
+else
+  flag_ok=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CPPFLAGS="$save_CPPFLAGS"
+
+  if test "X$flag_ok" = Xyes ; then
+    VISIBILITY_CXXFLAGS="-fvisibility=hidden"
+    true
+  else
+
+    true
+  fi
+
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
+$as_echo "$flag_ok" >&6; }
+
+fi
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -fno-strict-aliasing" >&5
+$as_echo_n "checking to see if compiler understands -fno-strict-aliasing... " >&6; }
+
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  flag_ok=yes
+else
+  flag_ok=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CFLAGS="$save_CFLAGS"
+
+  if test "X$flag_ok" = Xyes ; then
+    EXTRA_CFLAGS="-fno-strict-aliasing"
+    true
+  else
+
+    true
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
+$as_echo "$flag_ok" >&6; }
+
+
+
 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
@@ -36386,9 +38528,9 @@ GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS)
 
 
 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
-GST_CXXFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
-GST_OBJCFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
-GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
+GST_CXXFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)"
+GST_OBJCFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
+GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)"
 
 
 
@@ -36400,13 +38542,13 @@ if test "x${enable_Bsymbolic}" = "xyes"; then
 fi
 
 
-GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^_*gst_plugin_.*' $GST_ALL_LDFLAGS"
+GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
 
 
 
 $MKDIR_P tests/check/orc
 
-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/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"
+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/gtk/Makefile ext/jack/Makefile ext/jpeg/Makefile ext/lame/Makefile ext/libcaca/Makefile ext/libpng/Makefile ext/mpg123/Makefile ext/pulse/Makefile ext/qt/Makefile ext/raw1394/Makefile ext/shout2/Makefile ext/soup/Makefile ext/speex/Makefile ext/taglib/Makefile ext/twolame/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/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/gtk/Makefile tests/examples/jack/Makefile tests/examples/level/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"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -36699,10 +38841,6 @@ if test -z "${HAVE_GTK_X11_TRUE}" && test -z "${HAVE_GTK_X11_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_GTK_X11\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${GST_PLUGIN_BUILD_STATIC_TRUE}" && test -z "${GST_PLUGIN_BUILD_STATIC_FALSE}"; then
-  as_fn_error $? "conditional \"GST_PLUGIN_BUILD_STATIC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${USE_PLUGIN_ALPHA_TRUE}" && test -z "${USE_PLUGIN_ALPHA_FALSE}"; then
   as_fn_error $? "conditional \"USE_PLUGIN_ALPHA\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36895,10 +39033,6 @@ if test -z "${USE_OSS4_TRUE}" && test -z "${USE_OSS4_FALSE}"; then
   as_fn_error $? "conditional \"USE_OSS4\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${USE_SUNAUDIO_TRUE}" && test -z "${USE_SUNAUDIO_FALSE}"; then
-  as_fn_error $? "conditional \"USE_SUNAUDIO\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${USE_OSX_AUDIO_TRUE}" && test -z "${USE_OSX_AUDIO_FALSE}"; then
   as_fn_error $? "conditional \"USE_OSX_AUDIO\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36935,6 +39069,14 @@ if test -z "${USE_GDK_PIXBUF_TRUE}" && test -z "${USE_GDK_PIXBUF_FALSE}"; then
   as_fn_error $? "conditional \"USE_GDK_PIXBUF\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_GTK3_TRUE}" && test -z "${USE_GTK3_FALSE}"; then
+  as_fn_error $? "conditional \"USE_GTK3\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_GTK3_GL_TRUE}" && test -z "${USE_GTK3_GL_FALSE}"; then
+  as_fn_error $? "conditional \"USE_GTK3_GL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_JACK_TRUE}" && test -z "${USE_JACK_FALSE}"; then
   as_fn_error $? "conditional \"USE_JACK\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36943,6 +39085,10 @@ if test -z "${USE_JPEG_TRUE}" && test -z "${USE_JPEG_FALSE}"; then
   as_fn_error $? "conditional \"USE_JPEG\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_LAME_TRUE}" && test -z "${USE_LAME_FALSE}"; then
+  as_fn_error $? "conditional \"USE_LAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_LIBCACA_TRUE}" && test -z "${USE_LIBCACA_FALSE}"; then
   as_fn_error $? "conditional \"USE_LIBCACA\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36955,6 +39101,10 @@ if test -z "${USE_LIBPNG_TRUE}" && test -z "${USE_LIBPNG_FALSE}"; then
   as_fn_error $? "conditional \"USE_LIBPNG\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_MPG123_TRUE}" && test -z "${USE_MPG123_FALSE}"; then
+  as_fn_error $? "conditional \"USE_MPG123\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_PULSE_TRUE}" && test -z "${USE_PULSE_FALSE}"; then
   as_fn_error $? "conditional \"USE_PULSE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36967,6 +39117,10 @@ if test -z "${USE_LIBIEC61883_TRUE}" && test -z "${USE_LIBIEC61883_FALSE}"; then
   as_fn_error $? "conditional \"USE_LIBIEC61883\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_QT_TRUE}" && test -z "${USE_QT_FALSE}"; then
+  as_fn_error $? "conditional \"USE_QT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_SHOUT2_TRUE}" && test -z "${USE_SHOUT2_FALSE}"; then
   as_fn_error $? "conditional \"USE_SHOUT2\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36983,6 +39137,10 @@ if test -z "${USE_TAGLIB_TRUE}" && test -z "${USE_TAGLIB_FALSE}"; then
   as_fn_error $? "conditional \"USE_TAGLIB\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_TWOLAME_TRUE}" && test -z "${USE_TWOLAME_FALSE}"; then
+  as_fn_error $? "conditional \"USE_TWOLAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_VPX_TRUE}" && test -z "${USE_VPX_FALSE}"; then
   as_fn_error $? "conditional \"USE_VPX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -37027,6 +39185,14 @@ if test -z "${USE_GDK_PIXBUF_TRUE}" && test -z "${USE_GDK_PIXBUF_FALSE}"; then
   as_fn_error $? "conditional \"USE_GDK_PIXBUF\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_GTK3_TRUE}" && test -z "${USE_GTK3_FALSE}"; then
+  as_fn_error $? "conditional \"USE_GTK3\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_GTK3_GL_TRUE}" && test -z "${USE_GTK3_GL_FALSE}"; then
+  as_fn_error $? "conditional \"USE_GTK3_GL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_JACK_TRUE}" && test -z "${USE_JACK_FALSE}"; then
   as_fn_error $? "conditional \"USE_JACK\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -37035,6 +39201,10 @@ if test -z "${USE_JPEG_TRUE}" && test -z "${USE_JPEG_FALSE}"; then
   as_fn_error $? "conditional \"USE_JPEG\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_LAME_TRUE}" && test -z "${USE_LAME_FALSE}"; then
+  as_fn_error $? "conditional \"USE_LAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_LIBCACA_TRUE}" && test -z "${USE_LIBCACA_FALSE}"; then
   as_fn_error $? "conditional \"USE_LIBCACA\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -37051,6 +39221,10 @@ if test -z "${USE_LIBPNG_TRUE}" && test -z "${USE_LIBPNG_FALSE}"; then
   as_fn_error $? "conditional \"USE_LIBPNG\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_MPG123_TRUE}" && test -z "${USE_MPG123_FALSE}"; then
+  as_fn_error $? "conditional \"USE_MPG123\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_OSS_TRUE}" && test -z "${USE_OSS_FALSE}"; then
   as_fn_error $? "conditional \"USE_OSS\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -37071,6 +39245,10 @@ if test -z "${USE_PULSE_TRUE}" && test -z "${USE_PULSE_FALSE}"; then
   as_fn_error $? "conditional \"USE_PULSE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_QT_TRUE}" && test -z "${USE_QT_FALSE}"; then
+  as_fn_error $? "conditional \"USE_QT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_SHOUT2_TRUE}" && test -z "${USE_SHOUT2_FALSE}"; then
   as_fn_error $? "conditional \"USE_SHOUT2\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -37083,14 +39261,14 @@ if test -z "${USE_SPEEX_TRUE}" && test -z "${USE_SPEEX_FALSE}"; then
   as_fn_error $? "conditional \"USE_SPEEX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${USE_SUNAUDIO_TRUE}" && test -z "${USE_SUNAUDIO_FALSE}"; then
-  as_fn_error $? "conditional \"USE_SUNAUDIO\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${USE_TAGLIB_TRUE}" && test -z "${USE_TAGLIB_FALSE}"; then
   as_fn_error $? "conditional \"USE_TAGLIB\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_TWOLAME_TRUE}" && test -z "${USE_TWOLAME_FALSE}"; then
+  as_fn_error $? "conditional \"USE_TWOLAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_VPX_TRUE}" && test -z "${USE_VPX_FALSE}"; then
   as_fn_error $? "conditional \"USE_VPX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -37508,7 +39686,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.12.4, which was
+This file was extended by GStreamer Good Plug-ins $as_me 1.13.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -37574,7 +39752,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.12.4
+GStreamer Good Plug-ins config.status 1.13.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -38167,16 +40345,21 @@ do
     "ext/dv/Makefile") CONFIG_FILES="$CONFIG_FILES ext/dv/Makefile" ;;
     "ext/flac/Makefile") CONFIG_FILES="$CONFIG_FILES ext/flac/Makefile" ;;
     "ext/gdk_pixbuf/Makefile") CONFIG_FILES="$CONFIG_FILES ext/gdk_pixbuf/Makefile" ;;
+    "ext/gtk/Makefile") CONFIG_FILES="$CONFIG_FILES ext/gtk/Makefile" ;;
     "ext/jack/Makefile") CONFIG_FILES="$CONFIG_FILES ext/jack/Makefile" ;;
     "ext/jpeg/Makefile") CONFIG_FILES="$CONFIG_FILES ext/jpeg/Makefile" ;;
+    "ext/lame/Makefile") CONFIG_FILES="$CONFIG_FILES ext/lame/Makefile" ;;
     "ext/libcaca/Makefile") CONFIG_FILES="$CONFIG_FILES ext/libcaca/Makefile" ;;
     "ext/libpng/Makefile") CONFIG_FILES="$CONFIG_FILES ext/libpng/Makefile" ;;
+    "ext/mpg123/Makefile") CONFIG_FILES="$CONFIG_FILES ext/mpg123/Makefile" ;;
     "ext/pulse/Makefile") CONFIG_FILES="$CONFIG_FILES ext/pulse/Makefile" ;;
+    "ext/qt/Makefile") CONFIG_FILES="$CONFIG_FILES ext/qt/Makefile" ;;
     "ext/raw1394/Makefile") CONFIG_FILES="$CONFIG_FILES ext/raw1394/Makefile" ;;
     "ext/shout2/Makefile") CONFIG_FILES="$CONFIG_FILES ext/shout2/Makefile" ;;
     "ext/soup/Makefile") CONFIG_FILES="$CONFIG_FILES ext/soup/Makefile" ;;
     "ext/speex/Makefile") CONFIG_FILES="$CONFIG_FILES ext/speex/Makefile" ;;
     "ext/taglib/Makefile") CONFIG_FILES="$CONFIG_FILES ext/taglib/Makefile" ;;
+    "ext/twolame/Makefile") CONFIG_FILES="$CONFIG_FILES ext/twolame/Makefile" ;;
     "ext/vpx/Makefile") CONFIG_FILES="$CONFIG_FILES ext/vpx/Makefile" ;;
     "ext/wavpack/Makefile") CONFIG_FILES="$CONFIG_FILES ext/wavpack/Makefile" ;;
     "sys/Makefile") CONFIG_FILES="$CONFIG_FILES sys/Makefile" ;;
@@ -38185,7 +40368,6 @@ do
     "sys/oss4/Makefile") CONFIG_FILES="$CONFIG_FILES sys/oss4/Makefile" ;;
     "sys/osxaudio/Makefile") CONFIG_FILES="$CONFIG_FILES sys/osxaudio/Makefile" ;;
     "sys/osxvideo/Makefile") CONFIG_FILES="$CONFIG_FILES sys/osxvideo/Makefile" ;;
-    "sys/sunaudio/Makefile") CONFIG_FILES="$CONFIG_FILES sys/sunaudio/Makefile" ;;
     "sys/v4l2/Makefile") CONFIG_FILES="$CONFIG_FILES sys/v4l2/Makefile" ;;
     "sys/waveform/Makefile") CONFIG_FILES="$CONFIG_FILES sys/waveform/Makefile" ;;
     "sys/ximage/Makefile") CONFIG_FILES="$CONFIG_FILES sys/ximage/Makefile" ;;
@@ -38196,6 +40378,7 @@ do
     "tests/examples/audiofx/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/audiofx/Makefile" ;;
     "tests/examples/cairo/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/cairo/Makefile" ;;
     "tests/examples/equalizer/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/equalizer/Makefile" ;;
+    "tests/examples/gtk/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/gtk/Makefile" ;;
     "tests/examples/jack/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/jack/Makefile" ;;
     "tests/examples/level/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/level/Makefile" ;;
     "tests/examples/rtp/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/rtp/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index 276e5ed75..d95a57219 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@ dnl please read gstreamer/docs/random/autotools before changing this file
 dnl initialize autoconf
 dnl releases only do -Wall, git and prerelease does -Werror too
 dnl use a three digit version number for releases, and four for git/pre
-AC_INIT([GStreamer Good Plug-ins],[1.12.4],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
+AC_INIT([GStreamer Good Plug-ins],[1.13.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
 
 AG_GST_INIT
 
@@ -30,6 +30,9 @@ AM_MAINTAINER_MODE([enable])
 dnl sets host_* variables
 AC_CANONICAL_HOST
 
+dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
+m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
+
 dnl use pretty build output with automake >= 1.11
 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
   [AM_DEFAULT_VERBOSITY=1
@@ -43,11 +46,11 @@ AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
   [GStreamer API Version])
 
 AG_GST_LIBTOOL_PREPARE
-AS_LIBTOOL(GST, 1204, 0, 1204)
+AS_LIBTOOL(GST, 1301, 0, 1301)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.12.0
-GSTPB_REQ=1.12.0
+GST_REQ=1.13.1
+GSTPB_REQ=1.13.1
 
 dnl *** autotools stuff ****
 
@@ -197,6 +200,7 @@ fi
 
 dnl Check for mmap (needed by electricfence plugin)
 AC_FUNC_MMAP
+AC_CHECK_SIZEOF([off_t])
 AM_CONDITIONAL(GST_HAVE_MMAP, test "x$ac_cv_func_mmap_fixed_mapped" = "xyes")
 
 dnl Check for mmap (needed by electricfence plugin)
@@ -233,6 +237,46 @@ AC_SUBST(GST_TOOLS_DIR)
 AC_MSG_NOTICE(Using GStreamer Core Plugins in $GST_PLUGINS_DIR)
 AC_MSG_NOTICE(Using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR)
 
+AG_GST_PKG_CHECK_MODULES(GST_GL, gstreamer-gl-[$GST_API_VERSION], [$GST_REQ], no)
+
+dnl FIXME: if uninstalled setup we might not want to pick up an installed gst-gl?
+if test "x$HAVE_GST_GL" = "xyes"; then
+
+  AC_MSG_CHECKING([GStreamer OpenGL window systems ...])
+  GST_GL_WINSYS=`$PKG_CONFIG --variable=gl_winsys gstreamer-gl-1.0`
+  AC_MSG_RESULT([$GST_GL_WINSYS])
+  GST_GL_HAVE_WINDOW_X11=""
+  GST_GL_HAVE_WINDOW_WAYLAND=""
+  GST_GL_HAVE_WINDOW_ANDROID=""
+  GST_GL_HAVE_WINDOW_COCOA=""
+  GST_GL_HAVE_WINDOW_EAGL=""
+  case "$GST_GL_WINSYS" in  *x11*) GST_GL_HAVE_WINDOW_X11="1" ;; esac
+  case "$GST_GL_WINSYS" in  *wayland*) GST_GL_HAVE_WINDOW_WAYLAND="1" ;; esac
+  case "$GST_GL_WINSYS" in  *android*) GST_GL_HAVE_WINDOW_ANDROID="1" ;; esac
+  case "$GST_GL_WINSYS" in  *cocoa*) GST_GL_HAVE_WINDOW_COCOA="1" ;; esac
+  case "$GST_GL_WINSYS" in  *eagl*) GST_GL_HAVE_WINDOW_EAGL="1" ;; esac
+
+  AC_MSG_CHECKING([GStreamer OpenGL platforms ...])
+  GST_GL_PLATFORMS=`$PKG_CONFIG --variable=gl_platforms gstreamer-gl-1.0`
+  AC_MSG_RESULT([$GST_GL_PLATFORMS])
+  GST_GL_HAVE_PLATFORM_GLX=""
+  GST_GL_HAVE_PLATFORM_EGL=""
+  GST_GL_HAVE_PLATFORM_CGL=""
+  GST_GL_HAVE_PLATFORM_EAGL=""
+  case "$GST_GL_PLATFORMS" in  *glx*) GST_GL_HAVE_PLATFORM_GLX="1" ;; esac
+  case "$GST_GL_PLATFORMS" in  *egl*) GST_GL_HAVE_PLATFORM_EGL="1" ;; esac
+  case "$GST_GL_PLATFORMS" in  *cgl*) GST_GL_HAVE_PLATFORM_CGL="1" ;; esac
+  case "$GST_GL_PLATFORMS" in  *eagl*) GST_GL_HAVE_PLATFORM_EAGL="1" ;; esac
+
+  AC_MSG_CHECKING([GStreamer OpenGL apis ...])
+  GST_GL_APIS=`$PKG_CONFIG --variable=gl_apis gstreamer-gl-1.0`
+  AC_MSG_RESULT([$GST_GL_APIS])
+  GST_GL_HAVE_API_GLES2=""
+  GST_GL_HAVE_API_GL=""
+  case "$GST_GL_APIS" in  *gles2*) GST_GL_HAVE_API_GLES2="1" ;; esac
+  case "$GST_GL_APIS" in "gl"|"gl "*|*" gl"|*" gl "*) GST_GL_HAVE_API_GL="1" ;; esac
+fi
+
 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
 
 dnl Check for documentation xrefs
@@ -286,28 +330,6 @@ AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
   ["${srcdir}/gst-plugins-good.doap"],
   [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
 
-dnl build static plugins or not
-AC_MSG_CHECKING([whether to build static plugins or not])
-AC_ARG_ENABLE(
-  static-plugins,
-  AC_HELP_STRING(
-    [--enable-static-plugins],
-    [build static plugins @<:@default=no@:>@]),
-  [AS_CASE(
-    [$enableval], [no], [], [yes], [],
-    [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
-  [enable_static_plugins=no])
-AC_MSG_RESULT([$enable_static_plugins])
-if test "x$enable_static_plugins" = xyes; then
-  AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
-    [Define if static plugins should be built])
-  GST_PLUGIN_LIBTOOLFLAGS=""
-else
-  GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
-fi
-AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
-AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
-
 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
 dnl make sure it doesn't complain about unused variables if debugging is disabled
 NO_WARNINGS=""
@@ -476,12 +498,6 @@ AG_GST_CHECK_FEATURE(OSS4, [Open Sound System 4], oss4, [
       [OSS4_MISSING_HEADER="yes";HAVE_OSS4="no"])
 ])
 
-dnl *** Sun Audio ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_SUNAUDIO, true)
-AG_GST_CHECK_FEATURE(SUNAUDIO, [Sun Audio], sunaudio, [
-  AC_CHECK_HEADER(sys/audioio.h, HAVE_SUNAUDIO="yes", HAVE_SUNAUDIO="no")
-])
-
 dnl *** OSX Audio ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_OSX_AUDIO, true)
 HAVE_IOS="no"
@@ -655,6 +671,42 @@ AG_GST_CHECK_FEATURE(GDK_PIXBUF, [GDK pixbuf], gdkpixbuf, [
   AG_GST_PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0 >= 2.8.0)
 ])
 
+dnl *** gtk+ ***
+HAVE_GTK3_GL="no"
+translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
+AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
+  PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
+    AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
+    HAVE_GTK3="yes"
+  ], [
+    HAVE_GTK3="no"
+  ])
+  PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
+    GDK_WINDOWING="no"
+    if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
+      PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
+        GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
+        GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
+        GDK_WINDOWING="yes"
+      ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
+    fi
+    if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
+      PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
+        GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
+        GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
+        GDK_WINDOWING="yes"
+      ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
+    fi
+    if test "x$GDK_WINDOWING" = "xyes" -a "x$HAVE_GST_GL" = "xyes"; then
+      AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
+      HAVE_GTK3_GL="yes"
+    fi
+  ], [
+      HAVE_GTK3_GL="no"
+  ])
+])
+AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
+
 dnl *** Jack ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true)
 AG_GST_CHECK_FEATURE(JACK, Jack, jack, [
@@ -693,6 +745,26 @@ AG_GST_CHECK_FEATURE(JPEG, [jpeg library], jpeg, [
   AC_SUBST(JPEG_LIBS)
 ])
 
+dnl *** lame ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
+AG_GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
+  AG_GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, $LIBM, lame/lame.h,
+  [
+    HAVE_LAME="yes"
+    LAME_LIBS="-lmp3lame $LIBM"
+    dnl is lame presets available
+    LAME_CFLAGS=""
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <lame/lame.h>]], [[ int preset = MEDIUM ]])],[LAME_CFLAGS="-DGSTLAME_PRESET"],[LAME_CFLAGS=""
+    ])
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <lame/lame.h>]], [[
+        void *ptr = &lame_set_VBR_quality
+      ]])],[LAME_CFLAGS="$LAME_CFLAGS -DHAVE_LAME_SET_VBR_QUALITY"],[LAME_CFLAGS="$LAME_CFLAGS"
+    ])
+  AC_SUBST(LAME_CFLAGS)
+  AC_SUBST(LAME_LIBS)
+  ])
+])
+
 dnl *** libcaca ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBCACA, true)
 AG_GST_CHECK_FEATURE(LIBCACA, [libcaca coloured ASCII art], cacasink, [
@@ -709,6 +781,19 @@ dnl *** libpng ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
 AG_GST_CHECK_FEATURE(LIBPNG, [Portable Network Graphics library], png, [
   AG_GST_PKG_CHECK_MODULES(LIBPNG, libpng >= 1.2)
+  if test $HAVE_LIBPNG = "yes"; then
+    PKG_CHECK_MODULES(LIBPNG_1_5, libpng >= 1.5.1, [
+        AC_DEFINE(HAVE_LIBPNG_1_5, 1, [Defined if libpng version is 1.5.1 or newer])
+      ], [true])
+  fi
+])
+
+dnl *** mpg123 ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_MPG123, true)
+AG_GST_CHECK_FEATURE(MPG123, [mpg123 audio decoder], mpg123, [
+  PKG_CHECK_MODULES(MPG123, libmpg123 >= 1.13, HAVE_MPG123="yes", HAVE_MPG123="no")
+  AC_SUBST(MPG123_CFLAGS)
+  AC_SUBST(MPG123_LIBS)
 ])
 
 dnl *** pulseaudio ***
@@ -772,6 +857,108 @@ AG_GST_CHECK_FEATURE(DV1394, [raw1394 and avc1394 library], 1394, [
 ])
 AM_CONDITIONAL(USE_LIBIEC61883, [ test "x${HAVE_LIBIEC61883}" = xyes ] )
 
+dnl *** Qt ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
+AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
+  PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
+      QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
+      QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
+      AC_ARG_WITH([moc],
+           AS_HELP_STRING([--with-moc], [Set location of qt moc tool]),
+           [MOC=$withval])
+      AC_PATH_PROGS(MOC, [moc-qt5 moc], [moc], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
+      AC_ARG_WITH([rcc],
+           AS_HELP_STRING([--with-rcc], [Set location of qt rcc tool]),
+           [RCC=$withval])
+      AC_PATH_PROGS(RCC, [rcc-qt5 rcc], [rcc], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
+      AC_ARG_WITH([uic],
+               AS_HELP_STRING([--with-uic], [Set location of qt uic tool]),
+               [UIC=$withval])
+      AC_PATH_PROGS(UIC, [uic-qt5 uic], [uic], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
+      if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
+        AC_MSG_WARN([One of the required qt build programs was not found])
+        HAVE_QT="no"
+      else
+        HAVE_QT="yes"
+        HAVE_QT_WINDOWING="no"
+        QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
+        QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
+        AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
+          QT_CFLAGS="$QT_CFLAGS -I$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH"
+          HAVE_QT_QPA_HEADER="yes"
+        ], [AC_MSG_NOTICE([Cannot find QPA])])
+        if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1" || test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
+          PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
+            AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
+            QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
+            QT_LIBS="$QT_LIBS $QT_X11_LIBS"
+            HAVE_QT_WINDOWING="yes"
+          ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
+        fi
+        if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1" -a "x$HAVE_QT_QPA_HEADER" = "xyes"; then
+          PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
+            AC_DEFINE([HAVE_QT_WAYLAND], [],
+                [Define if Qt Wayland integration is installed])
+            QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
+            QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
+            HAVE_QT_WINDOWING="yes"
+          ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
+        fi
+        if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
+          if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
+            PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
+              # c++ on android requires a standard library and there are multiple
+              # choices.  cerbero provides a pkg-config file the describes a choice
+              # so try to use that.  Outside cerbero one has to pass these flags
+              # manually for the library one is using
+              PKG_CHECK_MODULES(GNUSTL, gnustl, [
+                QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
+                QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
+                ], [
+                AC_MSG_NOTICE([Could not find Standard C++ library])])
+              AC_DEFINE([HAVE_QT_EGLFS], [],
+                [Define if Qt eglfs integration is installed])
+              QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
+              QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
+              HAVE_QT_WINDOWING="yes"
+            ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
+          else
+              AC_DEFINE([HAVE_QT_EGLFS], [],
+                [Define if Qt eglfs integration is installed])
+              HAVE_QT_WINDOWING="yes"
+          fi
+        fi
+        if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
+          PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
+            AC_DEFINE([HAVE_QT_MAC], [],
+                [Define if Qt Mac integration is installed])
+            QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
+            QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
+            QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
+            HAVE_QT_WINDOWING="yes"
+          ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
+        fi
+        if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
+          if test "x$HAVE_IOS" = "xyes"; then
+            # iOS doesn't have its own extras package so if we have the core
+            # modules we are good to go
+            AC_DEFINE([HAVE_QT_IOS], [],
+                [Define if Qt iOS integration is installed])
+            HAVE_QT_WINDOWING="yes"
+          fi
+        fi
+        if test "x$HAVE_QT_WINDOWING" = "xno"; then
+          AC_MSG_WARN([Could not find any Qt Windowing integration])
+          HAVE_QT="no"
+        fi
+        AC_SUBST([QT_CFLAGS])
+        AC_SUBST([QT_LIBS])
+      fi
+  ], [
+      HAVE_QT="no"
+  ])
+])
+
 dnl *** shout2 ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true)
 AG_GST_CHECK_FEATURE(SHOUT2, [Shoutcast/Icecast client library], shout2, [
@@ -810,6 +997,18 @@ AG_GST_CHECK_FEATURE(TAGLIB, [taglib tagging library], taglib, [
   fi
 ])
 
+dnl *** twolame ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_TWOLAME, true)
+AG_GST_CHECK_FEATURE(TWOLAME, [twolame], twolame, [
+  PKG_CHECK_MODULES(TWOLAME, twolame >= 0.3.10, [
+      HAVE_TWOLAME="yes"], [
+      HAVE_TWOLAME="no"
+  ])
+  AC_SUBST(TWOLAME_CFLAGS)
+  AC_SUBST(TWOLAME_LIBS)
+])
+
+
 dnl *** vpx ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_VPX, vpx)
 AG_GST_CHECK_FEATURE(VPX, [VPX decoder], vpx, [
@@ -896,22 +1095,27 @@ AM_CONDITIONAL(USE_DIRECTSOUND, false)
 AM_CONDITIONAL(USE_DV1394, false)
 AM_CONDITIONAL(USE_FLAC, false)
 AM_CONDITIONAL(USE_GDK_PIXBUF, false)
+AM_CONDITIONAL(USE_GTK3, false)
+AM_CONDITIONAL(USE_GTK3_GL, false)
 AM_CONDITIONAL(USE_JACK, false)
 AM_CONDITIONAL(USE_JPEG, false)
+AM_CONDITIONAL(USE_LAME, false)
 AM_CONDITIONAL(USE_LIBCACA, false)
 AM_CONDITIONAL(USE_LIBDV, false)
 AM_CONDITIONAL(USE_LIBIEC61883, false)
 AM_CONDITIONAL(USE_LIBPNG, false)
+AM_CONDITIONAL(USE_MPG123, false)
 AM_CONDITIONAL(USE_OSS, false)
 AM_CONDITIONAL(USE_OSS4, false)
 AM_CONDITIONAL(USE_OSX_AUDIO, false)
 AM_CONDITIONAL(USE_OSX_VIDEO, false)
 AM_CONDITIONAL(USE_PULSE, false)
+AM_CONDITIONAL(USE_QT, false)
 AM_CONDITIONAL(USE_SHOUT2, false)
 AM_CONDITIONAL(USE_SOUP, false)
 AM_CONDITIONAL(USE_SPEEX, false)
-AM_CONDITIONAL(USE_SUNAUDIO, false)
 AM_CONDITIONAL(USE_TAGLIB, false)
+AM_CONDITIONAL(USE_TWOLAME, false)
 AM_CONDITIONAL(USE_VPX, false)
 AM_CONDITIONAL(USE_WAVEFORM, false)
 AM_CONDITIONAL(USE_WAVPACK, false)
@@ -944,6 +1148,20 @@ else
 fi
 AC_SUBST(DEPRECATED_CFLAGS)
 
+VISIBILITY_CFLAGS=""
+AS_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CFLAGS="-fvisibility=hidden"])
+AC_SUBST(VISIBILITY_CFLAGS)
+
+VISIBILITY_CXXFLAGS=""
+if test "x$HAVE_CXX" = "xyes"; then
+  AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
+fi
+AC_SUBST(VISIBILITY_CXXFLAGS)
+
+dnl disable strict aliasing
+AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
+AC_SUBST(EXTRA_CFLAGS)
+
 dnl every flag in GST_OPTION_CFLAGS, GST_OPTION_CXXFLAGS and GST_OPTION_OBJCFLAGS can be overridden
 dnl at make time with e.g. make ERROR_CFLAGS=""
 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
@@ -961,9 +1179,9 @@ dnl prefer internal headers to already installed ones
 dnl also add builddir include for enumtypes and marshal
 dnl add ERROR_CFLAGS, but overridable
 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
-GST_CXXFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
-GST_OBJCFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
-GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
+GST_CXXFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)"
+GST_OBJCFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
+GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)"
 AC_SUBST(GST_CFLAGS)
 AC_SUBST(GST_CXXFLAGS)
 AC_SUBST(GST_OBJCFLAGS)
@@ -979,7 +1197,7 @@ AC_SUBST(GST_ALL_LDFLAGS)
 
 dnl this really should only contain flags, not libs - they get added before
 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
-GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
+GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
 AC_SUBST(GST_PLUGIN_LDFLAGS)
 
 dnl *** output files ***
@@ -1039,16 +1257,21 @@ ext/cairo/Makefile
 ext/dv/Makefile
 ext/flac/Makefile
 ext/gdk_pixbuf/Makefile
+ext/gtk/Makefile
 ext/jack/Makefile
 ext/jpeg/Makefile
+ext/lame/Makefile
 ext/libcaca/Makefile
 ext/libpng/Makefile
+ext/mpg123/Makefile
 ext/pulse/Makefile
+ext/qt/Makefile
 ext/raw1394/Makefile
 ext/shout2/Makefile
 ext/soup/Makefile
 ext/speex/Makefile
 ext/taglib/Makefile
+ext/twolame/Makefile
 ext/vpx/Makefile
 ext/wavpack/Makefile
 sys/Makefile
@@ -1057,7 +1280,6 @@ sys/oss/Makefile
 sys/oss4/Makefile
 sys/osxaudio/Makefile
 sys/osxvideo/Makefile
-sys/sunaudio/Makefile
 sys/v4l2/Makefile
 sys/waveform/Makefile
 sys/ximage/Makefile
@@ -1068,6 +1290,7 @@ tests/examples/Makefile
 tests/examples/audiofx/Makefile
 tests/examples/cairo/Makefile
 tests/examples/equalizer/Makefile
+tests/examples/gtk/Makefile
 tests/examples/jack/Makefile
 tests/examples/level/Makefile
 tests/examples/rtp/Makefile
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 09014bb65..230c9f133 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -264,6 +264,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -287,6 +288,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -302,6 +305,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -324,10 +329,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -342,6 +354,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -359,6 +372,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -371,6 +386,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -389,6 +406,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -432,9 +452,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -448,11 +479,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index 54069c725..942a0bd4d 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -64,6 +64,7 @@ EXTRA_HFILES = \
 	$(top_srcdir)/ext/jack/gstjackaudiosink.h \
 	$(top_srcdir)/ext/jpeg/gstjpegdec.h \
 	$(top_srcdir)/ext/jpeg/gstjpegenc.h \
+	$(top_srcdir)/ext/lame/gstlamemp3enc.h \
 	$(top_srcdir)/ext/libcaca/gstcacasink.h \
 	$(top_srcdir)/ext/libpng/gstpngdec.h \
 	$(top_srcdir)/ext/libpng/gstpngenc.h \
@@ -73,6 +74,7 @@ EXTRA_HFILES = \
 	$(top_srcdir)/ext/soup/gstsouphttpsrc.h \
 	$(top_srcdir)/ext/taglib/gstapev2mux.h \
 	$(top_srcdir)/ext/taglib/gstid3v2mux.h \
+	$(top_srcdir)/ext/twolame/gsttwolamemp2enc.h \
 	$(top_srcdir)/ext/pulse/pulsesink.h \
 	$(top_srcdir)/ext/pulse/pulsesrc.h \
 	$(top_srcdir)/ext/speex/gstspeexenc.h \
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 15a13feff..9c4fb8a7e 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -224,6 +224,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -247,6 +248,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -262,6 +265,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -284,10 +289,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -302,6 +314,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -319,6 +332,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -331,6 +346,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -349,6 +366,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -392,9 +412,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -408,11 +439,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -572,6 +608,7 @@ EXTRA_HFILES = \
 	$(top_srcdir)/ext/jack/gstjackaudiosink.h \
 	$(top_srcdir)/ext/jpeg/gstjpegdec.h \
 	$(top_srcdir)/ext/jpeg/gstjpegenc.h \
+	$(top_srcdir)/ext/lame/gstlamemp3enc.h \
 	$(top_srcdir)/ext/libcaca/gstcacasink.h \
 	$(top_srcdir)/ext/libpng/gstpngdec.h \
 	$(top_srcdir)/ext/libpng/gstpngenc.h \
@@ -581,6 +618,7 @@ EXTRA_HFILES = \
 	$(top_srcdir)/ext/soup/gstsouphttpsrc.h \
 	$(top_srcdir)/ext/taglib/gstapev2mux.h \
 	$(top_srcdir)/ext/taglib/gstid3v2mux.h \
+	$(top_srcdir)/ext/twolame/gsttwolamemp2enc.h \
 	$(top_srcdir)/ext/pulse/pulsesink.h \
 	$(top_srcdir)/ext/pulse/pulsesrc.h \
 	$(top_srcdir)/ext/speex/gstspeexenc.h \
diff --git a/docs/plugins/gst-plugins-good-plugins-docs.sgml b/docs/plugins/gst-plugins-good-plugins-docs.sgml
index 2a898423e..626a23bde 100644
--- a/docs/plugins/gst-plugins-good-plugins-docs.sgml
+++ b/docs/plugins/gst-plugins-good-plugins-docs.sgml
@@ -86,6 +86,8 @@
     <xi:include href="xml/element-gdkpixbufsink.xml" />
     <xi:include href="xml/element-goom2k1.xml" />
     <xi:include href="xml/element-goom.xml" />
+    <xi:include href="xml/element-gtkglsink.xml" />
+    <xi:include href="xml/element-gtksink.xml" />
     <xi:include href="xml/element-hdv1394src.xml" />
     <xi:include href="xml/element-icydemux.xml" />
     <xi:include href="xml/element-id3demux.xml" />
@@ -99,6 +101,7 @@
     <xi:include href="xml/element-jackaudiosrc.xml" />
     <xi:include href="xml/element-jpegdec.xml" />
     <xi:include href="xml/element-jpegenc.xml" />
+    <xi:include href="xml/element-lamemp3enc.xml" />
     <xi:include href="xml/element-level-example.xml" />
     <xi:include href="xml/element-level.xml" />
     <xi:include href="xml/element-matroskademux.xml" />
@@ -108,6 +111,7 @@
     <xi:include href="xml/element-monoscope.xml" />
     <xi:include href="xml/element-mp4mux.xml" />
     <xi:include href="xml/element-mpegaudioparse.xml" />
+    <xi:include href="xml/element-mpg123audiodec.xml" />
     <xi:include href="xml/element-mulawdec.xml" />
     <xi:include href="xml/element-mulawenc.xml" />
     <xi:include href="xml/element-multifilesink.xml" />
@@ -131,6 +135,8 @@
     <xi:include href="xml/element-pulsesink.xml" />
     <xi:include href="xml/element-pulsesrc.xml" />
     <xi:include href="xml/element-pushfilesrc.xml" />
+    <xi:include href="xml/element-qmlglsink.xml" />
+    <xi:include href="xml/element-qmlglsrc.xml" />
     <xi:include href="xml/element-qtdemux.xml" />
     <xi:include href="xml/element-qtmoovrecover.xml" />
     <xi:include href="xml/element-qtmux.xml" />
@@ -188,6 +194,8 @@
     <xi:include href="xml/element-rtpjpegpay.xml" />
     <xi:include href="xml/element-rtpklvdepay.xml" />
     <xi:include href="xml/element-rtpklvpay.xml" />
+    <xi:include href="xml/element-rtpL8depay.xml" />
+    <xi:include href="xml/element-rtpL8pay.xml" />
     <xi:include href="xml/element-rtpL16depay.xml" />
     <xi:include href="xml/element-rtpL16pay.xml" />
     <xi:include href="xml/element-rtpL24depay.xml" />
@@ -261,6 +269,7 @@
     <xi:include href="xml/element-streaktv.xml" />
     <xi:include href="xml/element-taginject.xml" />
     <xi:include href="xml/element-testsink.xml" />
+    <xi:include href="xml/element-twolamemp2enc.xml" />
     <xi:include href="xml/element-udpsink.xml" />
     <xi:include href="xml/element-udpsrc.xml" />
     <xi:include href="xml/element-v4l2radio.xml" />
@@ -318,6 +327,7 @@
     <xi:include href="xml/plugin-gdkpixbuf.xml" />
     <xi:include href="xml/plugin-goom2k1.xml" />
     <xi:include href="xml/plugin-goom.xml" />
+    <xi:include href="xml/plugin-gtk.xml" />
     <xi:include href="xml/plugin-icydemux.xml" />
     <xi:include href="xml/plugin-id3demux.xml" />
     <xi:include href="xml/plugin-imagefreeze.xml" />
@@ -325,9 +335,11 @@
     <xi:include href="xml/plugin-isomp4.xml" />
     <xi:include href="xml/plugin-jack.xml" />
     <xi:include href="xml/plugin-jpeg.xml" />
+    <xi:include href="xml/plugin-lame.xml" />
     <xi:include href="xml/plugin-level.xml" />
     <xi:include href="xml/plugin-matroska.xml" />
     <xi:include href="xml/plugin-monoscope.xml" />
+    <xi:include href="xml/plugin-mpg123.xml" />
     <xi:include href="xml/plugin-mulaw.xml" />
     <xi:include href="xml/plugin-multifile.xml" />
     <xi:include href="xml/plugin-multipart.xml" />
@@ -338,6 +350,7 @@
     <xi:include href="xml/plugin-osxvideo.xml" />
     <xi:include href="xml/plugin-png.xml" />
     <xi:include href="xml/plugin-pulseaudio.xml" />
+    <xi:include href="xml/plugin-qmlgl.xml" />
     <xi:include href="xml/plugin-replaygain.xml" />
     <xi:include href="xml/plugin-rtpmanager.xml" />
     <xi:include href="xml/plugin-rtp.xml" />
@@ -349,6 +362,7 @@
     <xi:include href="xml/plugin-spectrum.xml" />
     <xi:include href="xml/plugin-speex.xml" />
     <xi:include href="xml/plugin-taglib.xml" />
+    <xi:include href="xml/plugin-twolame.xml" />
     <xi:include href="xml/plugin-udp.xml" />
     <xi:include href="xml/plugin-video4linux2.xml" />
     <xi:include href="xml/plugin-videobox.xml" />
diff --git a/docs/plugins/gst-plugins-good-plugins-sections.txt b/docs/plugins/gst-plugins-good-plugins-sections.txt
index d1c1a14c0..dc7569dd9 100644
--- a/docs/plugins/gst-plugins-good-plugins-sections.txt
+++ b/docs/plugins/gst-plugins-good-plugins-sections.txt
@@ -1043,6 +1043,38 @@ GST_TYPE_GOOM2K1
 gst_goom2k1_get_type
 </SECTION>
 
+<SECTION>
+<FILE>element-gtkglsink</FILE>
+<TITLE>gtkglsink</TITLE>
+GstGtkGLSink
+<SUBSECTION Standard>
+GstGtkGLSinkClass
+GST_GTK_GL_SINK
+GST_GTK_GL_SINK_CAST
+GST_IS_GTK_GL_SINK
+GST_GTK_GL_SINK_CLASS
+GST_IS_GTK_GL_SINK_CLASS
+GST_TYPE_GTK_GL_SINK
+<SUBSECTION Private>
+gst_gtk_gl_sink_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-gtksink</FILE>
+<TITLE>gtksink</TITLE>
+GstGtkSink
+<SUBSECTION Standard>
+GstGtkSinkClass
+GST_GTK_SINK
+GST_GTK_SINK_CAST
+GST_IS_GTK_SINK
+GST_GTK_SINK_CLASS
+GST_IS_GTK_SINK_CLASS
+GST_TYPE_GTK_SINK
+<SUBSECTION Private>
+gst_gtk_sink_get_type
+</SECTION>
+
 <SECTION>
 <FILE>element-hdv1394src</FILE>
 <TITLE>hdv1394src</TITLE>
@@ -1283,6 +1315,21 @@ GST_TYPE_JPEG_ENC
 gst_jpeg_enc_get_type
 </SECTION>
 
+<SECTION>
+<FILE>element-lamemp3enc</FILE>
+<TITLE>lamemp3enc</TITLE>
+GstLameMP3Enc
+<SUBSECTION Standard>
+GstLameMP3EncClass
+GST_LAMEMP3ENC
+GST_LAMEMP3ENC_CLASS
+GST_IS_LAMEMP3ENC
+GST_IS_LAMEMP3ENC_CLASS
+GST_TYPE_LAMEMP3ENC
+gst_lamemp3enc_get_type
+gst_lamemp3enc_register
+</SECTION>
+
 <SECTION>
 <FILE>element-level</FILE>
 <TITLE>level</TITLE>
@@ -1409,6 +1456,20 @@ GST_TYPE_MPEG_AUDIO_PARSE
 gst_mpeg_audio_parse_get_type
 </SECTION>
 
+<SECTION>
+<FILE>element-mpg123audiodec</FILE>
+<TITLE>mpg123audiodec</TITLE>
+GstMpg123AudioDec
+<SUBSECTION Standard>
+GstMpg123AudioDecClass
+GST_MPG123_AUDIO_DEC
+GST_MPG123_AUDIO_DEC_CLASS
+GST_IS_MPG123_AUDIO_DEC
+GST_IS_MPG123_AUDIO_DEC_CLASS
+GST_TYPE_MPG123_AUDIO_DEC
+gst_mpg123_audio_dec_get_type
+</SECTION>
+
 <SECTION>
 <FILE>element-mulawdec</FILE>
 <TITLE>mulawdec</TITLE>
@@ -1772,6 +1833,38 @@ GST_TYPE_PUSH_FILE_SRC
 gst_push_file_src_get_type
 </SECTION>
 
+<SECTION>
+<FILE>element-qmlglsink</FILE>
+<TITLE>qmlglsink</TITLE>
+GstQtSink
+<SUBSECTION Standard>
+GstQtSinkClass
+GST_QT_SINK
+GST_QT_SINK_CAST
+GST_IS_QT_SINK
+GST_QT_SINK_CLASS
+GST_IS_QT_SINK_CLASS
+GST_TYPE_QT_SINK
+<SUBSECTION Private>
+gst_qt_sink_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-qmlglsrc</FILE>
+<TITLE>qmlglsrc</TITLE>
+GstQtSrc
+<SUBSECTION Standard>
+GstQtSrcClass
+GST_QT_SRC
+GST_QT_SRC_CAST
+GST_IS_QT_SRC
+GST_QT_SRC_CLASS
+GST_IS_QT_SRC_CLASS
+GST_TYPE_QT_SRC
+<SUBSECTION Private>
+gst_qt_src_get_type
+</SECTION>
+
 <SECTION>
 <FILE>element-qtdemux</FILE>
 <TITLE>qtdemux</TITLE>
@@ -2818,6 +2911,38 @@ GST_TYPE_RTP_KLV_PAY
 gst_rtp_klv_pay_get_type
 </SECTION>
 
+<SECTION>
+<FILE>element-rtpL8depay</FILE>
+<TITLE>rtpL8depay</TITLE>
+GstRtpL8Depay
+<SUBSECTION Standard>
+GstRtpL8DepayClass
+GST_RTP_L8_DEPAY
+GST_RTP_L8_DEPAY_CAST
+GST_IS_RTP_L8_DEPAY
+GST_RTP_L8_DEPAY_CLASS
+GST_IS_RTP_L8_DEPAY_CLASS
+GST_TYPE_RTP_L8_DEPAY
+<SUBSECTION Private>
+gst_rtp_l8_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpL8pay</FILE>
+<TITLE>rtpL8pay</TITLE>
+GstRtpL8Pay
+<SUBSECTION Standard>
+GstRtpL8PayClass
+GST_RTP_L8_PAY
+GST_RTP_L8_PAY_CAST
+GST_IS_RTP_L8_PAY
+GST_RTP_L8_PAY_CLASS
+GST_IS_RTP_L8_PAY_CLASS
+GST_TYPE_RTP_L8_PAY
+<SUBSECTION Private>
+gst_rtp_l8_pay_get_type
+</SECTION>
+
 <SECTION>
 <FILE>element-rtpL16depay</FILE>
 <TITLE>rtpL16depay</TITLE>
@@ -3845,6 +3970,20 @@ GST_TYPE_TEST
 gst_test_get_type
 </SECTION>
 
+<SECTION>
+<FILE>element-twolamemp2enc</FILE>
+<TITLE>twolame</TITLE>
+GstTwoLame
+<SUBSECTION Standard>
+GstTwoLameClass
+GST_TWO_LAME
+GST_TWO_LAME_CLASS
+GST_IS_TWO_LAME
+GST_IS_TWO_LAME_CLASS
+GST_TYPE_TWO_LAME
+gst_two_lame_get_type
+</SECTION>
+
 <SECTION>
 <FILE>element-udpsink</FILE>
 <TITLE>udpsink</TITLE>
diff --git a/docs/plugins/gst-plugins-good-plugins.args b/docs/plugins/gst-plugins-good-plugins.args
index bbac43747..5663bf47d 100644
--- a/docs/plugins/gst-plugins-good-plugins.args
+++ b/docs/plugins/gst-plugins-good-plugins.args
@@ -214,7 +214,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Maximum File Duration</NICK>
-<BLURB>Maximum file duration before starting a new file in max-size mode.</BLURB>
+<BLURB>Maximum file duration before starting a new file in max-size mode (in nanoseconds).</BLURB>
 <DEFAULT>18446744073709551615</DEFAULT>
 </ARG>
 
@@ -684,7 +684,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Debug</NICK>
-<BLURB>Dump request and response messages to stdout.</BLURB>
+<BLURB>Dump request and response messages to stdout(DEPRECATED: Printed all RTSP message to gstreamer log as 'log' level).</BLURB>
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
@@ -1015,7 +1015,7 @@
 <FLAGS>rw</FLAGS>
 <NICK>User Agent</NICK>
 <BLURB>The User-Agent string to send to the server.</BLURB>
-<DEFAULT>"GStreamer/1.12.4"</DEFAULT>
+<DEFAULT>"GStreamer/1.13.1"</DEFAULT>
 </ARG>
 
 <ARG>
@@ -1038,6 +1038,36 @@
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstRTSPSrc::default-rtsp-version</NAME>
+<TYPE>GstRTSPVersion</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>The RTSP version to try first</NICK>
+<BLURB>The RTSP version that should be tried first when negotiating version.</BLURB>
+<DEFAULT>GST_RTSP_VERSION_1_0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTSPSrc::max-ts-offset</NAME>
+<TYPE>gint64</TYPE>
+<RANGE>>= 0</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max TS Offset</NICK>
+<BLURB>The maximum absolute value of the time offset in (nanoseconds). Note, if the ntp-sync parameter is set the default value is changed to 0 (no limit).</BLURB>
+<DEFAULT>3000000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTSPSrc::max-ts-offset-adjustment</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max Timestamp Offset Adjustment</NICK>
+<BLURB>The maximum number of nanoseconds per frame that time stamp offsets may be adjusted (0 = no limit).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstRTPDec::latency</NAME>
 <TYPE>guint</TYPE>
@@ -1378,6 +1408,16 @@
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstShout2send::timeout</NAME>
+<TYPE>guint</TYPE>
+<RANGE>>= 1</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>timeout</NICK>
+<BLURB>Max amount of time to wait for network activity, in milliseconds.</BLURB>
+<DEFAULT>10000</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstSpeexDec::enh</NAME>
 <TYPE>gboolean</TYPE>
@@ -1468,6 +1508,16 @@
 <DEFAULT>Faster, less accurate integer method</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstJpegEnc::snapshot</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Snapshot</NICK>
+<BLURB>Send EOS after encoding a frame, useful for snapshots.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstDVDec::clamp-chroma</NAME>
 <TYPE>gboolean</TYPE>
@@ -3475,7 +3525,7 @@
 <FLAGS>rw</FLAGS>
 <NICK>User-Agent</NICK>
 <BLURB>Value of the User-Agent HTTP request header field.</BLURB>
-<DEFAULT>"GStreamer souphttpsrc 1.12.4 "</DEFAULT>
+<DEFAULT>"GStreamer souphttpsrc 1.13.1 "</DEFAULT>
 </ARG>
 
 <ARG>
@@ -3575,7 +3625,7 @@
 <FLAGS>rw</FLAGS>
 <NICK>keep-alive</NICK>
 <BLURB>Use HTTP persistent connections.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
+<DEFAULT>TRUE</DEFAULT>
 </ARG>
 
 <ARG>
@@ -20608,6 +20658,26 @@
 <DEFAULT>4294967295</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstRtpBin::max-ts-offset</NAME>
+<TYPE>gint64</TYPE>
+<RANGE>>= 0</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max TS Offset</NICK>
+<BLURB>The maximum absolute value of the time offset in (nanoseconds). Note, if the ntp-sync parameter is set the default value is changed to 0 (no limit).</BLURB>
+<DEFAULT>3000000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRtpBin::max-ts-offset-adjustment</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max Timestamp Offset Adjustment</NICK>
+<BLURB>The maximum number of nanoseconds per frame that time stamp offsets may be adjusted (0 = no limit).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstRtpJitterBuffer::do-lost</NAME>
 <TYPE>gboolean</TYPE>
@@ -20828,6 +20898,26 @@
 <DEFAULT>1000</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstRtpJitterBuffer::faststart-min-packets</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Faststart minimum packets</NICK>
+<BLURB>The number of consecutive packets needed to start (set to 0 to disable faststart. The jitterbuffer will by default start after the latency has elapsed).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRtpJitterBuffer::max-ts-offset-adjustment</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max Timestamp Offset Adjustment</NICK>
+<BLURB>The maximum number of nanoseconds per frame that time stamp offsets may be adjusted (0 = no limit).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstRtpSession::bandwidth</NAME>
 <TYPE>gdouble</TYPE>
@@ -21758,6 +21848,26 @@
 <DEFAULT>250000000</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstQTMux::max-raw-audio-drift</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max Raw Audio Drift</NICK>
+<BLURB>Maximum allowed drift of raw audio samples vs. timestamps in nanoseconds.</BLURB>
+<DEFAULT>40000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQTMux::reserved-prefill</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Reserved Prefill Samples Table</NICK>
+<BLURB>Prefill samples table of reserved duration.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstQTMoovRecover::broken-input</NAME>
 <TYPE>gchar*</TYPE>
@@ -21948,6 +22058,26 @@
 <DEFAULT>250000000</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstMP4Mux::max-raw-audio-drift</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max Raw Audio Drift</NICK>
+<BLURB>Maximum allowed drift of raw audio samples vs. timestamps in nanoseconds.</BLURB>
+<DEFAULT>40000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMP4Mux::reserved-prefill</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Reserved Prefill Samples Table</NICK>
+<BLURB>Prefill samples table of reserved duration.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstMJ2Mux::dts-method</NAME>
 <TYPE>GstQTMuxDtsMethods</TYPE>
@@ -22098,6 +22228,26 @@
 <DEFAULT>250000000</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstMJ2Mux::max-raw-audio-drift</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max Raw Audio Drift</NICK>
+<BLURB>Maximum allowed drift of raw audio samples vs. timestamps in nanoseconds.</BLURB>
+<DEFAULT>40000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMJ2Mux::reserved-prefill</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Reserved Prefill Samples Table</NICK>
+<BLURB>Prefill samples table of reserved duration.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstISMLMux::dts-method</NAME>
 <TYPE>GstQTMuxDtsMethods</TYPE>
@@ -22248,6 +22398,26 @@
 <DEFAULT>250000000</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstISMLMux::max-raw-audio-drift</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max Raw Audio Drift</NICK>
+<BLURB>Maximum allowed drift of raw audio samples vs. timestamps in nanoseconds.</BLURB>
+<DEFAULT>40000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstISMLMux::reserved-prefill</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Reserved Prefill Samples Table</NICK>
+<BLURB>Prefill samples table of reserved duration.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>Gst3GPPMux::dts-method</NAME>
 <TYPE>GstQTMuxDtsMethods</TYPE>
@@ -22398,6 +22568,26 @@
 <DEFAULT>250000000</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>Gst3GPPMux::max-raw-audio-drift</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max Raw Audio Drift</NICK>
+<BLURB>Maximum allowed drift of raw audio samples vs. timestamps in nanoseconds.</BLURB>
+<DEFAULT>40000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>Gst3GPPMux::reserved-prefill</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Reserved Prefill Samples Table</NICK>
+<BLURB>Prefill samples table of reserved duration.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstSplitFileSrc::location</NAME>
 <TYPE>gchar*</TYPE>
@@ -24128,6 +24318,26 @@
 <DEFAULT>NULL</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstSplitMuxSink::alignment-threshold</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Alignment threshold (ns)</NICK>
+<BLURB>Allow non-reference streams to be that many ns before the reference stream.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstSplitMuxSink::use-robust-muxing</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Support robust-muxing mode of some muxers</NICK>
+<BLURB>Check if muxers support robust muxing via the reserved-max-duration and reserved-duration-remaining properties and use them if so. (Only present on qtmux and mp4mux for now). splitmuxsink may then also  create new fragments if the reserved header space is about to overflow. Note this does not set reserved-moov-update-period - apps should do that manually.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstRtpVP9Pay::picture-id-mode</NAME>
 <TYPE>GstVP9RTPPayMode</TYPE>
@@ -24158,3 +24368,273 @@
 <DEFAULT>NULL</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstLameMP3Enc::bitrate</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[8,320]</RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Bitrate (kb/s)</NICK>
+<BLURB>Bitrate in kbit/sec (Only valid if target is bitrate, for CBR one of 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 or 320).</BLURB>
+<DEFAULT>128</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstLameMP3Enc::cbr</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>CBR</NICK>
+<BLURB>Enforce constant bitrate encoding (Only valid if target is bitrate).</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstLameMP3Enc::encoding-engine-quality</NAME>
+<TYPE>GstLameMP3EncEncodingEngineQuality</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Encoding Engine Quality</NICK>
+<BLURB>Quality/speed of the encoding engine, this does not affect the bitrate!.</BLURB>
+<DEFAULT>Standard</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstLameMP3Enc::mono</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Mono</NICK>
+<BLURB>Enforce mono encoding.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstLameMP3Enc::quality</NAME>
+<TYPE>gfloat</TYPE>
+<RANGE>[0,9.999]</RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Quality</NICK>
+<BLURB>VBR Quality from 0 to 10, 0 being the best (Only valid if target is quality).</BLURB>
+<DEFAULT>4</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstLameMP3Enc::target</NAME>
+<TYPE>GstLameMP3EncTarget</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Target</NICK>
+<BLURB>Optimize for quality or bitrate.</BLURB>
+<DEFAULT>Quality</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::ath-level</NAME>
+<TYPE>gfloat</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>ATH Level</NICK>
+<BLURB>ATH Level in dB.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::bitrate</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[8,384]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Bitrate (kb/s)</NICK>
+<BLURB>Bitrate in kbit/sec (8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320, 384).</BLURB>
+<DEFAULT>192</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::copyright</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Copyright</NICK>
+<BLURB>Mark as copyright.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::emphasis</NAME>
+<TYPE>GstTwoLameEmphasis</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Emphasis</NICK>
+<BLURB>Pre-emphasis to apply to the decoded audio.</BLURB>
+<DEFAULT>No emphasis</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::energy-level-extension</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Energy Level Extension</NICK>
+<BLURB>Write peak PCM level to each frame.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::error-protection</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Error protection</NICK>
+<BLURB>Adds checksum to every frame.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::mode</NAME>
+<TYPE>GstTwoLameMode</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Mode</NICK>
+<BLURB>Encoding mode.</BLURB>
+<DEFAULT>Joint Stereo</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::original</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Original</NICK>
+<BLURB>Mark as original.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::padding</NAME>
+<TYPE>GstTwoLamePadding</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Padding</NICK>
+<BLURB>Padding type.</BLURB>
+<DEFAULT>No Padding</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::psymodel</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[G_MAXULONG,4]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Psychoacoustic Model</NICK>
+<BLURB>Psychoacoustic model used to encode the audio.</BLURB>
+<DEFAULT>3</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::quick-mode</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Quick mode</NICK>
+<BLURB>Calculate Psymodel every frames.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::quick-mode-count</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= 0</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Quick mode count</NICK>
+<BLURB>Calculate Psymodel every n frames.</BLURB>
+<DEFAULT>10</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::vbr</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>VBR</NICK>
+<BLURB>Enable variable bitrate mode.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::vbr-level</NAME>
+<TYPE>gfloat</TYPE>
+<RANGE>[-10,10]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>VBR Level</NICK>
+<BLURB>VBR Level.</BLURB>
+<DEFAULT>5</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTwoLame::vbr-max-bitrate</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[0,384]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>VBR max bitrate</NICK>
+<BLURB>Specify maximum VBR bitrate (0=off, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320, 384).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRtpSbcDepay::ignore-timestamps</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Ignore Timestamps</NICK>
+<BLURB>Various statistics.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQtSrc::use-default-fbo</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Whether to use default FBO</NICK>
+<BLURB>When set it will not create a new FBO for the QML render thread.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQtSrc::window</NAME>
+<TYPE>gpointer</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>QQuickWindow</NICK>
+<BLURB>The QQuickWindow to place in the object hierarchy.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQtSink::force-aspect-ratio</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Force aspect ratio</NICK>
+<BLURB>When enabled, scaling will respect original aspect ratio.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQtSink::pixel-aspect-ratio</NAME>
+<TYPE>GstFraction</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Pixel Aspect Ratio</NICK>
+<BLURB>The pixel aspect ratio of the device.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQtSink::widget</NAME>
+<TYPE>gpointer</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>QQuickItem</NICK>
+<BLURB>The QQuickItem to place in the object hierarchy.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
diff --git a/docs/plugins/gst-plugins-good-plugins.hierarchy b/docs/plugins/gst-plugins-good-plugins.hierarchy
index 3627bed4c..9a43e0fd8 100644
--- a/docs/plugins/gst-plugins-good-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-good-plugins.hierarchy
@@ -21,19 +21,24 @@ GObject
         GstV4l2DeviceProvider
       GstElement
         Gst3GPPMux
+        GstAggregator
+          GstFlvMux
         GstAsteriskh263
         GstAuParse
         GstAudioDecoder
           GstALawDec
           GstFlacDec
+          GstMpg123AudioDec
           GstMuLawDec
           GstSpeexDec
           GstWavpackDec
         GstAudioEncoder
           GstALawEnc
           GstFlacEnc
+          GstLameMP3Enc
           GstMuLawEnc
           GstSpeexEnc
+          GstTwoLame
           GstWavpackEnc
         GstAudioVisualizer
           GstGoom
@@ -63,11 +68,16 @@ GObject
           GstMultiFileSink
           GstMultiUDPSink
             GstUDPSink
+          GstShout2send
           GstSoupHttpClientSink
           GstTest
           GstVideoSink
             GstAASink
             GstGdkPixbufSink
+            GstGtkBaseSink
+              GstGtkGLSink
+              GstGtkSink
+            GstQtSink
             GstV4l2Sink
         GstBaseSrc
           GstDTMFSrc
@@ -81,6 +91,7 @@ GObject
             GstDV1394Src
             GstHDV1394Src
             GstMultiFileSrc
+            GstQtSrc
             GstSoupHTTPSrc
             GstUDPSrc
             GstV4l2Src
@@ -165,7 +176,6 @@ GObject
         GstDeinterleave
         GstFlacTag
         GstFlvDemux
-        GstFlvMux
         GstFlxDec
         GstGdkPixbufDec
         GstICYDemux
@@ -208,6 +218,7 @@ GObject
           GstRtpKlvDepay
           GstRtpL16Depay
           GstRtpL24Depay
+          GstRtpL8Depay
           GstRtpMP1SDepay
           GstRtpMP2TDepay
           GstRtpMP4ADepay
@@ -238,6 +249,7 @@ GObject
             GstRtpG726Pay
             GstRtpL16Pay
             GstRtpL24Pay
+            GstRtpL8Pay
             GstRtpPcmaPay
             GstRtpPcmuPay
           GstRTPDVPay
@@ -308,7 +320,10 @@ GObject
         GstWavEnc
         GstWavParse
       GstPad
+        GstAggregatorPad
+          GstFlvMuxPad
         GstInterleavePad
+        GstQTMuxPad
         GstVideoMixer2Pad
       GstPadTemplate
       GstPlugin
@@ -321,6 +336,7 @@ GObject
       GstRegistry
       GstTask
       GstTaskPool
+    GtkWidget
   GResolver
   GSocket
   GSocketAddress
@@ -342,6 +358,7 @@ GObject
   RTPSession
   SoupSession
 GInterface
+  AtkImplementorIface
   GDatagramBased
   GIcon
   GInitable
@@ -351,6 +368,7 @@ GInterface
   GTypePlugin
   GstChildProxy
   GstColorBalance
+  GstNavigation
   GstPreset
   GstStreamVolume
   GstTagSetter
@@ -360,3 +378,4 @@ GInterface
   GstURIHandler
   GstVideoDirection
   GstVideoOrientation
+  GtkBuildable
diff --git a/docs/plugins/gst-plugins-good-plugins.interfaces b/docs/plugins/gst-plugins-good-plugins.interfaces
index 14fe6cd30..c95481c24 100644
--- a/docs/plugins/gst-plugins-good-plugins.interfaces
+++ b/docs/plugins/gst-plugins-good-plugins.interfaces
@@ -31,6 +31,9 @@ GstGConfAudioSrc GstChildProxy
 GstGConfVideoSink GstChildProxy
 GstGConfVideoSrc GstChildProxy
 GstGPPMux GstTagSetter GstTagXmpWriter
+GstGtkBaseSink GstNavigation
+GstGtkGLSink GstNavigation
+GstGtkSink GstNavigation
 GstHDV1394Src GstURIHandler
 GstHDV1394Src GstURIHandler GstPropertyProbe
 GstHalAudioSink GstChildProxy
@@ -45,6 +48,7 @@ GstIirEqualizer3Bands GstChildProxy GstPreset
 GstIirEqualizerNBands GstChildProxy
 GstIirEqualizerNBands GstChildProxy GstPreset
 GstJpegEnc GstPreset
+GstLameMP3Enc GstPreset
 GstMJ2Mux GstTagSetter GstTagXmpWriter
 GstMJ2Mux GstTagSetter GstTagXmpWriter GstPreset
 GstMP4Mux GstTagSetter GstTagXmpWriter
@@ -52,6 +56,7 @@ GstMP4Mux GstTagSetter GstTagXmpWriter GstPreset
 GstMatroskaMux GstTagSetter
 GstMatroskaMux GstTagSetter GstTocSetter
 GstMuLawEnc GstPreset
+GstMultiFileSrc GstURIHandler
 GstOss4Mixer GstImplementsInterface GstMixer GstPropertyProbe
 GstOss4Sink GstStreamVolume
 GstOss4Sink GstStreamVolume GstPropertyProbe
@@ -87,6 +92,7 @@ GstSwitchSink GstChildProxy
 GstSwitchSrc GstChildProxy
 GstTagLibMux GstTagSetter
 GstTagMux GstTagSetter
+GstTwoLame GstPreset
 GstUDPSink GstURIHandler
 GstUDPSrc GstURIHandler
 GstV4l2Radio GstURIHandler GstImplementsInterface GstTuner GstPropertyProbe
@@ -110,3 +116,4 @@ GstWavpackEnc GstPreset
 GstWebMMux GstTagSetter
 GstWebMMux GstTagSetter GstTocSetter
 GstY4mEncode GstPreset
+GtkWidget AtkImplementorIface GtkBuildable
diff --git a/docs/plugins/gst-plugins-good-plugins.prerequisites b/docs/plugins/gst-plugins-good-plugins.prerequisites
index 5dafa15e2..9cb2b931e 100644
--- a/docs/plugins/gst-plugins-good-plugins.prerequisites
+++ b/docs/plugins/gst-plugins-good-plugins.prerequisites
@@ -16,3 +16,4 @@ GstTocSetter GstElement
 GstTuner GstImplementsInterface GstElement
 GstVideoOrientation GstImplementsInterface GstElement
 GstXOverlay GstImplementsInterface GstElement
+GtkBuildable GObject
diff --git a/docs/plugins/gst-plugins-good-plugins.signals b/docs/plugins/gst-plugins-good-plugins.signals
index e36a114f1..cdc6fbb80 100644
--- a/docs/plugins/gst-plugins-good-plugins.signals
+++ b/docs/plugins/gst-plugins-good-plugins.signals
@@ -651,6 +651,24 @@ GstRTSPSrc *gstrtspsrc
 guint  arg1
 </SIGNAL>
 
+<SIGNAL>
+<NAME>GstRTSPSrc::accept-certificate</NAME>
+<RETURNS>gboolean</RETURNS>
+<FLAGS>l</FLAGS>
+GstRTSPSrc *gstrtspsrc
+GTlsConnection *arg1
+GTlsCertificate *arg2
+GTlsCertificateFlags  arg3
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstRTSPSrc::before-send</NAME>
+<RETURNS>gboolean</RETURNS>
+<FLAGS>fc</FLAGS>
+GstRTSPSrc *gstrtspsrc
+GstRTSPMessage *arg1
+</SIGNAL>
+
 <SIGNAL>
 <NAME>GstSplitMuxSink::format-location</NAME>
 <RETURNS>gchar*</RETURNS>
@@ -668,6 +686,13 @@ guint  arg1
 GstSample *arg2
 </SIGNAL>
 
+<SIGNAL>
+<NAME>GstSplitMuxSink::split-now</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstSplitMuxSink *gstsplitmuxsink
+</SIGNAL>
+
 <SIGNAL>
 <NAME>GstSplitMuxSrc::format-location</NAME>
 <RETURNS>GStrv</RETURNS>
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index d3b6525ae..bdd57ee71 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -8,7 +8,7 @@
 <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">
 <link rel="next" href="gst-plugins-good-plugins-3gppmux.html" title="3gppmux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -225,6 +225,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-goom.html">goom</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-gtkglsink.html">gtkglsink</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-gtksink.html">gtksink</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-hdv1394src.html">hdv1394src</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -261,6 +267,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-jpegenc.html">jpegenc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-lamemp3enc.html">lamemp3enc</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-level.html">level</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -285,6 +294,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-mpegaudioparse.html">mpegaudioparse</a></span><span class="refpurpose"> — MPEG audio parser</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-mpg123audiodec.html">mpg123audiodec</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-mulawdec.html">mulawdec</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -354,6 +366,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-pushfilesrc.html">pushfilesrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-qmlglsink.html">qmlglsink</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-qmlglsrc.html">qmlglsrc</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-qtdemux.html">qtdemux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -525,6 +543,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpklvpay.html">rtpklvpay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL8depay.html">rtpL8depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL8pay.html">rtpL8pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16depay.html">rtpL16depay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -742,6 +766,9 @@ the splitmuxsink element.</span>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-testsink.html">testsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-twolame.html">twolame</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-udpsink.html">udpsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -1404,6 +1431,6 @@ main (int argc, char *argv[])
 </pre>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index ef3ca482f..732b0fad5 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -8,7 +8,7 @@
 <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">
 <link rel="next" href="gst-plugins-good-plugins-plugin-1394.html" title="1394">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -105,6 +105,9 @@
 <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-gtk.html">gtk</a></span><span class="refpurpose"> — Gtk+ sink</span>
+</dt>
+<dt>
 <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>
@@ -126,6 +129,9 @@
 <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-lame.html">lame</a></span><span class="refpurpose"> — Encode MP3s with LAME</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-level.html">level</a></span><span class="refpurpose"> — Audio level plugin</span>
 </dt>
 <dt>
@@ -135,6 +141,9 @@
 <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-mpg123.html">mpg123</a></span><span class="refpurpose"> — mp3 decoding based on the mpg123 library</span>
+</dt>
+<dt>
 <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>
@@ -165,6 +174,9 @@
 <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-qmlgl.html">qmlgl</a></span><span class="refpurpose"> — Qt gl plugin</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-replaygain.html">replaygain</a></span><span class="refpurpose"> — ReplayGain volume normalization</span>
 </dt>
 <dt>
@@ -198,6 +210,9 @@
 <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-twolame.html">twolame</a></span><span class="refpurpose"> — Encode MP2s with TwoLAME</span>
+</dt>
+<dt>
 <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>
@@ -239,6 +254,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2 b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
index fbe2b2bfe..40ff0eb50 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
+++ b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
@@ -69,6 +69,8 @@
       <sub name="gdkpixbufsink" link="gst-plugins-good-plugins-gdkpixbufsink.html"/>
       <sub name="goom2k1" link="gst-plugins-good-plugins-goom2k1.html"/>
       <sub name="goom" link="gst-plugins-good-plugins-goom.html"/>
+      <sub name="gtkglsink" link="gst-plugins-good-plugins-gtkglsink.html"/>
+      <sub name="gtksink" link="gst-plugins-good-plugins-gtksink.html"/>
       <sub name="hdv1394src" link="gst-plugins-good-plugins-hdv1394src.html"/>
       <sub name="icydemux" link="gst-plugins-good-plugins-icydemux.html"/>
       <sub name="id3demux" link="gst-plugins-good-plugins-id3demux.html"/>
@@ -81,6 +83,7 @@
       <sub name="jackaudiosrc" link="gst-plugins-good-plugins-jackaudiosrc.html"/>
       <sub name="jpegdec" link="gst-plugins-good-plugins-jpegdec.html"/>
       <sub name="jpegenc" link="gst-plugins-good-plugins-jpegenc.html"/>
+      <sub name="lamemp3enc" link="gst-plugins-good-plugins-lamemp3enc.html"/>
       <sub name="level" link="gst-plugins-good-plugins-level.html"/>
       <sub name="matroskademux" link="gst-plugins-good-plugins-matroskademux.html"/>
       <sub name="matroskamux" link="gst-plugins-good-plugins-matroskamux.html"/>
@@ -89,6 +92,7 @@
       <sub name="monoscope" link="gst-plugins-good-plugins-monoscope.html"/>
       <sub name="mp4mux" link="gst-plugins-good-plugins-mp4mux.html"/>
       <sub name="mpegaudioparse" link="gst-plugins-good-plugins-mpegaudioparse.html"/>
+      <sub name="mpg123audiodec" link="gst-plugins-good-plugins-mpg123audiodec.html"/>
       <sub name="mulawdec" link="gst-plugins-good-plugins-mulawdec.html"/>
       <sub name="mulawenc" link="gst-plugins-good-plugins-mulawenc.html"/>
       <sub name="multifilesink" link="gst-plugins-good-plugins-multifilesink.html"/>
@@ -112,6 +116,8 @@
       <sub name="pulsesink" link="gst-plugins-good-plugins-pulsesink.html"/>
       <sub name="pulsesrc" link="gst-plugins-good-plugins-pulsesrc.html"/>
       <sub name="pushfilesrc" link="gst-plugins-good-plugins-pushfilesrc.html"/>
+      <sub name="qmlglsink" link="gst-plugins-good-plugins-qmlglsink.html"/>
+      <sub name="qmlglsrc" link="gst-plugins-good-plugins-qmlglsrc.html"/>
       <sub name="qtdemux" link="gst-plugins-good-plugins-qtdemux.html"/>
       <sub name="qtmoovrecover" link="gst-plugins-good-plugins-qtmoovrecover.html"/>
       <sub name="qtmux" link="gst-plugins-good-plugins-qtmux.html"/>
@@ -169,6 +175,8 @@
       <sub name="rtpjpegpay" link="gst-plugins-good-plugins-rtpjpegpay.html"/>
       <sub name="rtpklvdepay" link="gst-plugins-good-plugins-rtpklvdepay.html"/>
       <sub name="rtpklvpay" link="gst-plugins-good-plugins-rtpklvpay.html"/>
+      <sub name="rtpL8depay" link="gst-plugins-good-plugins-rtpL8depay.html"/>
+      <sub name="rtpL8pay" link="gst-plugins-good-plugins-rtpL8pay.html"/>
       <sub name="rtpL16depay" link="gst-plugins-good-plugins-rtpL16depay.html"/>
       <sub name="rtpL16pay" link="gst-plugins-good-plugins-rtpL16pay.html"/>
       <sub name="rtpL24depay" link="gst-plugins-good-plugins-rtpL24depay.html"/>
@@ -241,6 +249,7 @@
       <sub name="streaktv" link="gst-plugins-good-plugins-streaktv.html"/>
       <sub name="taginject" link="gst-plugins-good-plugins-taginject.html"/>
       <sub name="testsink" link="gst-plugins-good-plugins-testsink.html"/>
+      <sub name="twolame" link="gst-plugins-good-plugins-twolame.html"/>
       <sub name="udpsink" link="gst-plugins-good-plugins-udpsink.html"/>
       <sub name="udpsrc" link="gst-plugins-good-plugins-udpsrc.html"/>
       <sub name="v4l2radio" link="gst-plugins-good-plugins-v4l2radio.html"/>
@@ -296,6 +305,7 @@
       <sub name="gdkpixbuf" link="gst-plugins-good-plugins-plugin-gdkpixbuf.html"/>
       <sub name="goom2k1" link="gst-plugins-good-plugins-plugin-goom2k1.html"/>
       <sub name="goom" link="gst-plugins-good-plugins-plugin-goom.html"/>
+      <sub name="gtk" link="gst-plugins-good-plugins-plugin-gtk.html"/>
       <sub name="icydemux" link="gst-plugins-good-plugins-plugin-icydemux.html"/>
       <sub name="id3demux" link="gst-plugins-good-plugins-plugin-id3demux.html"/>
       <sub name="imagefreeze" link="gst-plugins-good-plugins-plugin-imagefreeze.html"/>
@@ -303,9 +313,11 @@
       <sub name="isomp4" link="gst-plugins-good-plugins-plugin-isomp4.html"/>
       <sub name="jack" link="gst-plugins-good-plugins-plugin-jack.html"/>
       <sub name="jpeg" link="gst-plugins-good-plugins-plugin-jpeg.html"/>
+      <sub name="lame" link="gst-plugins-good-plugins-plugin-lame.html"/>
       <sub name="level" link="gst-plugins-good-plugins-plugin-level.html"/>
       <sub name="matroska" link="gst-plugins-good-plugins-plugin-matroska.html"/>
       <sub name="monoscope" link="gst-plugins-good-plugins-plugin-monoscope.html"/>
+      <sub name="mpg123" link="gst-plugins-good-plugins-plugin-mpg123.html"/>
       <sub name="mulaw" link="gst-plugins-good-plugins-plugin-mulaw.html"/>
       <sub name="multifile" link="gst-plugins-good-plugins-plugin-multifile.html"/>
       <sub name="multipart" link="gst-plugins-good-plugins-plugin-multipart.html"/>
@@ -316,6 +328,7 @@
       <sub name="osxvideo" link="gst-plugins-good-plugins-plugin-osxvideo.html"/>
       <sub name="png" link="gst-plugins-good-plugins-plugin-png.html"/>
       <sub name="pulseaudio" link="gst-plugins-good-plugins-plugin-pulseaudio.html"/>
+      <sub name="qmlgl" link="gst-plugins-good-plugins-plugin-qmlgl.html"/>
       <sub name="replaygain" link="gst-plugins-good-plugins-plugin-replaygain.html"/>
       <sub name="rtpmanager" link="gst-plugins-good-plugins-plugin-rtpmanager.html"/>
       <sub name="rtp" link="gst-plugins-good-plugins-plugin-rtp.html"/>
@@ -327,6 +340,7 @@
       <sub name="spectrum" link="gst-plugins-good-plugins-plugin-spectrum.html"/>
       <sub name="speex" link="gst-plugins-good-plugins-plugin-speex.html"/>
       <sub name="taglib" link="gst-plugins-good-plugins-plugin-taglib.html"/>
+      <sub name="twolame" link="gst-plugins-good-plugins-plugin-twolame.html"/>
       <sub name="udp" link="gst-plugins-good-plugins-plugin-udp.html"/>
       <sub name="video4linux2" link="gst-plugins-good-plugins-plugin-video4linux2.html"/>
       <sub name="videobox" link="gst-plugins-good-plugins-plugin-videobox.html"/>
@@ -359,6 +373,8 @@
     <keyword type="property" name="The “reserved-moov-update-period” property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--reserved-moov-update-period"/>
     <keyword type="property" name="The “interleave-bytes” property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--interleave-bytes"/>
     <keyword type="property" name="The “interleave-time” property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--interleave-time"/>
+    <keyword type="property" name="The “max-raw-audio-drift” property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--max-raw-audio-drift"/>
+    <keyword type="property" name="The “reserved-prefill” property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--reserved-prefill"/>
     <keyword type="struct" name="struct GstAacParse" link="gst-plugins-good-plugins-aacparse.html#GstAacParse-struct"/>
     <keyword type="struct" name="struct GstAASink" link="gst-plugins-good-plugins-aasink.html#GstAASink-struct"/>
     <keyword type="property" name="The “brightness” property" link="gst-plugins-good-plugins-aasink.html#GstAASink--brightness"/>
@@ -596,6 +612,8 @@
     <keyword type="property" name="The “post-messages” property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages"/>
     <keyword type="struct" name="struct GstGoom2k1" link="gst-plugins-good-plugins-goom2k1.html#GstGoom2k1-struct"/>
     <keyword type="struct" name="struct GstGoom" link="gst-plugins-good-plugins-goom.html#GstGoom-struct"/>
+    <keyword type="struct" name="struct GstGtkGLSink" link="gst-plugins-good-plugins-gtkglsink.html#GstGtkGLSink-struct"/>
+    <keyword type="struct" name="struct GstGtkSink" link="gst-plugins-good-plugins-gtksink.html#GstGtkSink-struct"/>
     <keyword type="struct" name="struct GstHDV1394Src" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src-struct"/>
     <keyword type="property" name="The “channel” property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--channel"/>
     <keyword type="property" name="The “device-name” property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--device-name"/>
@@ -627,6 +645,8 @@
     <keyword type="property" name="The “reserved-moov-update-period” property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--reserved-moov-update-period"/>
     <keyword type="property" name="The “interleave-bytes” property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--interleave-bytes"/>
     <keyword type="property" name="The “interleave-time” property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--interleave-time"/>
+    <keyword type="property" name="The “max-raw-audio-drift” property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--max-raw-audio-drift"/>
+    <keyword type="property" name="The “reserved-prefill” property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--reserved-prefill"/>
     <keyword type="struct" name="struct GstJackAudioSink" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink-struct"/>
     <keyword type="property" name="The “client” property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client"/>
     <keyword type="property" name="The “connect” property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--connect"/>
@@ -647,6 +667,14 @@
     <keyword type="struct" name="struct GstJpegEnc" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-struct"/>
     <keyword type="property" name="The “quality” property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--quality"/>
     <keyword type="property" name="The “idct-method” property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--idct-method"/>
+    <keyword type="property" name="The “snapshot” property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--snapshot"/>
+    <keyword type="struct" name="struct GstLameMP3Enc" link="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc-struct"/>
+    <keyword type="property" name="The “bitrate” property" link="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc--bitrate"/>
+    <keyword type="property" name="The “cbr” property" link="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc--cbr"/>
+    <keyword type="property" name="The “encoding-engine-quality” property" link="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc--encoding-engine-quality"/>
+    <keyword type="property" name="The “mono” property" link="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc--mono"/>
+    <keyword type="property" name="The “quality” property" link="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc--quality"/>
+    <keyword type="property" name="The “target” property" link="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc--target"/>
     <keyword type="struct" name="struct GstLevel" link="gst-plugins-good-plugins-level.html#GstLevel-struct"/>
     <keyword type="property" name="The “interval” property" link="gst-plugins-good-plugins-level.html#GstLevel--interval"/>
     <keyword type="property" name="The “message” property" link="gst-plugins-good-plugins-level.html#GstLevel--message"/>
@@ -680,6 +708,8 @@
     <keyword type="property" name="The “reserved-moov-update-period” property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--reserved-moov-update-period"/>
     <keyword type="property" name="The “interleave-bytes” property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--interleave-bytes"/>
     <keyword type="property" name="The “interleave-time” property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--interleave-time"/>
+    <keyword type="property" name="The “max-raw-audio-drift” property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--max-raw-audio-drift"/>
+    <keyword type="property" name="The “reserved-prefill” property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--reserved-prefill"/>
     <keyword type="struct" name="struct GstMonoscope" link="gst-plugins-good-plugins-monoscope.html#GstMonoscope"/>
     <keyword type="struct" name="GstMP4Mux" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux-struct"/>
     <keyword type="property" name="The “dts-method” property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--dts-method"/>
@@ -697,7 +727,10 @@
     <keyword type="property" name="The “reserved-moov-update-period” property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--reserved-moov-update-period"/>
     <keyword type="property" name="The “interleave-bytes” property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--interleave-bytes"/>
     <keyword type="property" name="The “interleave-time” property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--interleave-time"/>
+    <keyword type="property" name="The “max-raw-audio-drift” property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--max-raw-audio-drift"/>
+    <keyword type="property" name="The “reserved-prefill” property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--reserved-prefill"/>
     <keyword type="struct" name="struct GstMpegAudioParse" link="gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse-struct"/>
+    <keyword type="struct" name="struct GstMpg123AudioDec" link="gst-plugins-good-plugins-mpg123audiodec.html#GstMpg123AudioDec-struct"/>
     <keyword type="struct" name="struct GstMuLawDec" link="gst-plugins-good-plugins-mulawdec.html#GstMuLawDec-struct"/>
     <keyword type="struct" name="struct GstMuLawEnc" link="gst-plugins-good-plugins-mulawenc.html#GstMuLawEnc-struct"/>
     <keyword type="struct" name="struct GstMultiFileSink" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink-struct"/>
@@ -811,6 +844,13 @@
     <keyword type="property" name="The “start-time” property" link="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--start-time"/>
     <keyword type="property" name="The “stream-time” property" link="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--stream-time"/>
     <keyword type="property" name="The “time-segment” property" link="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--time-segment"/>
+    <keyword type="struct" name="struct GstQtSink" link="gst-plugins-good-plugins-qmlglsink.html#GstQtSink-struct"/>
+    <keyword type="property" name="The “force-aspect-ratio” property" link="gst-plugins-good-plugins-qmlglsink.html#GstQtSink--force-aspect-ratio"/>
+    <keyword type="property" name="The “pixel-aspect-ratio” property" link="gst-plugins-good-plugins-qmlglsink.html#GstQtSink--pixel-aspect-ratio"/>
+    <keyword type="property" name="The “widget” property" link="gst-plugins-good-plugins-qmlglsink.html#GstQtSink--widget"/>
+    <keyword type="struct" name="struct GstQtSrc" link="gst-plugins-good-plugins-qmlglsrc.html#GstQtSrc-struct"/>
+    <keyword type="property" name="The “use-default-fbo” property" link="gst-plugins-good-plugins-qmlglsrc.html#GstQtSrc--use-default-fbo"/>
+    <keyword type="property" name="The “window” property" link="gst-plugins-good-plugins-qmlglsrc.html#GstQtSrc--window"/>
     <keyword type="struct" name="struct GstQTDemux" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-struct"/>
     <keyword type="struct" name="struct GstQTMoovRecover" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct"/>
     <keyword type="property" name="The “broken-input” property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--broken-input"/>
@@ -833,6 +873,8 @@
     <keyword type="property" name="The “reserved-moov-update-period” property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--reserved-moov-update-period"/>
     <keyword type="property" name="The “interleave-bytes” property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--interleave-bytes"/>
     <keyword type="property" name="The “interleave-time” property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--interleave-time"/>
+    <keyword type="property" name="The “max-raw-audio-drift” property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--max-raw-audio-drift"/>
+    <keyword type="property" name="The “reserved-prefill” property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--reserved-prefill"/>
     <keyword type="struct" name="struct GstQuarkTV" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV-struct"/>
     <keyword type="property" name="The “planes” property" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes"/>
     <keyword type="struct" name="struct GstRadioacTV" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV-struct"/>
@@ -887,6 +929,8 @@
     <keyword type="property" name="The “rtcp-sync-send-time” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync-send-time"/>
     <keyword type="property" name="The “rfc7273-sync” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rfc7273-sync"/>
     <keyword type="property" name="The “max-streams” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-streams"/>
+    <keyword type="property" name="The “max-ts-offset” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-ts-offset"/>
+    <keyword type="property" name="The “max-ts-offset-adjustment” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-ts-offset-adjustment"/>
     <keyword type="signal" name="The “clear-pt-map” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-clear-pt-map"/>
     <keyword type="signal" name="The “get-internal-session” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-get-internal-session"/>
     <keyword type="signal" name="The “on-bye-ssrc” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-ssrc"/>
@@ -1002,6 +1046,8 @@
     <keyword type="property" name="The “rfc7273-sync” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rfc7273-sync"/>
     <keyword type="property" name="The “rtx-deadline” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-deadline"/>
     <keyword type="property" name="The “rtx-stats-timeout” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-stats-timeout"/>
+    <keyword type="property" name="The “faststart-min-packets” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--faststart-min-packets"/>
+    <keyword type="property" name="The “max-ts-offset-adjustment” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--max-ts-offset-adjustment"/>
     <keyword type="signal" name="The “clear-pt-map” signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-clear-pt-map"/>
     <keyword type="signal" name="The “handle-sync” signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-handle-sync"/>
     <keyword type="signal" name="The “on-npt-stop” signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop"/>
@@ -1013,6 +1059,8 @@
     <keyword type="property" name="The “type” property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type"/>
     <keyword type="struct" name="struct GstRtpKlvDepay" link="gst-plugins-good-plugins-rtpklvdepay.html#GstRtpKlvDepay-struct"/>
     <keyword type="struct" name="struct GstRtpKlvPay" link="gst-plugins-good-plugins-rtpklvpay.html#GstRtpKlvPay-struct"/>
+    <keyword type="struct" name="struct GstRtpL8Depay" link="gst-plugins-good-plugins-rtpL8depay.html#GstRtpL8Depay-struct"/>
+    <keyword type="struct" name="struct GstRtpL8Pay" link="gst-plugins-good-plugins-rtpL8pay.html#GstRtpL8Pay-struct"/>
     <keyword type="struct" name="struct GstRtpL16Depay" link="gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct"/>
     <keyword type="struct" name="struct GstRtpL16Pay" link="gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct"/>
     <keyword type="struct" name="struct GstRtpL24Depay" link="gst-plugins-good-plugins-rtpL24depay.html#GstRtpL24Depay-struct"/>
@@ -1069,6 +1117,7 @@
     <keyword type="property" name="The “payload-type-map” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--payload-type-map"/>
     <keyword type="property" name="The “ssrc-map” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--ssrc-map"/>
     <keyword type="struct" name="struct GstRtpSbcDepay" link="gst-plugins-good-plugins-rtpsbcdepay.html#GstRtpSbcDepay-struct"/>
+    <keyword type="property" name="The “ignore-timestamps” property" link="gst-plugins-good-plugins-rtpsbcdepay.html#GstRtpSbcDepay--ignore-timestamps"/>
     <keyword type="struct" name="struct GstRtpSBCPay" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct"/>
     <keyword type="property" name="The “min-frames” property" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames"/>
     <keyword type="struct" name="struct GstRtpSession" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-struct"/>
@@ -1166,11 +1215,16 @@
     <keyword type="property" name="The “user-agent” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-agent"/>
     <keyword type="property" name="The “max-rtcp-rtp-time-diff” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--max-rtcp-rtp-time-diff"/>
     <keyword type="property" name="The “rfc7273-sync” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--rfc7273-sync"/>
+    <keyword type="property" name="The “default-rtsp-version” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--default-rtsp-version"/>
+    <keyword type="property" name="The “max-ts-offset” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--max-ts-offset"/>
+    <keyword type="property" name="The “max-ts-offset-adjustment” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--max-ts-offset-adjustment"/>
     <keyword type="signal" name="The “handle-request” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request"/>
     <keyword type="signal" name="The “on-sdp” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp"/>
     <keyword type="signal" name="The “select-stream” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream"/>
     <keyword type="signal" name="The “new-manager” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-new-manager"/>
     <keyword type="signal" name="The “request-rtcp-key” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-request-rtcp-key"/>
+    <keyword type="signal" name="The “accept-certificate” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-accept-certificate"/>
+    <keyword type="signal" name="The “before-send” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-before-send"/>
     <keyword type="struct" name="struct GstSbcParse" link="gst-plugins-good-plugins-sbcparse.html#GstSbcParse-struct"/>
     <keyword type="struct" name="struct GstScaletempo" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct"/>
     <keyword type="property" name="The “overlap” property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap"/>
@@ -1181,7 +1235,7 @@
     <keyword type="struct" name="struct GstShapeWipe" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe-struct"/>
     <keyword type="property" name="The “border” property" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--border"/>
     <keyword type="property" name="The “position” property" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--position"/>
-    <keyword type="struct" name="struct GstShout2send" link="gst-plugins-good-plugins-shout2send.html#GstShout2send"/>
+    <keyword type="struct" name="struct GstShout2send" link="gst-plugins-good-plugins-shout2send.html#GstShout2send-struct"/>
     <keyword type="property" name="The “description” property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--description"/>
     <keyword type="property" name="The “genre” property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--genre"/>
     <keyword type="property" name="The “ip” property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--ip"/>
@@ -1193,6 +1247,7 @@
     <keyword type="property" name="The “url” property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--url"/>
     <keyword type="property" name="The “username” property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--username"/>
     <keyword type="property" name="The “public” property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--public"/>
+    <keyword type="property" name="The “timeout” property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--timeout"/>
     <keyword type="signal" name="The “connection-problem” signal" link="gst-plugins-good-plugins-shout2send.html#GstShout2send-connection-problem"/>
     <keyword type="struct" name="struct GstSMPTEAlpha" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha-struct"/>
     <keyword type="property" name="The “border” property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border"/>
@@ -1277,8 +1332,11 @@
     <keyword type="property" name="The “max-files” property" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--max-files"/>
     <keyword type="property" name="The “send-keyframe-requests” property" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--send-keyframe-requests"/>
     <keyword type="property" name="The “max-size-timecode” property" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--max-size-timecode"/>
+    <keyword type="property" name="The “alignment-threshold” property" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--alignment-threshold"/>
+    <keyword type="property" name="The “use-robust-muxing” property" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--use-robust-muxing"/>
     <keyword type="signal" name="The “format-location” signal" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink-format-location"/>
     <keyword type="signal" name="The “format-location-full” signal" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink-format-location-full"/>
+    <keyword type="signal" name="The “split-now” signal" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink-split-now"/>
     <keyword type="struct" name="struct GstSplitMuxSrc" link="gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc-struct"/>
     <keyword type="property" name="The “location” property" link="gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc--location"/>
     <keyword type="signal" name="The “format-location” signal" link="gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc-format-location"/>
@@ -1286,6 +1344,22 @@
     <keyword type="property" name="The “feedback” property" link="gst-plugins-good-plugins-streaktv.html#GstStreakTV--feedback"/>
     <keyword type="struct" name="struct GstTagInject" link="gst-plugins-good-plugins-taginject.html#GstTagInject-struct"/>
     <keyword type="property" name="The “tags” property" link="gst-plugins-good-plugins-taginject.html#GstTagInject--tags"/>
+    <keyword type="struct" name="struct GstTwoLame" link="gst-plugins-good-plugins-twolame.html#GstTwoLame-struct"/>
+    <keyword type="property" name="The “ath-level” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--ath-level"/>
+    <keyword type="property" name="The “bitrate” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--bitrate"/>
+    <keyword type="property" name="The “copyright” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--copyright"/>
+    <keyword type="property" name="The “emphasis” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--emphasis"/>
+    <keyword type="property" name="The “energy-level-extension” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--energy-level-extension"/>
+    <keyword type="property" name="The “error-protection” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--error-protection"/>
+    <keyword type="property" name="The “mode” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--mode"/>
+    <keyword type="property" name="The “original” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--original"/>
+    <keyword type="property" name="The “padding” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--padding"/>
+    <keyword type="property" name="The “psymodel” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--psymodel"/>
+    <keyword type="property" name="The “quick-mode” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--quick-mode"/>
+    <keyword type="property" name="The “quick-mode-count” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--quick-mode-count"/>
+    <keyword type="property" name="The “vbr” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--vbr"/>
+    <keyword type="property" name="The “vbr-level” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--vbr-level"/>
+    <keyword type="property" name="The “vbr-max-bitrate” property" link="gst-plugins-good-plugins-twolame.html#GstTwoLame--vbr-max-bitrate"/>
     <keyword type="struct" name="struct GstUDPSink" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink-struct"/>
     <keyword type="property" name="The “host” property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--host"/>
     <keyword type="property" name="The “port” property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--port"/>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
index 41071cc3e..6df1efe54 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="next" href="gst-plugins-good-plugins-aacparse.html" title="aacparse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -120,6 +120,16 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--interleave-time" title="The “interleave-time” property">interleave-time</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--max-raw-audio-drift" title="The “max-raw-audio-drift” property">max-raw-audio-drift</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--reserved-prefill" title="The “reserved-prefill” property">reserved-prefill</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -487,9 +497,25 @@ and muxes it into an 3gp file.
 <p>Flags: Read / Write</p>
 <p>Default value: 250000000</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="Gst3GPPMux--max-raw-audio-drift"></a><h3>The <code class="literal">“max-raw-audio-drift”</code> property</h3>
+<pre class="programlisting">  “max-raw-audio-drift”      <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
+<p>Maximum allowed drift of raw audio samples vs. timestamps in nanoseconds.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 40000000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="Gst3GPPMux--reserved-prefill"></a><h3>The <code class="literal">“reserved-prefill”</code> property</h3>
+<pre class="programlisting">  “reserved-prefill”         <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Prefill samples table of reserved duration.</p>
+<p>Flags: Read / Write / Construct</p>
+<p>Default value: FALSE</p>
+</div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html
index 4f015247b..17aab6006 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-3gppmux.html" title="3gppmux">
 <link rel="next" href="gst-plugins-good-plugins-aasink.html" title="aasink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -174,6 +174,6 @@ can also estimate playback position and clip duration.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-aasink.html b/docs/plugins/html/gst-plugins-good-plugins-aasink.html
index 1f3afe8f8..8b8b36733 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-aasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-aasink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-aacparse.html" title="aacparse">
 <link rel="next" href="gst-plugins-good-plugins-ac3parse.html" title="ac3parse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -317,6 +317,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html
index 43048bf0f..f3d5b229b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-aasink.html" title="aasink">
 <link rel="next" href="gst-plugins-good-plugins-agingtv.html" title="agingtv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -187,6 +187,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html
index 17a8e1cb4..a849ac13f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-ac3parse.html" title="ac3parse">
 <link rel="next" href="gst-plugins-good-plugins-alawdec.html" title="alawdec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -236,6 +236,6 @@ scratches and dust.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html
index ac4bb9926..232c73653 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-agingtv.html" title="agingtv">
 <link rel="next" href="gst-plugins-good-plugins-alawenc.html" title="alawenc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -152,6 +152,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
index a6e1e8adb..d6c374873 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-alawdec.html" title="alawdec">
 <link rel="next" href="gst-plugins-good-plugins-alphacolor.html" title="alphacolor">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -159,6 +159,6 @@ GstALawEnc implements
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alpha.html b/docs/plugins/html/gst-plugins-good-plugins-alpha.html
index 82efc0820..2bc4bf139 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alpha.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-alphacolor.html" title="alphacolor">
 <link rel="next" href="gst-plugins-good-plugins-amrparse.html" title="amrparse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -382,6 +382,6 @@ Jan Schmidt &lt;thaytan@noraisin.net&gt;</td>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html
index 8f66e5a9f..151f3ae5d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-alawenc.html" title="alawenc">
 <link rel="next" href="gst-plugins-good-plugins-alpha.html" title="alpha">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -170,6 +170,6 @@ alpha channel.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html
index b175a903a..9044b8a13 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-alpha.html" title="alpha">
 <link rel="next" href="gst-plugins-good-plugins-apedemux.html" title="apedemux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -187,10 +187,10 @@ formats.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-amrparse.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gst-plugins-ugly-plugins-1.0/gst-plugins-ugly-plugins-amrnbdec.html#GstAmrnbDec-struct"><span class="type">GstAmrnbDec</span></a>, <a href="/usr/share/gtk-doc/html/gst-plugins-ugly-plugins-1.0/gst-plugins-ugly-plugins-amrnbenc.html#GstAmrnbEnc-struct"><span class="type">GstAmrnbEnc</span></a></p>
+<p><span class="type">GstAmrnbDec</span>, <span class="type">GstAmrnbEnc</span></p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-apedemux.html b/docs/plugins/html/gst-plugins-good-plugins-apedemux.html
index 88f5e0548..981e6b102 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-apedemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-apedemux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-amrparse.html" title="amrparse">
 <link rel="next" href="gst-plugins-good-plugins-apev2mux.html" title="apev2mux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -177,6 +177,6 @@ the appropriate mime type set on buffers produced from apedemux.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html
index 6f455843a..1f73c52a7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-apedemux.html" title="apedemux">
 <link rel="next" href="gst-plugins-good-plugins-aspectratiocrop.html" title="aspectratiocrop">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -194,6 +194,6 @@ Ogg/Vorbis file actually has comments to preserve.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html
index 4d2065af4..1b05035e3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-apev2mux.html" title="apev2mux">
 <link rel="next" href="gst-plugins-good-plugins-asteriskh263.html" title="asteriskh263">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -204,6 +204,6 @@ in pass-through mode.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-asteriskh263.html b/docs/plugins/html/gst-plugins-good-plugins-asteriskh263.html
index 35b83d751..ed65f90a4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-asteriskh263.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-asteriskh263.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-aspectratiocrop.html" title="aspectratiocrop">
 <link rel="next" href="gst-plugins-good-plugins-audioamplify.html" title="audioamplify">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -150,6 +150,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html
index 5491181e6..7a35cb31c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-asteriskh263.html" title="asteriskh263">
 <link rel="next" href="gst-plugins-good-plugins-audiochebband.html" title="audiochebband">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -215,6 +215,6 @@ opposite side, wrap-positive pushes them back from the same side.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html
index 3e902ce5c..a70dd30e0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audioamplify.html" title="audioamplify">
 <link rel="next" href="gst-plugins-good-plugins-audiocheblimit.html" title="audiocheblimit">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -284,6 +284,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
index f25eef79f..cc372d958 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiochebband.html" title="audiochebband">
 <link rel="next" href="gst-plugins-good-plugins-audiodynamic.html" title="audiodynamic">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -270,6 +270,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
index 8d247b75b..9577a74d9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiocheblimit.html" title="audiocheblimit">
 <link rel="next" href="gst-plugins-good-plugins-audioecho.html" title="audioecho">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -243,6 +243,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
index f99830414..8f3028c0f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiodynamic.html" title="audiodynamic">
 <link rel="next" href="gst-plugins-good-plugins-audiofirfilter.html" title="audiofirfilter">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -281,6 +281,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
index 667f116fc..2de1ad879 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audioecho.html" title="audioecho">
 <link rel="next" href="gst-plugins-good-plugins-audioiirfilter.html" title="audioiirfilter">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -606,6 +606,6 @@ stop until the event is handled.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
index 096bb3c30..0e46e7b89 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiofirfilter.html" title="audiofirfilter">
 <link rel="next" href="gst-plugins-good-plugins-audioinvert.html" title="audioinvert">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -554,6 +554,6 @@ stop until the event is handled.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
index bd8d157f0..bd7e2ce67 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audioiirfilter.html" title="audioiirfilter">
 <link rel="next" href="gst-plugins-good-plugins-audiokaraoke.html" title="audiokaraoke">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -200,6 +200,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
index b6f31292a..6f146fe41 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audioinvert.html" title="audioinvert">
 <link rel="next" href="gst-plugins-good-plugins-audiopanorama.html" title="audiopanorama">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -239,6 +239,6 @@ This plugin is useful for karaoke applications.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
index b423c2a67..85aa1e95a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiokaraoke.html" title="audiokaraoke">
 <link rel="next" href="gst-plugins-good-plugins-audiowsincband.html" title="audiowsincband">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -249,6 +249,6 @@ a matter of taste which method should be chosen.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
index 70f2401f0..c3c0ff70a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiopanorama.html" title="audiopanorama">
 <link rel="next" href="gst-plugins-good-plugins-audiowsinclimit.html" title="audiowsinclimit">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -262,6 +262,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
index 1ad04d10a..f3abed080 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiowsincband.html" title="audiowsincband">
 <link rel="next" href="gst-plugins-good-plugins-auparse.html" title="auparse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -248,6 +248,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-auparse.html b/docs/plugins/html/gst-plugins-good-plugins-auparse.html
index 9d2f1c2d3..9dab9ef7c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-auparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-auparse.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiowsinclimit.html" title="audiowsinclimit">
 <link rel="next" href="gst-plugins-good-plugins-autoaudiosink.html" title="autoaudiosink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -167,6 +167,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html
index 6f9fe2ff3..3890e5bac 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-auparse.html" title="auparse">
 <link rel="next" href="gst-plugins-good-plugins-autoaudiosrc.html" title="autoaudiosrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -198,6 +198,6 @@ of their element information, and also have a non-zero autoplugging rank.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html
index 099ae7ac2..ce2238614 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-autoaudiosink.html" title="autoaudiosink">
 <link rel="next" href="gst-plugins-good-plugins-autovideosink.html" title="autovideosink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -157,6 +157,6 @@ of their element information, and also have a non-zero autoplugging rank.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html
index 34aadc7ff..cb8b6c8eb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-autoaudiosrc.html" title="autoaudiosrc">
 <link rel="next" href="gst-plugins-good-plugins-autovideosrc.html" title="autovideosrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -198,6 +198,6 @@ of their element information, and also have a non-zero autoplugging rank.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html
index aa74b93d0..31a154eed 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-autovideosink.html" title="autovideosink">
 <link rel="next" href="gst-plugins-good-plugins-avidemux.html" title="avidemux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -157,6 +157,6 @@ of their element information, and also have a non-zero autoplugging rank.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-avidemux.html b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html
index 999b51a63..c9dc3e237 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avidemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-autovideosrc.html" title="autovideosrc">
 <link rel="next" href="gst-plugins-good-plugins-avimux.html" title="avimux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -678,6 +678,6 @@ right decoder elements/plugins installed.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-avimux.html b/docs/plugins/html/gst-plugins-good-plugins-avimux.html
index 73a433b67..9058ac982 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avimux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avimux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-avidemux.html" title="avidemux">
 <link rel="next" href="gst-plugins-good-plugins-avisubtitle.html" title="avisubtitle">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -330,6 +330,6 @@ only work if you have the necessary encoder elements installed of course.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html
index a8c038a64..ce04a7970 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-avimux.html" title="avimux">
 <link rel="next" href="gst-plugins-good-plugins-breakmydata.html" title="breakmydata">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -164,6 +164,6 @@ This plays an avi file with a video and subtitle stream.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-breakmydata.html b/docs/plugins/html/gst-plugins-good-plugins-breakmydata.html
index 31607a47a..b7d657d8a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-breakmydata.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-breakmydata.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-avisubtitle.html" title="avisubtitle">
 <link rel="next" href="gst-plugins-good-plugins-cacasink.html" title="cacasink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -126,6 +126,6 @@ It otherwise acts as an identity.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html
index 1e5f700fb..3b3c3dcf1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-breakmydata.html" title="breakmydata">
 <link rel="next" href="gst-plugins-good-plugins-cairooverlay.html" title="cairooverlay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -227,6 +227,6 @@ small font and specifying the ascii resolution.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html
index 3e62f6b0a..b07309d1e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-cacasink.html" title="cacasink">
 <link rel="next" href="gst-plugins-good-plugins-capssetter.html" title="capssetter">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -176,16 +176,16 @@
     <span class="keyword">return</span><span class="gtkdoc opt">;</span>
 
   scale <span class="gtkdoc opt">=</span> <span class="number">2</span><span class="gtkdoc opt">*(((</span>timestamp<span class="gtkdoc opt">/(</span><span class="gtkdoc kwb">int</span><span class="gtkdoc opt">)</span><span class="number">1</span>e7<span class="gtkdoc opt">) %</span> <span class="number">70</span><span class="gtkdoc opt">)+</span><span class="number">30</span><span class="gtkdoc opt">)/</span><span class="number">100.0</span><span class="gtkdoc opt">;</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Transformations.html#cairo-translate">cairo_translate</a></span><span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> s<span class="gtkdoc opt">-&gt;</span>width<span class="gtkdoc opt">/</span><span class="number">2</span><span class="gtkdoc opt">, (</span>s<span class="gtkdoc opt">-&gt;</span>height<span class="gtkdoc opt">/</span><span class="number">2</span><span class="gtkdoc opt">)-</span><span class="number">30</span><span class="gtkdoc opt">);</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Transformations.html#cairo-scale">cairo_scale</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> scale<span class="gtkdoc opt">,</span> scale<span class="gtkdoc opt">);</span>
+  <span class="function">cairo_translate</span><span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> s<span class="gtkdoc opt">-&gt;</span>width<span class="gtkdoc opt">/</span><span class="number">2</span><span class="gtkdoc opt">, (</span>s<span class="gtkdoc opt">-&gt;</span>height<span class="gtkdoc opt">/</span><span class="number">2</span><span class="gtkdoc opt">)-</span><span class="number">30</span><span class="gtkdoc opt">);</span>
+  <span class="function">cairo_scale</span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> scale<span class="gtkdoc opt">,</span> scale<span class="gtkdoc opt">);</span>
 
-  <span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-move-to">cairo_move_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,-</span><span class="number">30</span><span class="gtkdoc opt">, -</span><span class="number">50</span><span class="gtkdoc opt">,-</span><span class="number">30</span><span class="gtkdoc opt">, -</span><span class="number">50</span><span class="gtkdoc opt">,</span><span class="number">0</span><span class="gtkdoc opt">);</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">, -</span><span class="number">50</span><span class="gtkdoc opt">,</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span><span class="number">35</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span><span class="number">60</span> <span class="gtkdoc opt">);</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span><span class="number">35</span><span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,</span><span class="number">0</span> <span class="gtkdoc opt">); *</span>  
-  <span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,-</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,-</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span><span class="number">0</span> <span class="gtkdoc opt">);</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-set-source-rgba">cairo_set_source_rgba</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0.9</span><span class="gtkdoc opt">,</span> <span class="number">0.0</span><span class="gtkdoc opt">,</span> <span class="number">0.1</span><span class="gtkdoc opt">,</span> <span class="number">0.7</span><span class="gtkdoc opt">);</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-fill">cairo_fill</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span>
+  <span class="function">cairo_move_to</span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+  <span class="function">cairo_curve_to</span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,-</span><span class="number">30</span><span class="gtkdoc opt">, -</span><span class="number">50</span><span class="gtkdoc opt">,-</span><span class="number">30</span><span class="gtkdoc opt">, -</span><span class="number">50</span><span class="gtkdoc opt">,</span><span class="number">0</span><span class="gtkdoc opt">);</span>
+  <span class="function">cairo_curve_to</span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">, -</span><span class="number">50</span><span class="gtkdoc opt">,</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span><span class="number">35</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span><span class="number">60</span> <span class="gtkdoc opt">);</span>
+  <span class="function">cairo_curve_to</span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span><span class="number">35</span><span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,</span><span class="number">0</span> <span class="gtkdoc opt">); *</span>  
+  <span class="function">cairo_curve_to</span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,-</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,-</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span><span class="number">0</span> <span class="gtkdoc opt">);</span>
+  <span class="function">cairo_set_source_rgba</span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0.9</span><span class="gtkdoc opt">,</span> <span class="number">0.0</span><span class="gtkdoc opt">,</span> <span class="number">0.1</span><span class="gtkdoc opt">,</span> <span class="number">0.7</span><span class="gtkdoc opt">);</span>
+  <span class="function">cairo_fill</span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span>
 <span class="gtkdoc opt">}</span>
 
 <span class="gtkdoc opt">...</span>
@@ -383,6 +383,6 @@ user_function (<a class="link" href="gst-plugins-good-plugins-cairooverlay.html#
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html b/docs/plugins/html/gst-plugins-good-plugins-capssetter.html
index df2723dfb..00f163bd4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-capssetter.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-cairooverlay.html" title="cairooverlay">
 <link rel="next" href="gst-plugins-good-plugins-cpureport.html" title="cpureport">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -220,6 +220,6 @@ alike.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cpureport.html b/docs/plugins/html/gst-plugins-good-plugins-cpureport.html
index bfadd8d48..3063b57a9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cpureport.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cpureport.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-capssetter.html" title="capssetter">
 <link rel="next" href="gst-plugins-good-plugins-cutter.html" title="cutter">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cutter.html b/docs/plugins/html/gst-plugins-good-plugins-cutter.html
index e2683a9e4..b657e7a76 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cutter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cutter.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-cpureport.html" title="cpureport">
 <link rel="next" href="gst-plugins-good-plugins-dcaparse.html" title="dcaparse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -260,6 +260,6 @@ silence is signalled by bus messages named</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
index c63011ce8..eb04725c0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-cutter.html" title="cutter">
 <link rel="next" href="gst-plugins-good-plugins-deinterlace.html" title="deinterlace">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -175,6 +175,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
index a60736226..45c3ba5c1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-dcaparse.html" title="dcaparse">
 <link rel="next" href="gst-plugins-good-plugins-deinterleave.html" title="deinterleave">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -199,7 +199,7 @@ For this different algorithms can be selected which will be described later.</p>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -227,7 +227,7 @@ For this different algorithms can be selected which will be described later.</p>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -528,6 +528,6 @@ streams.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html
index e29b2d5a7..b40623ad5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-deinterlace.html" title="deinterlace">
 <link rel="next" href="gst-plugins-good-plugins-dicetv.html" title="dicetv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -218,6 +218,6 @@ if the output should be handled as Mono.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dicetv.html b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html
index 9d3fb9792..f3105a959 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dicetv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-deinterleave.html" title="deinterleave">
 <link rel="next" href="gst-plugins-good-plugins-directsoundsink.html" title="directsoundsink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -199,6 +199,6 @@ consistent between each frame.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
index 883b2d498..50828bcb1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
@@ -8,7 +8,7 @@
 <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-dtmfsrc.html" title="dtmfsrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -160,6 +160,6 @@ a very low volume as precaution).
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html b/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html
index 7edc55636..a412e1a4b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html
@@ -8,7 +8,7 @@
 <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.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -251,6 +251,6 @@ READY state, then a "dtmf-event-dropped" message is posted on the
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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 b2a938ac9..1f0833e24 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <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.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -301,6 +301,6 @@ user_function (<a class="link" href="gst-plugins-good-plugins-dv1394src.html#Gst
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html
index 2d57ab6c2..1e4a10c56 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-dv1394src.html" title="dv1394src">
 <link rel="next" href="gst-plugins-good-plugins-dvdemux.html" title="dvdemux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -237,6 +237,6 @@ Nth frame.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html
index 722cf3a70..78492b8be 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-dvdec.html" title="dvdec">
 <link rel="next" href="gst-plugins-good-plugins-dynudpsink.html" title="dynudpsink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -192,6 +192,6 @@ capabilities of the upstream peer.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dynudpsink.html b/docs/plugins/html/gst-plugins-good-plugins-dynudpsink.html
index 57eb7b585..dd5dc0ddd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dynudpsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dynudpsink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-dvdemux.html" title="dvdemux">
 <link rel="next" href="gst-plugins-good-plugins-edgetv.html" title="edgetv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -238,6 +238,6 @@ user_function (<a class="link" href="gst-plugins-good-plugins-dynudpsink.html#Gs
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html
index 82a1e47f6..2bd4d84bf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-dynudpsink.html" title="dynudpsink">
 <link rel="next" href="gst-plugins-good-plugins-equalizer-10bands.html" title="equalizer-10bands">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -168,6 +168,6 @@ computer way.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 a4248a315..78bee89fe 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-edgetv.html" title="edgetv">
 <link rel="next" href="gst-plugins-good-plugins-equalizer-3bands.html" title="equalizer-3bands">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -331,6 +331,6 @@ frequency bands between 30 Hz and 15 kHz.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 57ec07df8..5d24584b1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html
@@ -8,7 +8,7 @@
 <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">
 <link rel="next" href="gst-plugins-good-plugins-equalizer-nbands.html" title="equalizer-nbands">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -233,6 +233,6 @@ medium frequency and high frequency band.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 995dd8be2..8d3156fb8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html
@@ -8,7 +8,7 @@
 <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">
 <link rel="next" href="gst-plugins-good-plugins-flacdec.html" title="flacdec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -293,6 +293,6 @@ the center frequency, band width and gain.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
index 12e69d998..24639c9d5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
@@ -8,7 +8,7 @@
 <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">
 <link rel="next" href="gst-plugins-good-plugins-flacenc.html" title="flacenc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -182,6 +182,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
index 33f97ed5f..4dbd3cab0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flacdec.html" title="flacdec">
 <link rel="next" href="gst-plugins-good-plugins-flacparse.html" title="flacparse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -446,6 +446,6 @@ a file, or embedded into containers such as oggmux or matroskamux.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
index a989e8ef6..5324b5de8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flacenc.html" title="flacenc">
 <link rel="next" href="gst-plugins-good-plugins-flactag.html" title="flactag">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -209,6 +209,6 @@ buffer has the timestamp, duration, offset, and offset_end set.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flactag.html b/docs/plugins/html/gst-plugins-good-plugins-flactag.html
index 04ad493cc..e94cbb47e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flactag.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flactag.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flacparse.html" title="flacparse">
 <link rel="next" href="gst-plugins-good-plugins-flvdemux.html" title="flvdemux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -184,6 +184,6 @@ will usually be used in this order though.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
index dfdbcf0f0..980b12445 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flactag.html" title="flactag">
 <link rel="next" href="gst-plugins-good-plugins-flvmux.html" title="flvmux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -233,6 +233,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
index fe90a24a5..aa4df7532 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flvdemux.html" title="flvdemux">
 <link rel="next" href="gst-plugins-good-plugins-flxdec.html" title="flxdec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,8 @@
     <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
             <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
-                <span class="lineart">╰──</span> GstFlvMux
+                <span class="lineart">╰──</span> GstAggregator
+                    <span class="lineart">╰──</span> GstFlvMux
 </pre>
 </div>
 <div class="refsect1">
@@ -283,6 +284,6 @@ duration)</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html
index 24ce2070f..631af2534 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flvmux.html" title="flvmux">
 <link rel="next" href="gst-plugins-good-plugins-gamma.html" title="gamma">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gamma.html b/docs/plugins/html/gst-plugins-good-plugins-gamma.html
index 58e662b56..078abd7df 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-gamma.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-gamma.html
@@ -8,7 +8,7 @@
 <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-gdkpixbufdec.html" title="gdkpixbufdec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -206,6 +206,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufdec.html b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufdec.html
index 5ba7ca022..5cc924193 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufdec.html
@@ -8,7 +8,7 @@
 <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-gdkpixbufoverlay.html" title="gdkpixbufoverlay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -110,10 +110,6 @@
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> image/gif</td>
-</tr>
-<tr>
-<td><p><span class="term"></span></p></td>
 <td> image/x-icon</td>
 </tr>
 <tr>
@@ -234,6 +230,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html
index 7586cd793..12fb3383e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-gdkpixbufdec.html" title="gdkpixbufdec">
 <link rel="next" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -374,6 +374,6 @@ to any edge or center position.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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 1d9809dd5..5a783dafd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
@@ -8,7 +8,7 @@
 <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="next" href="gst-plugins-good-plugins-goom2k1.html" title="goom2k1">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -102,7 +102,7 @@ when needed. This is the easiest way to get at pixbufs for snapshotting
 purposes - just wait until the pipeline is prerolled (ASYNC_DONE message
 on the bus), then read the property. If you use this method, you may want
 to disable message posting by setting the <a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages" title="The “post-messages” property"><span class="type">“post-messages”</span></a>
-property to <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>. This avoids unnecessary memory overhead.
+property to <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>. This avoids unnecessary memory overhead.
 </li>
 </ul></div>
 <p>The primary purpose of this element is to abstract away the <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> to
@@ -118,7 +118,7 @@ As mentioned above, this element will by default post element messages
 containing structures named <code class="classname">"preroll-pixbuf"
 </code> or <code class="classname">"pixbuf"</code> on the bus (this
 can be disabled by setting the <a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages" title="The “post-messages” property"><span class="type">“post-messages”</span></a> property
-to <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a> though). The element message structure has the following fields:
+to <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> though). The element message structure has the following fields:
 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">
 <code class="classname">"pixbuf"</code>: the <a href="/usr/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct"><span class="type">GdkPixbuf</span></a> object
@@ -248,6 +248,6 @@ object even if the structure string says '(NULL)').
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom.html b/docs/plugins/html/gst-plugins-good-plugins-goom.html
index 9dde0b237..984d8c6bd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-goom.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-goom.html
@@ -7,8 +7,8 @@
 <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">
-<link rel="next" href="gst-plugins-good-plugins-hdv1394src.html" title="hdv1394src">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<link rel="next" href="gst-plugins-good-plugins-gtkglsink.html" title="gtkglsink">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-goom2k1.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-hdv1394src.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-gtkglsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-goom"></a><div class="titlepage"></div>
@@ -175,6 +175,6 @@ based on the incoming audio signal.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
index 8c458a2de..7dd56d194 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink">
 <link rel="next" href="gst-plugins-good-plugins-goom.html" title="goom">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -176,6 +176,6 @@ visualisation. Also available is goom2k4, with a different look.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gtkglsink.html b/docs/plugins/html/gst-plugins-good-plugins-gtkglsink.html
new file mode 100644
index 000000000..8aedb9c9b
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-gtkglsink.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gtkglsink: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="next" href="gst-plugins-good-plugins-gtksink.html" title="gtksink">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-gtkglsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-gtkglsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-gtkglsink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-goom.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-gtksink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-gtkglsink"></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-gtkglsink.top_of_page"></a>gtkglsink</span></h2>
+<p>gtkglsink</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstGtkGLSink"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-gtkglsink.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-gtkglsink.html#GstGtkGLSink-struct" title="struct GstGtkGLSink">GstGtkGLSink</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gtkglsink.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink-struct">GstBaseSink</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstVideoSink.html#GstVideoSink-struct">GstVideoSink</a>
+                        <span class="lineart">╰──</span> GstGtkBaseSink
+                            <span class="lineart">╰──</span> GstGtkGLSink
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gtkglsink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstGtkGLSink implements
+ <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstNavigation.html#GstNavigation-struct">GstNavigation</a>.</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gtkglsink.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.70.7.2.1"></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-gtk.html#plugin-gtk">gtk</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Matthew Waters &lt;matthew@centricular.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Sink/Video</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.70.7.2.2"></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>video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gtkglsink.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gtkglsink.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstGtkGLSink-struct"></a><h3>struct GstGtkGLSink</h3>
+<pre class="programlisting">struct GstGtkGLSink;</pre>
+<p>Opaque <a class="link" href="gst-plugins-good-plugins-gtkglsink.html#GstGtkGLSink"><span class="type">GstGtkGLSink</span></a> object</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gtksink.html b/docs/plugins/html/gst-plugins-good-plugins-gtksink.html
new file mode 100644
index 000000000..f34d252e8
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-gtksink.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gtksink: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-gtkglsink.html" title="gtkglsink">
+<link rel="next" href="gst-plugins-good-plugins-hdv1394src.html" title="hdv1394src">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-gtksink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-gtksink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-gtksink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-gtkglsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-hdv1394src.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-gtksink"></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-gtksink.top_of_page"></a>gtksink</span></h2>
+<p>gtksink</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstGtkSink"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-gtksink.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-gtksink.html#GstGtkSink-struct" title="struct GstGtkSink">GstGtkSink</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gtksink.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink-struct">GstBaseSink</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstVideoSink.html#GstVideoSink-struct">GstVideoSink</a>
+                        <span class="lineart">╰──</span> GstGtkBaseSink
+                            <span class="lineart">╰──</span> GstGtkSink
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gtksink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstGtkSink implements
+ <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstNavigation.html#GstNavigation-struct">GstNavigation</a>.</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gtksink.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.71.7.2.1"></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-gtk.html#plugin-gtk">gtk</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Matthew Waters &lt;matthew@centricular.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Sink/Video</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.71.7.2.2"></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>video/x-raw, format=(string){ BGRx, BGRA }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gtksink.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gtksink.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstGtkSink-struct"></a><h3>struct GstGtkSink</h3>
+<pre class="programlisting">struct GstGtkSink;</pre>
+<p>Opaque <a class="link" href="gst-plugins-good-plugins-gtksink.html#GstGtkSink"><span class="type">GstGtkSink</span></a> object</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
index 874e3b4af..92c93391d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
@@ -6,9 +6,9 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="prev" href="gst-plugins-good-plugins-gtksink.html" title="gtksink">
 <link rel="next" href="gst-plugins-good-plugins-icydemux.html" title="icydemux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,7 +22,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-goom.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-gtksink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-icydemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -106,7 +106,7 @@ GstHDV1394Src implements
 <a name="gst-plugins-good-plugins-hdv1394src.description"></a><h2>Description</h2>
 <p>Read MPEG-TS data from firewire port.</p>
 <div class="refsect2">
-<a name="id-1.2.70.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.72.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -133,7 +133,7 @@ GstHDV1394Src implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.70.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.72.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -159,7 +159,7 @@ GstHDV1394Src implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.70.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.72.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -244,6 +244,6 @@ GstHDV1394Src implements
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
index e7f389bdb..ea04b772b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-hdv1394src.html" title="hdv1394src">
 <link rel="next" href="gst-plugins-good-plugins-id3demux.html" title="id3demux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ an HTTP stream). The mime type of the data between the tag blocks is
 detected using typefind functions, and the appropriate output mime type set
 on outgoing buffers. </p>
 <div class="refsect2">
-<a name="id-1.2.71.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.73.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -81,7 +81,7 @@ or giosrc instead of souphttpsrc should also work.)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.71.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.73.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -107,7 +107,7 @@ or giosrc instead of souphttpsrc should also work.)
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.71.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.73.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -172,6 +172,6 @@ or giosrc instead of souphttpsrc should also work.)
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html
index 0a71bbbab..3f545d4e4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-icydemux.html" title="icydemux">
 <link rel="next" href="gst-plugins-good-plugins-id3v2mux.html" title="id3v2mux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -85,7 +85,7 @@ mode, such as wavparse, can operate on files containing ID3 tag information.</p>
 <p>This id3demux element replaced an older element with the same name which
 relied on libid3tag from the MAD project.</p>
 <div class="refsect2">
-<a name="id-1.2.72.7.5"></a><h3>Example launch line</h3>
+<a name="id-1.2.74.7.5"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -103,7 +103,7 @@ the appropriate mime type set on buffers produced from id3demux.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.72.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.74.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -129,7 +129,7 @@ the appropriate mime type set on buffers produced from id3demux.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.72.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.74.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -204,6 +204,6 @@ the appropriate mime type set on buffers produced from id3demux.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
index 7a32e10a5..cb1670752 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-id3demux.html" title="id3demux">
 <link rel="next" href="gst-plugins-good-plugins-iirequalizer.html" title="iirequalizer">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,7 +72,7 @@ be able to read them properly).</p>
 Tags sent by upstream elements will be picked up automatically (and merged
 according to the merge mode set via the tag setter interface).</p>
 <div class="refsect2">
-<a name="id-1.2.73.7.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.75.7.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -101,7 +101,7 @@ Ogg/Vorbis file actually has comments to preserve.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.73.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.75.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -127,7 +127,7 @@ Ogg/Vorbis file actually has comments to preserve.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.73.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.75.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -196,6 +196,6 @@ Ogg/Vorbis file actually has comments to preserve.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-iirequalizer.html b/docs/plugins/html/gst-plugins-good-plugins-iirequalizer.html
index 0ffe8f118..61411d5b2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-iirequalizer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-iirequalizer.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-id3v2mux.html" title="id3v2mux">
 <link rel="next" href="gst-plugins-good-plugins-imagefreeze.html" title="imagefreeze">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -82,6 +82,6 @@ GstIirEqualizer implements
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
index 36cc067cf..5b8a8d6cb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-iirequalizer.html" title="iirequalizer">
 <link rel="next" href="gst-plugins-good-plugins-interleave.html" title="interleave">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 the input. It duplicates the first frame with the framerate requested
 by downstream, allows seeking and answers queries.</p>
 <div class="refsect2">
-<a name="id-1.2.76.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.78.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -76,7 +76,7 @@ by downstream, allows seeking and answers queries.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.76.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.78.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@ by downstream, allows seeking and answers queries.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.76.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.78.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -167,6 +167,6 @@ by downstream, allows seeking and answers queries.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-interleave.html b/docs/plugins/html/gst-plugins-good-plugins-interleave.html
index cbb9de82e..b8945dc8c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-interleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-interleave.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-imagefreeze.html" title="imagefreeze">
 <link rel="next" href="gst-plugins-good-plugins-ismlmux.html" title="ismlmux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -89,7 +89,7 @@ some of the request pads but this will change the caps of the output buffers. Ch
 caps is _not_ supported yet.</p>
 <p>The channel number of every sinkpad in the out can be retrieved from the "channel" property of the pad.</p>
 <div class="refsect2">
-<a name="id-1.2.77.7.6"></a><h3>Example launch line</h3>
+<a name="id-1.2.79.7.6"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -121,7 +121,7 @@ code is by using the channel-positions property of the interleave element.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.77.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.79.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -147,7 +147,7 @@ code is by using the channel-positions property of the interleave element.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.77.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.79.7.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -243,6 +243,6 @@ channel-positions property overwrites this property again.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
index e27ad4925..00dfe13b7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-interleave.html" title="interleave">
 <link rel="next" href="gst-plugins-good-plugins-jackaudiosink.html" title="jackaudiosink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -120,6 +120,16 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--interleave-time" title="The “interleave-time” property">interleave-time</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--max-raw-audio-drift" title="The “max-raw-audio-drift” property">max-raw-audio-drift</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--reserved-prefill" title="The “reserved-prefill” property">reserved-prefill</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -181,7 +191,7 @@ fragmented layout is intended for streaming purposes, then
 <a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--streamable" title="The “streamable” property"><span class="type">“streamable”</span></a> allows foregoing to add index metadata (at the end of
 file).</p>
 <div class="refsect2">
-<a name="id-1.2.78.8.7"></a><h3>Example pipelines</h3>
+<a name="id-1.2.80.8.7"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -200,7 +210,7 @@ and muxes it into an mj2 file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.78.8.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.80.8.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -226,7 +236,7 @@ and muxes it into an mj2 file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.78.8.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.80.8.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -447,9 +457,25 @@ and muxes it into an mj2 file.
 <p>Flags: Read / Write</p>
 <p>Default value: 250000000</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstISMLMux--max-raw-audio-drift"></a><h3>The <code class="literal">“max-raw-audio-drift”</code> property</h3>
+<pre class="programlisting">  “max-raw-audio-drift”      <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
+<p>Maximum allowed drift of raw audio samples vs. timestamps in nanoseconds.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 40000000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstISMLMux--reserved-prefill"></a><h3>The <code class="literal">“reserved-prefill”</code> property</h3>
+<pre class="programlisting">  “reserved-prefill”         <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Prefill samples table of reserved duration.</p>
+<p>Flags: Read / Write / Construct</p>
+<p>Default value: FALSE</p>
+</div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
index 4f8f820f8..877864517 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-ismlmux.html" title="ismlmux">
 <link rel="next" href="gst-plugins-good-plugins-jackaudiosrc.html" title="jackaudiosrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -122,7 +122,7 @@ output port for each channel.</p>
 was PAUSED or PLAYING. This element does not support dynamic rate and buffer
 size changes at runtime.</p>
 <div class="refsect2">
-<a name="id-1.2.79.7.8"></a><h3>Example launch line</h3>
+<a name="id-1.2.81.7.8"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -138,7 +138,7 @@ size changes at runtime.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.79.7.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.81.7.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -164,7 +164,7 @@ size changes at runtime.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.79.7.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.81.7.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -259,6 +259,6 @@ size changes at runtime.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
index 64dc46876..3ae0888ba 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-jackaudiosink.html" title="jackaudiosink">
 <link rel="next" href="gst-plugins-good-plugins-jpegdec.html" title="jpegdec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -121,7 +121,7 @@ input port for each channel.</p>
 was PAUSED or PLAYING. This element does not support dynamic rate and buffer
 size changes at runtime.</p>
 <div class="refsect2">
-<a name="id-1.2.80.7.8"></a><h3>Example launch line</h3>
+<a name="id-1.2.82.7.8"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -137,7 +137,7 @@ size changes at runtime.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.80.7.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.82.7.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -163,7 +163,7 @@ size changes at runtime.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.80.7.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.82.7.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -257,6 +257,6 @@ size changes at runtime.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
index 6ec356631..d0920e8b5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-jackaudiosrc.html" title="jackaudiosrc">
 <link rel="next" href="gst-plugins-good-plugins-jpegenc.html" title="jpegenc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -82,7 +82,7 @@
 <a name="gst-plugins-good-plugins-jpegdec.description"></a><h2>Description</h2>
 <p>Decodes jpeg images.</p>
 <div class="refsect2">
-<a name="id-1.2.81.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.83.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -98,7 +98,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.81.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.83.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -124,7 +124,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.81.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.83.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -213,6 +213,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
index 89ae45e3b..01ff6c0cc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
@@ -7,8 +7,8 @@
 <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">
-<link rel="next" href="gst-plugins-good-plugins-level.html" title="level">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<link rel="next" href="gst-plugins-good-plugins-lamemp3enc.html" title="lamemp3enc">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -23,7 +23,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-jpegdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-level.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-lamemp3enc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-jpegenc"></a><div class="titlepage"></div>
@@ -53,6 +53,11 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--idct-method" title="The “idct-method” property">idct-method</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--snapshot" title="The “snapshot” property">snapshot</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -89,7 +94,7 @@ GstJpegEnc implements
 <a name="gst-plugins-good-plugins-jpegenc.description"></a><h2>Description</h2>
 <p>Encodes jpeg images.</p>
 <div class="refsect2">
-<a name="id-1.2.82.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.84.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -106,7 +111,7 @@ avi.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.82.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.84.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -132,7 +137,7 @@ avi.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.82.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.84.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -213,9 +218,18 @@ avi.
 <p>Flags: Read / Write</p>
 <p>Default value: Faster, less accurate integer method</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstJpegEnc--snapshot"></a><h3>The <code class="literal">“snapshot”</code> property</h3>
+<pre class="programlisting">  “snapshot”                 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Send EOS after encoding a frame, useful for snapshots.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+<p class="since">Since: 1.14</p>
+</div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-lamemp3enc.html b/docs/plugins/html/gst-plugins-good-plugins-lamemp3enc.html
new file mode 100644
index 000000000..dabd5f538
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-lamemp3enc.html
@@ -0,0 +1,339 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>lamemp3enc: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="next" href="gst-plugins-good-plugins-level.html" title="level">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-lamemp3enc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-lamemp3enc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-lamemp3enc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-lamemp3enc.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-jpegenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-level.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-lamemp3enc"></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-lamemp3enc.top_of_page"></a>lamemp3enc</span></h2>
+<p>lamemp3enc</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-lamemp3enc.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc--bitrate" title="The “bitrate” property">bitrate</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc--cbr" title="The “cbr” property">cbr</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstLameMP3EncEncodingEngineQuality</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc--encoding-engine-quality" title="The “encoding-engine-quality” property">encoding-engine-quality</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc--mono" title="The “mono” property">mono</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc--quality" title="The “quality” property">quality</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstLameMP3EncTarget</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc--target" title="The “target” property">target</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstLameMP3Enc"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-lamemp3enc.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-lamemp3enc.html#GstLameMP3Enc-struct" title="struct GstLameMP3Enc">GstLameMP3Enc</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-lamemp3enc.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstAudioEncoder.html#GstAudioEncoder-struct">GstAudioEncoder</a>
+                    <span class="lineart">╰──</span> GstLameMP3Enc
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-lamemp3enc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstLameMP3Enc implements
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstPreset.html#GstPreset-struct">GstPreset</a>.</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-lamemp3enc.description"></a><h2>Description</h2>
+<p>This element encodes raw integer audio into an MPEG-1 layer 3 (MP3) stream.
+Note that <a class="ulink" href="http://en.wikipedia.org/wiki/MP3" target="_top">MP3</a> is not
+a free format, there are licensing and patent issues to take into
+consideration. See <a class="ulink" href="http://www.vorbis.com/" target="_top">Ogg/Vorbis</a>
+for a royalty free (and often higher quality) alternative.</p>
+<div class="refsect2">
+<a name="id-1.2.85.8.3"></a><h3>Output sample rate</h3>
+If no fixed output sample rate is negotiated on the element's src pad,
+the element will choose an optimal sample rate to resample to internally.
+For example, a 16-bit 44.1 KHz mono audio stream encoded at 48 kbit will
+get resampled to 32 KHz.  Use filter caps on the src pad to force a
+particular sample rate.
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.85.8.4"></a><h3>Example pipelines</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v audiotestsrc wave<span class="gtkdoc opt">=</span>sine num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">100</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> lamemp3enc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>mp3</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encode a test sine signal to MP3.
+<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 autoaudiosrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> lamemp3enc target<span class="gtkdoc opt">=</span>bitrate bitrate<span class="gtkdoc opt">=</span><span class="number">192</span> <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>alsasrc<span class="gtkdoc opt">.</span>mp3</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Record from a sound card using ALSA and encode to MP3 with an average bitrate of 192kbps
+<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>music<span class="gtkdoc opt">.</span>wav <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> lamemp3enc target<span class="gtkdoc opt">=</span>quality quality<span class="gtkdoc opt">=</span><span class="number">0</span> <span class="gtkdoc opt">!</span> id3v2mux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>music<span class="gtkdoc opt">.</span>mp3</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Transcode from a .wav file to MP3 (the id3v2mux element is optional) with best VBR quality
+<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 cdda<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//5 ! audioconvert ! lamemp3enc target=bitrate cbr=true bitrate=192 ! filesink location=track5.mp3</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encode Audio CD track 5 to MP3 with a constant bitrate of 192kbps
+<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 audiotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">10</span> <span class="gtkdoc opt">!</span> audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>rate<span class="gtkdoc opt">=</span><span class="number">44100</span><span class="gtkdoc opt">,</span>channels<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> lamemp3enc target<span class="gtkdoc opt">=</span>bitrate cbr<span class="gtkdoc opt">=</span><span class="keyword">true</span> bitrate<span class="gtkdoc opt">=</span><span class="number">48</span> <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>mp3</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encode to a fixed sample rate
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.85.8.5.1"></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-lame.html#plugin-lame">lame</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Sebastian Dröge &lt;sebastian.droege@collabora.co.uk&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Encoder/Audio</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.85.8.5.2"></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)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)1</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)2, channel-mask=(bitmask)0x0000000000000003</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/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-lamemp3enc.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-lamemp3enc.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstLameMP3Enc-struct"></a><h3>struct GstLameMP3Enc</h3>
+<pre class="programlisting">struct GstLameMP3Enc;</pre>
+<p>Opaque data structure.</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-lamemp3enc.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstLameMP3Enc--bitrate"></a><h3>The <code class="literal">“bitrate”</code> property</h3>
+<pre class="programlisting">  “bitrate”                  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Bitrate in kbit/sec (Only valid if target is bitrate, for CBR one of 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 or 320).</p>
+<p>Flags: Read / Write / Construct</p>
+<p>Allowed values: [8,320]</p>
+<p>Default value: 128</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstLameMP3Enc--cbr"></a><h3>The <code class="literal">“cbr”</code> property</h3>
+<pre class="programlisting">  “cbr”                      <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Enforce constant bitrate encoding (Only valid if target is bitrate).</p>
+<p>Flags: Read / Write / Construct</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstLameMP3Enc--encoding-engine-quality"></a><h3>The <code class="literal">“encoding-engine-quality”</code> property</h3>
+<pre class="programlisting">  “encoding-engine-quality”  <span class="type">GstLameMP3EncEncodingEngineQuality</span></pre>
+<p>Quality/speed of the encoding engine, this does not affect the bitrate!.</p>
+<p>Flags: Read / Write / Construct</p>
+<p>Default value: Standard</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstLameMP3Enc--mono"></a><h3>The <code class="literal">“mono”</code> property</h3>
+<pre class="programlisting">  “mono”                     <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Enforce mono encoding.</p>
+<p>Flags: Read / Write / Construct</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstLameMP3Enc--quality"></a><h3>The <code class="literal">“quality”</code> property</h3>
+<pre class="programlisting">  “quality”                  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre>
+<p>VBR Quality from 0 to 10, 0 being the best (Only valid if target is quality).</p>
+<p>Flags: Read / Write / Construct</p>
+<p>Allowed values: [0,9.999]</p>
+<p>Default value: 4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstLameMP3Enc--target"></a><h3>The <code class="literal">“target”</code> property</h3>
+<pre class="programlisting">  “target”                   <span class="type">GstLameMP3EncTarget</span></pre>
+<p>Optimize for quality or bitrate.</p>
+<p>Flags: Read / Write / Construct</p>
+<p>Default value: Quality</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-lamemp3enc.see-also"></a><h2>See Also</h2>
+<p>lame, mad, vorbisenc</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-level.html b/docs/plugins/html/gst-plugins-good-plugins-level.html
index 2c557e8a1..d82d45885 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-level.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-level.html
@@ -6,9 +6,9 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="prev" href="gst-plugins-good-plugins-lamemp3enc.html" title="lamemp3enc">
 <link rel="next" href="gst-plugins-good-plugins-matroskademux.html" title="matroskademux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-jpegenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-lamemp3enc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-matroskademux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -96,7 +96,7 @@
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-level.description"></a><h2>Description</h2>
 <p>Level analyses incoming audio buffers and, if the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--message" title="The “message” property"><span class="type">“message”</span></a> property
-is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>, generates an element message named</p>
+is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, generates an element message named</p>
 <code class="classname">"level"</code>:
 <p>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>
@@ -148,7 +148,7 @@ The message's structure contains these fields:</p>
   </p></li>
 </ul></div>
 <div class="refsect2">
-<a name="id-1.2.84.7.6"></a><h3>Example application</h3>
+<a name="id-1.2.87.7.6"></a><h3>Example application</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -442,7 +442,7 @@ The message's structure contains these fields:</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.84.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.87.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -468,7 +468,7 @@ The message's structure contains these fields:</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.84.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.87.7.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -583,6 +583,6 @@ The message's structure contains these fields:</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
index 248198020..1ef07c527 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-level.html" title="level">
 <link rel="next" href="gst-plugins-good-plugins-matroskamux.html" title="matroskamux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,7 +74,7 @@
 <a name="gst-plugins-good-plugins-matroskademux.description"></a><h2>Description</h2>
 <p>matroskademux demuxes a Matroska file into the different contained streams.</p>
 <div class="refsect2">
-<a name="id-1.2.85.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.88.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -90,7 +90,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.85.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.88.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -116,7 +116,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.85.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.88.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -283,6 +283,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
index 49dc28d28..8c7c0e795 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-matroskademux.html" title="matroskademux">
 <link rel="next" href="gst-plugins-good-plugins-matroskaparse.html" title="matroskaparse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -115,7 +115,7 @@ GstMatroskaMux implements
 <a name="gst-plugins-good-plugins-matroskamux.description"></a><h2>Description</h2>
 <p>matroskamux muxes different input streams into a Matroska file.</p>
 <div class="refsect2">
-<a name="id-1.2.86.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.89.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -142,7 +142,7 @@ GstMatroskaMux implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.86.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.89.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -168,7 +168,7 @@ GstMatroskaMux implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.86.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.89.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -508,6 +508,6 @@ GstMatroskaMux implements
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskaparse.html b/docs/plugins/html/gst-plugins-good-plugins-matroskaparse.html
index 851c6e4ab..0f5ae2ddd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-matroskaparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-matroskaparse.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-matroskamux.html" title="matroskamux">
 <link rel="next" href="gst-plugins-good-plugins-mj2mux.html" title="mj2mux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -58,7 +58,7 @@
 <a name="gst-plugins-good-plugins-matroskaparse.description"></a><h2>Description</h2>
 <p>matroskaparse parsees a Matroska file into the different contained streams.</p>
 <div class="refsect2">
-<a name="id-1.2.87.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.90.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -74,7 +74,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.87.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.90.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -100,7 +100,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.87.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.90.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -197,6 +197,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
index e865a2dae..72954a613 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-matroskaparse.html" title="matroskaparse">
 <link rel="next" href="gst-plugins-good-plugins-monoscope.html" title="monoscope">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -120,6 +120,16 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--interleave-time" title="The “interleave-time” property">interleave-time</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--max-raw-audio-drift" title="The “max-raw-audio-drift” property">max-raw-audio-drift</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--reserved-prefill" title="The “reserved-prefill” property">reserved-prefill</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -181,7 +191,7 @@ fragmented layout is intended for streaming purposes, then
 <a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--streamable" title="The “streamable” property"><span class="type">“streamable”</span></a> allows foregoing to add index metadata (at the end of
 file).</p>
 <div class="refsect2">
-<a name="id-1.2.88.8.7"></a><h3>Example pipelines</h3>
+<a name="id-1.2.91.8.7"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -200,7 +210,7 @@ and muxes it into an mj2 file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.88.8.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.91.8.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -226,7 +236,7 @@ and muxes it into an mj2 file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.88.8.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.91.8.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -439,9 +449,25 @@ and muxes it into an mj2 file.
 <p>Flags: Read / Write</p>
 <p>Default value: 250000000</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstMJ2Mux--max-raw-audio-drift"></a><h3>The <code class="literal">“max-raw-audio-drift”</code> property</h3>
+<pre class="programlisting">  “max-raw-audio-drift”      <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
+<p>Maximum allowed drift of raw audio samples vs. timestamps in nanoseconds.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 40000000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstMJ2Mux--reserved-prefill"></a><h3>The <code class="literal">“reserved-prefill”</code> property</h3>
+<pre class="programlisting">  “reserved-prefill”         <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Prefill samples table of reserved duration.</p>
+<p>Flags: Read / Write / Construct</p>
+<p>Default value: FALSE</p>
+</div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
index a94675a44..cb9826b9e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-mj2mux.html" title="mj2mux">
 <link rel="next" href="gst-plugins-good-plugins-mp4mux.html" title="mp4mux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -49,7 +49,7 @@
 <p>Monoscope is an audio visualisation element. It creates a coloured
 curve of the audio signal like on an oscilloscope.</p>
 <div class="refsect2">
-<a name="id-1.2.89.4.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.92.4.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -65,7 +65,7 @@ curve of the audio signal like on an oscilloscope.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.89.4.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.92.4.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -91,7 +91,7 @@ curve of the audio signal like on an oscilloscope.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.89.4.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.92.4.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -192,6 +192,6 @@ curve of the audio signal like on an oscilloscope.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
index 097e8425c..60fb044e2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-monoscope.html" title="monoscope">
 <link rel="next" href="gst-plugins-good-plugins-mpegaudioparse.html" title="mpegaudioparse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -120,6 +120,16 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--interleave-time" title="The “interleave-time” property">interleave-time</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--max-raw-audio-drift" title="The “max-raw-audio-drift” property">max-raw-audio-drift</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--reserved-prefill" title="The “reserved-prefill” property">reserved-prefill</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -181,7 +191,7 @@ If such fragmented layout is intended for streaming purposes, then
 <span class="type">“streamable”</span> allows foregoing to add index metadata (at the end of
 file).</p>
 <div class="refsect2">
-<a name="id-1.2.90.8.7"></a><h3>Example pipelines</h3>
+<a name="id-1.2.93.8.7"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -199,7 +209,7 @@ and muxes it into an mp4 file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.90.8.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.93.8.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -225,7 +235,7 @@ and muxes it into an mp4 file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.90.8.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.93.8.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -490,9 +500,25 @@ and muxes it into an mp4 file.
 <p>Flags: Read / Write</p>
 <p>Default value: 250000000</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstMP4Mux--max-raw-audio-drift"></a><h3>The <code class="literal">“max-raw-audio-drift”</code> property</h3>
+<pre class="programlisting">  “max-raw-audio-drift”      <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
+<p>Maximum allowed drift of raw audio samples vs. timestamps in nanoseconds.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 40000000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstMP4Mux--reserved-prefill"></a><h3>The <code class="literal">“reserved-prefill”</code> property</h3>
+<pre class="programlisting">  “reserved-prefill”         <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Prefill samples table of reserved duration.</p>
+<p>Flags: Read / Write / Construct</p>
+<p>Default value: FALSE</p>
+</div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
index c0cdc79ae..46d6b6002 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
@@ -7,8 +7,8 @@
 <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">
-<link rel="next" href="gst-plugins-good-plugins-mulawdec.html" title="mulawdec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<link rel="next" href="gst-plugins-good-plugins-mpg123audiodec.html" title="mpg123audiodec">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-mp4mux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-mulawdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-mpg123audiodec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-mpegaudioparse"></a><div class="titlepage"></div>
@@ -59,7 +59,7 @@
 <a name="gst-plugins-good-plugins-mpegaudioparse.description"></a><h2>Description</h2>
 <p>Parses and frames mpeg1 audio streams. Provides seeking.</p>
 <div class="refsect2">
-<a name="id-1.2.91.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.94.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.91.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.94.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.91.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.94.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -173,6 +173,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mpg123audiodec.html b/docs/plugins/html/gst-plugins-good-plugins-mpg123audiodec.html
new file mode 100644
index 000000000..f391ceb1d
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-mpg123audiodec.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>mpg123audiodec: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="next" href="gst-plugins-good-plugins-mulawdec.html" title="mulawdec">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-mpg123audiodec.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-mpg123audiodec.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-mpegaudioparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-mulawdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-mpg123audiodec"></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-mpg123audiodec.top_of_page"></a>mpg123audiodec</span></h2>
+<p>mpg123audiodec</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstMpg123AudioDec"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-mpg123audiodec.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-mpg123audiodec.html#GstMpg123AudioDec-struct" title="struct GstMpg123AudioDec">GstMpg123AudioDec</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-mpg123audiodec.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstAudioDecoder.html#GstAudioDecoder-struct">GstAudioDecoder</a>
+                    <span class="lineart">╰──</span> GstMpg123AudioDec
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-mpg123audiodec.description"></a><h2>Description</h2>
+<p>Audio decoder for MPEG-1 layer 1/2/3 audio data.</p>
+<div class="refsect2">
+<a name="id-1.2.95.6.3"></a><h3>Example pipelines</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span>music<span class="gtkdoc opt">.</span>mp3 <span class="gtkdoc opt">!</span> mpegaudioparse <span class="gtkdoc opt">!</span> mpg123audiodec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Decode and play the mp3 file
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.95.6.4.1"></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-mpg123.html#plugin-mpg123">mpg123</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Carlos Rafael Giani &lt;dv@pseudoterminal.org&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Decoder/Audio</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.95.6.4.2"></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/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], parsed=(boolean)true</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){ S16LE, U16LE, S32LE, U32LE, S24LE, U24LE, F32LE }, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], layout=(string)interleaved</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-mpg123audiodec.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-mpg123audiodec.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstMpg123AudioDec-struct"></a><h3>struct GstMpg123AudioDec</h3>
+<pre class="programlisting">struct GstMpg123AudioDec;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-mpg123audiodec.see-also"></a><h2>See Also</h2>
+<p>lamemp3enc, mad</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
index 982215983..c61308c7d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
@@ -6,9 +6,9 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="prev" href="gst-plugins-good-plugins-mpg123audiodec.html" title="mpg123audiodec">
 <link rel="next" href="gst-plugins-good-plugins-mulawenc.html" title="mulawenc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-mpegaudioparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-mpg123audiodec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-mulawenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -61,7 +61,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.92.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.96.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -87,7 +87,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.92.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.96.6.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -152,6 +152,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
index a54f297a0..92e121aa5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-mulawdec.html" title="mulawdec">
 <link rel="next" href="gst-plugins-good-plugins-multifilesink.html" title="multifilesink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,7 +68,7 @@ GstMuLawEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.93.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.97.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -94,7 +94,7 @@ GstMuLawEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.93.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.97.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -159,6 +159,6 @@ GstMuLawEnc implements
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html
index a11d3ee8e..412872f84 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-mulawenc.html" title="mulawenc">
 <link rel="next" href="gst-plugins-good-plugins-multifilesrc.html" title="multifilesrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -126,7 +126,7 @@ as MPEG-TS or MPEG-PS.</p>
 mp4 files, use the splitmuxsink element for that instead.</p>
 <p>The filename property should contain a string with a %d placeholder that will
 be substituted with the index for each filename.</p>
-<p>If the <a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--post-messages" title="The “post-messages” property"><span class="type">“post-messages”</span></a> property is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>, it sends an application
+<p>If the <a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--post-messages" title="The “post-messages” property"><span class="type">“post-messages”</span></a> property is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it sends an application
 message named</p>
 <code class="classname">"GstMultiFileSink"</code> after writing each
 <p>buffer.</p>
@@ -174,7 +174,7 @@ message named</p>
   </p></li>
 </ul></div>
 <div class="refsect2">
-<a name="id-1.2.94.7.11"></a><h3>Example launch line</h3>
+<a name="id-1.2.98.7.11"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -182,7 +182,7 @@ message named</p>
         <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> audiotestsrc <span class="gtkdoc opt">!</span> multifilesink
-gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> videotestsrc <span class="gtkdoc opt">!</span> multifilesink post<span class="gtkdoc opt">-</span>messages<span class="gtkdoc opt">=</span><span class="keyword">true</span> filename<span class="gtkdoc opt">=</span><span class="string">&quot;frame%d&quot;</span></pre></td>
+gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> videotestsrc <span class="gtkdoc opt">!</span> multifilesink post<span class="gtkdoc opt">-</span>messages<span class="gtkdoc opt">=</span><span class="keyword">true</span> location<span class="gtkdoc opt">=</span><span class="string">&quot;frame%d&quot;</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -192,7 +192,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.94.7.12.1"></a><h3>Element Information</h3>
+<a name="id-1.2.98.7.12.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -218,7 +218,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.94.7.12.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.98.7.12.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -399,6 +399,6 @@ this.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
index 795a8fb7f..a560b5195 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-multifilesink.html" title="multifilesink">
 <link rel="next" href="gst-plugins-good-plugins-multipartdemux.html" title="multipartdemux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -16,7 +16,8 @@
 <td width="100%" align="left" class="shortcuts">
 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                   <a href="#gst-plugins-good-plugins-multifilesrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-good-plugins-multifilesrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-multifilesrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-multifilesrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-good-plugins-multifilesrc.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -102,6 +103,12 @@
 </pre>
 </div>
 <div class="refsect1">
+<a name="gst-plugins-good-plugins-multifilesrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstMultiFileSrc implements
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandler-struct">GstURIHandler</a>.</p>
+</div>
+<div class="refsect1">
 <a name="gst-plugins-good-plugins-multifilesrc.description"></a><h2>Description</h2>
 <p>Reads buffers from sequentially named files. If used together with an image
 decoder, one needs to use the <a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--caps" title="The “caps” property"><span class="type">“caps”</span></a> property or a capsfilter
@@ -110,7 +117,7 @@ after the first picture. We also need a videorate element to set timestamps
 on all buffers after the first one in accordance with the framerate.</p>
 <p>File names are created by replacing "%d" with the index using <code class="function">printf()</code>.</p>
 <div class="refsect2">
-<a name="id-1.2.95.7.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.99.8.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -131,7 +138,7 @@ files named img.0000.png, img.0001.png, etc.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.95.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.99.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -157,7 +164,7 @@ files named img.0000.png, img.0001.png, etc.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.95.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.99.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -254,6 +261,6 @@ files named img.0000.png, img.0001.png, etc.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
index 9d702a1b8..f16589294 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-multifilesrc.html" title="multifilesrc">
 <link rel="next" href="gst-plugins-good-plugins-multipartmux.html" title="multipartmux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -91,7 +91,7 @@ data).</p>
 be configured specifically with the <a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--boundary" title="The “boundary” property"><span class="type">“boundary”</span></a> property
 otherwise it will be autodetected.</p>
 <div class="refsect2">
-<a name="id-1.2.96.7.5"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.100.7.5"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -108,7 +108,7 @@ containing JPEG frames.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.96.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.100.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -134,7 +134,7 @@ containing JPEG frames.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.96.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.100.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -224,6 +224,6 @@ content is parsed, decoded, and pads are linked.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html
index bb616debb..c377d0084 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-multipartdemux.html" title="multipartdemux">
 <link rel="next" href="gst-plugins-good-plugins-multiudpsink.html" title="multiudpsink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,7 +77,7 @@
 incoming buffers when muxing them to a multipart stream. Most of the time 
 multipart streams are sequential JPEG frames.</p>
 <div class="refsect2">
-<a name="id-1.2.97.7.3"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.101.7.3"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -94,7 +94,7 @@ stored to a file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.97.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.101.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -120,7 +120,7 @@ stored to a file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.97.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.101.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -196,6 +196,6 @@ stored to a file.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
index 624b9af40..d07c39007 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-multipartmux.html" title="multipartmux">
 <link rel="next" href="gst-plugins-good-plugins-navigationtest.html" title="navigationtest">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -223,7 +223,7 @@ It can be combined with rtp payload encoders to implement RTP streaming.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.98.8.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.102.8.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -249,7 +249,7 @@ It can be combined with rtp payload encoders to implement RTP streaming.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.98.8.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.102.8.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -717,6 +717,6 @@ clients.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-navigationtest.html b/docs/plugins/html/gst-plugins-good-plugins-navigationtest.html
index 29b35cf91..72e9b776a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-navigationtest.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-navigationtest.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-multiudpsink.html" title="multiudpsink">
 <link rel="next" href="gst-plugins-good-plugins-navseek.html" title="navseek">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.99.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.103.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -87,7 +87,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.99.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.103.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -152,6 +152,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-navseek.html b/docs/plugins/html/gst-plugins-good-plugins-navseek.html
index d6f1d56b0..2e187f61c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-navseek.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-navseek.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-navigationtest.html" title="navigationtest">
 <link rel="next" href="gst-plugins-good-plugins-optv.html" title="optv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.100.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.104.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.100.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.104.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -178,6 +178,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-optv.html b/docs/plugins/html/gst-plugins-good-plugins-optv.html
index 3b93a1c9a..2d8b26db4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-optv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-optv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-navseek.html" title="navseek">
 <link rel="next" href="gst-plugins-good-plugins-oss4sink.html" title="oss4sink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -90,7 +90,7 @@
 real-time video effect. Input images are binarized and combined with
 various optical pattern.</p>
 <div class="refsect2">
-<a name="id-1.2.101.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.105.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -106,7 +106,7 @@ various optical pattern.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.101.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.105.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -132,7 +132,7 @@ various optical pattern.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.101.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.105.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -224,6 +224,6 @@ various optical pattern.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
index cf478a3c5..96186bb8d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-optv.html" title="optv">
 <link rel="next" href="gst-plugins-good-plugins-oss4src.html" title="oss4src">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -108,7 +108,7 @@ like audioconvert and audioresample in front of an audiosink to make sure
 your pipeline works under all circumstances (those conversion elements will
 act in passthrough-mode if no conversion is necessary).</p>
 <div class="refsect2">
-<a name="id-1.2.102.8.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.106.8.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -137,7 +137,7 @@ version 4.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.102.8.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.106.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -163,7 +163,7 @@ version 4.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.102.8.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.106.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -247,6 +247,6 @@ version 4.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
index b9c07d1c8..6bd6c8a55 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-oss4sink.html" title="oss4sink">
 <link rel="next" href="gst-plugins-good-plugins-osssink.html" title="osssink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -95,7 +95,7 @@ GstOss4Source implements
 <p>This element lets you record sound using the Open Sound System (OSS)
 version 4.</p>
 <div class="refsect2">
-<a name="id-1.2.103.8.3"></a><h3>Example pipelines</h3>
+<a name="id-1.2.107.8.3"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -113,7 +113,7 @@ and the right inputs areenabled etc.)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.103.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.107.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -139,7 +139,7 @@ and the right inputs areenabled etc.)
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.103.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.107.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -206,6 +206,6 @@ and the right inputs areenabled etc.)
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osssink.html b/docs/plugins/html/gst-plugins-good-plugins-osssink.html
index 31271f04d..e8c8b5693 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osssink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osssink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-oss4src.html" title="oss4src">
 <link rel="next" href="gst-plugins-good-plugins-osssrc.html" title="osssrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -82,7 +82,7 @@ like audioconvert and audioresample in front of an audiosink to make sure
 your pipeline works under all circumstances (those conversion elements will
 act in passthrough-mode if no conversion is necessary).</p>
 <div class="refsect2">
-<a name="id-1.2.104.7.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.108.7.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -110,7 +110,7 @@ a very low volume as precaution).
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.104.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.108.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -136,7 +136,7 @@ a very low volume as precaution).
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.104.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.108.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -191,6 +191,6 @@ a very low volume as precaution).
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
index 2110c93c3..ff25457fb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-osssink.html" title="osssink">
 <link rel="next" href="gst-plugins-good-plugins-osxaudiosink.html" title="osxaudiosink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -94,7 +94,7 @@ GstOssSrc implements
 <a name="gst-plugins-good-plugins-osssrc.description"></a><h2>Description</h2>
 <p>This element lets you record sound using the Open Sound System (OSS).</p>
 <div class="refsect2">
-<a name="id-1.2.105.8.3"></a><h3>Example pipelines</h3>
+<a name="id-1.2.109.8.3"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -112,7 +112,7 @@ and the right inputs enabled etc.)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.105.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.109.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -138,7 +138,7 @@ and the right inputs enabled etc.)
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.105.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.109.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -201,6 +201,6 @@ and the right inputs enabled etc.)
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
index 0261442ed..180f24b0d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-osssrc.html" title="osssrc">
 <link rel="next" href="gst-plugins-good-plugins-osxaudiosrc.html" title="osxaudiosrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,7 +64,7 @@
 <a name="gst-plugins-good-plugins-osxaudiosink.description"></a><h2>Description</h2>
 <p>This element renders raw audio samples using the CoreAudio api.</p>
 <div class="refsect2">
-<a name="id-1.2.106.5.3"></a><h3>Example pipelines</h3>
+<a name="id-1.2.110.5.3"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -80,7 +80,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.106.5.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.110.5.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -106,7 +106,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.106.5.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.110.5.4.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
@@ -144,6 +144,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
index 883283f5e..eeaaa00cb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-osxaudiosink.html" title="osxaudiosink">
 <link rel="next" href="gst-plugins-good-plugins-osxvideosink.html" title="osxvideosink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,7 +64,7 @@
 <a name="gst-plugins-good-plugins-osxaudiosrc.description"></a><h2>Description</h2>
 <p>This element captures raw audio samples using the CoreAudio api.</p>
 <div class="refsect2">
-<a name="id-1.2.107.5.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.111.5.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -80,7 +80,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.107.5.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.111.5.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -106,7 +106,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.107.5.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.111.5.4.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
@@ -139,6 +139,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
index a57812cec..5278787ee 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-osxaudiosrc.html" title="osxaudiosrc">
 <link rel="next" href="gst-plugins-good-plugins-pngdec.html" title="pngdec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,7 +72,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.108.5.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.112.5.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -98,7 +98,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.108.5.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.112.5.2.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
@@ -142,6 +142,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 2b2719609..7040a3272 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="next" href="gst-plugins-good-plugins-plugin-aasink.html" title="aasink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 966e8ab5a..a166a6abd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-1394.html" title="1394">
 <link rel="next" href="gst-plugins-good-plugins-plugin-alaw.html" title="alaw">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 80e094013..eeb2f2a6f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-aasink.html" title="aasink">
 <link rel="next" href="gst-plugins-good-plugins-plugin-alphacolor.html" title="alphacolor">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 d84072eb1..230b95ad7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-alphacolor.html" title="alphacolor">
 <link rel="next" href="gst-plugins-good-plugins-plugin-apetag.html" title="apetag">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 3f12fed6b..03367b521 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-alaw.html" title="alaw">
 <link rel="next" href="gst-plugins-good-plugins-plugin-alpha.html" title="alpha">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 7c769886a..839de7412 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-alpha.html" title="alpha">
 <link rel="next" href="gst-plugins-good-plugins-plugin-audiofx.html" title="audiofx">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 a88cc5042..5eff3e5ec 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-apetag.html" title="apetag">
 <link rel="next" href="gst-plugins-good-plugins-plugin-audioparsers.html" title="audioparsers">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -124,6 +124,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html
index 71f1c6466..353898c82 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-audiofx.html" title="audiofx">
 <link rel="next" href="gst-plugins-good-plugins-plugin-auparse.html" title="auparse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -104,6 +104,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 7a64d7498..b841c01f2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-audioparsers.html" title="audioparsers">
 <link rel="next" href="gst-plugins-good-plugins-plugin-autodetect.html" title="autodetect">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 62e02a8dd..0996df9d8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-auparse.html" title="auparse">
 <link rel="next" href="gst-plugins-good-plugins-plugin-avi.html" title="avi">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -88,6 +88,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 d634f557d..fd75f8489 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-autodetect.html" title="autodetect">
 <link rel="next" href="gst-plugins-good-plugins-plugin-cacasink.html" title="cacasink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -84,6 +84,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 314f97b51..6184c6a76 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-avi.html" title="avi">
 <link rel="next" href="gst-plugins-good-plugins-plugin-cairo.html" title="cairo">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 b5c68370a..5f2ddd19a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-cacasink.html" title="cacasink">
 <link rel="next" href="gst-plugins-good-plugins-plugin-cutter.html" title="cutter">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 bd47ef32e..853fd8df2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-cairo.html" title="cairo">
 <link rel="next" href="gst-plugins-good-plugins-plugin-debug.html" title="debug">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 1c8208757..b259abcc4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-cutter.html" title="cutter">
 <link rel="next" href="gst-plugins-good-plugins-plugin-deinterlace.html" title="deinterlace">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -108,6 +108,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 03f0ea655..2c6973b76 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-debug.html" title="debug">
 <link rel="next" href="gst-plugins-good-plugins-plugin-directsound.html" title="directsound">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 2ca443da5..7369d66fc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html
@@ -8,7 +8,7 @@
 <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-dtmf.html" title="dtmf">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
index ba5cf58ff..e980e0f73 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
@@ -8,7 +8,7 @@
 <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.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -84,6 +84,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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 110866a32..0bebe6dae 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-dtmf.html" title="dtmf">
 <link rel="next" href="gst-plugins-good-plugins-plugin-effectv.html" title="effectv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 d5748a544..3d1cccf1b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-dv.html" title="dv">
 <link rel="next" href="gst-plugins-good-plugins-plugin-equalizer.html" title="equalizer">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -120,6 +120,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 13ae51629..c59b730d8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-effectv.html" title="effectv">
 <link rel="next" href="gst-plugins-good-plugins-plugin-flac.html" title="flac">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -84,6 +84,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 0d351c5fd..de50818ca 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-equalizer.html" title="equalizer">
 <link rel="next" href="gst-plugins-good-plugins-plugin-flv.html" title="flv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -84,6 +84,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 c967a7918..7e8e6a2dc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-flac.html" title="flac">
 <link rel="next" href="gst-plugins-good-plugins-plugin-flxdec.html" title="flxdec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 237762eba..7645ac299 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-flv.html" title="flv">
 <link rel="next" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html" title="gdkpixbuf">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 9085063d7..2f7f1d26d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-flxdec.html" title="flxdec">
 <link rel="next" href="gst-plugins-good-plugins-plugin-goom2k1.html" title="goom2k1">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -84,6 +84,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 4c61c32d4..442c5ffe6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
@@ -7,8 +7,8 @@
 <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">
-<link rel="next" href="gst-plugins-good-plugins-plugin-icydemux.html" title="icydemux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<link rel="next" href="gst-plugins-good-plugins-plugin-gtk.html" title="gtk">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-plugin-goom2k1.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-icydemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-gtk.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-goom"></a><div class="titlepage"></div>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 67d39cc65..ba24a974f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html" title="gdkpixbuf">
 <link rel="next" href="gst-plugins-good-plugins-plugin-goom.html" title="goom">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-gtk.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-gtk.html
new file mode 100644
index 000000000..b5fade6f9
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-gtk.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gtk: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="next" href="gst-plugins-good-plugins-plugin-icydemux.html" title="icydemux">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-goom.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-icydemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-plugin-gtk"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle">gtk</span></h2>
+<p>gtk — <a name="plugin-gtk"></a>Gtk+ sink</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="id-1.3.29.3"></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>libgstgtk.so</td>
+</tr>
+<tr>
+<td><p><span class="term">version</span></p></td>
+<td>1.13.1</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="id-1.3.29.4"></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-gtkglsink.html" title="gtkglsink">gtkglsink</a></span></p></td>
+<td>A video sink that renders to a GtkWidget using OpenGL</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-gtksink.html" title="gtksink">gtksink</a></span></p></td>
+<td>A video sink that renders to a GtkWidget</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
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 133debc1e..3e319d8bf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
@@ -6,9 +6,9 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-gtk.html" title="gtk">
 <link rel="next" href="gst-plugins-good-plugins-plugin-id3demux.html" title="id3demux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -16,7 +16,7 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-goom.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-gtk.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-plugin-id3demux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.29.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.30.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.29.4"></a><h2>Elements</h2>
+<a name="id-1.3.30.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 918d37e59..42134a455 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-icydemux.html" title="icydemux">
 <link rel="next" href="gst-plugins-good-plugins-plugin-imagefreeze.html" title="imagefreeze">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.30.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.31.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.30.4"></a><h2>Elements</h2>
+<a name="id-1.3.31.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 084c05add..3add0e500 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-id3demux.html" title="id3demux">
 <link rel="next" href="gst-plugins-good-plugins-plugin-interleave.html" title="interleave">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.31.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.32.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.31.4"></a><h2>Elements</h2>
+<a name="id-1.3.32.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 901d95b3b..60c4882a5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-imagefreeze.html" title="imagefreeze">
 <link rel="next" href="gst-plugins-good-plugins-plugin-isomp4.html" title="isomp4">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.32.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.33.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.32.4"></a><h2>Elements</h2>
+<a name="id-1.3.33.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 7677bcd28..01430d2f2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-interleave.html" title="interleave">
 <link rel="next" href="gst-plugins-good-plugins-plugin-jack.html" title="jack">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.33.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.34.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.33.4"></a><h2>Elements</h2>
+<a name="id-1.3.34.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -104,6 +104,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 fa055733c..a9cc3fd63 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-isomp4.html" title="isomp4">
 <link rel="next" href="gst-plugins-good-plugins-plugin-jpeg.html" title="jpeg">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.34.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.35.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.34.4"></a><h2>Elements</h2>
+<a name="id-1.3.35.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 e24f285fb..23fdacc1b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
@@ -7,8 +7,8 @@
 <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">
-<link rel="next" href="gst-plugins-good-plugins-plugin-level.html" title="level">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<link rel="next" href="gst-plugins-good-plugins-plugin-lame.html" title="lame">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-plugin-jack.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-level.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-lame.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-jpeg"></a><div class="titlepage"></div>
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.35.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.36.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.35.4"></a><h2>Elements</h2>
+<a name="id-1.3.36.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-lame.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-lame.html
new file mode 100644
index 000000000..2487532bd
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-lame.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>lame: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="next" href="gst-plugins-good-plugins-plugin-level.html" title="level">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-jpeg.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-level.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-plugin-lame"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle">lame</span></h2>
+<p>lame — <a name="plugin-lame"></a>Encode MP3s with LAME</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="id-1.3.37.3"></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>libgstlame.so</td>
+</tr>
+<tr>
+<td><p><span class="term">version</span></p></td>
+<td>1.13.1</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="id-1.3.37.4"></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-lamemp3enc.html" title="lamemp3enc">lamemp3enc</a></span></p></td>
+<td>High-quality free MP3 encoder</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
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 78a334c6d..99d58724d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
@@ -6,9 +6,9 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-lame.html" title="lame">
 <link rel="next" href="gst-plugins-good-plugins-plugin-matroska.html" title="matroska">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -16,7 +16,7 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-jpeg.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-lame.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-plugin-matroska.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.36.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.38.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.36.4"></a><h2>Elements</h2>
+<a name="id-1.3.38.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 e37a483e6..0374a024f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-level.html" title="level">
 <link rel="next" href="gst-plugins-good-plugins-plugin-monoscope.html" title="monoscope">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.37.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.39.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.37.4"></a><h2>Elements</h2>
+<a name="id-1.3.39.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -88,6 +88,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 92371f11f..d1838fc94 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html
@@ -7,8 +7,8 @@
 <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">
-<link rel="next" href="gst-plugins-good-plugins-plugin-mulaw.html" title="mulaw">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<link rel="next" href="gst-plugins-good-plugins-plugin-mpg123.html" title="mpg123">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-plugin-matroska.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-mulaw.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-mpg123.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-monoscope"></a><div class="titlepage"></div>
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.38.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.40.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.38.4"></a><h2>Elements</h2>
+<a name="id-1.3.40.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-mpg123.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-mpg123.html
new file mode 100644
index 000000000..bdc65a81e
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-mpg123.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>mpg123: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="next" href="gst-plugins-good-plugins-plugin-mulaw.html" title="mulaw">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-monoscope.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-mulaw.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-plugin-mpg123"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle">mpg123</span></h2>
+<p>mpg123 — <a name="plugin-mpg123"></a>mp3 decoding based on the mpg123 library</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="id-1.3.41.3"></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>libgstmpg123.so</td>
+</tr>
+<tr>
+<td><p><span class="term">version</span></p></td>
+<td>1.13.1</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="id-1.3.41.4"></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-mpg123audiodec.html" title="mpg123audiodec">mpg123audiodec</a></span></p></td>
+<td>Decodes mp3 streams using the mpg123 library</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
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 2a73893c1..d0c82b1b8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
@@ -6,9 +6,9 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-mpg123.html" title="mpg123">
 <link rel="next" href="gst-plugins-good-plugins-plugin-multifile.html" title="multifile">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -16,7 +16,7 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-monoscope.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-mpg123.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-plugin-multifile.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.39.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.42.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.39.4"></a><h2>Elements</h2>
+<a name="id-1.3.42.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 52aba1c4b..1cdc830f6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-mulaw.html" title="mulaw">
 <link rel="next" href="gst-plugins-good-plugins-plugin-multipart.html" title="multipart">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.40.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.43.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.40.4"></a><h2>Elements</h2>
+<a name="id-1.3.43.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -92,6 +92,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 f3d4a1acc..0b287bc65 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-multifile.html" title="multifile">
 <link rel="next" href="gst-plugins-good-plugins-plugin-navigationtest.html" title="navigationtest">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.41.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.44.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.41.4"></a><h2>Elements</h2>
+<a name="id-1.3.44.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 c87c2f3b8..f34243371 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-multipart.html" title="multipart">
 <link rel="next" href="gst-plugins-good-plugins-plugin-oss4.html" title="oss4">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.42.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.45.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.42.4"></a><h2>Elements</h2>
+<a name="id-1.3.45.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 41c437410..843fd3d74 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-navigationtest.html" title="navigationtest">
 <link rel="next" href="gst-plugins-good-plugins-plugin-ossaudio.html" title="ossaudio">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.43.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.46.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.43.4"></a><h2>Elements</h2>
+<a name="id-1.3.46.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 1fc185981..33d219280 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-oss4.html" title="oss4">
 <link rel="next" href="gst-plugins-good-plugins-plugin-osxaudio.html" title="osxaudio">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.44.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.47.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.44.4"></a><h2>Elements</h2>
+<a name="id-1.3.47.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 a14a61694..c730baba6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-ossaudio.html" title="ossaudio">
 <link rel="next" href="gst-plugins-good-plugins-plugin-osxvideo.html" title="osxvideo">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.45.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.48.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.45.4"></a><h2>Elements</h2>
+<a name="id-1.3.48.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 c12f1c5f7..4a13de819 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-osxaudio.html" title="osxaudio">
 <link rel="next" href="gst-plugins-good-plugins-plugin-png.html" title="png">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.46.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.49.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.46.4"></a><h2>Elements</h2>
+<a name="id-1.3.49.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 a964ce32b..1d5d46c96 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-osxvideo.html" title="osxvideo">
 <link rel="next" href="gst-plugins-good-plugins-plugin-pulseaudio.html" title="pulseaudio">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.47.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.50.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.47.4"></a><h2>Elements</h2>
+<a name="id-1.3.50.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 c82822fa4..faab4d8a9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
@@ -7,8 +7,8 @@
 <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">
-<link rel="next" href="gst-plugins-good-plugins-plugin-replaygain.html" title="replaygain">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<link rel="next" href="gst-plugins-good-plugins-plugin-qmlgl.html" title="qmlgl">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-plugin-png.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-replaygain.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-qmlgl.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-pulseaudio"></a><div class="titlepage"></div>
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.48.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.51.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.48.4"></a><h2>Elements</h2>
+<a name="id-1.3.51.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-qmlgl.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-qmlgl.html
new file mode 100644
index 000000000..d221489d9
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-qmlgl.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>qmlgl: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="next" href="gst-plugins-good-plugins-plugin-replaygain.html" title="replaygain">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-pulseaudio.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-replaygain.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-plugin-qmlgl"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle">qmlgl</span></h2>
+<p>qmlgl — <a name="plugin-qmlgl"></a>Qt gl plugin</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="id-1.3.52.3"></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>libgstqmlgl.so</td>
+</tr>
+<tr>
+<td><p><span class="term">version</span></p></td>
+<td>1.13.1</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="id-1.3.52.4"></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-qmlglsink.html" title="qmlglsink">qmlglsink</a></span></p></td>
+<td>A video sink that renders to a QQuickItem</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-qmlglsrc.html" title="qmlglsrc">qmlglsrc</a></span></p></td>
+<td>A video src that captures a window from a QML view</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
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 99eaa763f..1cdf6b276 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
@@ -6,9 +6,9 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-qmlgl.html" title="qmlgl">
 <link rel="next" href="gst-plugins-good-plugins-plugin-rtpmanager.html" title="rtpmanager">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -16,7 +16,7 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-pulseaudio.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-qmlgl.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtpmanager.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.49.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.53.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.49.4"></a><h2>Elements</h2>
+<a name="id-1.3.53.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -84,6 +84,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 dd5f0b6b4..b5e610a13 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-rtpmanager.html" title="rtpmanager">
 <link rel="next" href="gst-plugins-good-plugins-plugin-rtsp.html" title="rtsp">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.51.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.55.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.51.4"></a><h2>Elements</h2>
+<a name="id-1.3.55.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -88,6 +88,14 @@
 <td>Payload-encode Raw 24-bit audio into RTP packets (RFC 3190)</td>
 </tr>
 <tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpL8depay.html" title="rtpL8depay">rtpL8depay</a></span></p></td>
+<td>Extracts raw audio from RTP packets</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpL8pay.html" title="rtpL8pay">rtpL8pay</a></span></p></td>
+<td>Payload-encode Raw audio into RTP packets (RFC 3551)</td>
+</tr>
+<tr>
 <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>
@@ -416,6 +424,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 ddc0d7d3f..1aed28735 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-replaygain.html" title="replaygain">
 <link rel="next" href="gst-plugins-good-plugins-plugin-rtp.html" title="rtp">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.50.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.54.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.50.4"></a><h2>Elements</h2>
+<a name="id-1.3.54.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -112,6 +112,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 0ae26776a..a309b32ca 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-rtp.html" title="rtp">
 <link rel="next" href="gst-plugins-good-plugins-plugin-shapewipe.html" title="shapewipe">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.52.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.56.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.52.4"></a><h2>Elements</h2>
+<a name="id-1.3.56.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 cc5f4a25c..7e104d376 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-rtsp.html" title="rtsp">
 <link rel="next" href="gst-plugins-good-plugins-plugin-shout2.html" title="shout2">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.53.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.57.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.53.4"></a><h2>Elements</h2>
+<a name="id-1.3.57.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2.html
index f7a9f73a6..2f8013ef7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-shapewipe.html" title="shapewipe">
 <link rel="next" href="gst-plugins-good-plugins-plugin-smpte.html" title="smpte">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.54.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.58.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.3</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,17 +50,17 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>libshout2</td>
+<td>GStreamer Good Plug-ins source release</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
-<td>http://www.icecast.org/download/</td>
+<td>Unknown package origin</td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.54.4"></a><h2>Elements</h2>
+<a name="id-1.3.58.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 08f485dad..767bc351b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-shout2.html" title="shout2">
 <link rel="next" href="gst-plugins-good-plugins-plugin-soup.html" title="soup">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.55.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.59.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.55.4"></a><h2>Elements</h2>
+<a name="id-1.3.59.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 d1c18ef32..c8d39757e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-smpte.html" title="smpte">
 <link rel="next" href="gst-plugins-good-plugins-plugin-spectrum.html" title="spectrum">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.56.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.60.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.56.4"></a><h2>Elements</h2>
+<a name="id-1.3.60.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 c4cf96a7e..9afc3552f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-soup.html" title="soup">
 <link rel="next" href="gst-plugins-good-plugins-plugin-speex.html" title="speex">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.57.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.61.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.57.4"></a><h2>Elements</h2>
+<a name="id-1.3.61.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 c6478617a..ef2fd5c6a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-spectrum.html" title="spectrum">
 <link rel="next" href="gst-plugins-good-plugins-plugin-taglib.html" title="taglib">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.58.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.62.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.58.4"></a><h2>Elements</h2>
+<a name="id-1.3.62.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 c77d678cf..918e7bd88 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
@@ -7,8 +7,8 @@
 <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">
-<link rel="next" href="gst-plugins-good-plugins-plugin-udp.html" title="udp">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<link rel="next" href="gst-plugins-good-plugins-plugin-twolame.html" title="twolame">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-plugin-speex.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-udp.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-twolame.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-taglib"></a><div class="titlepage"></div>
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.59.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.63.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.59.4"></a><h2>Elements</h2>
+<a name="id-1.3.63.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-twolame.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-twolame.html
new file mode 100644
index 000000000..04da03301
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-twolame.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>twolame: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="next" href="gst-plugins-good-plugins-plugin-udp.html" title="udp">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-taglib.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-udp.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-plugin-twolame"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle">twolame</span></h2>
+<p>twolame — <a name="plugin-twolame"></a>Encode MP2s with TwoLAME</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="id-1.3.64.3"></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>libgsttwolame.so</td>
+</tr>
+<tr>
+<td><p><span class="term">version</span></p></td>
+<td>1.13.1</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="id-1.3.64.4"></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">twolamemp2enc</span></p></td>
+<td>High-quality free MP2 encoder</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
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 84e72f068..f4a714e23 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
@@ -6,9 +6,9 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-twolame.html" title="twolame">
 <link rel="next" href="gst-plugins-good-plugins-plugin-video4linux2.html" title="video4linux2">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -16,7 +16,7 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-taglib.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-twolame.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-plugin-video4linux2.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.60.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.65.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.60.4"></a><h2>Elements</h2>
+<a name="id-1.3.65.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -88,6 +88,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 33be3bfe8..2dcad8e96 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-udp.html" title="udp">
 <link rel="next" href="gst-plugins-good-plugins-plugin-videobox.html" title="videobox">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.61.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.66.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.61.4"></a><h2>Elements</h2>
+<a name="id-1.3.66.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -84,6 +84,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 92eb6007b..155b50f63 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-video4linux2.html" title="video4linux2">
 <link rel="next" href="gst-plugins-good-plugins-plugin-videocrop.html" title="videocrop">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.62.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.67.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.62.4"></a><h2>Elements</h2>
+<a name="id-1.3.67.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 c88bcd14c..e387583e6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-videobox.html" title="videobox">
 <link rel="next" href="gst-plugins-good-plugins-plugin-videofilter.html" title="videofilter">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.63.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.68.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.63.4"></a><h2>Elements</h2>
+<a name="id-1.3.68.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 9ee75368a..afd7d5a51 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-videocrop.html" title="videocrop">
 <link rel="next" href="gst-plugins-good-plugins-plugin-videomixer.html" title="videomixer">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.64.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.69.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.64.4"></a><h2>Elements</h2>
+<a name="id-1.3.69.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -88,6 +88,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 1283c3b77..7263b0392 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-videofilter.html" title="videofilter">
 <link rel="next" href="gst-plugins-good-plugins-plugin-vpx.html" title="vpx">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.65.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.70.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.65.4"></a><h2>Elements</h2>
+<a name="id-1.3.70.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 05589e76d..b990bc4f7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-videomixer.html" title="videomixer">
 <link rel="next" href="gst-plugins-good-plugins-plugin-waveform.html" title="waveform">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.66.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.71.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.66.4"></a><h2>Elements</h2>
+<a name="id-1.3.71.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -88,6 +88,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 ddd0483c1..dfc2450ab 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-vpx.html" title="vpx">
 <link rel="next" href="gst-plugins-good-plugins-plugin-wavenc.html" title="wavenc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.67.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.72.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.67.4"></a><h2>Elements</h2>
+<a name="id-1.3.72.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 def457939..d304027e6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-waveform.html" title="waveform">
 <link rel="next" href="gst-plugins-good-plugins-plugin-wavpack.html" title="wavpack">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.68.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.73.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.68.4"></a><h2>Elements</h2>
+<a name="id-1.3.73.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 8dc879c57..43d3d5fb9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-wavenc.html" title="wavenc">
 <link rel="next" href="gst-plugins-good-plugins-plugin-wavparse.html" title="wavparse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.69.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.74.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.69.4"></a><h2>Elements</h2>
+<a name="id-1.3.74.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -80,6 +80,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 3c0a56afa..d5d91d814 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-wavpack.html" title="wavpack">
 <link rel="next" href="gst-plugins-good-plugins-plugin-ximagesrc.html" title="ximagesrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.70.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.75.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.70.4"></a><h2>Elements</h2>
+<a name="id-1.3.75.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 84f54ae28..a0631072f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-wavparse.html" title="wavparse">
 <link rel="next" href="gst-plugins-good-plugins-plugin-y4menc.html" title="y4menc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.71.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.76.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.71.4"></a><h2>Elements</h2>
+<a name="id-1.3.76.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -74,6 +74,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
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 ce69adb91..6ab0917fd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
@@ -7,7 +7,7 @@
 <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">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -28,7 +28,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.72.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.77.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -41,7 +41,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.12.4</td>
+<td>1.13.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -59,7 +59,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.72.4"></a><h2>Elements</h2>
+<a name="id-1.3.77.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -73,6 +73,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
index caca0c641..0790fceaf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-osxvideosink.html" title="osxvideosink">
 <link rel="next" href="gst-plugins-good-plugins-pngenc.html" title="pngenc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ after the first picture.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.109.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.113.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -88,7 +88,7 @@ after the first picture.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.109.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.113.6.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -153,6 +153,6 @@ after the first picture.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
index 91b0a7d04..d5fb9ed6a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-pngdec.html" title="pngdec">
 <link rel="next" href="gst-plugins-good-plugins-progressreport.html" title="progressreport">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -91,7 +91,7 @@ GstPngEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.110.8.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.114.8.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -117,7 +117,7 @@ GstPngEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.110.8.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.114.8.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -201,6 +201,6 @@ GstPngEnc implements
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
index 17c53802c..c53f3b639 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-pngenc.html" title="pngenc">
 <link rel="next" href="gst-plugins-good-plugins-pulsesink.html" title="pulsesink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -117,7 +117,7 @@ take action when they receive an EOS message (since the progress reported
 is in reference to an internal point of a pipeline and not the pipeline as
 a whole).</p>
 <div class="refsect2">
-<a name="id-1.2.111.7.7"></a><h3>Example launch line</h3>
+<a name="id-1.2.115.7.7"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -144,7 +144,7 @@ a whole).</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.111.7.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.115.7.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -170,7 +170,7 @@ a whole).</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.111.7.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.115.7.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -270,6 +270,6 @@ a whole).</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
index 16fd5d8ca..ccafb4ef4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-progressreport.html" title="progressreport">
 <link rel="next" href="gst-plugins-good-plugins-pulsesrc.html" title="pulsesrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -127,7 +127,7 @@ GstPulseSink implements
 <p>This element outputs audio to a</p>
 <a class="ulink" href="" target="_top">PulseAudio sound server</a>.
 <div class="refsect2">
-<a name="id-1.2.112.8.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.116.8.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -166,7 +166,7 @@ with "pactl list".
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.112.8.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.116.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -192,7 +192,7 @@ with "pactl list".
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.112.8.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.116.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -237,7 +237,7 @@ with "pactl list".
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)[ 1, 2 ], parsed=(boolean)true</td>
+<td> audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)[ 1, 3 ], parsed=(boolean)true</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
@@ -353,6 +353,6 @@ gst_structure_free</pre></td>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
index 7932deb00..0d214a14b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-pulsesink.html" title="pulsesink">
 <link rel="next" href="gst-plugins-good-plugins-pushfilesrc.html" title="pushfilesrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -134,7 +134,7 @@ GstPulseSrc implements
 <p>This element captures audio from a</p>
 <a class="ulink" href="" target="_top">PulseAudio sound server</a>.
 <div class="refsect2">
-<a name="id-1.2.113.8.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.117.8.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -150,7 +150,7 @@ GstPulseSrc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.113.8.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.117.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -176,7 +176,7 @@ GstPulseSrc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.113.8.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.117.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -325,6 +325,6 @@ props <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/sha
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pushfilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-pushfilesrc.html
index 7f9d4cc56..29182b359 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pushfilesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pushfilesrc.html
@@ -7,8 +7,8 @@
 <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">
-<link rel="next" href="gst-plugins-good-plugins-qtdemux.html" title="qtdemux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<link rel="next" href="gst-plugins-good-plugins-qmlglsink.html" title="qmlglsink">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -23,7 +23,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-pulsesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-qtdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-qmlglsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-pushfilesrc"></a><div class="titlepage"></div>
@@ -120,7 +120,7 @@ debug demuxers or decoders that can operate both pull and push-based in
 connection with the playbin element (which creates a source based on the
 URI passed).</p>
 <div class="refsect2">
-<a name="id-1.2.114.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.118.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -137,7 +137,7 @@ push-based.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.114.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.118.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -163,7 +163,7 @@ push-based.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.114.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.118.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -270,6 +270,6 @@ push-based.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qmlglsink.html b/docs/plugins/html/gst-plugins-good-plugins-qmlglsink.html
new file mode 100644
index 000000000..d0dd67f3a
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-qmlglsink.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>qmlglsink: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-pushfilesrc.html" title="pushfilesrc">
+<link rel="next" href="gst-plugins-good-plugins-qmlglsrc.html" title="qmlglsrc">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-qmlglsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-qmlglsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-qmlglsink.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-pushfilesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-qmlglsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-qmlglsink"></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-qmlglsink.top_of_page"></a>qmlglsink</span></h2>
+<p>qmlglsink</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsink.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qmlglsink.html#GstQtSink--force-aspect-ratio" title="The “force-aspect-ratio” property">force-aspect-ratio</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstFraction</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qmlglsink.html#GstQtSink--pixel-aspect-ratio" title="The “pixel-aspect-ratio” property">pixel-aspect-ratio</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qmlglsink.html#GstQtSink--widget" title="The “widget” property">widget</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstQtSink"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsink.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-qmlglsink.html#GstQtSink-struct" title="struct GstQtSink">GstQtSink</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsink.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink-struct">GstBaseSink</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstVideoSink.html#GstVideoSink-struct">GstVideoSink</a>
+                        <span class="lineart">╰──</span> GstQtSink
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsink.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.119.7.2.1"></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-qmlgl.html#plugin-qmlgl">qmlgl</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Matthew Waters &lt;matthew@centricular.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Sink/Video</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.119.7.2.2"></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>video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsink.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsink.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstQtSink-struct"></a><h3>struct GstQtSink</h3>
+<pre class="programlisting">struct GstQtSink;</pre>
+<p>Opaque <a class="link" href="gst-plugins-good-plugins-qmlglsink.html#GstQtSink"><span class="type">GstQtSink</span></a> object</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsink.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstQtSink--force-aspect-ratio"></a><h3>The <code class="literal">“force-aspect-ratio”</code> property</h3>
+<pre class="programlisting">  “force-aspect-ratio”       <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>When enabled, scaling will respect original aspect ratio.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstQtSink--pixel-aspect-ratio"></a><h3>The <code class="literal">“pixel-aspect-ratio”</code> property</h3>
+<pre class="programlisting">  “pixel-aspect-ratio”       <span class="type">GstFraction</span></pre>
+<p>The pixel aspect ratio of the device.</p>
+<p>Flags: Read / Write</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstQtSink--widget"></a><h3>The <code class="literal">“widget”</code> property</h3>
+<pre class="programlisting">  “widget”                   <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></pre>
+<p>The QQuickItem to place in the object hierarchy.</p>
+<p>Flags: Read / Write</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qmlglsrc.html b/docs/plugins/html/gst-plugins-good-plugins-qmlglsrc.html
new file mode 100644
index 000000000..ed7030865
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-qmlglsrc.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>qmlglsrc: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-qmlglsink.html" title="qmlglsink">
+<link rel="next" href="gst-plugins-good-plugins-qtdemux.html" title="qtdemux">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-qmlglsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-qmlglsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-qmlglsrc.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-qmlglsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-qtdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-qmlglsrc"></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-qmlglsrc.top_of_page"></a>qmlglsrc</span></h2>
+<p>qmlglsrc</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsrc.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qmlglsrc.html#GstQtSrc--use-default-fbo" title="The “use-default-fbo” property">use-default-fbo</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qmlglsrc.html#GstQtSrc--window" title="The “window” property">window</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstQtSrc"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsrc.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-qmlglsrc.html#GstQtSrc-struct" title="struct GstQtSrc">GstQtSrc</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc-struct">GstBaseSrc</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0/GstPushSrc.html#GstPushSrc-struct">GstPushSrc</a>
+                        <span class="lineart">╰──</span> GstQtSrc
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsrc.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.120.7.2.1"></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-qmlgl.html#plugin-qmlgl">qmlgl</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Multimedia Team &lt;shmmmw@freescale.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Source/Video</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.120.7.2.2"></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>video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsrc.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsrc.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstQtSrc-struct"></a><h3>struct GstQtSrc</h3>
+<pre class="programlisting">struct GstQtSrc;</pre>
+<p>Opaque <a class="link" href="gst-plugins-good-plugins-qmlglsrc.html#GstQtSrc"><span class="type">GstQtSrc</span></a> object</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-qmlglsrc.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstQtSrc--use-default-fbo"></a><h3>The <code class="literal">“use-default-fbo”</code> property</h3>
+<pre class="programlisting">  “use-default-fbo”          <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>When set it will not create a new FBO for the QML render thread.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstQtSrc--window"></a><h3>The <code class="literal">“window”</code> property</h3>
+<pre class="programlisting">  “window”                   <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></pre>
+<p>The QQuickWindow to place in the object hierarchy.</p>
+<p>Flags: Read / Write</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
index c86e72085..ed6213cb2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
@@ -6,9 +6,9 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-pushfilesrc.html" title="pushfilesrc">
+<link rel="prev" href="gst-plugins-good-plugins-qmlglsrc.html" title="qmlglsrc">
 <link rel="next" href="gst-plugins-good-plugins-qtmoovrecover.html" title="qtmoovrecover">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-pushfilesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-qmlglsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-qtmoovrecover.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -60,7 +60,7 @@
 <p>This element supports both push and pull-based scheduling, depending on the
 capabilities of the upstream elements.</p>
 <div class="refsect2">
-<a name="id-1.2.115.6.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.121.6.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -79,7 +79,7 @@ right decoder elements/plugins installed.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.115.6.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.121.6.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -105,7 +105,7 @@ right decoder elements/plugins installed.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.115.6.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.121.6.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -230,6 +230,6 @@ right decoder elements/plugins installed.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
index 10372b221..808ce3499 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-qtdemux.html" title="qtdemux">
 <link rel="next" href="gst-plugins-good-plugins-qtmux.html" title="qtmux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -102,7 +102,7 @@ GstQTMoovRecover implements
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-qtmoovrecover.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.116.8.2"></a><h3>Example pipelines</h3>
+<a name="id-1.2.122.8.2"></a><h3>Example pipelines</h3>
 <p>
 This element recovers quicktime files created with qtmux using the moov
 recovery feature.
@@ -118,7 +118,7 @@ TODO
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.116.8.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.122.8.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -144,7 +144,7 @@ TODO
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.116.8.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.122.8.3.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
@@ -195,6 +195,6 @@ TODO
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
index c67d398f5..4267b3a30 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-qtmoovrecover.html" title="qtmoovrecover">
 <link rel="next" href="gst-plugins-good-plugins-quarktv.html" title="quarktv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -120,6 +120,16 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--interleave-time" title="The “interleave-time” property">interleave-time</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--max-raw-audio-drift" title="The “max-raw-audio-drift” property">max-raw-audio-drift</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--reserved-prefill" title="The “reserved-prefill” property">reserved-prefill</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -166,9 +176,10 @@ Motion JPEG-2000 file format in ISO 15444-3 (mj2mux)
 and in various 3GPP(2) specs (gppmux).
 The fragmented file features defined (only) in ISO Base Media are used by
 ISMV files making up (a.o.) Smooth Streaming (ismlmux).</p>
-<p>A few properties (<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--movie-timescale" title="The “movie-timescale” property"><span class="type">“movie-timescale”</span></a>, <a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--trak-timescale" title="The “trak-timescale” property"><span class="type">“trak-timescale”</span></a>) allow
-adjusting some technical parameters, which might be useful in (rare) cases to
-resolve compatibility issues in some situations.</p>
+<p>A few properties (<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--movie-timescale" title="The “movie-timescale” property"><span class="type">“movie-timescale”</span></a>, <a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--trak-timescale" title="The “trak-timescale” property"><span class="type">“trak-timescale”</span></a>,
+<span class="type">“trak-timescale”</span>) allow adjusting some technical parameters,
+which might be useful in (rare) cases to resolve compatibility issues in
+some situations.</p>
 <p>Some other properties influence the result more fundamentally.
 A typical mov/mp4 file's metadata (aka moov) is located at the end of the
 file, somewhat contrary to this usually being called "the header".
@@ -194,7 +205,7 @@ space for headers is too small. Applications can monitor the
 <span class="type">“reserved-duration-remaining”</span> property to see how close to full
 the reserved space is becoming.</p>
 <div class="refsect2">
-<a name="id-1.2.117.8.9"></a><h3>Example pipelines</h3>
+<a name="id-1.2.123.8.9"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -211,7 +222,7 @@ Records a video stream captured from a v4l2 device and muxes it into a qt file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.117.8.10.1"></a><h3>Element Information</h3>
+<a name="id-1.2.123.8.10.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -237,7 +248,7 @@ Records a video stream captured from a v4l2 device and muxes it into a qt file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.117.8.10.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.123.8.10.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -266,7 +277,7 @@ Records a video stream captured from a v4l2 device and muxes it into a qt file.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]</td>
+<td> audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
@@ -274,6 +285,10 @@ Records a video stream captured from a v4l2 device and muxes it into a qt file.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> audio/x-ac3, channels=(int)[ 1, 6 ], rate=(int)[ 1, 2147483647 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> audio/x-adpcm, layout=(string)dvi, block_align=(int)[ 64, 8096 ], channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
@@ -296,6 +311,10 @@ Records a video stream captured from a v4l2 device and muxes it into a qt file.
 <td><p><span class="term"></span></p></td>
 <td> audio/x-alac, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]</td>
 </tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-opus, channel-mapping-family=(int)[ 0, 255 ], channels=(int)[ 1, 8 ], rate=(int)[ 1, 2147483647 ]</td>
+</tr>
 </tbody>
 </table></div>
 <div class="variablelist"><table border="0" class="variablelist">
@@ -386,10 +405,18 @@ Records a video stream captured from a v4l2 device and muxes it into a qt file.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> image/png, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> video/x-vp8, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> video/x-vp9, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> video/x-dirac, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]</td>
 </tr>
 <tr>
@@ -562,9 +589,25 @@ Records a video stream captured from a v4l2 device and muxes it into a qt file.
 <p>Flags: Read / Write</p>
 <p>Default value: 250000000</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstQTMux--max-raw-audio-drift"></a><h3>The <code class="literal">“max-raw-audio-drift”</code> property</h3>
+<pre class="programlisting">  “max-raw-audio-drift”      <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
+<p>Maximum allowed drift of raw audio samples vs. timestamps in nanoseconds.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 40000000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstQTMux--reserved-prefill"></a><h3>The <code class="literal">“reserved-prefill”</code> property</h3>
+<pre class="programlisting">  “reserved-prefill”         <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Prefill samples table of reserved duration.</p>
+<p>Flags: Read / Write / Construct</p>
+<p>Default value: FALSE</p>
+</div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
index 3da342674..f9fe75bc5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-qtmux.html" title="qtmux">
 <link rel="next" href="gst-plugins-good-plugins-radioactv.html" title="radioactv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,7 +77,7 @@
 <p>QuarkTV disolves moving objects. It picks up pixels from
 the last frames randomly.</p>
 <div class="refsect2">
-<a name="id-1.2.118.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.124.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -93,7 +93,7 @@ the last frames randomly.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.118.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.124.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -119,7 +119,7 @@ the last frames randomly.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.118.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.124.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -195,6 +195,6 @@ the last frames randomly.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
index fed31f282..e6664ea42 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-quarktv.html" title="quarktv">
 <link rel="next" href="gst-plugins-good-plugins-revtv.html" title="revtv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -99,7 +99,7 @@ In trigger mode, effect appears only when the trigger property is <a href="/usr/
 current frame and previous frame dropped, while strobe2 mode uses the difference from
 previous frame displayed. The effect of strobe2 is stronger than strobe1.</p>
 <div class="refsect2">
-<a name="id-1.2.119.7.5"></a><h3>Example launch line</h3>
+<a name="id-1.2.125.7.5"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -115,7 +115,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.119.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.125.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -141,7 +141,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.119.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.125.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -241,6 +241,6 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-revtv.html b/docs/plugins/html/gst-plugins-good-plugins-revtv.html
index d312425be..0d4d33b8d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-revtv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-revtv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-radioactv.html" title="radioactv">
 <link rel="next" href="gst-plugins-good-plugins-rganalysis.html" title="rganalysis">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -90,7 +90,7 @@
 processed. This creates a pseudo 3D effect based on the brightness
 of the video along each line.</p>
 <div class="refsect2">
-<a name="id-1.2.120.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.126.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -106,7 +106,7 @@ of the video along each line.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.120.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.126.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -132,7 +132,7 @@ of the video along each line.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.120.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.126.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -226,6 +226,6 @@ of the video along each line.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html
index d06f2ba5d..84ef2dc41 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-revtv.html" title="revtv">
 <link rel="next" href="gst-plugins-good-plugins-rglimiter.html" title="rglimiter">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -108,7 +108,7 @@ needed for album processing (see <a class="link" href="gst-plugins-good-plugins-
 the album gain and peak values need to be associated with all tracks of an
 album, not just the last one.</p>
 <div class="refsect2">
-<a name="id-1.2.121.7.6"></a><h3>Example launch lines</h3>
+<a name="id-1.2.127.7.6"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -154,7 +154,7 @@ property documentation for more information.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.121.7.7"></a><h3>Acknowledgements</h3>
+<a name="id-1.2.127.7.7"></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
@@ -164,7 +164,7 @@ and Frank Klemm.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.121.7.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.127.7.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -190,7 +190,7 @@ and Frank Klemm.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.121.7.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.127.7.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -272,7 +272,7 @@ and Frank Klemm.
 skip the processing of streams that already contain the necessary tags.
 Data will flow as usual but the element will not consume CPU time and will
 not generate result tags.  To enable possible skipping, set this property
-to <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
+to <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p>If used in conjunction with <a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--num-tracks" title="The “num-tracks” property">album
 processing</a>, the element will skip the number of remaining album
 tracks if a full set of tags is found for the first track.  If a subsequent
@@ -353,6 +353,6 @@ tag, which allows to store the used value alongside the gain values.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html
index 7b6457fe5..704801f08 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rganalysis.html" title="rganalysis">
 <link rel="next" href="gst-plugins-good-plugins-rgvolume.html" title="rgvolume">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,7 +77,7 @@
 performs strict hard limiting with soft-knee characteristics, using a
 threshold of -6 dB.  This type of filter is mentioned in the proposed <a class="ulink" href="http://replaygain.org" target="_top">ReplayGain standard</a>.</p>
 <div class="refsect2">
-<a name="id-1.2.122.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.128.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -97,7 +97,7 @@ Playback of a file
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.122.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.128.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -123,7 +123,7 @@ Playback of a file
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.122.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.128.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -203,6 +203,6 @@ Playback of a file
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html
index 4a9d4823d..3b6a96ef0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rglimiter.html" title="rglimiter">
 <link rel="next" href="gst-plugins-good-plugins-rippletv.html" title="rippletv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -127,7 +127,7 @@ between the volume adjustment and the limiting stage.  A basic limiter is
 included with this plugin: The <a class="link" href="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter">rglimiter</a>
 element applies -6 dB hard limiting as mentioned in the ReplayGain standard.</p>
 <div class="refsect2">
-<a name="id-1.2.123.8.8"></a><h3>Example launch line</h3>
+<a name="id-1.2.129.8.8"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -145,7 +145,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.123.8.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.129.8.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -171,7 +171,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.123.8.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.129.8.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -348,6 +348,6 @@ these simple formulas:</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html
index 3f164c8c0..6ab1f9615 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rgvolume.html" title="rgvolume">
 <link rel="next" href="gst-plugins-good-plugins-rndbuffersize.html" title="rndbuffersize">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,7 +84,7 @@
 <p>RippleTV does ripple mark effect on the video input. The ripple is caused
 by motion or random rain drops.</p>
 <div class="refsect2">
-<a name="id-1.2.124.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.130.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -100,7 +100,7 @@ by motion or random rain drops.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.124.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.130.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -126,7 +126,7 @@ by motion or random rain drops.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.124.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.130.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -209,6 +209,6 @@ by motion or random rain drops.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rndbuffersize.html b/docs/plugins/html/gst-plugins-good-plugins-rndbuffersize.html
index 8584e084b..ad3132296 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rndbuffersize.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rndbuffersize.html
@@ -8,7 +8,7 @@
 <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-rtpac3depay.html" title="rtpac3depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -37,7 +37,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.125.3.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.131.3.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -63,7 +63,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.125.3.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.131.3.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -124,6 +124,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
index deebb1972..34f966ee6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
@@ -6,9 +6,9 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpklvpay.html" title="rtpklvpay">
+<link rel="prev" href="gst-plugins-good-plugins-rtpL8pay.html" title="rtpL8pay">
 <link rel="next" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpklvpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpL8pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16pay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -60,7 +60,7 @@
 <p>Extract raw audio from RTP packets according to RFC 3551.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt</p>
 <div class="refsect2">
-<a name="id-1.2.172.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.180.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ the rtpL16pay example to create the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.172.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.180.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ the rtpL16pay example to create the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.172.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.180.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -176,6 +176,6 @@ the rtpL16pay example to create the RTP stream.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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
index dc9543c71..ba95ba8d3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html
@@ -8,7 +8,7 @@
 <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-rtpL24depay.html" title="rtpL24depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@
 <p>Payload raw audio into RTP packets according to RFC 3551.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt</p>
 <div class="refsect2">
-<a name="id-1.2.173.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.181.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -78,7 +78,7 @@ the rtpL16depay example to depayload and play the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.173.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.181.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -104,7 +104,7 @@ the rtpL16depay example to depayload and play the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.173.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.181.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -181,6 +181,6 @@ the rtpL16depay example to depayload and play the RTP stream.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL24depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL24depay.html
index fe203ffe9..c6479992f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpL24depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL24depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay">
 <link rel="next" href="gst-plugins-good-plugins-rtpL24pay.html" title="rtpL24pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <p>Extract raw audio from RTP packets according to RFC 3190, section 4.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc3190.txt</p>
 <div class="refsect2">
-<a name="id-1.2.174.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.182.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ the rtpL24pay example to create the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.174.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.182.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ the rtpL24pay example to create the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.174.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.182.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -172,6 +172,6 @@ the rtpL24pay example to create the RTP stream.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL24pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL24pay.html
index 1d0411141..e3bd45d92 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpL24pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL24pay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpL24depay.html" title="rtpL24depay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmp1sdepay.html" title="rtpmp1sdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@
 <p>Payload raw 24-bit audio into RTP packets according to RFC 3190, section 4.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc3190.txt</p>
 <div class="refsect2">
-<a name="id-1.2.175.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.183.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -78,7 +78,7 @@ the rtpL24depay example to depayload and play the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.175.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.183.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -104,7 +104,7 @@ the rtpL24depay example to depayload and play the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.175.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.183.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -173,6 +173,6 @@ the rtpL24depay example to depayload and play the RTP stream.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL8depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL8depay.html
new file mode 100644
index 000000000..506024c48
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL8depay.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpL8depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpklvpay.html" title="rtpklvpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpL8pay.html" title="rtpL8pay">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpL8depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpL8depay.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpklvpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL8pay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpL8depay"></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-rtpL8depay.top_of_page"></a>rtpL8depay</span></h2>
+<p>rtpL8depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpL8Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL8depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpL8depay.html#GstRtpL8Depay-struct" title="struct GstRtpL8Depay">GstRtpL8Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL8depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTPBaseDepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpL8Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL8depay.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>
+<div class="refsect2">
+<a name="id-1.2.178.6.3"></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">&apos;application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)L8, encoding-params=(string)1, channels=(int)1, payload=(int)96&apos;</span> <span class="gtkdoc opt">!</span> rtpL8depay <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 rtpL8pay example to create the RTP stream.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.178.6.4.1"></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;, GE Intelligent Platforms Embedded Systems, Inc.</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="id-1.2.178.6.4.2"></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)L8</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)U8, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL8depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL8depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpL8Depay-struct"></a><h3>struct GstRtpL8Depay</h3>
+<pre class="programlisting">struct GstRtpL8Depay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL8depay.see-also"></a><h2>See Also</h2>
+<p>rtpL8pay</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL8pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL8pay.html
new file mode 100644
index 000000000..51611a375
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL8pay.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpL8pay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpL8depay.html" title="rtpL8depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpL8pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpL8pay.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpL8depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpL8pay"></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-rtpL8pay.top_of_page"></a>rtpL8pay</span></h2>
+<p>rtpL8pay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpL8Pay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL8pay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpL8pay.html#GstRtpL8Pay-struct" title="struct GstRtpL8Pay">GstRtpL8Pay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL8pay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTPBasePayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstRTPBaseAudioPayload.html#GstRTPBaseAudioPayload-struct">GstRTPBaseAudioPayload</a>
+                        <span class="lineart">╰──</span> GstRtpL8Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL8pay.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>
+<div class="refsect2">
+<a name="id-1.2.179.6.3"></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> rtpL8pay <span class="gtkdoc opt">!</span> udpsink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will payload raw audio. Refer to
+the rtpL8depay example to depayload and play the RTP stream.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.179.6.4.1"></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;, GE Intelligent Platforms Embedded Systems, Inc.</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="id-1.2.179.6.4.2"></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)U8, 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)L8, channels=(int)[ 1, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL8pay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL8pay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpL8Pay-struct"></a><h3>struct GstRtpL8Pay</h3>
+<pre class="programlisting">struct GstRtpL8Pay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL8pay.see-also"></a><h2>See Also</h2>
+<p>rtpL8depay</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</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
index e887bde21..68e77e7ef 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rndbuffersize.html" title="rndbuffersize">
 <link rel="next" href="gst-plugins-good-plugins-rtpac3pay.html" title="rtpac3pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <p>Extract AC3 audio from RTP packets according to RFC 4184.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt</p>
 <div class="refsect2">
-<a name="id-1.2.126.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.132.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ the rtpac3pay example to create the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.126.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.132.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ the rtpac3pay example to create the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.126.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.132.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -172,6 +172,6 @@ the rtpac3pay example to create the RTP stream.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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
index 4c7ec2a22..8c7b48682 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html
@@ -8,7 +8,7 @@
 <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.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <p>Payload AC3 audio into RTP packets according to RFC 4184.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt</p>
 <div class="refsect2">
-<a name="id-1.2.127.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.133.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ the rtpac3depay example to depayload and decode the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.127.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.133.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ the rtpac3depay example to depayload and decode the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.127.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.133.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -176,6 +176,6 @@ the rtpac3depay example to depayload and decode the RTP stream.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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
index 6c868043c..34f16a5f9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html
@@ -8,7 +8,7 @@
 <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.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <p>Extract AMR audio from RTP packets according to RFC 3267.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt</p>
 <div class="refsect2">
-<a name="id-1.2.128.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.134.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ the rtpamrpay example to create the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.128.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.134.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ the rtpamrpay example to create the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.128.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.134.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -180,6 +180,6 @@ the rtpamrpay example to create the RTP stream.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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
index 0f4bb0f15..353188d5b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
@@ -8,7 +8,7 @@
 <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-rtpbin.html" title="rtpbin">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <p>Payload AMR audio into RTP packets according to RFC 3267.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt</p>
 <div class="refsect2">
-<a name="id-1.2.129.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.135.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ the rtpamrdepay example to depayload and decode the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.129.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.135.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ the rtpamrdepay example to depayload and decode the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.129.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.135.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -180,6 +180,6 @@ the rtpamrdepay example to depayload and decode the RTP stream.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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 2edef5373..5b524fbe2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
@@ -8,7 +8,7 @@
 <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-rtpbvdepay.html" title="rtpbvdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -150,6 +150,16 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-streams" title="The “max-streams” property">max-streams</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-ts-offset" title="The “max-ts-offset” property">max-ts-offset</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-ts-offset-adjustment" title="The “max-ts-offset-adjustment” property">max-ts-offset-adjustment</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -396,7 +406,7 @@ An AUX receiver has 1 src_%u pad that much match the sessionid in the signal
 and 1 or more sink_%u pads. A session will be made for each sink_%u pad
 when the corresponding recv_rtp_sink_%u pad is requested on <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a>.</p>
 <div class="refsect2">
-<a name="id-1.2.130.9.13"></a><h3>Example pipelines</h3>
+<a name="id-1.2.136.9.13"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -488,7 +498,7 @@ on port 5007.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.130.9.14.1"></a><h3>Element Information</h3>
+<a name="id-1.2.136.9.14.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -514,7 +524,7 @@ on port 5007.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.130.9.14.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.136.9.14.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -867,6 +877,28 @@ profile can be changed afterwards on a per-session basis.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 4294967295</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstRtpBin--max-ts-offset"></a><h3>The <code class="literal">“max-ts-offset”</code> property</h3>
+<pre class="programlisting">  “max-ts-offset”            <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a></pre>
+<p>Used to set an upper limit of how large a time offset may be. This
+is used to protect against unrealistic values as a result of either
+client,server or clock issues.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 3000000000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRtpBin--max-ts-offset-adjustment"></a><h3>The <code class="literal">“max-ts-offset-adjustment”</code> property</h3>
+<pre class="programlisting">  “max-ts-offset-adjustment” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
+<p>Syncing time stamps to NTP time adds a time offset. This parameter
+specifies the maximum number of nanoseconds per frame that this time offset
+may be adjusted with. This is used to avoid sudden large changes to time
+stamps.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 0</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpbin.signal-details"></a><h2>Signal Details</h2>
@@ -1972,6 +2004,6 @@ session for which they handle retransmission.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
index be370da09..8bbe238d7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
@@ -8,7 +8,7 @@
 <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-rtpbvpay.html" title="rtpbvpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.131.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.137.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -88,7 +88,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.131.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.137.6.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -161,6 +161,6 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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
index 02f344427..fb7bdba62 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html
@@ -8,7 +8,7 @@
 <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-rtpceltdepay.html" title="rtpceltdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -63,7 +63,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.132.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.138.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -89,7 +89,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.132.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.138.6.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -162,6 +162,6 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpceltdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpceltdepay.html
index 6ac9267cf..e227357c7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpceltdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpceltdepay.html
@@ -8,7 +8,7 @@
 <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-rtpceltpay.html" title="rtpceltpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.133.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.139.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.133.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.139.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpceltpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpceltpay.html
index 55de6a60a..92349a55b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpceltpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpceltpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpceltdepay.html" title="rtpceltdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.134.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.140.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.134.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.140.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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 2cd1ac8ab..6da5adbcd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpceltpay.html" title="rtpceltpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpdtmfdepay.html" title="rtpdtmfdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -130,7 +130,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.135.8.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.141.8.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -156,7 +156,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.135.8.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.141.8.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -527,6 +527,6 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTP
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfdepay.html
index 84c019ff7..4abe58a42 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfdepay.html
@@ -8,7 +8,7 @@
 <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-rtpdtmfmux.html" title="rtpdtmfmux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -135,7 +135,7 @@ valid DTMF is from 0 to -36 dBm0.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.136.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.142.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -161,7 +161,7 @@ valid DTMF is from 0 to -36 dBm0.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.136.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.142.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -249,6 +249,6 @@ valid DTMF is from 0 to -36 dBm0.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
index dd33736bb..863816090 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpdtmfdepay.html" title="rtpdtmfdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -67,7 +67,7 @@ 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="id-1.2.137.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.143.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -93,7 +93,7 @@ DTMF signal can replace the recorded audio while the tone is being sent.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.137.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.143.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -187,6 +187,6 @@ DTMF signal can replace the recorded audio while the tone is being sent.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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
index 3ef87a6cc..6afc93c33 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html
@@ -8,7 +8,7 @@
 <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-rtpdvdepay.html" title="rtpdvdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -194,7 +194,7 @@ READY state, then a "dtmf-event-dropped" message is posted on the
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.138.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.144.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -220,7 +220,7 @@ READY state, then a "dtmf-event-dropped" message is posted on the
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.138.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.144.7.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -347,6 +347,6 @@ READY state, then a "dtmf-event-dropped" message is posted on the
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdvdepay.html
index af84aab4a..8c238c779 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdvdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdvdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc">
 <link rel="next" href="gst-plugins-good-plugins-rtpdvpay.html" title="rtpdvpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.139.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.145.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.139.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.145.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdvpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdvpay.html
index 9a2f48488..e67446d41 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdvpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdvpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpdvdepay.html" title="rtpdvdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpg722depay.html" title="rtpg722depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.140.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.146.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.140.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.146.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -177,6 +177,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg722depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg722depay.html
index 4bd9663a8..757f03676 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpg722depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg722depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpdvpay.html" title="rtpdvpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpg722pay.html" title="rtpg722pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.141.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.147.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.141.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.147.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg722pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg722pay.html
index 42257c237..f13cd7d60 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpg722pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg722pay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpg722depay.html" title="rtpg722depay">
 <link rel="next" href="gst-plugins-good-plugins-rtpg723depay.html" title="rtpg723depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.142.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.148.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -87,7 +87,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.142.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.148.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -132,11 +132,11 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>application/x-rtp, media=(string)audio, encoding-name=(string)G722, payload=(int)9, clock-rate=(int)8000</td>
+<td>application/x-rtp, media=(string)audio, encoding-name=(string)G722, payload=(int)9, encoding-params=(string)1, clock-rate=(int)8000</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> application/x-rtp, media=(string)audio, encoding-name=(string)G722, payload=(int)[ 96, 127 ], clock-rate=(int)8000</td>
+<td> application/x-rtp, media=(string)audio, encoding-name=(string)G722, payload=(int)[ 96, 127 ], encoding-params=(string)1, clock-rate=(int)8000</td>
 </tr>
 </tbody>
 </table></div>
@@ -156,6 +156,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg723depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg723depay.html
index c051f0aa7..f44dd02d5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpg723depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg723depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpg722pay.html" title="rtpg722pay">
 <link rel="next" href="gst-plugins-good-plugins-rtpg723pay.html" title="rtpg723pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.143.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.149.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.143.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.149.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg723pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg723pay.html
index 07267674f..a7a72cd6d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpg723pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg723pay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpg723depay.html" title="rtpg723depay">
 <link rel="next" href="gst-plugins-good-plugins-rtpg726depay.html" title="rtpg726depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.144.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.150.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.144.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.150.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg726depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg726depay.html
index 797fc2bc8..7ab7d285b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpg726depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg726depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpg723pay.html" title="rtpg723pay">
 <link rel="next" href="gst-plugins-good-plugins-rtpg726pay.html" title="rtpg726pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.145.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.151.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.145.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.151.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -177,6 +177,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg726pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg726pay.html
index ec678b2fa..01446accf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpg726pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg726pay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpg726depay.html" title="rtpg726depay">
 <link rel="next" href="gst-plugins-good-plugins-rtpg729depay.html" title="rtpg729depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,7 +77,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.146.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.152.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.146.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.152.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -178,6 +178,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg729depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg729depay.html
index ee3472608..7fa283a82 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpg729depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg729depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpg726pay.html" title="rtpg726pay">
 <link rel="next" href="gst-plugins-good-plugins-rtpg729pay.html" title="rtpg729pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.147.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.153.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.147.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.153.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg729pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg729pay.html
index d33214feb..ba140088d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpg729pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg729pay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpg729depay.html" title="rtpg729depay">
 <link rel="next" href="gst-plugins-good-plugins-rtpgsmdepay.html" title="rtpgsmdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.148.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.154.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.148.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.154.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpgsmdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpgsmdepay.html
index ac2a3f1a3..053385a33 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpgsmdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpgsmdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpg729pay.html" title="rtpg729pay">
 <link rel="next" href="gst-plugins-good-plugins-rtpgsmpay.html" title="rtpgsmpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.149.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.155.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.149.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.155.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpgsmpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpgsmpay.html
index 9659eeefa..db609ef0e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpgsmpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpgsmpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpgsmdepay.html" title="rtpgsmdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpgstdepay.html" title="rtpgstdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.150.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.156.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.150.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.156.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpgstdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpgstdepay.html
index 91948082f..5b7185b2d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpgstdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpgstdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpgsmpay.html" title="rtpgsmpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpgstpay.html" title="rtpgstpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.151.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.157.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.151.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.157.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpgstpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpgstpay.html
index f61107297..d4d8122bb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpgstpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpgstpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpgstdepay.html" title="rtpgstdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtph261depay.html" title="rtph261depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.152.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.158.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.152.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.158.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -178,6 +178,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph261depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph261depay.html
index 084cb56bb..e930f4147 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtph261depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph261depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpgstpay.html" title="rtpgstpay">
 <link rel="next" href="gst-plugins-good-plugins-rtph261pay.html" title="rtph261pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -63,7 +63,7 @@ For detailed information see: https://www.rfc-editor.org/rfc/rfc4587.txt</p>
 aggregates the extracted stream until a complete frame is received before
 it pushes it downstream.</p>
 <div class="refsect2">
-<a name="id-1.2.153.6.4"></a><h3>Example pipeline</h3>
+<a name="id-1.2.159.6.4"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -80,7 +80,7 @@ Refer to the rtph261pay example to create the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.153.6.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.159.6.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -106,7 +106,7 @@ Refer to the rtph261pay example to create the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.153.6.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.159.6.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -179,6 +179,6 @@ Refer to the rtph261pay example to create the RTP stream.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph261pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph261pay.html
index 60984c492..f91b3e62a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtph261pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph261pay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtph261depay.html" title="rtph261depay">
 <link rel="next" href="gst-plugins-good-plugins-rtph263depay.html" title="rtph263depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -69,7 +69,7 @@ the previous frame. This helps interoperability in the case where the
 encoder does not produce a continuous bit-stream but the decoder requires
 it.</p>
 <div class="refsect2">
-<a name="id-1.2.154.6.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.160.6.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -86,7 +86,7 @@ example to depayload and play the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.154.6.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.160.6.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -112,7 +112,7 @@ example to depayload and play the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.154.6.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.160.6.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -185,6 +185,6 @@ example to depayload and play the RTP stream.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph263depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph263depay.html
index 1f7e57d90..dab392416 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtph263depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph263depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtph261pay.html" title="rtph261pay">
 <link rel="next" href="gst-plugins-good-plugins-rtph263pay.html" title="rtph263pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.155.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.161.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.155.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.161.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph263pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph263pay.html
index fab2070dc..f17b0c771 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtph263pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph263pay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtph263depay.html" title="rtph263depay">
 <link rel="next" href="gst-plugins-good-plugins-rtph263pdepay.html" title="rtph263pdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.156.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.162.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.156.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.162.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -181,6 +181,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph263pdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph263pdepay.html
index ee8d018e1..e73fac699 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtph263pdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph263pdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtph263pay.html" title="rtph263pay">
 <link rel="next" href="gst-plugins-good-plugins-rtph263ppay.html" title="rtph263ppay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.157.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.163.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.157.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.163.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph263ppay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph263ppay.html
index 8616ec2d4..bc727e406 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtph263ppay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph263ppay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtph263pdepay.html" title="rtph263pdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtph264depay.html" title="rtph264depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.158.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.164.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.158.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.164.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -181,6 +181,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph264depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph264depay.html
index 3b46c9314..af1704d0a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtph264depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph264depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtph263ppay.html" title="rtph263ppay">
 <link rel="next" href="gst-plugins-good-plugins-rtph264pay.html" title="rtph264pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.159.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.165.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.159.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.165.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph264pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph264pay.html
index a89468bd2..3acfc6689 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtph264pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph264pay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtph264depay.html" title="rtph264depay">
 <link rel="next" href="gst-plugins-good-plugins-rtph265depay.html" title="rtph265depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,7 +84,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.160.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.166.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -110,7 +110,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.160.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.166.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -198,6 +198,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph265depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph265depay.html
index a94236262..48da915c9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtph265depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph265depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtph264pay.html" title="rtph264pay">
 <link rel="next" href="gst-plugins-good-plugins-rtph265pay.html" title="rtph265pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.161.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.167.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.161.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.167.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -131,7 +131,11 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-h265, stream-format=(string)byte-stream, alignment=(string){ nal, au }</td>
+<td>video/x-h265, stream-format=(string)hvc1, alignment=(string)au</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-h265, stream-format=(string)byte-stream, alignment=(string){ nal, au }</td>
 </tr>
 </tbody>
 </table></div>
@@ -151,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph265pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph265pay.html
index edab4858f..1f71e71b5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtph265pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph265pay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtph265depay.html" title="rtph265depay">
 <link rel="next" href="gst-plugins-good-plugins-rtpilbcdepay.html" title="rtpilbcdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,7 +84,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.162.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.168.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -110,7 +110,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.162.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.168.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -198,6 +198,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpilbcdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpilbcdepay.html
index 35102d654..e9630c16d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpilbcdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpilbcdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtph265pay.html" title="rtph265pay">
 <link rel="next" href="gst-plugins-good-plugins-rtpilbcpay.html" title="rtpilbcpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.163.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.169.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.163.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.169.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -177,6 +177,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpilbcpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpilbcpay.html
index 8df9141c7..feb0f6e71 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpilbcpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpilbcpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpilbcdepay.html" title="rtpilbcdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpj2kdepay.html" title="rtpj2kdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.164.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.170.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -87,7 +87,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.164.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.170.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -152,6 +152,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kdepay.html
index 3c908fb96..49a6bd4b1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpilbcpay.html" title="rtpilbcpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,7 +64,7 @@ and https://datatracker.ietf.org/doc/rfc5372/</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.165.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.171.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -90,7 +90,7 @@ and https://datatracker.ietf.org/doc/rfc5372/</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.165.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.171.6.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -159,6 +159,6 @@ and https://datatracker.ietf.org/doc/rfc5372/</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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 a079380fc..6c0930125 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpj2kdepay.html" title="rtpj2kdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,7 +68,7 @@ a JPEG 2000 tile-part header, or a JPEG 2000 packet.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.166.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.172.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -94,7 +94,7 @@ a JPEG 2000 tile-part header, or a JPEG 2000 packet.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.166.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.172.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -159,6 +159,6 @@ a JPEG 2000 tile-part header, or a JPEG 2000 packet.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
index 5f7b0c8ea..d949ce189 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
@@ -8,7 +8,7 @@
 <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-rtpjpegdepay.html" title="rtpjpegdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -154,6 +154,16 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-stats-timeout" title="The “rtx-stats-timeout” property">rtx-stats-timeout</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--faststart-min-packets" title="The “faststart-min-packets” property">faststart-min-packets</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--max-ts-offset-adjustment" title="The “max-ts-offset-adjustment” property">max-ts-offset-adjustment</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -268,7 +278,7 @@ schedule a lost packet as discussed above.</p>
 to the pipeline.</p>
 <p>This element will automatically be used inside rtpbin.</p>
 <div class="refsect2">
-<a name="id-1.2.167.8.11"></a><h3>Example pipelines</h3>
+<a name="id-1.2.173.8.11"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -286,7 +296,7 @@ out-of-order RTP packets.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.167.8.12.1"></a><h3>Element Information</h3>
+<a name="id-1.2.173.8.12.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -312,7 +322,7 @@ out-of-order RTP packets.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.167.8.12.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.173.8.12.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -661,6 +671,26 @@ When -1 is used, the size of the jitterbuffer will be used.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 1000</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstRtpJitterBuffer--faststart-min-packets"></a><h3>The <code class="literal">“faststart-min-packets”</code> property</h3>
+<pre class="programlisting">  “faststart-min-packets”    <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>The number of consecutive packets needed to start (set to 0 to
+disable faststart. The jitterbuffer will by default start after the
+latency has elapsed)</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 0</p>
+<p class="since">Since: 1.14</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRtpJitterBuffer--max-ts-offset-adjustment"></a><h3>The <code class="literal">“max-ts-offset-adjustment”</code> property</h3>
+<pre class="programlisting">  “max-ts-offset-adjustment” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
+<p>The maximum number of nanoseconds per frame that time offset may be
+adjusted with. This is used to avoid sudden large changes to time stamps.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 0</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpjitterbuffer.signal-details"></a><h2>Signal Details</h2>
@@ -843,6 +873,6 @@ useful in buffering mode.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegdepay.html
index 77950bc77..1a6ceaeb3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegdepay.html
@@ -8,7 +8,7 @@
 <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-rtpjpegpay.html" title="rtpjpegpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.168.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.174.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.168.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.174.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
index 41204be6f..5087b80bf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpjpegdepay.html" title="rtpjpegdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpklvdepay.html" title="rtpklvdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -89,7 +89,7 @@ the actual JPEG entropy scan.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.169.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.175.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -115,7 +115,7 @@ the actual JPEG entropy scan.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.169.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.175.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -208,6 +208,6 @@ the actual JPEG entropy scan.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpklvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpklvdepay.html
index d2e786cee..d9324ae40 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpklvdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpklvdepay.html
@@ -8,7 +8,7 @@
 <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-rtpklvpay.html" title="rtpklvpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <p>Extract KLV metadata from RTP packets according to RFC 6597.
 For detailed information see: http://tools.ietf.org/html/rfc6597</p>
 <div class="refsect2">
-<a name="id-1.2.170.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.176.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ a hexdump of the KLV data on stdout.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.170.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.176.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ a hexdump of the KLV data on stdout.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.170.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.176.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -172,6 +172,6 @@ a hexdump of the KLV data on stdout.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpklvpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpklvpay.html
index 52d0188af..8667c71db 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpklvpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpklvpay.html
@@ -7,8 +7,8 @@
 <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-rtpklvdepay.html" title="rtpklvdepay">
-<link rel="next" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<link rel="next" href="gst-plugins-good-plugins-rtpL8depay.html" title="rtpL8depay">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-rtpklvdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL8depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpklvpay"></a><div class="titlepage"></div>
@@ -60,7 +60,7 @@
 <p>Payloads KLV metadata into RTP packets according to RFC 6597.
 For detailed information see: http://tools.ietf.org/html/rfc6597</p>
 <div class="refsect2">
-<a name="id-1.2.171.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.177.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ MPEG-TS stream and send it via UDP to an RTP receiver.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.171.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.177.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ MPEG-TS stream and send it via UDP to an RTP receiver.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.171.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.177.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -172,6 +172,6 @@ MPEG-TS stream and send it via UDP to an RTP receiver.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp1sdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp1sdepay.html
index 0f6e0f22c..3f30874ce 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmp1sdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp1sdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpL24pay.html" title="rtpL24pay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmp2tdepay.html" title="rtpmp2tdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.176.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.184.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.176.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.184.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tdepay.html
index 3843a12f9..b5d66afc5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmp1sdepay.html" title="rtpmp1sdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmp2tpay.html" title="rtpmp2tpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.177.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.185.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.177.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.185.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -181,6 +181,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tpay.html
index 2123632a2..edf0bd236 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmp2tdepay.html" title="rtpmp2tdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmp4adepay.html" title="rtpmp4adepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.178.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.186.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.178.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.186.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4adepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4adepay.html
index 1306918b8..434b84a1f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4adepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4adepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmp2tpay.html" title="rtpmp2tpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmp4apay.html" title="rtpmp4apay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.179.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.187.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.179.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.187.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4apay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4apay.html
index dcfd9cae6..738b7a71c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4apay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4apay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmp4adepay.html" title="rtpmp4adepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmp4gdepay.html" title="rtpmp4gdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.180.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.188.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.180.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.188.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gdepay.html
index fc9569c97..49554839c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmp4apay.html" title="rtpmp4apay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmp4gpay.html" title="rtpmp4gpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.181.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.189.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.181.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.189.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gpay.html
index dffd7ad47..48780745d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmp4gdepay.html" title="rtpmp4gdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmp4vdepay.html" title="rtpmp4vdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.182.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.190.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.182.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.190.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vdepay.html
index fa4ee09dc..b5b8dfe0e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmp4gpay.html" title="rtpmp4gpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmp4vpay.html" title="rtpmp4vpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.183.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.191.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.183.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.191.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vpay.html
index 26296d59c..dc10b3cce 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmp4vdepay.html" title="rtpmp4vdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmpadepay.html" title="rtpmpadepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.184.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.192.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.184.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.192.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -182,6 +182,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmpadepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmpadepay.html
index 6854d9146..10c7c751e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmpadepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmpadepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmp4vpay.html" title="rtpmp4vpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmpapay.html" title="rtpmpapay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.185.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.193.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.185.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.193.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmpapay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmpapay.html
index 1bf031586..d9793d41c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmpapay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmpapay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmpadepay.html" title="rtpmpadepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmparobustdepay.html" title="rtpmparobustdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.186.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.194.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.186.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.194.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmparobustdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmparobustdepay.html
index 47055c2fe..d68b2a0f0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmparobustdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmparobustdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmpapay.html" title="rtpmpapay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmpvdepay.html" title="rtpmpvdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.187.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.195.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.187.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.195.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmpvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmpvdepay.html
index 5ae9614fd..cb887615d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmpvdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmpvdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmparobustdepay.html" title="rtpmparobustdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmpvpay.html" title="rtpmpvpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.188.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.196.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.188.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.196.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmpvpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmpvpay.html
index 8b438c8d1..45dab6806 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmpvpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmpvpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmpvdepay.html" title="rtpmpvdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.189.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.197.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.189.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.197.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
index d0ff8821c..868df56e4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmpvpay.html" title="rtpmpvpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpopusdepay.html" title="rtpopusdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -93,7 +93,7 @@
 <p>The rtp muxer takes multiple RTP streams having the same clock-rate and
 muxes into a single stream with a single SSRC.</p>
 <div class="refsect2">
-<a name="id-1.2.190.7.3"></a><h3>Example pipelines</h3>
+<a name="id-1.2.198.7.3"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -122,7 +122,7 @@ so they can be sent on the same port.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.190.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.198.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -148,7 +148,7 @@ so they can be sent on the same port.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.190.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.198.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -254,6 +254,6 @@ so they can be sent on the same port.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpopusdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpopusdepay.html
index 3d5694735..7dd2cc27b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpopusdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpopusdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">
 <link rel="next" href="gst-plugins-good-plugins-rtpopuspay.html" title="rtpopuspay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.191.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.199.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.191.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.199.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpopuspay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpopuspay.html
index 9d882b703..c917a86de 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpopuspay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpopuspay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpopusdepay.html" title="rtpopusdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtppcmadepay.html" title="rtppcmadepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.192.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.200.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.192.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.200.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtppcmadepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtppcmadepay.html
index 3a5501e6f..d17955b98 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtppcmadepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtppcmadepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpopuspay.html" title="rtpopuspay">
 <link rel="next" href="gst-plugins-good-plugins-rtppcmapay.html" title="rtppcmapay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.193.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.201.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.193.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.201.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtppcmapay.html b/docs/plugins/html/gst-plugins-good-plugins-rtppcmapay.html
index 09800db27..79b348565 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtppcmapay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtppcmapay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtppcmadepay.html" title="rtppcmadepay">
 <link rel="next" href="gst-plugins-good-plugins-rtppcmudepay.html" title="rtppcmudepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.194.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.202.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -87,7 +87,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.194.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.202.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -156,6 +156,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtppcmudepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtppcmudepay.html
index bfddc87cf..fc89ee86d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtppcmudepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtppcmudepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtppcmapay.html" title="rtppcmapay">
 <link rel="next" href="gst-plugins-good-plugins-rtppcmupay.html" title="rtppcmupay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.195.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.203.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.195.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.203.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtppcmupay.html b/docs/plugins/html/gst-plugins-good-plugins-rtppcmupay.html
index 4d8009105..3040440ac 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtppcmupay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtppcmupay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtppcmudepay.html" title="rtppcmudepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.196.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.204.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -87,7 +87,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.196.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.204.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -156,6 +156,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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 92d4fa623..d0fb2e00c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtppcmupay.html" title="rtppcmupay">
 <link rel="next" href="gst-plugins-good-plugins-rtpqcelpdepay.html" title="rtpqcelpdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -101,7 +101,7 @@ emitted.</p>
 on the output pads based on the result of the <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map" title="The “request-pt-map” signal"><span class="type">“request-pt-map”</span></a>
 signal.</p>
 <div class="refsect2">
-<a name="id-1.2.197.7.5"></a><h3>Example pipelines</h3>
+<a name="id-1.2.205.7.5"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -118,7 +118,7 @@ payload type to fakesink, discarding the other payload types.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.197.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.205.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -144,7 +144,7 @@ payload type to fakesink, discarding the other payload types.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.197.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.205.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -362,6 +362,6 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#Gs
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpqcelpdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpqcelpdepay.html
index 5c7c17596..23f9111f0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpqcelpdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpqcelpdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">
 <link rel="next" href="gst-plugins-good-plugins-rtpqdm2depay.html" title="rtpqdm2depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.198.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.206.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.198.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.206.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpqdm2depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpqdm2depay.html
index 6ccd7acf6..d328d22a8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpqdm2depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpqdm2depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpqcelpdepay.html" title="rtpqcelpdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtprtxqueue.html" title="rtprtxqueue">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.199.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.207.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.199.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.207.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtprtxqueue.html b/docs/plugins/html/gst-plugins-good-plugins-rtprtxqueue.html
index ef9e7083e..4b36b994b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtprtxqueue.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtprtxqueue.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpqdm2depay.html" title="rtpqdm2depay">
 <link rel="next" href="gst-plugins-good-plugins-rtprtxreceive.html" title="rtprtxreceive">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -110,7 +110,7 @@ rtpbin using gst-launch.</p></li>
 </ul></div>
 <p>See also <a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend"><span class="type">GstRtpRtxSend</span></a>, <a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive"><span class="type">GstRtpRtxReceive</span></a></p>
 <div class="refsect2">
-<a name="id-1.2.200.7.6"></a><h3>Example pipelines</h3>
+<a name="id-1.2.208.7.6"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -157,7 +157,7 @@ rtpbin using gst-launch.</p></li>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.200.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.208.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -183,7 +183,7 @@ rtpbin using gst-launch.</p></li>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.200.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.208.7.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -283,6 +283,6 @@ rtpbin using gst-launch.</p></li>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html b/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html
index 8814bb44d..c9281dcb1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtprtxqueue.html" title="rtprtxqueue">
 <link rel="next" href="gst-plugins-good-plugins-rtprtxsend.html" title="rtprtxsend">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -107,7 +107,7 @@ Normally, hoewever, you should avoid using such pipelines and use
 rtpbin instead, with its <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-sender" title="The “request-aux-sender” signal"><span class="type">“request-aux-sender”</span></a> and
 <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-receiver" title="The “request-aux-receiver” signal"><span class="type">“request-aux-receiver”</span></a> signals. See <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a>.</p>
 <div class="refsect2">
-<a name="id-1.2.201.7.6"></a><h3>Example pipelines</h3>
+<a name="id-1.2.209.7.6"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -270,7 +270,7 @@ work just fine, but it is overriden here for illustration purposes.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.201.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.209.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -296,7 +296,7 @@ work just fine, but it is overriden here for illustration purposes.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.201.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.209.7.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -398,6 +398,6 @@ work just fine, but it is overriden here for illustration purposes.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html b/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html
index 60bfb6399..f7a4188be 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtprtxreceive.html" title="rtprtxreceive">
 <link rel="next" href="gst-plugins-good-plugins-rtpsbcdepay.html" title="rtpsbcdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -112,7 +112,7 @@ this as an auxiliary stream. RTX is SSRC-multiplexed</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.202.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.210.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -138,7 +138,7 @@ this as an auxiliary stream. RTX is SSRC-multiplexed</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.202.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.210.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -252,6 +252,6 @@ this as an auxiliary stream. RTX is SSRC-multiplexed</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcdepay.html
index 6d201447c..01af161f1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtprtxsend.html" title="rtprtxsend">
 <link rel="next" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -16,7 +16,8 @@
 <td width="100%" align="left" class="shortcuts">
 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                   <a href="#gst-plugins-good-plugins-rtpsbcdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-good-plugins-rtpsbcdepay.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+                  <a href="#gst-plugins-good-plugins-rtpsbcdepay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpsbcdepay.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -32,6 +33,21 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsbcdepay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsbcdepay.html#GstRtpSbcDepay--ignore-timestamps" title="The “ignore-timestamps” property">ignore-timestamps</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
 <a name="GstRtpSbcDepay"></a><div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpsbcdepay.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -60,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.203.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.211.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.203.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.211.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -149,8 +165,18 @@
 <pre class="programlisting">struct GstRtpSbcDepay;</pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsbcdepay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpSbcDepay--ignore-timestamps"></a><h3>The <code class="literal">“ignore-timestamps”</code> property</h3>
+<pre class="programlisting">  “ignore-timestamps”        <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Various statistics.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+</div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
index 11921a8a1..40fd26fd6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpsbcdepay.html" title="rtpsbcdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpsession.html" title="rtpsession">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.204.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.212.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.204.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.212.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -178,6 +178,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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 1f69b7613..3b00e0e96 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpsirendepay.html" title="rtpsirendepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -273,7 +273,7 @@ and will signal the <a class="link" href="gst-plugins-good-plugins-rtpsession.ht
 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>
 <div class="refsect2">
-<a name="id-1.2.205.8.11"></a><h3>Example pipelines</h3>
+<a name="id-1.2.213.8.11"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -341,7 +341,7 @@ keep (see <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#gst-ele
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.205.8.12.1"></a><h3>Element Information</h3>
+<a name="id-1.2.213.8.12.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -367,7 +367,7 @@ keep (see <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#gst-ele
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.205.8.12.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.213.8.12.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -1121,6 +1121,6 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#Gs
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsirendepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsirendepay.html
index cc1ee3f40..e6c6a3325 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsirendepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsirendepay.html
@@ -8,7 +8,7 @@
 <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-rtpsirenpay.html" title="rtpsirenpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.206.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.214.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.206.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.214.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsirenpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsirenpay.html
index b5eaad891..0ff811d5e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsirenpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsirenpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpsirendepay.html" title="rtpsirendepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpspeexdepay.html" title="rtpspeexdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.207.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.215.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -87,7 +87,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.207.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.215.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -152,6 +152,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpspeexdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpspeexdepay.html
index 93d674469..90d41e83a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpspeexdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpspeexdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpsirenpay.html" title="rtpsirenpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpspeexpay.html" title="rtpspeexpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.208.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.216.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.208.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.216.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpspeexpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpspeexpay.html
index 2c141d78c..22545da9f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpspeexpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpspeexpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpspeexdepay.html" title="rtpspeexdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.209.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.217.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.209.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.217.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
index 5438cce01..06c6489e6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpspeexpay.html" title="rtpspeexpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpstreamdepay.html" title="rtpstreamdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -90,7 +90,7 @@ decode an RTP stream with multiple SSRCs.</p>
 <p>For each SSRC that is detected, a new pad will be created and the
 <a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad" title="The “new-ssrc-pad” signal"><span class="type">“new-ssrc-pad”</span></a> signal will be emitted. </p>
 <div class="refsect2">
-<a name="id-1.2.210.7.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.218.7.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -107,7 +107,7 @@ to fakesink, discarding the other SSRCs.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.210.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.218.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -133,7 +133,7 @@ to fakesink, discarding the other SSRCs.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.210.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.218.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -371,6 +371,6 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpstreamdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpstreamdepay.html
index a76ec70f1..63074d64f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpstreamdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpstreamdepay.html
@@ -8,7 +8,7 @@
 <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-rtpstreampay.html" title="rtpstreampay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <p>Implements stream depayloading of RTP and RTCP packets for connection-oriented
 transport protocols according to RFC4571.</p>
 <div class="refsect2">
-<a name="id-1.2.211.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.219.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -78,7 +78,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.211.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.219.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -104,7 +104,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.211.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.219.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -193,6 +193,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpstreampay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpstreampay.html
index ea5cea837..10af49d0a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpstreampay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpstreampay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpstreamdepay.html" title="rtpstreamdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpsv3vdepay.html" title="rtpsv3vdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -59,7 +59,7 @@
 <p>Implements stream payloading of RTP and RTCP packets for connection-oriented
 transport protocols according to RFC4571.</p>
 <div class="refsect2">
-<a name="id-1.2.212.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.220.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.212.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.220.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.212.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.220.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -192,6 +192,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsv3vdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsv3vdepay.html
index e33567f87..c8958796c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsv3vdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsv3vdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpstreampay.html" title="rtpstreampay">
 <link rel="next" href="gst-plugins-good-plugins-rtptheoradepay.html" title="rtptheoradepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.213.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.221.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.213.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.221.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtptheoradepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtptheoradepay.html
index e3c4bb8c3..eaec1e82c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtptheoradepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtptheoradepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpsv3vdepay.html" title="rtpsv3vdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtptheorapay.html" title="rtptheorapay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.214.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.222.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.214.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.222.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtptheorapay.html b/docs/plugins/html/gst-plugins-good-plugins-rtptheorapay.html
index 97d64d9ba..78bfbb7a8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtptheorapay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtptheorapay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtptheoradepay.html" title="rtptheoradepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpvorbisdepay.html" title="rtpvorbisdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.215.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.223.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.215.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.223.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -178,6 +178,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvorbisdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvorbisdepay.html
index 207f0afc5..f7549541f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpvorbisdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvorbisdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtptheorapay.html" title="rtptheorapay">
 <link rel="next" href="gst-plugins-good-plugins-rtpvorbispay.html" title="rtpvorbispay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.216.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.224.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.216.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.224.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvorbispay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvorbispay.html
index cf3a096ff..d2998baec 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpvorbispay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvorbispay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpvorbisdepay.html" title="rtpvorbisdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpvp8depay.html" title="rtpvp8depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.217.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.225.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.217.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.225.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -178,6 +178,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvp8depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvp8depay.html
index 8bc4ac4f1..ab15729fd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpvp8depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvp8depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpvorbispay.html" title="rtpvorbispay">
 <link rel="next" href="gst-plugins-good-plugins-rtpvp8pay.html" title="rtpvp8pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.218.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.226.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.218.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.226.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvp8pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvp8pay.html
index c147f8bdf..e209fbde9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpvp8pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvp8pay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpvp8depay.html" title="rtpvp8depay">
 <link rel="next" href="gst-plugins-good-plugins-rtpvp9depay.html" title="rtpvp9depay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.219.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.227.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.219.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.227.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -177,6 +177,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvp9depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvp9depay.html
index f1c2b4ffc..2ded3e1a2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpvp9depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvp9depay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpvp8pay.html" title="rtpvp8pay">
 <link rel="next" href="gst-plugins-good-plugins-rtpvp9pay.html" title="rtpvp9pay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.220.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.228.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.220.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.228.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvp9pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvp9pay.html
index 97a61e336..d4ec742a2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpvp9pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvp9pay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpvp9depay.html" title="rtpvp9depay">
 <link rel="next" href="gst-plugins-good-plugins-rtpvrawdepay.html" title="rtpvrawdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.221.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.229.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.221.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.229.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -177,6 +177,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvrawdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvrawdepay.html
index f9004ec5e..28fb8eac2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpvrawdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvrawdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpvp9pay.html" title="rtpvp9pay">
 <link rel="next" href="gst-plugins-good-plugins-rtpvrawpay.html" title="rtpvrawpay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.222.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.230.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.222.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.230.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvrawpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvrawpay.html
index 03cbf171c..018cefa95 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpvrawpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvrawpay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpvrawdepay.html" title="rtpvrawdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpxqtdepay.html" title="rtpxqtdepay">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.223.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.231.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.223.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.231.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -178,6 +178,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpxqtdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpxqtdepay.html
index 0b32d5773..0f7226bb1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpxqtdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpxqtdepay.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpvrawpay.html" title="rtpvrawpay">
 <link rel="next" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.224.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.232.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.224.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.232.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,6 +151,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
index 6aa755aab..a45e9d21f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpxqtdepay.html" title="rtpxqtdepay">
 <link rel="next" href="gst-plugins-good-plugins-sbcparse.html" title="sbcparse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -236,6 +236,21 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--rfc7273-sync" title="The “rfc7273-sync” property">rfc7273-sync</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRtspdefs.html#GstRTSPVersion"><span class="type">GstRTSPVersion</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--default-rtsp-version" title="The “default-rtsp-version” property">default-rtsp-version</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--max-ts-offset" title="The “max-ts-offset” property">max-ts-offset</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--max-ts-offset-adjustment" title="The “max-ts-offset-adjustment” property">max-ts-offset-adjustment</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -274,6 +289,16 @@
 <td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-request-rtcp-key" title="The “request-rtcp-key” signal">request-rtcp-key</a></td>
 <td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
 </tr>
+<tr>
+<td class="signal_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
+<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-accept-certificate" title="The “accept-certificate” signal">accept-certificate</a></td>
+<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
+</tr>
+<tr>
+<td class="signal_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
+<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-before-send" title="The “before-send” signal">before-send</a></td>
+<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -327,7 +352,7 @@ This feature is implemented using the gstrtpbin element.</p>
 <p>rtspsrc acts like a live source and will therefore only generate data in the
 PLAYING state.</p>
 <div class="refsect2">
-<a name="id-1.2.225.9.7"></a><h3>Example launch line</h3>
+<a name="id-1.2.233.9.7"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -344,7 +369,7 @@ fakesink.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.225.9.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.233.9.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -370,7 +395,7 @@ fakesink.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.225.9.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.233.9.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -418,7 +443,7 @@ fakesink.
 <div class="refsect2">
 <a name="GstRTSPSrc--debug"></a><h3>The <code class="literal">“debug”</code> property</h3>
 <pre class="programlisting">  “debug”                    <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Dump request and response messages to stdout.</p>
+<p>Dump request and response messages to stdout(DEPRECATED: Printed all RTSP message to gstreamer log as 'log' level).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
@@ -693,7 +718,7 @@ keep alive and then this property needs to be set to FALSE.</p>
 <pre class="programlisting">  “user-agent”               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The User-Agent string to send to the server.</p>
 <p>Flags: Read / Write</p>
-<p>Default value: "GStreamer/1.12.4"</p>
+<p>Default value: "GStreamer/1.13.1"</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -712,6 +737,35 @@ keep alive and then this property needs to be set to FALSE.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--default-rtsp-version"></a><h3>The <code class="literal">“default-rtsp-version”</code> property</h3>
+<pre class="programlisting">  “default-rtsp-version”     <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRtspdefs.html#GstRTSPVersion"><span class="type">GstRTSPVersion</span></a></pre>
+<p>The preferred RTSP version to use while negotiating the version with the server.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: GST_RTSP_VERSION_1_0</p>
+<p class="since">Since: 1.14</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--max-ts-offset"></a><h3>The <code class="literal">“max-ts-offset”</code> property</h3>
+<pre class="programlisting">  “max-ts-offset”            <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a></pre>
+<p>The maximum absolute value of the time offset in (nanoseconds). Note, if the ntp-sync parameter is set the default value is changed to 0 (no limit).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 3000000000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--max-ts-offset-adjustment"></a><h3>The <code class="literal">“max-ts-offset-adjustment”</code> property</h3>
+<pre class="programlisting">  “max-ts-offset-adjustment” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
+<p>Syncing time stamps to NTP time adds a time offset. This parameter
+specifies the maximum number of nanoseconds per frame that this time offset
+may be adjusted with. This is used to avoid sudden large changes to time
+stamps.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 0</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtspsrc.signal-details"></a><h2>Signal Details</h2>
@@ -941,9 +995,73 @@ and authentication, and return them wrapped in a GstCaps.</p>
 <p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
 <p class="since">Since: 1.4</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc-accept-certificate"></a><h3>The <code class="literal">“accept-certificate”</code> signal</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/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="/usr/share/gtk-doc/html/gio/GTlsConnection.html#GTlsConnection-struct"><span class="type">GTlsConnection</span></a>      *peer_cert,
+               <a href="/usr/share/gtk-doc/html/gio/GTlsCertificate.html#GTlsCertificate-struct"><span class="type">GTlsCertificate</span></a>     *errors,
+               <a href="/usr/share/gtk-doc/html/gio/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="type">GTlsCertificateFlags</span></a> user_data,
+               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>             user_data)</pre>
+<p>This will directly map to <a href="/usr/share/gtk-doc/html/gio/GTlsConnection.html#GTlsConnection-struct"><span class="type">GTlsConnection</span></a> 's "accept-certificate"
+signal and be performed after the default checks of <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPConnection.html#GstRTSPConnection"><span class="type">GstRTSPConnection</span></a>
+(checking against the <a href="/usr/share/gtk-doc/html/gio/GTlsDatabase.html#GTlsDatabase-struct"><span class="type">GTlsDatabase</span></a> with the given <a href="/usr/share/gtk-doc/html/gio/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="type">GTlsCertificateFlags</span></a>)
+have failed. If no <a href="/usr/share/gtk-doc/html/gio/GTlsDatabase.html#GTlsDatabase-struct"><span class="type">GTlsDatabase</span></a> is set on this connection, only this
+signal will be emitted.</p>
+<div class="refsect3">
+<a name="GstRTSPSrc-accept-certificate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>rtspsrc</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>peer_cert</p></td>
+<td class="parameter_description"><p>the peer's <a href="/usr/share/gtk-doc/html/gio/GTlsCertificate.html#GTlsCertificate-struct"><span class="type">GTlsCertificate</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>errors</p></td>
+<td class="parameter_description"><p>the problems with <em class="parameter"><code>peer_cert</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
+<p class="since">Since: 1.14</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc-before-send"></a><h3>The <code class="literal">“before-send”</code> signal</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/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>     *gstrtspsrc,
+               <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTSPMessage.html#GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *arg1,
+               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
+<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
+</div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
index 11ee91e6c..dd616152c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
@@ -8,7 +8,7 @@
 <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-scaletempo.html" title="scaletempo">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ frames and timestamp them properly.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.226.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.234.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -88,7 +88,7 @@ frames and timestamp them properly.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.226.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.234.6.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -157,6 +157,6 @@ frames and timestamp them properly.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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
index c3b2ce715..b53f08bc2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html
@@ -8,7 +8,7 @@
 <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.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -95,7 +95,7 @@
 Inspired by SoundTouch library by Olli Parviainen</p>
 <p>Use Sceletempo to apply playback rates without the chipmunk effect.</p>
 <div class="refsect2">
-<a name="id-1.2.227.7.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.235.7.4"></a><h3>Example pipelines</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -148,7 +148,7 @@ the algoritm looks.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.227.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.235.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -174,7 +174,7 @@ the algoritm looks.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.227.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.235.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -293,6 +293,6 @@ the algoritm looks.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</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 27d29e572..9595d0033 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <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.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <a name="gst-plugins-good-plugins-shagadelictv.description"></a><h2>Description</h2>
 <p>Oh behave, ShagedelicTV makes images shagadelic!</p>
 <div class="refsect2">
-<a name="id-1.2.228.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.236.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.228.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.236.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.228.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.236.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -167,6 +167,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html
index 340d8874c..8f29f5f6e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-shagadelictv.html" title="shagadelictv">
 <link rel="next" href="gst-plugins-good-plugins-shout2send.html" title="shout2send">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -86,7 +86,7 @@ can be added by the border property.</p>
 <p>Transition bitmaps can be downloaded from the</p>
 <a class="ulink" href="http://cinelerra.org/transitions.php" target="_top">Cinelerra transition</a><p>page.</p>
 <div class="refsect2">
-<a name="id-1.2.229.7.6"></a><h3>Example launch line</h3>
+<a name="id-1.2.237.7.6"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -102,7 +102,7 @@ can be added by the border property.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.229.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.237.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -128,7 +128,7 @@ can be added by the border property.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.229.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.237.7.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -241,6 +241,6 @@ can be added by the border property.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-shout2send.html b/docs/plugins/html/gst-plugins-good-plugins-shout2send.html
index 262fcc8d8..b6fc6f984 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-shout2send.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-shout2send.html
@@ -8,14 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-shapewipe.html" title="shapewipe">
 <link rel="next" href="gst-plugins-good-plugins-smptealpha.html" title="smptealpha">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-good-plugins-shout2send.description" class="shortcut">Description</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-shout2send.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-shout2send.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                   <a href="#gst-plugins-good-plugins-shout2send.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-good-plugins-shout2send.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-good-plugins-shout2send.signals" class="shortcut">Signals</a></span>
@@ -106,6 +107,11 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--public" title="The “public” property">public</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--timeout" title="The “timeout” property">timeout</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -124,7 +130,7 @@
 </tr></tbody>
 </table></div>
 </div>
-<div class="refsect1">
+<a name="GstShout2send"></a><div class="refsect1">
 <a name="gst-plugins-good-plugins-shout2send.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
@@ -133,11 +139,21 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send" title="struct GstShout2send">GstShout2send</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send-struct" title="struct GstShout2send">GstShout2send</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="gst-plugins-good-plugins-shout2send.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink-struct">GstBaseSink</a>
+                    <span class="lineart">╰──</span> GstShout2send
+</pre>
+</div>
+<div class="refsect1">
 <a name="gst-plugins-good-plugins-shout2send.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstShout2send implements
@@ -147,7 +163,7 @@ GstShout2send implements
 <a name="gst-plugins-good-plugins-shout2send.description"></a><h2>Description</h2>
 <p>shout2send pushes a media stream to an Icecast server</p>
 <div class="refsect2">
-<a name="id-1.2.230.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.238.9.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -166,7 +182,7 @@ dependent.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.230.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.238.9.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -192,7 +208,7 @@ dependent.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.230.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.238.9.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -247,35 +263,8 @@ dependent.
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-shout2send.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstShout2send"></a><h3>struct GstShout2send</h3>
-<pre class="programlisting">struct GstShout2send {
-  GstBaseSink parent;
-
-  GstShout2SendProtocol protocol;
-
-  GstPoll *timer;
-
-  shout_t *conn;
-
-  gchar *ip;
-  guint port;
-  gchar *password;
-  gchar *username;
-  gchar *streamname;
-  gchar *description;
-  gchar *genre;
-  gchar *mount;
-  gchar *url;
-  gboolean connected;
-  gboolean ispublic;
-  gchar *songmetadata;
-  gchar *songartist;
-  gchar *songtitle;
-  int    format;
-
-  GstTagList* tags;
-};
-</pre>
+<a name="GstShout2send-struct"></a><h3>struct GstShout2send</h3>
+<pre class="programlisting">struct GstShout2send;</pre>
 </div>
 </div>
 <div class="refsect1">
@@ -368,13 +357,22 @@ dependent.
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstShout2send--timeout"></a><h3>The <code class="literal">“timeout”</code> property</h3>
+<pre class="programlisting">  “timeout”                  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>Max amount of time to wait for network activity, in milliseconds.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 1</p>
+<p>Default value: 10000</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-shout2send.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
 <a name="GstShout2send-connection-problem"></a><h3>The <code class="literal">“connection-problem”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send" title="struct GstShout2send"><span class="type">GstShout2send</span></a> *gstshout2send,
+user_function (<a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send"><span class="type">GstShout2send</span></a> *gstshout2send,
                <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a>           arg1,
                <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
 <p>Flags: Cleanup</p>
@@ -382,6 +380,6 @@ user_function (<a class="link" href="gst-plugins-good-plugins-shout2send.html#Gs
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-smpte.html b/docs/plugins/html/gst-plugins-good-plugins-smpte.html
index c529646b4..05d9157a0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-smpte.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-smpte.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-smptealpha.html" title="smptealpha">
 <link rel="next" href="gst-plugins-good-plugins-souphttpclientsink.html" title="souphttpclientsink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -101,7 +101,7 @@ specific alpha mask. </p>
 higher presision will create a mask with smoother gradients in order to avoid
 banding.</p>
 <div class="refsect2">
-<a name="id-1.2.232.7.4"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.240.7.4"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -120,7 +120,7 @@ edges of the transition are smoothed with a 20000 big border.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.232.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.240.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -146,7 +146,7 @@ edges of the transition are smoothed with a 20000 big border.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.232.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.240.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -279,6 +279,6 @@ edges of the transition are smoothed with a 20000 big border.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
index 4cad8ad40..77bab26be 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-shout2send.html" title="shout2send">
 <link rel="next" href="gst-plugins-good-plugins-smpte.html" title="smpte">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -107,7 +107,7 @@ channel set to completely transparent.</p>
 A higher presision will create a mask with smoother gradients in order to
 avoid banding.</p>
 <div class="refsect2">
-<a name="id-1.2.231.7.5"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.239.7.5"></a><h3>Sample pipelines</h3>
 <p>
 Here is a pipeline to demonstrate the smpte transition :
 </p>
@@ -124,7 +124,7 @@ transparent image. The edges of the transition are smoothed with a
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.231.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.239.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -150,7 +150,7 @@ transparent image. The edges of the transition are smoothed with a
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.231.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.239.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -300,6 +300,6 @@ transparent image. The edges of the transition are smoothed with a
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-souphttpclientsink.html b/docs/plugins/html/gst-plugins-good-plugins-souphttpclientsink.html
index df97d40b2..4d709a51d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-souphttpclientsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-souphttpclientsink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-smpte.html" title="smpte">
 <link rel="next" href="gst-plugins-good-plugins-souphttpsrc.html" title="souphttpsrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -78,7 +78,7 @@
 </tr>
 <tr>
 <td class="property_type">
-<span class="type">SoupSession</span> *</td>
+<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html#SoupSession-struct"><span class="type">SoupSession</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--session" title="The “session” property">session</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -101,7 +101,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><span class="type">SoupLoggerLogLevel</span></td>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupLogger.html#SoupLoggerLogLevel"><span class="type">SoupLoggerLogLevel</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--http-log-level" title="The “http-log-level” property">http-log-level</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -146,7 +146,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.233.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.241.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -172,7 +172,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.233.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.241.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -262,7 +262,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstSoupHttpClientSink--session"></a><h3>The <code class="literal">“session”</code> property</h3>
-<pre class="programlisting">  “session”                  <span class="type">SoupSession</span> *</pre>
+<pre class="programlisting">  “session”                  <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html#SoupSession-struct"><span class="type">SoupSession</span></a> *</pre>
 <p>SoupSession object to use for communication.</p>
 <p>Flags: Read / Write</p>
 </div>
@@ -293,7 +293,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstSoupHttpClientSink--http-log-level"></a><h3>The <code class="literal">“http-log-level”</code> property</h3>
-<pre class="programlisting">  “http-log-level”           <span class="type">SoupLoggerLogLevel</span></pre>
+<pre class="programlisting">  “http-log-level”           <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupLogger.html#SoupLoggerLogLevel"><span class="type">SoupLoggerLogLevel</span></a></pre>
 <p>Set log level for soup's HTTP session log.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: SOUP_LOGGER_LOG_NONE</p>
@@ -319,6 +319,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
index bd29fbfdc..e46eaf3c0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-souphttpclientsink.html" title="souphttpclientsink">
 <link rel="next" href="gst-plugins-good-plugins-spectrum.html" title="spectrum">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -122,7 +122,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><span class="type">SoupLoggerLogLevel</span></td>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupLogger.html#SoupLoggerLogLevel"><span class="type">SoupLoggerLogLevel</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--http-log-level" title="The “http-log-level” property">http-log-level</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -221,7 +221,7 @@ output data with a media type of application/x-icy, in which case you will
 need to use the <span class="type">ICYDemux</span> element as follow-up element to extract the Icecast
 metadata and to determine the underlying media type.</p>
 <div class="refsect2">
-<a name="id-1.2.234.8.5"></a><h3>Example launch line</h3>
+<a name="id-1.2.242.8.5"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -286,7 +286,7 @@ multiplexer to timestamp the frames in the resulting file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.234.8.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.242.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -312,7 +312,7 @@ multiplexer to timestamp the frames in the resulting file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.234.8.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.242.8.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -397,7 +397,7 @@ multiplexer to timestamp the frames in the resulting file.
 <pre class="programlisting">  “user-agent”               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Value of the User-Agent HTTP request header field.</p>
 <p>Flags: Read / Write</p>
-<p>Default value: "GStreamer souphttpsrc 1.12.4 "</p>
+<p>Default value: "GStreamer souphttpsrc 1.13.1 "</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -466,7 +466,7 @@ multiplexer to timestamp the frames in the resulting file.
 <hr>
 <div class="refsect2">
 <a name="GstSoupHTTPSrc--http-log-level"></a><h3>The <code class="literal">“http-log-level”</code> property</h3>
-<pre class="programlisting">  “http-log-level”           <span class="type">SoupLoggerLogLevel</span></pre>
+<pre class="programlisting">  “http-log-level”           <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupLogger.html#SoupLoggerLogLevel"><span class="type">SoupLoggerLogLevel</span></a></pre>
 <p>Set log level for soup's HTTP session log.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: SOUP_LOGGER_LOG_HEADERS</p>
@@ -477,7 +477,7 @@ multiplexer to timestamp the frames in the resulting file.
 <pre class="programlisting">  “keep-alive”               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Use HTTP persistent connections.</p>
 <p>Flags: Read / Write</p>
-<p>Default value: FALSE</p>
+<p>Default value: TRUE</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -537,6 +537,6 @@ multiplexer to timestamp the frames in the resulting file.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
index 0a9ed6350..202b66ec7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-souphttpsrc.html" title="souphttpsrc">
 <link rel="next" href="gst-plugins-good-plugins-speexdec.html" title="speexdec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -107,7 +107,7 @@
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-spectrum.description"></a><h2>Description</h2>
 <p>The Spectrum element analyzes the frequency spectrum of an audio signal.
-If the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages" title="The “post-messages” property"><span class="type">“post-messages”</span></a> property is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>, it sends analysis results
+If the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages" title="The “post-messages” property"><span class="type">“post-messages”</span></a> property is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it sends analysis results
 as element messages named</p>
 <code class="classname">"spectrum"</code> after each interval of time given
 <p>by the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--interval" title="The “interval” property"><span class="type">“interval”</span></a> property.</p>
@@ -157,7 +157,7 @@ as element messages named</p>
 fields will be each a nested <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstControlSource.html#GstValueArray"><span class="type">GstValueArray</span></a>. The first dimension are the
 channels and the second dimension are the values.</p>
 <div class="refsect2">
-<a name="id-1.2.236.7.8"></a><h3>Example application</h3>
+<a name="id-1.2.244.7.8"></a><h3>Example application</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -419,7 +419,7 @@ channels and the second dimension are the values.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.236.7.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.244.7.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -445,7 +445,7 @@ channels and the second dimension are the values.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.236.7.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.244.7.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -571,6 +571,6 @@ channels and the second dimension are the values.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
index d1f2ed45f..5feb2491d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-spectrum.html" title="spectrum">
 <link rel="next" href="gst-plugins-good-plugins-speexenc.html" title="speexenc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -78,7 +78,7 @@
 <p>audio codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
 Foundation</a>.</p>
 <div class="refsect2">
-<a name="id-1.2.237.7.5"></a><h3>Example pipelines</h3>
+<a name="id-1.2.245.7.5"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -95,7 +95,7 @@ documentation of speexenc.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.237.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.245.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -121,7 +121,7 @@ documentation of speexenc.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.237.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.245.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -200,6 +200,6 @@ documentation of speexenc.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
index 9fc9ea8bf..65241ef8d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-speexdec.html" title="speexdec">
 <link rel="next" href="gst-plugins-good-plugins-splitfilesrc.html" title="splitfilesrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -133,7 +133,7 @@ GstSpeexEnc implements
 <p>audio codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
 Foundation</a>.</p>
 <div class="refsect2">
-<a name="id-1.2.238.8.5"></a><h3>Example pipelines</h3>
+<a name="id-1.2.246.8.5"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -149,7 +149,7 @@ Foundation</a>.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.238.8.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.246.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -175,7 +175,7 @@ Foundation</a>.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.238.8.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.246.8.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -335,6 +335,6 @@ Foundation</a>.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
index a5094fdaf..87f6edbe7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-speexenc.html" title="speexenc">
 <link rel="next" href="gst-plugins-good-plugins-splitmuxsink.html" title="splitmuxsink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -89,7 +89,7 @@ for example.</p>
 (and expects) shell-style wildcards (but only for the filename, not for
 directories). The results will be sorted.</p>
 <div class="refsect2">
-<a name="id-1.2.239.8.4"></a><h3>Example launch lines</h3>
+<a name="id-1.2.247.8.4"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -116,7 +116,7 @@ directories). The results will be sorted.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.239.8.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.247.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -142,7 +142,7 @@ directories). The results will be sorted.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.239.8.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.247.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -197,6 +197,6 @@ directories). The results will be sorted.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-splitmuxsink.html b/docs/plugins/html/gst-plugins-good-plugins-splitmuxsink.html
index 4af8862bf..3b13a483d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-splitmuxsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-splitmuxsink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-splitfilesrc.html" title="splitfilesrc">
 <link rel="next" href="gst-plugins-good-plugins-splitmuxsrc.html" title="splitmuxsrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -93,6 +93,16 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--max-size-timecode" title="The “max-size-timecode” property">max-size-timecode</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--alignment-threshold" title="The “alignment-threshold” property">alignment-threshold</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--use-robust-muxing" title="The “use-robust-muxing” property">use-robust-muxing</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -117,6 +127,11 @@
 <td class="signal_name"><a class="link" href="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink-format-location-full" title="The “format-location-full” signal">format-location-full</a></td>
 <td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
 </tr>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink-split-now" title="The “split-now” signal">split-now</a></td>
+<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -165,7 +180,7 @@ stream contents, and the video stream must contain closed GOPs for the output
 file parts to be played individually correctly. In the absence of a video
 stream, the first available stream is used as reference for synchronization.</p>
 <div class="refsect2">
-<a name="id-1.2.240.9.6"></a><h3>Example pipelines</h3>
+<a name="id-1.2.248.9.6"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -184,7 +199,7 @@ and 1MB maximum size.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.240.9.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.248.9.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -210,7 +225,7 @@ and 1MB maximum size.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.240.9.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.248.9.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -369,6 +384,22 @@ and 1MB maximum size.
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstSplitMuxSink--alignment-threshold"></a><h3>The <code class="literal">“alignment-threshold”</code> property</h3>
+<pre class="programlisting">  “alignment-threshold”      <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
+<p>Allow non-reference streams to be that many ns before the reference stream.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSplitMuxSink--use-robust-muxing"></a><h3>The <code class="literal">“use-robust-muxing”</code> property</h3>
+<pre class="programlisting">  “use-robust-muxing”        <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Check if muxers support robust muxing via the reserved-max-duration and reserved-duration-remaining properties and use them if so. (Only present on qtmux and mp4mux for now). splitmuxsink may then also  create new fragments if the reserved header space is about to overflow. Note this does not set reserved-moov-update-period - apps should do that manually.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-splitmuxsink.signal-details"></a><h2>Signal Details</h2>
@@ -458,9 +489,41 @@ from the reference stream in the new file</p></td>
 </div>
 <p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstSplitMuxSink-split-now"></a><h3>The <code class="literal">“split-now”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink"><span class="type">GstSplitMuxSink</span></a> *splitmux,
+               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
+<p>When called by the user, this action signal splits the video file (and begins a new one) immediately.</p>
+<div class="refsect3">
+<a name="GstSplitMuxSink-split-now.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>splitmux</p></td>
+<td class="parameter_description"><p>the <a class="link" href="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink"><span class="type">GstSplitMuxSink</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
+<p class="since">Since: 1.14</p>
+</div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-splitmuxsrc.html b/docs/plugins/html/gst-plugins-good-plugins-splitmuxsrc.html
index 98d87df80..11efbb61a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-splitmuxsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-splitmuxsrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-splitmuxsink.html" title="splitmuxsink">
 <link rel="next" href="gst-plugins-good-plugins-streaktv.html" title="streaktv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -104,7 +104,7 @@ containing contiguous elementary streams split across multiple files.</p>
 streams in each file part at the demuxed elementary level, rather than
 as a single larger bytestream.</p>
 <div class="refsect2">
-<a name="id-1.2.241.9.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.249.9.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -131,7 +131,7 @@ as a single larger bytestream.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.241.9.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.249.9.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -157,7 +157,7 @@ as a single larger bytestream.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.241.9.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.249.9.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -295,6 +295,6 @@ using <a href="/usr/share/gtk-doc/html/glib/glib-String-Utility-Functions.html#g
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
index 195fda814..e2ad653d3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-splitmuxsrc.html" title="splitmuxsrc">
 <link rel="next" href="gst-plugins-good-plugins-taginject.html" title="taginject">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <a name="gst-plugins-good-plugins-streaktv.description"></a><h2>Description</h2>
 <p>StreakTV makes after images of moving objects.</p>
 <div class="refsect2">
-<a name="id-1.2.242.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.250.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -92,7 +92,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.242.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.250.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -118,7 +118,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.242.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.250.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -193,6 +193,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-taginject.html b/docs/plugins/html/gst-plugins-good-plugins-taginject.html
index 787473834..7e597ae2d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-taginject.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-taginject.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-streaktv.html" title="streaktv">
 <link rel="next" href="gst-plugins-good-plugins-testsink.html" title="testsink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,7 +77,7 @@
 <p>Element that injects new metadata tags, but passes incomming data through
 unmodified.</p>
 <div class="refsect2">
-<a name="id-1.2.243.7.3"></a><h3>Example launch lines</h3>
+<a name="id-1.2.251.7.3"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -104,7 +104,7 @@ unmodified.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.243.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.251.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -130,7 +130,7 @@ unmodified.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.243.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.251.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -206,6 +206,6 @@ unmodified.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-testsink.html b/docs/plugins/html/gst-plugins-good-plugins-testsink.html
index b689d6f29..d7eac3528 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-testsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-testsink.html
@@ -7,8 +7,8 @@
 <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">
-<link rel="next" href="gst-plugins-good-plugins-udpsink.html" title="udpsink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<link rel="next" href="gst-plugins-good-plugins-twolame.html" title="twolame">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-taginject.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-udpsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-twolame.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-testsink"></a><div class="titlepage"></div>
@@ -36,7 +36,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.244.3.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.252.3.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -62,7 +62,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.244.3.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.252.3.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -99,6 +99,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-twolame.html b/docs/plugins/html/gst-plugins-good-plugins-twolame.html
new file mode 100644
index 000000000..847955307
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-twolame.html
@@ -0,0 +1,383 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>twolame: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-testsink.html" title="testsink">
+<link rel="next" href="gst-plugins-good-plugins-udpsink.html" title="udpsink">
+<meta name="generator" content="GTK-Doc V1.27 (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="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-twolame.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-twolame.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-twolame.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-twolame.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-testsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-udpsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-twolame"></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-twolame.top_of_page"></a>twolame</span></h2>
+<p>twolame</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-twolame.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--ath-level" title="The “ath-level” property">ath-level</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--bitrate" title="The “bitrate” property">bitrate</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--copyright" title="The “copyright” property">copyright</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstTwoLameEmphasis</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--emphasis" title="The “emphasis” property">emphasis</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--energy-level-extension" title="The “energy-level-extension” property">energy-level-extension</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--error-protection" title="The “error-protection” property">error-protection</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstTwoLameMode</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--mode" title="The “mode” property">mode</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--original" title="The “original” property">original</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstTwoLamePadding</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--padding" title="The “padding” property">padding</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--psymodel" title="The “psymodel” property">psymodel</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--quick-mode" title="The “quick-mode” property">quick-mode</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--quick-mode-count" title="The “quick-mode-count” property">quick-mode-count</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--vbr" title="The “vbr” property">vbr</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--vbr-level" title="The “vbr-level” property">vbr-level</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame--vbr-max-bitrate" title="The “vbr-max-bitrate” property">vbr-max-bitrate</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstTwoLame"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-twolame.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-twolame.html#GstTwoLame-struct" title="struct GstTwoLame">GstTwoLame</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-twolame.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/GstAudioEncoder.html#GstAudioEncoder-struct">GstAudioEncoder</a>
+                    <span class="lineart">╰──</span> GstTwoLame
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-twolame.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstTwoLame implements
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstPreset.html#GstPreset-struct">GstPreset</a>.</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-twolame.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.253.8.2.1"></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-twolame.html#plugin-twolame">twolame</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Sebastian Dröge &lt;sebastian.droege@collabora.co.uk&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Encoder/Audio</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.253.8.2.2"></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, S16LE }, layout=(string)interleaved, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)1</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string){ F32LE, S16LE }, layout=(string)interleaved, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)2, channel-mask=(bitmask)0x0000000000000003</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/mpeg, mpegversion=(int)1, layer=(int)2, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-twolame.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-twolame.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstTwoLame-struct"></a><h3>struct GstTwoLame</h3>
+<pre class="programlisting">struct GstTwoLame;</pre>
+<p>Opaque data structure.</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-twolame.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstTwoLame--ath-level"></a><h3>The <code class="literal">“ath-level”</code> property</h3>
+<pre class="programlisting">  “ath-level”                <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre>
+<p>ATH Level in dB.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--bitrate"></a><h3>The <code class="literal">“bitrate”</code> property</h3>
+<pre class="programlisting">  “bitrate”                  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Bitrate in kbit/sec (8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320, 384).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [8,384]</p>
+<p>Default value: 192</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--copyright"></a><h3>The <code class="literal">“copyright”</code> property</h3>
+<pre class="programlisting">  “copyright”                <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Mark as copyright.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--emphasis"></a><h3>The <code class="literal">“emphasis”</code> property</h3>
+<pre class="programlisting">  “emphasis”                 <span class="type">GstTwoLameEmphasis</span></pre>
+<p>Pre-emphasis to apply to the decoded audio.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: No emphasis</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--energy-level-extension"></a><h3>The <code class="literal">“energy-level-extension”</code> property</h3>
+<pre class="programlisting">  “energy-level-extension”   <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Write peak PCM level to each frame.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--error-protection"></a><h3>The <code class="literal">“error-protection”</code> property</h3>
+<pre class="programlisting">  “error-protection”         <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Adds checksum to every frame.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--mode"></a><h3>The <code class="literal">“mode”</code> property</h3>
+<pre class="programlisting">  “mode”                     <span class="type">GstTwoLameMode</span></pre>
+<p>Encoding mode.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Joint Stereo</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--original"></a><h3>The <code class="literal">“original”</code> property</h3>
+<pre class="programlisting">  “original”                 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Mark as original.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--padding"></a><h3>The <code class="literal">“padding”</code> property</h3>
+<pre class="programlisting">  “padding”                  <span class="type">GstTwoLamePadding</span></pre>
+<p>Padding type.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: No Padding</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--psymodel"></a><h3>The <code class="literal">“psymodel”</code> property</h3>
+<pre class="programlisting">  “psymodel”                 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Psychoacoustic model used to encode the audio.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [G_MAXULONG,4]</p>
+<p>Default value: 3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--quick-mode"></a><h3>The <code class="literal">“quick-mode”</code> property</h3>
+<pre class="programlisting">  “quick-mode”               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Calculate Psymodel every frames.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--quick-mode-count"></a><h3>The <code class="literal">“quick-mode-count”</code> property</h3>
+<pre class="programlisting">  “quick-mode-count”         <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Calculate Psymodel every n frames.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--vbr"></a><h3>The <code class="literal">“vbr”</code> property</h3>
+<pre class="programlisting">  “vbr”                      <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Enable variable bitrate mode.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--vbr-level"></a><h3>The <code class="literal">“vbr-level”</code> property</h3>
+<pre class="programlisting">  “vbr-level”                <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre>
+<p>VBR Level.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [-10,10]</p>
+<p>Default value: 5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTwoLame--vbr-max-bitrate"></a><h3>The <code class="literal">“vbr-max-bitrate”</code> property</h3>
+<pre class="programlisting">  “vbr-max-bitrate”          <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Specify maximum VBR bitrate (0=off, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320, 384).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,384]</p>
+<p>Default value: 0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
index 664ec129e..7302da01d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
@@ -6,9 +6,9 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-testsink.html" title="testsink">
+<link rel="prev" href="gst-plugins-good-plugins-twolame.html" title="twolame">
 <link rel="next" href="gst-plugins-good-plugins-udpsrc.html" title="udpsrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,7 +22,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-testsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-twolame.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-udpsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -92,7 +92,7 @@ GstUDPSink implements
 <p>udpsink is a network sink that sends UDP packets to the network.
 It can be combined with RTP payloaders to implement RTP streaming.</p>
 <div class="refsect2">
-<a name="id-1.2.245.8.3"></a><h3>Examples</h3>
+<a name="id-1.2.254.8.3"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -108,7 +108,7 @@ It can be combined with RTP payloaders to implement RTP streaming.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.245.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.254.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -134,7 +134,7 @@ It can be combined with RTP payloaders to implement RTP streaming.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.245.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.254.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -198,6 +198,6 @@ It can be combined with RTP payloaders to implement RTP streaming.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
index 026d18c6e..c795c8422 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-udpsink.html" title="udpsink">
 <link rel="next" href="gst-plugins-good-plugins-v4l2radio.html" title="v4l2radio">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -189,7 +189,7 @@ maximally 100K.</p>
 number of bytes from the start of the raw udp packet and can be used to strip
 off proprietary header, for example.</p>
 <p>The udpsrc is always a live source. It does however not provide a <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClock-struct"><span class="type">GstClock</span></a>,
-this is left for upstream elements such as an RTP session manager or demuxer
+this is left for downstream elements such as an RTP session manager or demuxer
 (such as an MPEG demuxer). As with all live sources, the captured buffers
 will have their timestamp set to the current running time of the pipeline.</p>
 <p>udpsrc implements a <a href="/usr/share/gtk-doc/html/gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandler-struct"><span class="type">GstURIHandler</span></a> interface that handles udp://host:port
@@ -211,7 +211,7 @@ the element to READY by default. This behaviour can be overriden
 with the <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--close-socket" title="The “close-socket” property"><span class="type">“close-socket”</span></a> property, in which case the
 application is responsible for closing the file descriptor.</p>
 <div class="refsect2">
-<a name="id-1.2.246.8.17"></a><h3>Examples</h3>
+<a name="id-1.2.255.8.17"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -252,7 +252,7 @@ above mentioned pipeline should dump data packets to the console.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.246.8.18.1"></a><h3>Element Information</h3>
+<a name="id-1.2.255.8.18.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -278,7 +278,7 @@ above mentioned pipeline should dump data packets to the console.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.246.8.18.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.255.8.18.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -453,6 +453,6 @@ above mentioned pipeline should dump data packets to the console.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
index 66b844de5..492200254 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-udpsrc.html" title="udpsrc">
 <link rel="next" href="gst-plugins-good-plugins-v4l2sink.html" title="v4l2sink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -90,7 +90,7 @@ GstV4l2Radio implements
 <p>v4l2radio can be used to control radio device
 and to tune it to different radiostations.</p>
 <div class="refsect2">
-<a name="id-1.2.247.8.3"></a><h3>Example launch lines</h3>
+<a name="id-1.2.256.8.3"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -110,7 +110,7 @@ second pipeline connects digital audio out (hw:1) to default sound card.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.247.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.256.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -136,7 +136,7 @@ second pipeline connects digital audio out (hw:1) to default sound card.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.247.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.256.8.4.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
@@ -173,6 +173,6 @@ second pipeline connects digital audio out (hw:1) to default sound card.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
index 37260c0c8..c9775c04b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-v4l2radio.html" title="v4l2radio">
 <link rel="next" href="gst-plugins-good-plugins-v4l2src.html" title="v4l2src">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -190,7 +190,7 @@ GstV4l2Sink implements
 <p>v4l2sink can be used to display video to v4l2 devices (screen overlays
 provided by the graphics hardware, tv-out, etc)</p>
 <div class="refsect2">
-<a name="id-1.2.248.8.3"></a><h3>Example launch lines</h3>
+<a name="id-1.2.257.8.3"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -226,7 +226,7 @@ image area
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.248.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.257.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -252,7 +252,7 @@ image area
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.248.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.257.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -325,6 +325,10 @@ image area
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> video/x-vp9</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> video/x-wmv, wmvversion=(int)3, format=(string)WVC1</td>
 </tr>
 </tbody>
@@ -514,6 +518,6 @@ image area
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
index b84709f22..fec0a8b5e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-v4l2sink.html" title="v4l2sink">
 <link rel="next" href="gst-plugins-good-plugins-vertigotv.html" title="vertigotv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -166,7 +166,7 @@ GstV4l2Src implements
 <p>v4l2src can be used to capture video from v4l2 devices, like webcams and tv
 cards.</p>
 <div class="refsect2">
-<a name="id-1.2.249.9.3"></a><h3>Example launch lines</h3>
+<a name="id-1.2.258.9.3"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -192,10 +192,13 @@ webcams.
  This pipeline shows the video captured from a webcam that delivers jpeg
 images.
 </div>
+<p>Since 1.14, the use of libv4l2 has been disabled due to major bugs in the
+emulation layer. To enable usage of this library, set the environment
+variable GST_V4L2_USE_LIBV4L2=1.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.249.9.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.258.9.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -221,7 +224,7 @@ images.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.249.9.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.258.9.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -294,6 +297,10 @@ images.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> video/x-vp9</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> video/x-wmv, wmvversion=(int)3, format=(string)WVC1</td>
 </tr>
 </tbody>
@@ -472,11 +479,10 @@ Probe &amp; Commit to happen prior to the normal Probe &amp; Commit.</p>
 </table></div>
 </div>
 <p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
-<p class="since">Since: 0.10.32</p>
 </div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
index 51cd649d4..08ffa97cf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-v4l2src.html" title="v4l2src">
 <link rel="next" href="gst-plugins-good-plugins-videobalance.html" title="videobalance">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,7 +83,7 @@
 <a name="gst-plugins-good-plugins-vertigotv.description"></a><h2>Description</h2>
 <p>VertigoTV is a loopback alpha blending effector with rotating and scaling.</p>
 <div class="refsect2">
-<a name="id-1.2.250.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.259.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -99,7 +99,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.250.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.259.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -125,7 +125,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.250.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.259.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -210,6 +210,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
index 81e1427c7..69aa07d29 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-vertigotv.html" title="vertigotv">
 <link rel="next" href="gst-plugins-good-plugins-videobox.html" title="videobox">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -100,7 +100,7 @@ GstVideoBalance implements
 <a name="gst-plugins-good-plugins-videobalance.description"></a><h2>Description</h2>
 <p>Adjusts brightness, contrast, hue, saturation on a video stream.</p>
 <div class="refsect2">
-<a name="id-1.2.251.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.260.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -117,7 +117,7 @@ saturation to 0.0.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.251.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.260.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -143,7 +143,7 @@ saturation to 0.0.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.251.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.260.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -255,6 +255,6 @@ saturation to 0.0.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videobox.html b/docs/plugins/html/gst-plugins-good-plugins-videobox.html
index decaa530b..6f47692e8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videobox.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videobox.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-videobalance.html" title="videobalance">
 <link rel="next" href="gst-plugins-good-plugins-videocrop.html" title="videocrop">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -155,7 +155,7 @@ but nothing stops you from doing so.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.252.7.10.1"></a><h3>Element Information</h3>
+<a name="id-1.2.261.7.10.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -181,7 +181,7 @@ but nothing stops you from doing so.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.252.7.10.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.261.7.10.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -370,6 +370,6 @@ video to be centered in the output.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
index fda339b32..3a2304269 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-videobox.html" title="videobox">
 <link rel="next" href="gst-plugins-good-plugins-videoflip.html" title="videoflip">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -106,7 +106,7 @@ shifts for such formats in the case where the <a class="link" href="gst-plugins-
 <a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--top" title="The “top” property"><span class="type">“top”</span></a> property is set to an odd number. This doesn't matter for 
 most use cases, but it might matter for yours.</p>
 <div class="refsect2">
-<a name="id-1.2.253.7.6"></a><h3>Example launch line</h3>
+<a name="id-1.2.262.7.6"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -122,7 +122,7 @@ most use cases, but it might matter for yours.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.253.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.262.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -148,7 +148,7 @@ most use cases, but it might matter for yours.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.253.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.262.7.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -255,6 +255,6 @@ most use cases, but it might matter for yours.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
index 00d2ba8bb..faeff4969 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-videocrop.html" title="videocrop">
 <link rel="next" href="gst-plugins-good-plugins-videomedian.html" title="videomedian">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -89,7 +89,7 @@ GstVideoFlip implements
 <a name="gst-plugins-good-plugins-videoflip.description"></a><h2>Description</h2>
 <p>Flips and rotates video.</p>
 <div class="refsect2">
-<a name="id-1.2.254.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.263.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -105,7 +105,7 @@ GstVideoFlip implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.254.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.263.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -131,7 +131,7 @@ GstVideoFlip implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.254.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.263.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -287,6 +287,6 @@ GstVideoFlip implements
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videomedian.html b/docs/plugins/html/gst-plugins-good-plugins-videomedian.html
index c126415da..e85e629c2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videomedian.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videomedian.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-videoflip.html" title="videoflip">
 <link rel="next" href="gst-plugins-good-plugins-videomixer.html" title="videomixer">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -90,7 +90,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.255.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.264.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -116,7 +116,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.255.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.264.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -225,6 +225,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
index b4a3011a4..79822d9d8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-videomedian.html" title="videomedian">
 <link rel="next" href="gst-plugins-good-plugins-vp8dec.html" title="vp8dec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -93,7 +93,7 @@ biggest incoming video stream and the framerate of the fastest incoming one.</p>
 <p>Individual parameters for each input stream can be configured on the
 <span class="type">GstVideoMixer2Pad</span>.</p>
 <div class="refsect2">
-<a name="id-1.2.256.8.5"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.265.8.5"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -192,7 +192,7 @@ framerate of the output video is 10 frames per second.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.256.8.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.265.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -218,7 +218,7 @@ framerate of the output video is 10 frames per second.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.256.8.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.265.8.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -339,6 +339,6 @@ framerate of the output video is 10 frames per second.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
index 3b773a91f..001a4f32a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-videomixer.html" title="videomixer">
 <link rel="next" href="gst-plugins-good-plugins-vp8enc.html" title="vp8enc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -102,7 +102,7 @@
 </a>. It's the successor of On2 VP3, which was the base of the
 Theora video codec.</p>
 <div class="refsect2">
-<a name="id-1.2.257.7.5"></a><h3>Example pipeline</h3>
+<a name="id-1.2.266.7.5"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -118,7 +118,7 @@ Theora video codec.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.257.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.266.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -144,7 +144,7 @@ Theora video codec.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.257.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.266.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -258,6 +258,6 @@ Theora video codec.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
index 5e7338799..0b53b9383 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-vp8dec.html" title="vp8dec">
 <link rel="next" href="gst-plugins-good-plugins-vp9dec.html" title="vp9dec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -315,7 +315,7 @@ See <a class="ulink" href="http://www.webmproject.org/docs/encoder-parameters/"
 for explanation, examples for useful encoding parameters and more details
 on the encoding parameters.</p>
 <div class="refsect2">
-<a name="id-1.2.258.8.6"></a><h3>Example pipeline</h3>
+<a name="id-1.2.267.8.6"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -332,7 +332,7 @@ WebM container.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.258.8.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.267.8.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -358,7 +358,7 @@ WebM container.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.258.8.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.267.8.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -805,6 +805,6 @@ WebM container.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp9dec.html b/docs/plugins/html/gst-plugins-good-plugins-vp9dec.html
index cc1bb23d1..4cf076ec5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vp9dec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp9dec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-vp8enc.html" title="vp8enc">
 <link rel="next" href="gst-plugins-good-plugins-vp9enc.html" title="vp9enc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -102,7 +102,7 @@
 </a>. It's the successor of On2 VP3, which was the base of the
 Theora video codec.</p>
 <div class="refsect2">
-<a name="id-1.2.259.7.5"></a><h3>Example pipeline</h3>
+<a name="id-1.2.268.7.5"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -118,7 +118,7 @@ Theora video codec.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.259.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.268.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -144,7 +144,7 @@ Theora video codec.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.259.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.268.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -258,6 +258,6 @@ Theora video codec.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp9enc.html b/docs/plugins/html/gst-plugins-good-plugins-vp9enc.html
index 984b53525..f4d4f753e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vp9enc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp9enc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-vp9dec.html" title="vp9dec">
 <link rel="next" href="gst-plugins-good-plugins-warptv.html" title="warptv">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -315,7 +315,7 @@ See <a class="ulink" href="http://www.webmproject.org/docs/encoder-parameters/"
 for explanation, examples for useful encoding parameters and more details
 on the encoding parameters.</p>
 <div class="refsect2">
-<a name="id-1.2.260.8.6"></a><h3>Example pipeline</h3>
+<a name="id-1.2.269.8.6"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -332,7 +332,7 @@ WebM container.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.260.8.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.269.8.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -358,7 +358,7 @@ WebM container.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.260.8.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.269.8.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -805,6 +805,6 @@ WebM container.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-warptv.html b/docs/plugins/html/gst-plugins-good-plugins-warptv.html
index e859fccd3..47b292fe0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-warptv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-warptv.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-vp9enc.html" title="vp9enc">
 <link rel="next" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@
 <a name="gst-plugins-good-plugins-warptv.description"></a><h2>Description</h2>
 <p>WarpTV does realtime goo'ing of the video input.</p>
 <div class="refsect2">
-<a name="id-1.2.261.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.270.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.261.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.270.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.261.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.270.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -167,6 +167,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
index e8ac836ee..496db46f9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-warptv.html" title="warptv">
 <link rel="next" href="gst-plugins-good-plugins-wavenc.html" title="wavenc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -52,7 +52,7 @@ like audioconvert and audioresample in front of an audiosink to make sure
 your pipeline works under all circumstances (those conversion elements will
 act in passthrough-mode if no conversion is necessary).</p>
 <div class="refsect2">
-<a name="id-1.2.262.4.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.271.4.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -80,7 +80,7 @@ a very low volume as precaution).
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.262.4.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.271.4.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -106,7 +106,7 @@ a very low volume as precaution).
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.262.4.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.271.4.5.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
@@ -160,6 +160,6 @@ a very low volume as precaution).
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
index 84eac5370..fadc328cd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink">
 <link rel="next" href="gst-plugins-good-plugins-wavpackdec.html" title="wavpackdec">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -65,7 +65,7 @@ GstWavEnc implements
 <a name="gst-plugins-good-plugins-wavenc.description"></a><h2>Description</h2>
 <p>Format an audio stream into the wav format.</p>
 <div class="refsect2">
-<a name="id-1.2.263.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.272.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -92,7 +92,7 @@ GstWavEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.263.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.272.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -118,7 +118,7 @@ GstWavEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.263.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.272.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -195,6 +195,6 @@ GstWavEnc implements
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
index eaae8e50c..8e17f5bae 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-wavenc.html" title="wavenc">
 <link rel="next" href="gst-plugins-good-plugins-wavpackenc.html" title="wavpackenc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ Wavpack streams and decodes them to raw audio.</p>
 <a class="ulink" href="http://www.wavpack.com/" target="_top">Wavpack</a> is an open-source
 <p>audio codec that features both lossless and lossy encoding.</p>
 <div class="refsect2">
-<a name="id-1.2.264.6.5"></a><h3>Example launch line</h3>
+<a name="id-1.2.273.6.5"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -79,7 +79,7 @@ tries to play it back using an automatically found audio sink.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.264.6.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.273.6.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -105,7 +105,7 @@ tries to play it back using an automatically found audio sink.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.264.6.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.273.6.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -178,6 +178,6 @@ tries to play it back using an automatically found audio sink.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
index a17813df2..7904e280f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-wavpackdec.html" title="wavpackdec">
 <link rel="next" href="gst-plugins-good-plugins-wavpackparse.html" title="wavpackparse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -116,7 +116,7 @@ GstWavpackEnc implements
 <a class="ulink" href="http://www.wavpack.com/" target="_top">Wavpack</a> is an open-source
 <p>audio codec that features both lossless and lossy encoding.</p>
 <div class="refsect2">
-<a name="id-1.2.265.8.5"></a><h3>Example launch line</h3>
+<a name="id-1.2.274.8.5"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -157,7 +157,7 @@ lossy encoding at a certain bitrate (the file will be fairly small).
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.265.8.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.274.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -183,7 +183,7 @@ lossy encoding at a certain bitrate (the file will be fairly small).
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.265.8.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.274.8.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -333,6 +333,6 @@ lossy encoding at a certain bitrate (the file will be fairly small).
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
index 64d0964ba..b2da4e9e0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-wavpackenc.html" title="wavpackenc">
 <link rel="next" href="gst-plugins-good-plugins-wavparse.html" title="wavparse">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -59,7 +59,7 @@
 <a name="gst-plugins-good-plugins-wavpackparse.description"></a><h2>Description</h2>
 <p>This is an Wavpack parser.</p>
 <div class="refsect2">
-<a name="id-1.2.266.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.275.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -75,7 +75,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.266.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.275.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -101,7 +101,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.266.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.275.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -175,6 +175,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html
index 1a9694440..0d57c577a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-wavpackparse.html" title="wavpackparse">
 <link rel="next" href="gst-plugins-good-plugins-webmmux.html" title="webmmux">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,7 +76,7 @@
 <p>Wavparse supports both push and pull mode operations, making it possible to
 stream from a network source.</p>
 <div class="refsect2">
-<a name="id-1.2.267.7.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.276.7.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -104,7 +104,7 @@ wav file is assumed to contain raw uncompressed samples.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.267.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.276.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -130,7 +130,7 @@ wav file is assumed to contain raw uncompressed samples.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.267.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.276.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -314,6 +314,6 @@ in there and hopes it doesn't break too much.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
index 6c13ba7f5..a46a21418 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-wavparse.html" title="wavparse">
 <link rel="next" href="gst-plugins-good-plugins-ximagesrc.html" title="ximagesrc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -66,7 +66,7 @@ GstWebMMux implements
 <a name="gst-plugins-good-plugins-webmmux.description"></a><h2>Description</h2>
 <p>webmmux muxes VP8 video and Vorbis audio streams into a WebM file.</p>
 <div class="refsect2">
-<a name="id-1.2.268.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.277.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -103,7 +103,7 @@ GstWebMMux implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.268.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.277.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -129,7 +129,7 @@ GstWebMMux implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.268.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.277.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -232,6 +232,10 @@ GstWebMMux implements
 <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>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-av1, 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" class="variablelist">
@@ -278,6 +282,6 @@ GstWebMMux implements
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
index c17ef843e..d3ab3a787 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-webmmux.html" title="webmmux">
 <link rel="next" href="gst-plugins-good-plugins-y4menc.html" title="y4menc">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -129,7 +129,7 @@ have changed since the last frame.  It uses the XFixes extension if
 available to also capture your mouse pointer.  By default it will fixate to
 25 frames per second.</p>
 <div class="refsect2">
-<a name="id-1.2.269.7.3"></a><h3>Example pipelines</h3>
+<a name="id-1.2.278.7.3"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -145,7 +145,7 @@ available to also capture your mouse pointer.  By default it will fixate to
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.269.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.278.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -171,7 +171,7 @@ available to also capture your mouse pointer.  By default it will fixate to
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.269.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.278.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -303,6 +303,6 @@ known to work better with remote displays.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
index c04b352f1..f27df369c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-ximagesrc.html" title="ximagesrc">
 <link rel="next" href="ch02.html" title="gst-plugins-good Plugins">
-<meta name="generator" content="GTK-Doc V1.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -65,7 +65,7 @@ GstY4mEncode implements
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-y4menc.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.270.7.2"></a><h3>Example launch line</h3>
+<a name="id-1.2.279.7.2"></a><h3>Example launch line</h3>
 <p>
 Creates a YU4MPEG2 raw video stream as defined by the mjpegtools project.
 </p>
@@ -83,7 +83,7 @@ gst-launch-1.0 videotestsrc num-buffers=250 \
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.270.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.279.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -109,7 +109,7 @@ gst-launch-1.0 videotestsrc num-buffers=250 \
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.270.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.279.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -174,6 +174,6 @@ gst-launch-1.0 videotestsrc num-buffers=250 \
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/home.png b/docs/plugins/html/home.png
index 431ab24446671be3272b7da750ea10eed99e6a0c..b4373be06d262f3d2cf5269b8b4405cc3eaac285 100644
GIT binary patch
delta 19
acmZo*YG9fW#K|Kppre-9Wp!m@^ilvZ*aiCl

delta 19
acmZo*YG9fW#K|cw#HRD$NsjQu=%oNOg$67D

diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 7b042c936..18f7dff0a 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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.26 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Good Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Good Plugins 1.0 (1.12.4)
+      for GStreamer Good Plugins 1.0 (1.13.1)
       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>
@@ -227,6 +227,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-goom.html">goom</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-gtkglsink.html">gtkglsink</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-gtksink.html">gtksink</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-hdv1394src.html">hdv1394src</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -263,6 +269,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-jpegenc.html">jpegenc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-lamemp3enc.html">lamemp3enc</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-level.html">level</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -287,6 +296,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-mpegaudioparse.html">mpegaudioparse</a></span><span class="refpurpose"> — MPEG audio parser</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-mpg123audiodec.html">mpg123audiodec</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-mulawdec.html">mulawdec</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -356,6 +368,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-pushfilesrc.html">pushfilesrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-qmlglsink.html">qmlglsink</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-qmlglsrc.html">qmlglsrc</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-qtdemux.html">qtdemux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -527,6 +545,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpklvpay.html">rtpklvpay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL8depay.html">rtpL8depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL8pay.html">rtpL8pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16depay.html">rtpL16depay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -744,6 +768,9 @@ the splitmuxsink element.</span>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-testsink.html">testsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-twolame.html">twolame</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-udpsink.html">udpsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -906,6 +933,9 @@ the splitmuxsink element.</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-gtk.html">gtk</a></span><span class="refpurpose"> — Gtk+ sink</span>
+</dt>
+<dt>
 <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>
@@ -927,6 +957,9 @@ the splitmuxsink element.</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-lame.html">lame</a></span><span class="refpurpose"> — Encode MP3s with LAME</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-level.html">level</a></span><span class="refpurpose"> — Audio level plugin</span>
 </dt>
 <dt>
@@ -936,6 +969,9 @@ the splitmuxsink element.</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-mpg123.html">mpg123</a></span><span class="refpurpose"> — mp3 decoding based on the mpg123 library</span>
+</dt>
+<dt>
 <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>
@@ -966,6 +1002,9 @@ the splitmuxsink element.</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-qmlgl.html">qmlgl</a></span><span class="refpurpose"> — Qt gl plugin</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-replaygain.html">replaygain</a></span><span class="refpurpose"> — ReplayGain volume normalization</span>
 </dt>
 <dt>
@@ -999,6 +1038,9 @@ the splitmuxsink element.</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-twolame.html">twolame</a></span><span class="refpurpose"> — Encode MP2s with TwoLAME</span>
+</dt>
+<dt>
 <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>
@@ -1041,6 +1083,6 @@ the splitmuxsink element.</span>
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.26</div>
+<hr>Generated by GTK-Doc V1.27</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/left-insensitive.png b/docs/plugins/html/left-insensitive.png
index a52885c227f87af75afea929733df3b50e90b074..a6b5e73021f843015a7bbe53fcd695b04aa6bb1a 100644
GIT binary patch
delta 20
bcmeBX?q;44#K|Kppre-9Wp!m^v;iXkIWPsk

delta 20
bcmeBX?q;44#K|cw#HRD$NsjQwXahz7JPrl$

diff --git a/docs/plugins/html/left.png b/docs/plugins/html/left.png
index 0216ce0a5b0f62d48f92ce84efd56fe9a23b1970..b4eb4eabec92fffe0a544c60fc4a81ee0c7a0d7e 100644
GIT binary patch
delta 19
acmZo;YGaxZ#K|Kppre-9Wp!m@^lAVywgwFV

delta 19
acmZo;YGaxZ#K|cw#HRD$NsjQu=+yu<V+K9|

diff --git a/docs/plugins/html/right-insensitive.png b/docs/plugins/html/right-insensitive.png
index 857714a9b56d36cb52b93fd24495f981154a8ca5..69702d18eccfb38f0fea30c2b352860f3b334a2c 100644
GIT binary patch
delta 20
bcmey$^p$Bs5GRkYfR0*Xm(`Vx(Nc^6NSp?H

delta 20
bcmey$^p$Bs5GSX!5Sz|}Cpp3!qoo)DOL_*Z

diff --git a/docs/plugins/html/right.png b/docs/plugins/html/right.png
index 2ca36a5ff8e50751b67b162106989d9fabffa5a7..5aef0a9d2e46a0d42c25a468015adc82e67fef61 100644
GIT binary patch
delta 19
acmZo=YGs-b#K|Kppre-9Wp!m@^eO-{kp>C?

delta 19
acmZo=YGs-b#K|cw#HRD$NsjQu=v4qUJ_b7g

diff --git a/docs/plugins/html/up-insensitive.png b/docs/plugins/html/up-insensitive.png
index 8b70778ef3af9129ff902256617ca4cbb47600f7..439f8d74852e5f4f936fdd819d1ff0a692ed4240 100644
GIT binary patch
delta 20
bcmeyy^o?mk5GRkYfR0*Xm(`Vx(b9|nNW=zy

delta 20
bcmeyy^o?mk5GSX!5Sz|}Cpp3!qoo-EOQHs^

diff --git a/docs/plugins/html/up.png b/docs/plugins/html/up.png
index b2a80fb166e719ae028962e67982b5e93219f3f3..b8bd7bce81fdaad36e904a839554b11ad51fc55b 100644
GIT binary patch
delta 19
acmZo+YGIlX#K|Kppre-9Wp!m@^hy9SYz7Aa

delta 19
acmZo+YGIlX#K|cw#HRD$NsjQu=#>C983s52

diff --git a/docs/plugins/inspect/plugin-1394.xml b/docs/plugins/inspect/plugin-1394.xml
index 16db9f526..28ade265c 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.12.4</version>
+  <version>1.13.1</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 9b802658c..dc8531a97 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.12.4</version>
+  <version>1.13.1</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 474dc9bed..812dc6b1c 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.12.4</version>
+  <version>1.13.1</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 3117f854e..916a6b3a4 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.12.4</version>
+  <version>1.13.1</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 c139cfa43..5cdfdd570 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-apetag.xml b/docs/plugins/inspect/plugin-apetag.xml
index 571a5d6b2..98770386d 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.12.4</version>
+  <version>1.13.1</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 351bc199d..e90b891c7 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audioparsers.xml b/docs/plugins/inspect/plugin-audioparsers.xml
index cdf6300d8..1b1758a3b 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-auparse.xml b/docs/plugins/inspect/plugin-auparse.xml
index 613dbd614..6b4e9f73a 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.12.4</version>
+  <version>1.13.1</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 3783b27b4..d7ec5fa16 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.12.4</version>
+  <version>1.13.1</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 38e02948a..42427acd9 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cacasink.xml b/docs/plugins/inspect/plugin-cacasink.xml
index 4b8baed9a..8b87b4d34 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cairo.xml b/docs/plugins/inspect/plugin-cairo.xml
index d83d8ea7e..51ce7e5ad 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.12.4</version>
+  <version>1.13.1</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 9c2d76a16..f3ca03125 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.12.4</version>
+  <version>1.13.1</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 977e1b94d..b9b70ba20 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.12.4</version>
+  <version>1.13.1</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 d1f89ec3d..fff70b4b4 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.12.4</version>
+  <version>1.13.1</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){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32 }, 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, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32 }, 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-dtmf.xml b/docs/plugins/inspect/plugin-dtmf.xml
index 0bcd17c1b..1e83473b3 100644
--- a/docs/plugins/inspect/plugin-dtmf.xml
+++ b/docs/plugins/inspect/plugin-dtmf.xml
@@ -3,7 +3,7 @@
   <description>DTMF plugins</description>
   <filename>../../gst/dtmf/.libs/libgstdtmf.so</filename>
   <basename>libgstdtmf.so</basename>
-  <version>1.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dv.xml b/docs/plugins/inspect/plugin-dv.xml
index da27e0f85..69a8b60e6 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.12.4</version>
+  <version>1.13.1</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 ed923c06d..a11be9906 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.12.4</version>
+  <version>1.13.1</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 3e863cd63..12b4699f4 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.12.4</version>
+  <version>1.13.1</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 954d29d5c..960fc7af1 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.12.4</version>
+  <version>1.13.1</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 567352ff2..56d73024b 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.12.4</version>
+  <version>1.13.1</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 6b449b09c..918587f86 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.12.4</version>
+  <version>1.13.1</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 63dac7e77..c56f07d92 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.12.4</version>
+  <version>1.13.1</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>image/png; image/gif; image/x-icon; application/x-navi-animation; image/x-cmu-raster; image/x-sun-raster; image/x-pixmap; image/tiff; image/x-portable-anymap; image/x-portable-bitmap; image/x-portable-graymap; image/x-portable-pixmap; image/bmp; image/x-bmp; image/x-MS-bmp; image/vnd.wap.wbmp; image/x-bitmap; image/x-tga; image/x-pcx; image/svg; image/svg+xml</details>
+          <details>image/png; image/x-icon; application/x-navi-animation; image/x-cmu-raster; image/x-sun-raster; image/x-pixmap; image/tiff; image/x-portable-anymap; image/x-portable-bitmap; image/x-portable-graymap; image/x-portable-pixmap; image/bmp; image/x-bmp; image/x-MS-bmp; image/vnd.wap.wbmp; image/x-bitmap; image/x-tga; image/x-pcx; image/svg; image/svg+xml</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-goom.xml b/docs/plugins/inspect/plugin-goom.xml
index 21eef16c6..264c0897a 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.12.4</version>
+  <version>1.13.1</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 bed9ba08b..ce7e93555 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gtk.xml b/docs/plugins/inspect/plugin-gtk.xml
new file mode 100644
index 000000000..a42cff0f1
--- /dev/null
+++ b/docs/plugins/inspect/plugin-gtk.xml
@@ -0,0 +1,43 @@
+<plugin>
+  <name>gtk</name>
+  <description>Gtk+ sink</description>
+  <filename>../../ext/gtk/.libs/libgstgtk.so</filename>
+  <basename>libgstgtk.so</basename>
+  <version>1.13.1</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>gtkglsink</name>
+      <longname>Gtk GL Video Sink</longname>
+      <class>Sink/Video</class>
+      <description>A video sink that renders to a GtkWidget using OpenGL</description>
+      <author>Matthew Waters &lt;matthew@centricular.com&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>gtksink</name>
+      <longname>Gtk Video Sink</longname>
+      <class>Sink/Video</class>
+      <description>A video sink that renders to a GtkWidget</description>
+      <author>Matthew Waters &lt;matthew@centricular.com&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>video/x-raw, format=(string){ BGRx, BGRA }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+        </caps>
+      </pads>
+    </element>
+  </elements>
+</plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-icydemux.xml b/docs/plugins/inspect/plugin-icydemux.xml
index ea5240a0e..9e40e7968 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.12.4</version>
+  <version>1.13.1</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 37d8cdb2c..5923d34fa 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.12.4</version>
+  <version>1.13.1</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 2a25d7b03..0dec927c7 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.12.4</version>
+  <version>1.13.1</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 ec9fc8455..5801824ab 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.12.4</version>
+  <version>1.13.1</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 98d3b4af2..34fbeb416 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -182,7 +182,7 @@
           <name>audio_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>audio/x-raw, format=(string){ S32LE, S32BE, S24LE, S24BE, S16LE, S16BE, S8, U8 }, layout=(string)interleaved, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw, format=(string){ S32LE, S32BE, S24LE, S24BE, S16LE, S16BE, S8, U8 }, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000000, channels=(int)[ 1, 16 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, channels=(int)[ 1, 8 ], rate=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)dvi, block_align=(int)[ 64, 8096 ], channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-alaw, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-mulaw, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/AMR, rate=(int)8000, channels=(int)[ 1, 2 ]; audio/AMR-WB, rate=(int)16000, channels=(int)[ 1, 2 ]; audio/x-alac, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]</details>
+          <details>audio/x-raw, format=(string){ S32LE, S32BE, S24LE, S24BE, S16LE, S16BE, S8, U8 }, layout=(string)interleaved, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw, format=(string){ S32LE, S32BE, S24LE, S24BE, S16LE, S16BE, S8, U8 }, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000000, channels=(int)[ 1, 16 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, channels=(int)[ 1, 8 ], rate=(int)[ 1, 2147483647 ]; audio/x-ac3, channels=(int)[ 1, 6 ], rate=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)dvi, block_align=(int)[ 64, 8096 ], channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-alaw, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-mulaw, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/AMR, rate=(int)8000, channels=(int)[ 1, 2 ]; audio/AMR-WB, rate=(int)16000, channels=(int)[ 1, 2 ]; audio/x-alac, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-opus, channel-mapping-family=(int)[ 0, 255 ], channels=(int)[ 1, 8 ], rate=(int)[ 1, 2147483647 ]</details>
         </caps>
         <caps>
           <name>subtitle_%u</name>
@@ -194,7 +194,7 @@
           <name>video_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/x-raw, format=(string){ RGB, UYVY, v210 }, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-divx, divxversion=(int)5, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-prores, variant=(string){ standard, lt, hq, proxy, 4444, 4444xq }, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-cineform, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-h263, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-h265, stream-format=(string){ hvc1, hev1 }, alignment=(string)au, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-svq, svqversion=(int)3, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-dv, systemstream=(boolean)false, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; image/jpeg, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-vp8, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-dirac, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-qt-part, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]</details>
+          <details>video/x-raw, format=(string){ RGB, UYVY, v210 }, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-divx, divxversion=(int)5, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-prores, variant=(string){ standard, lt, hq, proxy, 4444, 4444xq }, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-cineform, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-h263, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-h265, stream-format=(string){ hvc1, hev1 }, alignment=(string)au, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-svq, svqversion=(int)3, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-dv, systemstream=(boolean)false, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; image/jpeg, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; image/png, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-vp8, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-vp9, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-dirac, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]; video/x-qt-part, width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-jack.xml b/docs/plugins/inspect/plugin-jack.xml
index b04a53980..f3a81e74e 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.12.4</version>
+  <version>1.13.1</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 7e23cb1a2..1d625f2fc 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-lame.xml b/docs/plugins/inspect/plugin-lame.xml
new file mode 100644
index 000000000..6f334cf12
--- /dev/null
+++ b/docs/plugins/inspect/plugin-lame.xml
@@ -0,0 +1,34 @@
+<plugin>
+  <name>lame</name>
+  <description>Encode MP3s with LAME</description>
+  <filename>../../ext/lame/.libs/libgstlame.so</filename>
+  <basename>libgstlame.so</basename>
+  <version>1.13.1</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>lamemp3enc</name>
+      <longname>L.A.M.E. mp3 encoder</longname>
+      <class>Codec/Encoder/Audio</class>
+      <description>High-quality free MP3 encoder</description>
+      <author>Sebastian Dröge &lt;sebastian.droege@collabora.co.uk&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)1; audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)2, channel-mask=(bitmask)0x0000000000000003</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ]</details>
+        </caps>
+      </pads>
+    </element>
+  </elements>
+</plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-level.xml b/docs/plugins/inspect/plugin-level.xml
index 7293dbe79..d3288f02d 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.12.4</version>
+  <version>1.13.1</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 3b3e42f19..f7d9bc114 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.12.4</version>
+  <version>1.13.1</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 ]; video/x-vp9, 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 ]; video/x-av1, 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-mpg123.xml b/docs/plugins/inspect/plugin-mpg123.xml
new file mode 100644
index 000000000..4d465ef97
--- /dev/null
+++ b/docs/plugins/inspect/plugin-mpg123.xml
@@ -0,0 +1,34 @@
+<plugin>
+  <name>mpg123</name>
+  <description>mp3 decoding based on the mpg123 library</description>
+  <filename>../../ext/mpg123/.libs/libgstmpg123.so</filename>
+  <basename>libgstmpg123.so</basename>
+  <version>1.13.1</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>mpg123audiodec</name>
+      <longname>mpg123 mp3 decoder</longname>
+      <class>Codec/Decoder/Audio</class>
+      <description>Decodes mp3 streams using the mpg123 library</description>
+      <author>Carlos Rafael Giani &lt;dv@pseudoterminal.org&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], parsed=(boolean)true</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>audio/x-raw, format=(string){ S16LE, U16LE, S32LE, U32LE, S24LE, U24LE, F32LE }, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], layout=(string)interleaved</details>
+        </caps>
+      </pads>
+    </element>
+  </elements>
+</plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-mulaw.xml b/docs/plugins/inspect/plugin-mulaw.xml
index 24a9788b3..e9e3a8eef 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.12.4</version>
+  <version>1.13.1</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 ca734e52c..b554f5d2c 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.12.4</version>
+  <version>1.13.1</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 5e327bee1..f638c971d 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.12.4</version>
+  <version>1.13.1</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 bb85de58c..18ff65fde 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.12.4</version>
+  <version>1.13.1</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 6492fe400..9d47e9cf1 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/libgstoss4.so</filename>
   <basename>libgstoss4.so</basename>
-  <version>1.12.4</version>
+  <version>1.13.1</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 298bfd236..ce7981de6 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.12.4</version>
+  <version>1.13.1</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 6776eb956..a19a9eb7e 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.12.4</version>
+  <version>1.13.1</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 d3ef7b957..dd4daed3e 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/libgstpulseaudio.so</filename>
   <basename>libgstpulseaudio.so</basename>
-  <version>1.12.4</version>
+  <version>1.13.1</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>audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; 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; audio/mpeg, mpegversion=(int){ 2, 4 }, framed=(boolean)true, stream-format=(string)adts</details>
+          <details>audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; 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, 3 ], parsed=(boolean)true; audio/mpeg, mpegversion=(int){ 2, 4 }, framed=(boolean)true, stream-format=(string)adts</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-qmlgl.xml b/docs/plugins/inspect/plugin-qmlgl.xml
new file mode 100644
index 000000000..bf15b1b9e
--- /dev/null
+++ b/docs/plugins/inspect/plugin-qmlgl.xml
@@ -0,0 +1,43 @@
+<plugin>
+  <name>qmlgl</name>
+  <description>Qt gl plugin</description>
+  <filename>../../ext/qt/.libs/libgstqmlgl.so</filename>
+  <basename>libgstqmlgl.so</basename>
+  <version>1.13.1</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>qmlglsink</name>
+      <longname>Qt Video Sink</longname>
+      <class>Sink/Video</class>
+      <description>A video sink that renders to a QQuickItem</description>
+      <author>Matthew Waters &lt;matthew@centricular.com&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>qmlglsrc</name>
+      <longname>Qt Video Source</longname>
+      <class>Source/Video</class>
+      <description>A video src that captures a window from a QML view</description>
+      <author>Multimedia Team &lt;shmmmw@freescale.com&gt;</author>
+      <pads>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D</details>
+        </caps>
+      </pads>
+    </element>
+  </elements>
+</plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-replaygain.xml b/docs/plugins/inspect/plugin-replaygain.xml
index 2d5958427..d54a41617 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.12.4</version>
+  <version>1.13.1</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 5938fa179..79191c7e0 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -114,6 +114,48 @@
         </caps>
       </pads>
     </element>
+    <element>
+      <name>rtpL8depay</name>
+      <longname>RTP audio depayloader</longname>
+      <class>Codec/Depayloader/Network/RTP</class>
+      <description>Extracts raw audio from RTP packets</description>
+      <author>Zeeshan Ali &lt;zak147@yahoo.com&gt;,Wim Taymans &lt;wim.taymans@gmail.com&gt;, GE Intelligent Platforms Embedded Systems, Inc.</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L8</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>audio/x-raw, format=(string)U8, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>rtpL8pay</name>
+      <longname>RTP audio payloader</longname>
+      <class>Codec/Payloader/Network/RTP</class>
+      <description>Payload-encode Raw audio into RTP packets (RFC 3551)</description>
+      <author>Wim Taymans &lt;wim.taymans@gmail.com&gt;, GE Intelligent Platforms Embedded Systems, Inc.</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>audio/x-raw, format=(string)U8, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</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)[ 1, 2147483647 ], encoding-name=(string)L8, channels=(int)[ 1, 2147483647 ]</details>
+        </caps>
+      </pads>
+    </element>
     <element>
       <name>rtpac3depay</name>
       <longname>RTP AC3 depayloader</longname>
@@ -362,7 +404,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, encoding-name=(string)G722, payload=(int)9, clock-rate=(int)8000; application/x-rtp, media=(string)audio, encoding-name=(string)G722, payload=(int)[ 96, 127 ], clock-rate=(int)8000</details>
+          <details>application/x-rtp, media=(string)audio, encoding-name=(string)G722, payload=(int)9, encoding-params=(string)1, clock-rate=(int)8000; application/x-rtp, media=(string)audio, encoding-name=(string)G722, payload=(int)[ 96, 127 ], encoding-params=(string)1, clock-rate=(int)8000</details>
         </caps>
       </pads>
     </element>
@@ -761,7 +803,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-h265, stream-format=(string)byte-stream, alignment=(string){ nal, au }</details>
+          <details>video/x-h265, stream-format=(string)hvc1, alignment=(string)au; video/x-h265, stream-format=(string)byte-stream, alignment=(string){ nal, au }</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-rtpmanager.xml b/docs/plugins/inspect/plugin-rtpmanager.xml
index 402fd8eba..d6a18af3a 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rtsp.xml b/docs/plugins/inspect/plugin-rtsp.xml
index ba419b5b3..2c3d198f4 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.12.4</version>
+  <version>1.13.1</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 8649bff80..165afba2c 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-shout2.xml b/docs/plugins/inspect/plugin-shout2.xml
index 2ac3f236d..a09708c55 100644
--- a/docs/plugins/inspect/plugin-shout2.xml
+++ b/docs/plugins/inspect/plugin-shout2.xml
@@ -3,11 +3,11 @@
   <description>Sends data to an icecast server using libshout2</description>
   <filename>../../ext/shout2/.libs/libgstshout2.so</filename>
   <basename>libgstshout2.so</basename>
-  <version>1.12.3</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
-  <package>libshout2</package>
-  <origin>http://www.icecast.org/download/</origin>
+  <package>GStreamer Good Plug-ins source release</package>
+  <origin>Unknown package origin</origin>
   <elements>
     <element>
       <name>shout2send</name>
diff --git a/docs/plugins/inspect/plugin-smpte.xml b/docs/plugins/inspect/plugin-smpte.xml
index a44795a53..8a3587e4a 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.12.4</version>
+  <version>1.13.1</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 f2c4565f1..c0f432dfc 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/libgstsoup.so</filename>
   <basename>libgstsoup.so</basename>
-  <version>1.12.4</version>
+  <version>1.13.1</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 a3511a49e..5dcf38bf3 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.12.4</version>
+  <version>1.13.1</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 0ec05b5d2..dd7afa285 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.12.4</version>
+  <version>1.13.1</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 2d657932f..7dbd58e70 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-twolame.xml b/docs/plugins/inspect/plugin-twolame.xml
new file mode 100644
index 000000000..484b39052
--- /dev/null
+++ b/docs/plugins/inspect/plugin-twolame.xml
@@ -0,0 +1,34 @@
+<plugin>
+  <name>twolame</name>
+  <description>Encode MP2s with TwoLAME</description>
+  <filename>../../ext/twolame/.libs/libgsttwolame.so</filename>
+  <basename>libgsttwolame.so</basename>
+  <version>1.13.1</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>twolamemp2enc</name>
+      <longname>TwoLAME mp2 encoder</longname>
+      <class>Codec/Encoder/Audio</class>
+      <description>High-quality free MP2 encoder</description>
+      <author>Sebastian Dröge &lt;sebastian.droege@collabora.co.uk&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>audio/x-raw, format=(string){ F32LE, S16LE }, layout=(string)interleaved, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)1; audio/x-raw, format=(string){ F32LE, S16LE }, layout=(string)interleaved, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)2, channel-mask=(bitmask)0x0000000000000003</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>audio/mpeg, mpegversion=(int)1, layer=(int)2, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ]</details>
+        </caps>
+      </pads>
+    </element>
+  </elements>
+</plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-udp.xml b/docs/plugins/inspect/plugin-udp.xml
index f0a43839c..5ed8f674d 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.12.4</version>
+  <version>1.13.1</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 b5d7c3c73..4e98541f8 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.12.4</version>
+  <version>1.13.1</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>image/jpeg; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; video/mpeg, mpegversion=(int)2; video/mpegts, systemstream=(boolean)true; video/x-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, systemstream=(boolean)true; video/x-h263, variant=(string)itu; video/x-h264, stream-format=(string){ byte-stream, avc }, alignment=(string)au; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGB16, BGR, RGB, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, NV12_64Z32, NV24, NV61, NV16, NV21, NV12, I420, BGRA, BGRx, ARGB, xRGB, BGR15, RGB15 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8; video/x-wmv, wmvversion=(int)3, format=(string)WVC1</details>
+          <details>image/jpeg; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; video/mpeg, mpegversion=(int)2; video/mpegts, systemstream=(boolean)true; video/x-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, systemstream=(boolean)true; video/x-h263, variant=(string)itu; video/x-h264, stream-format=(string){ byte-stream, avc }, alignment=(string)au; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGB16, BGR, RGB, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, NV12_64Z32, NV24, NV61, NV16, NV21, NV12, I420, BGRA, BGRx, ARGB, xRGB, BGR15, RGB15 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8; video/x-vp9; video/x-wmv, wmvversion=(int)3, format=(string)WVC1</details>
         </caps>
       </pads>
     </element>
@@ -44,7 +44,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>image/jpeg; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; video/mpeg, mpegversion=(int)2; video/mpegts, systemstream=(boolean)true; video/x-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, systemstream=(boolean)true; video/x-h263, variant=(string)itu; video/x-h264, stream-format=(string){ byte-stream, avc }, alignment=(string)au; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGB16, BGR, RGB, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, NV12_64Z32, NV24, NV61, NV16, NV21, NV12, I420, BGRA, BGRx, ARGB, xRGB, BGR15, RGB15 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8; video/x-wmv, wmvversion=(int)3, format=(string)WVC1</details>
+          <details>image/jpeg; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; video/mpeg, mpegversion=(int)2; video/mpegts, systemstream=(boolean)true; video/x-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, systemstream=(boolean)true; video/x-h263, variant=(string)itu; video/x-h264, stream-format=(string){ byte-stream, avc }, alignment=(string)au; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGB16, BGR, RGB, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, NV12_64Z32, NV24, NV61, NV16, NV21, NV12, I420, BGRA, BGRx, ARGB, xRGB, BGR15, RGB15 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8; video/x-vp9; video/x-wmv, wmvversion=(int)3, format=(string)WVC1</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-videobox.xml b/docs/plugins/inspect/plugin-videobox.xml
index ae14dbcec..646ebc1c6 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.12.4</version>
+  <version>1.13.1</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 d43026193..2bc112e3e 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videofilter.xml b/docs/plugins/inspect/plugin-videofilter.xml
index 120d1b468..c94157bd5 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videomixer.xml b/docs/plugins/inspect/plugin-videomixer.xml
index d0d1d9cf3..1b4fdd467 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.12.4</version>
+  <version>1.13.1</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 e28a92c94..5e36723e1 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.12.4</version>
+  <version>1.13.1</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 1ffa13e92..c2a83e934 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.12.4</version>
+  <version>1.13.1</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 0e8e3f8cb..f50069ba3 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.12.4</version>
+  <version>1.13.1</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 e8195e005..1ed2ccb88 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.12.4</version>
+  <version>1.13.1</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 6641faa79..fd57e1951 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.12.4</version>
+  <version>1.13.1</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 4563f16f9..6871eb969 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.12.4</version>
+  <version>1.13.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/ext/Makefile.am b/ext/Makefile.am
index 6f0018252..f996b65c0 100644
--- a/ext/Makefile.am
+++ b/ext/Makefile.am
@@ -22,6 +22,13 @@ else
 GDK_PIXBUF_DIR =
 endif
 
+  
+if USE_GTK3
+GTK_DIR=gtk
+else
+GTK_DIR=
+endif
+ 
 if USE_JACK
 JACK_DIR=jack
 else
@@ -34,6 +41,12 @@ else
 JPEG_DIR =
 endif
 
+if USE_LAME
+LAME_DIR = lame
+else
+LAME_DIR =
+endif
+
 if USE_LIBCACA
 LIBCACA_DIR = libcaca
 else
@@ -52,6 +65,12 @@ else
 LIBPNG_DIR =
 endif
 
+if USE_MPG123
+MPG123_DIR = mpg123
+else
+MPG123_DIR =
+endif
+
 if USE_DV1394
 DV1394_DIR = raw1394
 else
@@ -64,6 +83,11 @@ else
 PULSE_DIR =
 endif
 
+if USE_QT
+QT_DIR=qt
+else
+QT_DIR=
+endif
 
 if USE_SHOUT2
 SHOUT2_DIR = shout2
@@ -89,6 +113,12 @@ else
 TAGLIB_DIR =
 endif
 
+if USE_TWOLAME
+TWOLAME_DIR = twolame
+else
+TWOLAME_DIR =
+endif
+
 if USE_VPX
 VPX_DIR=vpx
 else
@@ -107,17 +137,22 @@ SUBDIRS = \
 	$(DV1394_DIR) \
 	$(FLAC_DIR) \
 	$(GDK_PIXBUF_DIR) \
+	$(GTK_DIR) \
 	$(JACK_DIR) \
 	$(JPEG_DIR) \
+	$(LAME_DIR) \
 	$(LIBCACA_DIR) \
 	$(LIBDV_DIR) \
 	$(LIBMNG_DIR) \
 	$(LIBPNG_DIR) \
+	$(MPG123_DIR) \
 	$(PULSE_DIR) \
+	$(QT_DIR) \
 	$(SHOUT2_DIR) \
 	$(SOUP_DIR) \
 	$(SPEEX_DIR) \
 	$(TAGLIB_DIR) \
+	$(TWOLAME_DIR) \
 	$(VPX_DIR) \
 	$(WAVPACK_DIR)
 
@@ -127,16 +162,21 @@ DIST_SUBDIRS = \
 	dv \
 	flac \
 	gdk_pixbuf \
+	gtk \
 	jack \
 	jpeg \
+	lame \
 	libcaca \
 	libpng \
+	mpg123 \
 	pulse \
+	qt \
 	raw1394 \
 	shout2 \
 	soup \
 	speex \
 	taglib \
+	twolame \
 	vpx \
 	wavpack
 
diff --git a/ext/Makefile.in b/ext/Makefile.in
index 438b2d212..345a6ca52 100644
--- a/ext/Makefile.in
+++ b/ext/Makefile.in
@@ -270,6 +270,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -293,6 +294,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -308,6 +311,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -330,10 +335,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -348,6 +360,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -365,6 +378,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -377,6 +392,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -395,6 +412,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -438,9 +458,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -454,11 +485,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -557,20 +593,28 @@ top_srcdir = @top_srcdir@
 @USE_FLAC_TRUE@FLAC_DIR = flac
 @USE_GDK_PIXBUF_FALSE@GDK_PIXBUF_DIR = 
 @USE_GDK_PIXBUF_TRUE@GDK_PIXBUF_DIR = gdk_pixbuf
+@USE_GTK3_FALSE@GTK_DIR = 
+@USE_GTK3_TRUE@GTK_DIR = gtk
 @USE_JACK_FALSE@JACK_DIR = 
 @USE_JACK_TRUE@JACK_DIR = jack
 @USE_JPEG_FALSE@JPEG_DIR = 
 @USE_JPEG_TRUE@JPEG_DIR = jpeg
+@USE_LAME_FALSE@LAME_DIR = 
+@USE_LAME_TRUE@LAME_DIR = lame
 @USE_LIBCACA_FALSE@LIBCACA_DIR = 
 @USE_LIBCACA_TRUE@LIBCACA_DIR = libcaca
 @USE_LIBDV_FALSE@LIBDV_DIR = 
 @USE_LIBDV_TRUE@LIBDV_DIR = dv
 @USE_LIBPNG_FALSE@LIBPNG_DIR = 
 @USE_LIBPNG_TRUE@LIBPNG_DIR = libpng
+@USE_MPG123_FALSE@MPG123_DIR = 
+@USE_MPG123_TRUE@MPG123_DIR = mpg123
 @USE_DV1394_FALSE@DV1394_DIR = 
 @USE_DV1394_TRUE@DV1394_DIR = raw1394
 @USE_PULSE_FALSE@PULSE_DIR = 
 @USE_PULSE_TRUE@PULSE_DIR = pulse
+@USE_QT_FALSE@QT_DIR = 
+@USE_QT_TRUE@QT_DIR = qt
 @USE_SHOUT2_FALSE@SHOUT2_DIR = 
 @USE_SHOUT2_TRUE@SHOUT2_DIR = shout2
 @USE_SOUP_FALSE@SOUP_DIR = 
@@ -579,6 +623,8 @@ top_srcdir = @top_srcdir@
 @USE_SPEEX_TRUE@SPEEX_DIR = speex
 @USE_TAGLIB_FALSE@TAGLIB_DIR = 
 @USE_TAGLIB_TRUE@TAGLIB_DIR = taglib
+@USE_TWOLAME_FALSE@TWOLAME_DIR = 
+@USE_TWOLAME_TRUE@TWOLAME_DIR = twolame
 @USE_VPX_FALSE@VPX_DIR = 
 @USE_VPX_TRUE@VPX_DIR = vpx
 @USE_WAVPACK_FALSE@WAVPACK_DIR = 
@@ -589,17 +635,22 @@ SUBDIRS = \
 	$(DV1394_DIR) \
 	$(FLAC_DIR) \
 	$(GDK_PIXBUF_DIR) \
+	$(GTK_DIR) \
 	$(JACK_DIR) \
 	$(JPEG_DIR) \
+	$(LAME_DIR) \
 	$(LIBCACA_DIR) \
 	$(LIBDV_DIR) \
 	$(LIBMNG_DIR) \
 	$(LIBPNG_DIR) \
+	$(MPG123_DIR) \
 	$(PULSE_DIR) \
+	$(QT_DIR) \
 	$(SHOUT2_DIR) \
 	$(SOUP_DIR) \
 	$(SPEEX_DIR) \
 	$(TAGLIB_DIR) \
+	$(TWOLAME_DIR) \
 	$(VPX_DIR) \
 	$(WAVPACK_DIR)
 
@@ -609,16 +660,21 @@ DIST_SUBDIRS = \
 	dv \
 	flac \
 	gdk_pixbuf \
+	gtk \
 	jack \
 	jpeg \
+	lame \
 	libcaca \
 	libpng \
+	mpg123 \
 	pulse \
+	qt \
 	raw1394 \
 	shout2 \
 	soup \
 	speex \
 	taglib \
+	twolame \
 	vpx \
 	wavpack
 
diff --git a/ext/aalib/Makefile.am b/ext/aalib/Makefile.am
index b649e73a2..41b66eb9b 100644
--- a/ext/aalib/Makefile.am
+++ b/ext/aalib/Makefile.am
@@ -4,6 +4,5 @@ libgstaasink_la_SOURCES = gstaasink.c
 libgstaasink_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AALIB_CFLAGS)
 libgstaasink_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(GST_BASE_LIBS) $(GST_LIBS) $(AALIB_LIBS)
 libgstaasink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstaasink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstaasink.h
diff --git a/ext/aalib/Makefile.in b/ext/aalib/Makefile.in
index 92f318e77..cc5b89618 100644
--- a/ext/aalib/Makefile.in
+++ b/ext/aalib/Makefile.in
@@ -173,9 +173,9 @@ 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_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
@@ -292,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -315,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -330,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -352,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -370,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -387,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -399,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -417,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -460,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -476,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -576,7 +612,6 @@ libgstaasink_la_SOURCES = gstaasink.c
 libgstaasink_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AALIB_CFLAGS)
 libgstaasink_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(GST_BASE_LIBS) $(GST_LIBS) $(AALIB_LIBS)
 libgstaasink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstaasink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstaasink.h
 all: all-am
 
@@ -683,11 +718,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstaasink_la-gstaasink.lo: gstaasink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaasink_la_CFLAGS) $(CFLAGS) -MT libgstaasink_la-gstaasink.lo -MD -MP -MF $(DEPDIR)/libgstaasink_la-gstaasink.Tpo -c -o libgstaasink_la-gstaasink.lo `test -f 'gstaasink.c' || echo '$(srcdir)/'`gstaasink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaasink_la_CFLAGS) $(CFLAGS) -MT libgstaasink_la-gstaasink.lo -MD -MP -MF $(DEPDIR)/libgstaasink_la-gstaasink.Tpo -c -o libgstaasink_la-gstaasink.lo `test -f 'gstaasink.c' || echo '$(srcdir)/'`gstaasink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaasink_la-gstaasink.Tpo $(DEPDIR)/libgstaasink_la-gstaasink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstaasink.c' object='libgstaasink_la-gstaasink.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 $(libgstaasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaasink_la_CFLAGS) $(CFLAGS) -c -o libgstaasink_la-gstaasink.lo `test -f 'gstaasink.c' || echo '$(srcdir)/'`gstaasink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaasink_la_CFLAGS) $(CFLAGS) -c -o libgstaasink_la-gstaasink.lo `test -f 'gstaasink.c' || echo '$(srcdir)/'`gstaasink.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/aalib/meson.build b/ext/aalib/meson.build
new file mode 100644
index 000000000..12cdf72f4
--- /dev/null
+++ b/ext/aalib/meson.build
@@ -0,0 +1,14 @@
+# Very much not going to implement all kinds of logic around aalib-config
+# or cater for non-standard prefixes.
+if cc.has_header('aalib.h')
+  libaa_dep = cc.find_library('aa', required : false)
+  if libaa_dep.found()
+    library('gstaasink', 'gstaasink.c',
+      c_args : gst_plugins_good_args,
+      link_args : noseh_link_args,
+      include_directories : [configinc],
+      dependencies : [gstvideo_dep, gstbase_dep, libaa_dep],
+      install : true,
+      install_dir : plugins_install_dir)
+  endif
+endif
diff --git a/ext/cairo/Makefile.am b/ext/cairo/Makefile.am
index 0e0b57ba2..8a37110fb 100644
--- a/ext/cairo/Makefile.am
+++ b/ext/cairo/Makefile.am
@@ -13,5 +13,4 @@ libgstcairo_la_LIBADD = \
 	$(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(CAIRO_LIBS) $(LIBM)
 libgstcairo_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstcairo_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
diff --git a/ext/cairo/Makefile.in b/ext/cairo/Makefile.in
index 0e14800d7..30a30a9b1 100644
--- a/ext/cairo/Makefile.in
+++ b/ext/cairo/Makefile.in
@@ -174,9 +174,9 @@ 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_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
@@ -293,6 +293,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -316,6 +317,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -331,6 +334,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -353,10 +358,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -371,6 +383,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -388,6 +401,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -400,6 +415,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -418,6 +435,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -461,9 +481,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -477,11 +508,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -590,7 +626,6 @@ libgstcairo_la_LIBADD = \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(CAIRO_LIBS) $(LIBM)
 
 libgstcairo_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstcairo_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 all: all-am
 
 .SUFFIXES:
@@ -697,18 +732,18 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstcairo_la-gstcairo.lo: gstcairo.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -MT libgstcairo_la-gstcairo.lo -MD -MP -MF $(DEPDIR)/libgstcairo_la-gstcairo.Tpo -c -o libgstcairo_la-gstcairo.lo `test -f 'gstcairo.c' || echo '$(srcdir)/'`gstcairo.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -MT libgstcairo_la-gstcairo.lo -MD -MP -MF $(DEPDIR)/libgstcairo_la-gstcairo.Tpo -c -o libgstcairo_la-gstcairo.lo `test -f 'gstcairo.c' || echo '$(srcdir)/'`gstcairo.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcairo_la-gstcairo.Tpo $(DEPDIR)/libgstcairo_la-gstcairo.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcairo.c' object='libgstcairo_la-gstcairo.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 $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gstcairo.lo `test -f 'gstcairo.c' || echo '$(srcdir)/'`gstcairo.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gstcairo.lo `test -f 'gstcairo.c' || echo '$(srcdir)/'`gstcairo.c
 
 libgstcairo_la-gstcairooverlay.lo: gstcairooverlay.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -MT libgstcairo_la-gstcairooverlay.lo -MD -MP -MF $(DEPDIR)/libgstcairo_la-gstcairooverlay.Tpo -c -o libgstcairo_la-gstcairooverlay.lo `test -f 'gstcairooverlay.c' || echo '$(srcdir)/'`gstcairooverlay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -MT libgstcairo_la-gstcairooverlay.lo -MD -MP -MF $(DEPDIR)/libgstcairo_la-gstcairooverlay.Tpo -c -o libgstcairo_la-gstcairooverlay.lo `test -f 'gstcairooverlay.c' || echo '$(srcdir)/'`gstcairooverlay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcairo_la-gstcairooverlay.Tpo $(DEPDIR)/libgstcairo_la-gstcairooverlay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcairooverlay.c' object='libgstcairo_la-gstcairooverlay.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 $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gstcairooverlay.lo `test -f 'gstcairooverlay.c' || echo '$(srcdir)/'`gstcairooverlay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gstcairooverlay.lo `test -f 'gstcairooverlay.c' || echo '$(srcdir)/'`gstcairooverlay.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/dv/Makefile.am b/ext/dv/Makefile.am
index 113f33b92..73d19f6bb 100644
--- a/ext/dv/Makefile.am
+++ b/ext/dv/Makefile.am
@@ -6,7 +6,6 @@ libgstdv_la_LIBADD = \
 	$(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) -lgstvideo-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBDV_LIBS)
 libgstdv_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstdv_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstdvdemux.h gstdvdec.h gstsmptetimecode.h
 
diff --git a/ext/dv/Makefile.in b/ext/dv/Makefile.in
index caca15e4e..80162ce86 100644
--- a/ext/dv/Makefile.in
+++ b/ext/dv/Makefile.in
@@ -174,10 +174,9 @@ 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) \
-	$(LDFLAGS) -o $@
+libgstdv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgstdv_la_CFLAGS) \
+	$(CFLAGS) $(libgstdv_la_LDFLAGS) $(LDFLAGS) -o $@
 PROGRAMS = $(noinst_PROGRAMS)
 am_smpte_test_OBJECTS = smpte_test-smpte_test.$(OBJEXT) \
 	smpte_test-gstsmptetimecode.$(OBJEXT)
@@ -302,6 +301,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -325,6 +325,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -340,6 +342,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -362,10 +366,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -380,6 +391,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -397,6 +409,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -409,6 +423,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -427,6 +443,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -470,9 +489,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -486,11 +516,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -589,7 +624,6 @@ libgstdv_la_LIBADD = \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBDV_LIBS)
 
 libgstdv_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstdv_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstdvdemux.h gstdvdec.h gstsmptetimecode.h
 EXTRA_DIST = NOTES
 smpte_test_SOURCES = smpte_test.c gstsmptetimecode.c
@@ -718,32 +752,32 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstdv_la-gstdv.lo: gstdv.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -MT libgstdv_la-gstdv.lo -MD -MP -MF $(DEPDIR)/libgstdv_la-gstdv.Tpo -c -o libgstdv_la-gstdv.lo `test -f 'gstdv.c' || echo '$(srcdir)/'`gstdv.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -MT libgstdv_la-gstdv.lo -MD -MP -MF $(DEPDIR)/libgstdv_la-gstdv.Tpo -c -o libgstdv_la-gstdv.lo `test -f 'gstdv.c' || echo '$(srcdir)/'`gstdv.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdv_la-gstdv.Tpo $(DEPDIR)/libgstdv_la-gstdv.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdv.c' object='libgstdv_la-gstdv.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 $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstdv.lo `test -f 'gstdv.c' || echo '$(srcdir)/'`gstdv.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstdv.lo `test -f 'gstdv.c' || echo '$(srcdir)/'`gstdv.c
 
 libgstdv_la-gstdvdec.lo: gstdvdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -MT libgstdv_la-gstdvdec.lo -MD -MP -MF $(DEPDIR)/libgstdv_la-gstdvdec.Tpo -c -o libgstdv_la-gstdvdec.lo `test -f 'gstdvdec.c' || echo '$(srcdir)/'`gstdvdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -MT libgstdv_la-gstdvdec.lo -MD -MP -MF $(DEPDIR)/libgstdv_la-gstdvdec.Tpo -c -o libgstdv_la-gstdvdec.lo `test -f 'gstdvdec.c' || echo '$(srcdir)/'`gstdvdec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdv_la-gstdvdec.Tpo $(DEPDIR)/libgstdv_la-gstdvdec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdvdec.c' object='libgstdv_la-gstdvdec.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 $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstdvdec.lo `test -f 'gstdvdec.c' || echo '$(srcdir)/'`gstdvdec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstdvdec.lo `test -f 'gstdvdec.c' || echo '$(srcdir)/'`gstdvdec.c
 
 libgstdv_la-gstdvdemux.lo: gstdvdemux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -MT libgstdv_la-gstdvdemux.lo -MD -MP -MF $(DEPDIR)/libgstdv_la-gstdvdemux.Tpo -c -o libgstdv_la-gstdvdemux.lo `test -f 'gstdvdemux.c' || echo '$(srcdir)/'`gstdvdemux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -MT libgstdv_la-gstdvdemux.lo -MD -MP -MF $(DEPDIR)/libgstdv_la-gstdvdemux.Tpo -c -o libgstdv_la-gstdvdemux.lo `test -f 'gstdvdemux.c' || echo '$(srcdir)/'`gstdvdemux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdv_la-gstdvdemux.Tpo $(DEPDIR)/libgstdv_la-gstdvdemux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdvdemux.c' object='libgstdv_la-gstdvdemux.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 $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstdvdemux.lo `test -f 'gstdvdemux.c' || echo '$(srcdir)/'`gstdvdemux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstdvdemux.lo `test -f 'gstdvdemux.c' || echo '$(srcdir)/'`gstdvdemux.c
 
 libgstdv_la-gstsmptetimecode.lo: gstsmptetimecode.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -MT libgstdv_la-gstsmptetimecode.lo -MD -MP -MF $(DEPDIR)/libgstdv_la-gstsmptetimecode.Tpo -c -o libgstdv_la-gstsmptetimecode.lo `test -f 'gstsmptetimecode.c' || echo '$(srcdir)/'`gstsmptetimecode.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -MT libgstdv_la-gstsmptetimecode.lo -MD -MP -MF $(DEPDIR)/libgstdv_la-gstsmptetimecode.Tpo -c -o libgstdv_la-gstsmptetimecode.lo `test -f 'gstsmptetimecode.c' || echo '$(srcdir)/'`gstsmptetimecode.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdv_la-gstsmptetimecode.Tpo $(DEPDIR)/libgstdv_la-gstsmptetimecode.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsmptetimecode.c' object='libgstdv_la-gstsmptetimecode.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 $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstsmptetimecode.lo `test -f 'gstsmptetimecode.c' || echo '$(srcdir)/'`gstsmptetimecode.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstsmptetimecode.lo `test -f 'gstsmptetimecode.c' || echo '$(srcdir)/'`gstsmptetimecode.c
 
 smpte_test-smpte_test.o: smpte_test.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -MT smpte_test-smpte_test.o -MD -MP -MF $(DEPDIR)/smpte_test-smpte_test.Tpo -c -o smpte_test-smpte_test.o `test -f 'smpte_test.c' || echo '$(srcdir)/'`smpte_test.c
diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c
index 6040270bd..b76d7daa9 100644
--- a/ext/dv/gstdvdemux.c
+++ b/ext/dv/gstdvdemux.c
@@ -272,6 +272,7 @@ gst_dvdemux_reset (GstDVDemux * dvdemux)
   dvdemux->upstream_time_segment = FALSE;
   dvdemux->have_group_id = FALSE;
   dvdemux->group_id = G_MAXUINT;
+  dvdemux->tag_event = NULL;
 }
 
 static gboolean
@@ -294,16 +295,35 @@ have_group_id (GstDVDemux * demux)
   return demux->have_group_id;
 }
 
+static GstEvent *
+gst_dvdemux_create_global_tag_event (GstDVDemux * dvdemux)
+{
+  gchar rec_datetime[40];
+  GstDateTime *rec_dt;
+  GstTagList *tags;
+
+  tags = gst_tag_list_new (GST_TAG_CONTAINER_FORMAT, "DV", NULL);
+  gst_tag_list_set_scope (tags, GST_TAG_SCOPE_GLOBAL);
+
+  if (dv_get_recording_datetime (dvdemux->decoder, rec_datetime)) {
+    rec_dt = gst_date_time_new_from_iso8601_string (rec_datetime);
+    if (rec_dt) {
+      gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_DATE_TIME,
+          rec_dt, NULL);
+      gst_date_time_unref (rec_dt);
+    }
+  }
+
+  return gst_event_new_tag (tags);
+}
+
 static GstPad *
 gst_dvdemux_add_pad (GstDVDemux * dvdemux, GstStaticPadTemplate * template,
     GstCaps * caps)
 {
-  gboolean no_more_pads;
   GstPad *pad;
   GstEvent *event;
   gchar *stream_id;
-  gchar rec_datetime[40];
-  GstDateTime *rec_dt;
 
   pad = gst_pad_new_from_static_template (template, template->name_template);
 
@@ -330,35 +350,12 @@ gst_dvdemux_add_pad (GstDVDemux * dvdemux, GstStaticPadTemplate * template,
 
   gst_element_add_pad (GST_ELEMENT (dvdemux), pad);
 
-  no_more_pads =
-      (dvdemux->videosrcpad != NULL && template == &audio_src_temp) ||
-      (dvdemux->audiosrcpad != NULL && template == &video_src_temp);
-
-  if (no_more_pads)
-    gst_element_no_more_pads (GST_ELEMENT (dvdemux));
-
-  if (no_more_pads) {
-    GstTagList *tags;
-
-    tags = gst_tag_list_new (GST_TAG_CONTAINER_FORMAT, "DV", NULL);
-    gst_tag_list_set_scope (tags, GST_TAG_SCOPE_GLOBAL);
-
-    if (dv_get_recording_datetime (dvdemux->decoder, rec_datetime)) {
-      rec_dt = gst_date_time_new_from_iso8601_string (rec_datetime);
-      if (rec_dt) {
-        gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_DATE_TIME,
-            rec_dt, NULL);
-        gst_date_time_unref (rec_dt);
-      }
-    }
+  if (!dvdemux->tag_event) {
+    dvdemux->tag_event = gst_dvdemux_create_global_tag_event (dvdemux);
+  }
 
-    if (dvdemux->videosrcpad)
-      gst_pad_push_event (dvdemux->videosrcpad,
-          gst_event_new_tag (gst_tag_list_ref (tags)));
-    if (dvdemux->audiosrcpad)
-      gst_pad_push_event (dvdemux->audiosrcpad,
-          gst_event_new_tag (gst_tag_list_ref (tags)));
-    gst_tag_list_unref (tags);
+  if (dvdemux->tag_event) {
+    gst_pad_push_event (pad, gst_event_ref (dvdemux->tag_event));
   }
 
   return pad;
@@ -1279,6 +1276,10 @@ gst_dvdemux_demux_audio (GstDVDemux * dvdemux, GstBuffer * buffer,
       if (G_UNLIKELY (dvdemux->audiosrcpad == NULL)) {
         dvdemux->audiosrcpad =
             gst_dvdemux_add_pad (dvdemux, &audio_src_temp, caps);
+
+        if (dvdemux->videosrcpad && dvdemux->audiosrcpad)
+          gst_element_no_more_pads (GST_ELEMENT (dvdemux));
+
       } else {
         gst_pad_set_caps (dvdemux->audiosrcpad, caps);
       }
@@ -1309,7 +1310,6 @@ gst_dvdemux_demux_audio (GstDVDemux * dvdemux, GstBuffer * buffer,
 
     if (dvdemux->new_media || dvdemux->discont)
       GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
-
     ret = gst_pad_push (dvdemux->audiosrcpad, outbuf);
   } else {
     /* no samples */
@@ -1372,6 +1372,10 @@ gst_dvdemux_demux_video (GstDVDemux * dvdemux, GstBuffer * buffer,
     if (G_UNLIKELY (dvdemux->videosrcpad == NULL)) {
       dvdemux->videosrcpad =
           gst_dvdemux_add_pad (dvdemux, &video_src_temp, caps);
+
+      if (dvdemux->videosrcpad && dvdemux->audiosrcpad)
+        gst_element_no_more_pads (GST_ELEMENT (dvdemux));
+
     } else {
       gst_pad_set_caps (dvdemux->videosrcpad, caps);
     }
@@ -2018,6 +2022,12 @@ gst_dvdemux_change_state (GstElement * element, GstStateChange transition)
       dvdemux->decoder = NULL;
 
       gst_dvdemux_remove_pads (dvdemux);
+
+      if (dvdemux->tag_event) {
+        gst_event_unref (dvdemux->tag_event);
+        dvdemux->tag_event = NULL;
+      }
+
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
     {
diff --git a/ext/dv/gstdvdemux.h b/ext/dv/gstdvdemux.h
index 1e8abbf5f..95c93206d 100644
--- a/ext/dv/gstdvdemux.h
+++ b/ext/dv/gstdvdemux.h
@@ -86,6 +86,7 @@ struct _GstDVDemux {
   gint           found_header; /* ATOMIC */
   GstEvent      *seek_event;
   GstEvent	*pending_segment;
+  GstEvent      *tag_event;
 
   gint16        *audio_buffers[4];
 };
diff --git a/ext/flac/Makefile.am b/ext/flac/Makefile.am
index ed1ce104f..994955ca4 100644
--- a/ext/flac/Makefile.am
+++ b/ext/flac/Makefile.am
@@ -8,6 +8,5 @@ libgstflac_la_LIBADD = \
 	-lgstaudio-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(FLAC_LIBS)
 libgstflac_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstflac_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstflacenc.h gstflacdec.h gstflactag.h
diff --git a/ext/flac/Makefile.in b/ext/flac/Makefile.in
index 436ed0157..f3a9d7ccd 100644
--- a/ext/flac/Makefile.in
+++ b/ext/flac/Makefile.in
@@ -174,10 +174,9 @@ 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 $@
+libgstflac_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -294,6 +293,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -317,6 +317,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -332,6 +334,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -354,10 +358,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -372,6 +383,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -389,6 +401,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -401,6 +415,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -419,6 +435,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -462,9 +481,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -478,11 +508,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -584,7 +619,6 @@ libgstflac_la_LIBADD = \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(FLAC_LIBS)
 
 libgstflac_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstflac_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstflacenc.h gstflacdec.h gstflactag.h
 all: all-am
 
@@ -694,32 +728,32 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstflac_la-gstflac.lo: gstflac.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -MT libgstflac_la-gstflac.lo -MD -MP -MF $(DEPDIR)/libgstflac_la-gstflac.Tpo -c -o libgstflac_la-gstflac.lo `test -f 'gstflac.c' || echo '$(srcdir)/'`gstflac.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -MT libgstflac_la-gstflac.lo -MD -MP -MF $(DEPDIR)/libgstflac_la-gstflac.Tpo -c -o libgstflac_la-gstflac.lo `test -f 'gstflac.c' || echo '$(srcdir)/'`gstflac.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstflac_la-gstflac.Tpo $(DEPDIR)/libgstflac_la-gstflac.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstflac.c' object='libgstflac_la-gstflac.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 $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflac.lo `test -f 'gstflac.c' || echo '$(srcdir)/'`gstflac.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflac.lo `test -f 'gstflac.c' || echo '$(srcdir)/'`gstflac.c
 
 libgstflac_la-gstflacdec.lo: gstflacdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -MT libgstflac_la-gstflacdec.lo -MD -MP -MF $(DEPDIR)/libgstflac_la-gstflacdec.Tpo -c -o libgstflac_la-gstflacdec.lo `test -f 'gstflacdec.c' || echo '$(srcdir)/'`gstflacdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -MT libgstflac_la-gstflacdec.lo -MD -MP -MF $(DEPDIR)/libgstflac_la-gstflacdec.Tpo -c -o libgstflac_la-gstflacdec.lo `test -f 'gstflacdec.c' || echo '$(srcdir)/'`gstflacdec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstflac_la-gstflacdec.Tpo $(DEPDIR)/libgstflac_la-gstflacdec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstflacdec.c' object='libgstflac_la-gstflacdec.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 $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflacdec.lo `test -f 'gstflacdec.c' || echo '$(srcdir)/'`gstflacdec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflacdec.lo `test -f 'gstflacdec.c' || echo '$(srcdir)/'`gstflacdec.c
 
 libgstflac_la-gstflacenc.lo: gstflacenc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -MT libgstflac_la-gstflacenc.lo -MD -MP -MF $(DEPDIR)/libgstflac_la-gstflacenc.Tpo -c -o libgstflac_la-gstflacenc.lo `test -f 'gstflacenc.c' || echo '$(srcdir)/'`gstflacenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -MT libgstflac_la-gstflacenc.lo -MD -MP -MF $(DEPDIR)/libgstflac_la-gstflacenc.Tpo -c -o libgstflac_la-gstflacenc.lo `test -f 'gstflacenc.c' || echo '$(srcdir)/'`gstflacenc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstflac_la-gstflacenc.Tpo $(DEPDIR)/libgstflac_la-gstflacenc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstflacenc.c' object='libgstflac_la-gstflacenc.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 $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflacenc.lo `test -f 'gstflacenc.c' || echo '$(srcdir)/'`gstflacenc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflacenc.lo `test -f 'gstflacenc.c' || echo '$(srcdir)/'`gstflacenc.c
 
 libgstflac_la-gstflactag.lo: gstflactag.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -MT libgstflac_la-gstflactag.lo -MD -MP -MF $(DEPDIR)/libgstflac_la-gstflactag.Tpo -c -o libgstflac_la-gstflactag.lo `test -f 'gstflactag.c' || echo '$(srcdir)/'`gstflactag.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -MT libgstflac_la-gstflactag.lo -MD -MP -MF $(DEPDIR)/libgstflac_la-gstflactag.Tpo -c -o libgstflac_la-gstflactag.lo `test -f 'gstflactag.c' || echo '$(srcdir)/'`gstflactag.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstflac_la-gstflactag.Tpo $(DEPDIR)/libgstflac_la-gstflactag.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstflactag.c' object='libgstflac_la-gstflactag.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 $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflactag.lo `test -f 'gstflactag.c' || echo '$(srcdir)/'`gstflactag.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflactag.lo `test -f 'gstflactag.c' || echo '$(srcdir)/'`gstflactag.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c
index dbaa0f171..15f19e670 100644
--- a/ext/flac/gstflacdec.c
+++ b/ext/flac/gstflacdec.c
@@ -178,6 +178,7 @@ gst_flac_dec_class_init (GstFlacDecClass * klass)
 static void
 gst_flac_dec_init (GstFlacDec * flacdec)
 {
+  flacdec->do_resync = FALSE;
   gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (flacdec), TRUE);
   gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
       (flacdec), TRUE);
@@ -511,7 +512,7 @@ gst_flac_dec_error_cb (const FLAC__StreamDecoder * d,
 
   switch (status) {
     case FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC:
-      /* Ignore this error and keep processing */
+      dec->do_resync = TRUE;
       return;
     case FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER:
       error = "bad header";
@@ -741,6 +742,7 @@ gst_flac_dec_flush (GstAudioDecoder * audio_dec, gboolean hard)
     }
   }
 
+  dec->do_resync = FALSE;
   FLAC__stream_decoder_flush (dec->decoder);
   gst_adapter_clear (dec->adapter);
 }
@@ -758,6 +760,12 @@ gst_flac_dec_handle_frame (GstAudioDecoder * audio_dec, GstBuffer * buf)
     return GST_FLOW_OK;
   }
 
+  if (dec->do_resync) {
+    GST_WARNING_OBJECT (dec, "Lost sync, flushing decoder");
+    FLAC__stream_decoder_flush (dec->decoder);
+    dec->do_resync = FALSE;
+  }
+
   GST_LOG_OBJECT (dec, "frame: ts %" GST_TIME_FORMAT ", flags 0x%04x, "
       "%" G_GSIZE_FORMAT " bytes", GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
       GST_BUFFER_FLAGS (buf), gst_buffer_get_size (buf));
diff --git a/ext/flac/gstflacdec.h b/ext/flac/gstflacdec.h
index e8d073a51..c63b300ba 100644
--- a/ext/flac/gstflacdec.h
+++ b/ext/flac/gstflacdec.h
@@ -59,6 +59,7 @@ struct _GstFlacDec {
   guint16        min_blocksize;
   guint16        max_blocksize;
 
+  gboolean       do_resync;
   gint           error_count;
 };
 
diff --git a/ext/flac/gstflactag.c b/ext/flac/gstflactag.c
index 8047bd90d..e2e239f4a 100644
--- a/ext/flac/gstflactag.c
+++ b/ext/flac/gstflactag.c
@@ -493,6 +493,8 @@ gst_flac_tag_change_state (GstElement * element, GstStateChange transition)
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
       break;
+    default:
+      break;
   }
 
   return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
diff --git a/ext/gdk_pixbuf/Makefile.am b/ext/gdk_pixbuf/Makefile.am
index df8945354..584008666 100644
--- a/ext/gdk_pixbuf/Makefile.am
+++ b/ext/gdk_pixbuf/Makefile.am
@@ -19,7 +19,6 @@ libgstgdkpixbuf_la_LIBADD = \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) $(GDK_PIXBUF_LIBS)
 libgstgdkpixbuf_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstgdkpixbuf_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = \
 	gstgdkpixbufdec.h \
diff --git a/ext/gdk_pixbuf/Makefile.in b/ext/gdk_pixbuf/Makefile.in
index d18cb750e..77f6ae01c 100644
--- a/ext/gdk_pixbuf/Makefile.in
+++ b/ext/gdk_pixbuf/Makefile.in
@@ -176,8 +176,8 @@ 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) \
+	$(AM_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@)
@@ -295,6 +295,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -318,6 +319,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -333,6 +336,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -355,10 +360,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -373,6 +385,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -390,6 +403,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -402,6 +417,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -420,6 +437,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -463,9 +483,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -479,11 +510,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -597,7 +633,6 @@ libgstgdkpixbuf_la_LIBADD = \
 	$(GST_LIBS) $(GDK_PIXBUF_LIBS)
 
 libgstgdkpixbuf_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstgdkpixbuf_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
 	gstgdkpixbufdec.h \
 	gstgdkpixbufoverlay.h \
@@ -711,32 +746,32 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstgdkpixbuf_la-gstgdkpixbufdec.lo: gstgdkpixbufdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -MT libgstgdkpixbuf_la-gstgdkpixbufdec.lo -MD -MP -MF $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufdec.Tpo -c -o libgstgdkpixbuf_la-gstgdkpixbufdec.lo `test -f 'gstgdkpixbufdec.c' || echo '$(srcdir)/'`gstgdkpixbufdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -MT libgstgdkpixbuf_la-gstgdkpixbufdec.lo -MD -MP -MF $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufdec.Tpo -c -o libgstgdkpixbuf_la-gstgdkpixbufdec.lo `test -f 'gstgdkpixbufdec.c' || echo '$(srcdir)/'`gstgdkpixbufdec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufdec.Tpo $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufdec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgdkpixbufdec.c' object='libgstgdkpixbuf_la-gstgdkpixbufdec.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 $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-gstgdkpixbufdec.lo `test -f 'gstgdkpixbufdec.c' || echo '$(srcdir)/'`gstgdkpixbufdec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-gstgdkpixbufdec.lo `test -f 'gstgdkpixbufdec.c' || echo '$(srcdir)/'`gstgdkpixbufdec.c
 
 libgstgdkpixbuf_la-gstgdkpixbufoverlay.lo: gstgdkpixbufoverlay.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -MT libgstgdkpixbuf_la-gstgdkpixbufoverlay.lo -MD -MP -MF $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufoverlay.Tpo -c -o libgstgdkpixbuf_la-gstgdkpixbufoverlay.lo `test -f 'gstgdkpixbufoverlay.c' || echo '$(srcdir)/'`gstgdkpixbufoverlay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -MT libgstgdkpixbuf_la-gstgdkpixbufoverlay.lo -MD -MP -MF $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufoverlay.Tpo -c -o libgstgdkpixbuf_la-gstgdkpixbufoverlay.lo `test -f 'gstgdkpixbufoverlay.c' || echo '$(srcdir)/'`gstgdkpixbufoverlay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufoverlay.Tpo $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufoverlay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgdkpixbufoverlay.c' object='libgstgdkpixbuf_la-gstgdkpixbufoverlay.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 $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-gstgdkpixbufoverlay.lo `test -f 'gstgdkpixbufoverlay.c' || echo '$(srcdir)/'`gstgdkpixbufoverlay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-gstgdkpixbufoverlay.lo `test -f 'gstgdkpixbufoverlay.c' || echo '$(srcdir)/'`gstgdkpixbufoverlay.c
 
 libgstgdkpixbuf_la-gstgdkpixbufplugin.lo: gstgdkpixbufplugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -MT libgstgdkpixbuf_la-gstgdkpixbufplugin.lo -MD -MP -MF $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufplugin.Tpo -c -o libgstgdkpixbuf_la-gstgdkpixbufplugin.lo `test -f 'gstgdkpixbufplugin.c' || echo '$(srcdir)/'`gstgdkpixbufplugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -MT libgstgdkpixbuf_la-gstgdkpixbufplugin.lo -MD -MP -MF $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufplugin.Tpo -c -o libgstgdkpixbuf_la-gstgdkpixbufplugin.lo `test -f 'gstgdkpixbufplugin.c' || echo '$(srcdir)/'`gstgdkpixbufplugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufplugin.Tpo $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufplugin.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgdkpixbufplugin.c' object='libgstgdkpixbuf_la-gstgdkpixbufplugin.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 $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-gstgdkpixbufplugin.lo `test -f 'gstgdkpixbufplugin.c' || echo '$(srcdir)/'`gstgdkpixbufplugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-gstgdkpixbufplugin.lo `test -f 'gstgdkpixbufplugin.c' || echo '$(srcdir)/'`gstgdkpixbufplugin.c
 
 libgstgdkpixbuf_la-gstgdkpixbufsink.lo: gstgdkpixbufsink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -MT libgstgdkpixbuf_la-gstgdkpixbufsink.lo -MD -MP -MF $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufsink.Tpo -c -o libgstgdkpixbuf_la-gstgdkpixbufsink.lo `test -f 'gstgdkpixbufsink.c' || echo '$(srcdir)/'`gstgdkpixbufsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -MT libgstgdkpixbuf_la-gstgdkpixbufsink.lo -MD -MP -MF $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufsink.Tpo -c -o libgstgdkpixbuf_la-gstgdkpixbufsink.lo `test -f 'gstgdkpixbufsink.c' || echo '$(srcdir)/'`gstgdkpixbufsink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufsink.Tpo $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufsink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgdkpixbufsink.c' object='libgstgdkpixbuf_la-gstgdkpixbufsink.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 $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-gstgdkpixbufsink.lo `test -f 'gstgdkpixbufsink.c' || echo '$(srcdir)/'`gstgdkpixbufsink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-gstgdkpixbufsink.lo `test -f 'gstgdkpixbufsink.c' || echo '$(srcdir)/'`gstgdkpixbufsink.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/gdk_pixbuf/gstgdkpixbufdec.c b/ext/gdk_pixbuf/gstgdkpixbufdec.c
index 1598c53be..09211bf17 100644
--- a/ext/gdk_pixbuf/gstgdkpixbufdec.c
+++ b/ext/gdk_pixbuf/gstgdkpixbufdec.c
@@ -38,7 +38,7 @@ static GstStaticPadTemplate gst_gdk_pixbuf_dec_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("image/png; "
         /* "image/jpeg; " disabled because we can't handle MJPEG */
-        "image/gif; "
+        /*"image/gif; " disabled because we can't handle animated gifs */
         "image/x-icon; "
         "application/x-navi-animation; "
         "image/x-cmu-raster; "
diff --git a/ext/gdk_pixbuf/gstgdkpixbufsink.c b/ext/gdk_pixbuf/gstgdkpixbufsink.c
index fabd6bf8f..6c4cf3dc9 100644
--- a/ext/gdk_pixbuf/gstgdkpixbufsink.c
+++ b/ext/gdk_pixbuf/gstgdkpixbufsink.c
@@ -41,7 +41,7 @@
  * purposes - just wait until the pipeline is prerolled (ASYNC_DONE message
  * on the bus), then read the property. If you use this method, you may want
  * to disable message posting by setting the #GstGdkPixbufSink:post-messages
- * property to #FALSE. This avoids unnecessary memory overhead.
+ * property to %FALSE. This avoids unnecessary memory overhead.
  * </listitem>
  * </itemizedlist>
  *
@@ -60,7 +60,7 @@
  * containing structures named <classname>&quot;preroll-pixbuf&quot;
  * </classname> or <classname>&quot;pixbuf&quot;</classname> on the bus (this
  * can be disabled by setting the #GstGdkPixbufSink:post-messages property
- * to #FALSE though). The element message structure has the following fields:
+ * to %FALSE though). The element message structure has the following fields:
  * <itemizedlist>
  * <listitem>
  *   <classname>&quot;pixbuf&quot;</classname>: the #GdkPixbuf object
diff --git a/ext/gtk/Makefile.am b/ext/gtk/Makefile.am
new file mode 100644
index 000000000..a1eec2627
--- /dev/null
+++ b/ext/gtk/Makefile.am
@@ -0,0 +1,44 @@
+# preamble
+NULL =
+BUILT_SOURCES =
+CLEANFILES =
+EXTRA_DIST =
+DISTCLEANFILES =
+lib_LTLIBRARIES =
+
+# source
+sources = \
+	gtkgstbasewidget.c \
+	gtkgstbasewidget.h \
+	gtkgstwidget.c \
+	gtkgstwidget.h \
+	gstgtkbasesink.c \
+	gstgtkbasesink.h \
+	gstgtksink.c \
+	gstgtksink.h \
+	gstgtkutils.c \
+	gstgtkutils.h \
+	gstplugin.c \
+	$(NULL)
+
+libgstgtk_la_CFLAGS = \
+	$(GST_PLUGINS_BAD_CFLAGS) \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_GL_CFLAGS) \
+	$(GST_CFLAGS) \
+	$(GTK3_CFLAGS)
+libgstgtk_la_LIBADD = \
+	$(GST_PLUGINS_BASE_LIBS) \
+	-lgstvideo-$(GST_API_VERSION) \
+	$(GST_BASE_LIBS) \
+	$(GTK3_LIBS)
+
+libgstgtk_la_SOURCES = $(sources)
+libgstgtk_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+
+if USE_GTK3_GL
+libgstgtk_la_SOURCES += gstgtkglsink.c gstgtkglsink.h gtkgstglwidget.c gtkgstglwidget.h
+libgstgtk_la_LIBADD += $(GST_GL_LIBS)
+endif
+
+plugin_LTLIBRARIES = libgstgtk.la
diff --git a/ext/gtk/Makefile.in b/ext/gtk/Makefile.in
new file mode 100644
index 000000000..73a88c9b5
--- /dev/null
+++ b/ext/gtk/Makefile.in
@@ -0,0 +1,1085 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 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 = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+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@
+@USE_GTK3_GL_TRUE@am__append_1 = gstgtkglsink.c gstgtkglsink.h gtkgstglwidget.c gtkgstglwidget.h
+@USE_GTK3_GL_TRUE@am__append_2 = $(GST_GL_LIBS)
+subdir = ext/gtk
+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-version.m4 \
+	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.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.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)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+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)$(libdir)" "$(DESTDIR)$(plugindir)"
+LTLIBRARIES = $(lib_LTLIBRARIES) $(plugin_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+@USE_GTK3_GL_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
+libgstgtk_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_2)
+am__libgstgtk_la_SOURCES_DIST = gtkgstbasewidget.c gtkgstbasewidget.h \
+	gtkgstwidget.c gtkgstwidget.h gstgtkbasesink.c \
+	gstgtkbasesink.h gstgtksink.c gstgtksink.h gstgtkutils.c \
+	gstgtkutils.h gstplugin.c gstgtkglsink.c gstgtkglsink.h \
+	gtkgstglwidget.c gtkgstglwidget.h
+am__objects_1 =
+am__objects_2 = libgstgtk_la-gtkgstbasewidget.lo \
+	libgstgtk_la-gtkgstwidget.lo libgstgtk_la-gstgtkbasesink.lo \
+	libgstgtk_la-gstgtksink.lo libgstgtk_la-gstgtkutils.lo \
+	libgstgtk_la-gstplugin.lo $(am__objects_1)
+@USE_GTK3_GL_TRUE@am__objects_3 = libgstgtk_la-gstgtkglsink.lo \
+@USE_GTK3_GL_TRUE@	libgstgtk_la-gtkgstglwidget.lo
+am_libgstgtk_la_OBJECTS = $(am__objects_2) $(am__objects_3)
+libgstgtk_la_OBJECTS = $(am_libgstgtk_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 = 
+libgstgtk_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgstgtk_la_CFLAGS) \
+	$(CFLAGS) $(libgstgtk_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 = $(libgstgtk_la_SOURCES)
+DIST_SOURCES = $(am__libgstgtk_la_SOURCES_DIST)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    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__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+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@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+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@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
+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_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
+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_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
+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_PREFIX = @GST_PREFIX@
+GST_REVISION = @GST_REVISION@
+GST_TOOLS_DIR = @GST_TOOLS_DIR@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
+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_CXX = @HAVE_CXX@
+HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
+HAVE_ROM1394 = @HAVE_ROM1394@
+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@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_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_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
+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@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
+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@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+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@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
+RANLIB = @RANLIB@
+RAW1394_CFLAGS = @RAW1394_CFLAGS@
+RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
+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@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
+USE_NLS = @USE_NLS@
+VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+VALGRIND_LIBS = @VALGRIND_LIBS@
+VALGRIND_PATH = @VALGRIND_PATH@
+VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
+VPX_130_CFLAGS = @VPX_130_CFLAGS@
+VPX_130_LIBS = @VPX_130_LIBS@
+VPX_140_CFLAGS = @VPX_140_CFLAGS@
+VPX_140_LIBS = @VPX_140_LIBS@
+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@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XFIXES_CFLAGS = @XFIXES_CFLAGS@
+XFIXES_LIBS = @XFIXES_LIBS@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XSHM_CFLAGS = @XSHM_CFLAGS@
+XSHM_LIBS = @XSHM_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_LIBS = @X_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@
+ax_pthread_config = @ax_pthread_config@
+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@
+runstatedir = @runstatedir@
+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@
+
+# preamble
+NULL = 
+BUILT_SOURCES = 
+CLEANFILES = 
+EXTRA_DIST = 
+DISTCLEANFILES = 
+lib_LTLIBRARIES = 
+
+# source
+sources = \
+	gtkgstbasewidget.c \
+	gtkgstbasewidget.h \
+	gtkgstwidget.c \
+	gtkgstwidget.h \
+	gstgtkbasesink.c \
+	gstgtkbasesink.h \
+	gstgtksink.c \
+	gstgtksink.h \
+	gstgtkutils.c \
+	gstgtkutils.h \
+	gstplugin.c \
+	$(NULL)
+
+libgstgtk_la_CFLAGS = \
+	$(GST_PLUGINS_BAD_CFLAGS) \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_GL_CFLAGS) \
+	$(GST_CFLAGS) \
+	$(GTK3_CFLAGS)
+
+libgstgtk_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
+	-lgstvideo-$(GST_API_VERSION) $(GST_BASE_LIBS) $(GTK3_LIBS) \
+	$(am__append_2)
+libgstgtk_la_SOURCES = $(sources) $(am__append_1)
+libgstgtk_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+plugin_LTLIBRARIES = libgstgtk.la
+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)
+	@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 ext/gtk/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu ext/gtk/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-libLTLIBRARIES: $(lib_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || 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)$(libdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+	}
+
+uninstall-libLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+	done
+
+clean-libLTLIBRARIES:
+	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+	@list='$(lib_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}; \
+	}
+
+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}; \
+	}
+
+libgstgtk.la: $(libgstgtk_la_OBJECTS) $(libgstgtk_la_DEPENDENCIES) $(EXTRA_libgstgtk_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstgtk_la_LINK) -rpath $(plugindir) $(libgstgtk_la_OBJECTS) $(libgstgtk_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtk_la-gstgtkbasesink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtk_la-gstgtkglsink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtk_la-gstgtksink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtk_la-gstgtkutils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtk_la-gstplugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtk_la-gtkgstbasewidget.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtk_la-gtkgstglwidget.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtk_la-gtkgstwidget.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
+
+libgstgtk_la-gtkgstbasewidget.lo: gtkgstbasewidget.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -MT libgstgtk_la-gtkgstbasewidget.lo -MD -MP -MF $(DEPDIR)/libgstgtk_la-gtkgstbasewidget.Tpo -c -o libgstgtk_la-gtkgstbasewidget.lo `test -f 'gtkgstbasewidget.c' || echo '$(srcdir)/'`gtkgstbasewidget.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgtk_la-gtkgstbasewidget.Tpo $(DEPDIR)/libgstgtk_la-gtkgstbasewidget.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gtkgstbasewidget.c' object='libgstgtk_la-gtkgstbasewidget.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -c -o libgstgtk_la-gtkgstbasewidget.lo `test -f 'gtkgstbasewidget.c' || echo '$(srcdir)/'`gtkgstbasewidget.c
+
+libgstgtk_la-gtkgstwidget.lo: gtkgstwidget.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -MT libgstgtk_la-gtkgstwidget.lo -MD -MP -MF $(DEPDIR)/libgstgtk_la-gtkgstwidget.Tpo -c -o libgstgtk_la-gtkgstwidget.lo `test -f 'gtkgstwidget.c' || echo '$(srcdir)/'`gtkgstwidget.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgtk_la-gtkgstwidget.Tpo $(DEPDIR)/libgstgtk_la-gtkgstwidget.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gtkgstwidget.c' object='libgstgtk_la-gtkgstwidget.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -c -o libgstgtk_la-gtkgstwidget.lo `test -f 'gtkgstwidget.c' || echo '$(srcdir)/'`gtkgstwidget.c
+
+libgstgtk_la-gstgtkbasesink.lo: gstgtkbasesink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -MT libgstgtk_la-gstgtkbasesink.lo -MD -MP -MF $(DEPDIR)/libgstgtk_la-gstgtkbasesink.Tpo -c -o libgstgtk_la-gstgtkbasesink.lo `test -f 'gstgtkbasesink.c' || echo '$(srcdir)/'`gstgtkbasesink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgtk_la-gstgtkbasesink.Tpo $(DEPDIR)/libgstgtk_la-gstgtkbasesink.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgtkbasesink.c' object='libgstgtk_la-gstgtkbasesink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -c -o libgstgtk_la-gstgtkbasesink.lo `test -f 'gstgtkbasesink.c' || echo '$(srcdir)/'`gstgtkbasesink.c
+
+libgstgtk_la-gstgtksink.lo: gstgtksink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -MT libgstgtk_la-gstgtksink.lo -MD -MP -MF $(DEPDIR)/libgstgtk_la-gstgtksink.Tpo -c -o libgstgtk_la-gstgtksink.lo `test -f 'gstgtksink.c' || echo '$(srcdir)/'`gstgtksink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgtk_la-gstgtksink.Tpo $(DEPDIR)/libgstgtk_la-gstgtksink.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgtksink.c' object='libgstgtk_la-gstgtksink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -c -o libgstgtk_la-gstgtksink.lo `test -f 'gstgtksink.c' || echo '$(srcdir)/'`gstgtksink.c
+
+libgstgtk_la-gstgtkutils.lo: gstgtkutils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -MT libgstgtk_la-gstgtkutils.lo -MD -MP -MF $(DEPDIR)/libgstgtk_la-gstgtkutils.Tpo -c -o libgstgtk_la-gstgtkutils.lo `test -f 'gstgtkutils.c' || echo '$(srcdir)/'`gstgtkutils.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgtk_la-gstgtkutils.Tpo $(DEPDIR)/libgstgtk_la-gstgtkutils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgtkutils.c' object='libgstgtk_la-gstgtkutils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -c -o libgstgtk_la-gstgtkutils.lo `test -f 'gstgtkutils.c' || echo '$(srcdir)/'`gstgtkutils.c
+
+libgstgtk_la-gstplugin.lo: gstplugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -MT libgstgtk_la-gstplugin.lo -MD -MP -MF $(DEPDIR)/libgstgtk_la-gstplugin.Tpo -c -o libgstgtk_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgtk_la-gstplugin.Tpo $(DEPDIR)/libgstgtk_la-gstplugin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstplugin.c' object='libgstgtk_la-gstplugin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -c -o libgstgtk_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c
+
+libgstgtk_la-gstgtkglsink.lo: gstgtkglsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -MT libgstgtk_la-gstgtkglsink.lo -MD -MP -MF $(DEPDIR)/libgstgtk_la-gstgtkglsink.Tpo -c -o libgstgtk_la-gstgtkglsink.lo `test -f 'gstgtkglsink.c' || echo '$(srcdir)/'`gstgtkglsink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgtk_la-gstgtkglsink.Tpo $(DEPDIR)/libgstgtk_la-gstgtkglsink.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgtkglsink.c' object='libgstgtk_la-gstgtkglsink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -c -o libgstgtk_la-gstgtkglsink.lo `test -f 'gstgtkglsink.c' || echo '$(srcdir)/'`gstgtkglsink.c
+
+libgstgtk_la-gtkgstglwidget.lo: gtkgstglwidget.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -MT libgstgtk_la-gtkgstglwidget.lo -MD -MP -MF $(DEPDIR)/libgstgtk_la-gtkgstglwidget.Tpo -c -o libgstgtk_la-gtkgstglwidget.lo `test -f 'gtkgstglwidget.c' || echo '$(srcdir)/'`gtkgstglwidget.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgtk_la-gtkgstglwidget.Tpo $(DEPDIR)/libgstgtk_la-gtkgstglwidget.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gtkgstglwidget.c' object='libgstgtk_la-gtkgstglwidget.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtk_la_CFLAGS) $(CFLAGS) -c -o libgstgtk_la-gtkgstglwidget.lo `test -f 'gtkgstglwidget.c' || echo '$(srcdir)/'`gtkgstglwidget.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: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(plugindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) 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:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+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)
+	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+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-libLTLIBRARIES 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-libLTLIBRARIES
+
+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-libLTLIBRARIES uninstall-pluginLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES 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-libLTLIBRARIES \
+	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-libLTLIBRARIES uninstall-pluginLTLIBRARIES
+
+.PRECIOUS: Makefile
+
+
+# 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/ext/gtk/gstgtkbasesink.c b/ext/gtk/gstgtkbasesink.c
new file mode 100644
index 000000000..843c97f1b
--- /dev/null
+++ b/ext/gtk/gstgtkbasesink.c
@@ -0,0 +1,495 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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:gtkgstsink
+ * @title: GstGtkBaseSink
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstgtkbasesink.h"
+#include "gstgtkutils.h"
+
+GST_DEBUG_CATEGORY (gst_debug_gtk_base_sink);
+#define GST_CAT_DEFAULT gst_debug_gtk_base_sink
+
+#define DEFAULT_FORCE_ASPECT_RATIO  TRUE
+#define DEFAULT_PAR_N               0
+#define DEFAULT_PAR_D               1
+#define DEFAULT_IGNORE_ALPHA        TRUE
+
+static void gst_gtk_base_sink_finalize (GObject * object);
+static void gst_gtk_base_sink_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * param_spec);
+static void gst_gtk_base_sink_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * param_spec);
+
+static gboolean gst_gtk_base_sink_start (GstBaseSink * bsink);
+static gboolean gst_gtk_base_sink_stop (GstBaseSink * bsink);
+
+static GstStateChangeReturn
+gst_gtk_base_sink_change_state (GstElement * element,
+    GstStateChange transition);
+
+static void gst_gtk_base_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
+    GstClockTime * start, GstClockTime * end);
+static gboolean gst_gtk_base_sink_set_caps (GstBaseSink * bsink,
+    GstCaps * caps);
+static GstFlowReturn gst_gtk_base_sink_show_frame (GstVideoSink * bsink,
+    GstBuffer * buf);
+
+static void
+gst_gtk_base_sink_navigation_interface_init (GstNavigationInterface * iface);
+
+enum
+{
+  PROP_0,
+  PROP_WIDGET,
+  PROP_FORCE_ASPECT_RATIO,
+  PROP_PIXEL_ASPECT_RATIO,
+  PROP_IGNORE_ALPHA,
+};
+
+#define gst_gtk_base_sink_parent_class parent_class
+G_DEFINE_ABSTRACT_TYPE_WITH_CODE (GstGtkBaseSink, gst_gtk_base_sink,
+    GST_TYPE_VIDEO_SINK,
+    G_IMPLEMENT_INTERFACE (GST_TYPE_NAVIGATION,
+        gst_gtk_base_sink_navigation_interface_init);
+    GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_base_sink,
+        "gtkbasesink", 0, "Gtk Video Sink base class"));
+
+
+static void
+gst_gtk_base_sink_class_init (GstGtkBaseSinkClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+  GstBaseSinkClass *gstbasesink_class;
+  GstVideoSinkClass *gstvideosink_class;
+
+  gobject_class = (GObjectClass *) klass;
+  gstelement_class = (GstElementClass *) klass;
+  gstbasesink_class = (GstBaseSinkClass *) klass;
+  gstvideosink_class = (GstVideoSinkClass *) klass;
+
+  gobject_class->set_property = gst_gtk_base_sink_set_property;
+  gobject_class->get_property = gst_gtk_base_sink_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_WIDGET,
+      g_param_spec_object ("widget", "Gtk Widget",
+          "The GtkWidget to place in the widget hierarchy "
+          "(must only be get from the GTK main thread)",
+          GTK_TYPE_WIDGET, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO,
+      g_param_spec_boolean ("force-aspect-ratio",
+          "Force aspect ratio",
+          "When enabled, scaling will respect original aspect ratio",
+          DEFAULT_FORCE_ASPECT_RATIO,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_PIXEL_ASPECT_RATIO,
+      gst_param_spec_fraction ("pixel-aspect-ratio", "Pixel Aspect Ratio",
+          "The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D,
+          G_MAXINT, 1, 1, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_IGNORE_ALPHA,
+      g_param_spec_boolean ("ignore-alpha", "Ignore Alpha",
+          "When enabled, alpha will be ignored and converted to black",
+          DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gobject_class->finalize = gst_gtk_base_sink_finalize;
+
+  gstelement_class->change_state = gst_gtk_base_sink_change_state;
+  gstbasesink_class->set_caps = gst_gtk_base_sink_set_caps;
+  gstbasesink_class->get_times = gst_gtk_base_sink_get_times;
+  gstbasesink_class->start = gst_gtk_base_sink_start;
+  gstbasesink_class->stop = gst_gtk_base_sink_stop;
+
+  gstvideosink_class->show_frame = gst_gtk_base_sink_show_frame;
+}
+
+static void
+gst_gtk_base_sink_init (GstGtkBaseSink * gtk_sink)
+{
+  gtk_sink->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO;
+  gtk_sink->par_n = DEFAULT_PAR_N;
+  gtk_sink->par_d = DEFAULT_PAR_D;
+  gtk_sink->ignore_alpha = DEFAULT_IGNORE_ALPHA;
+}
+
+static void
+gst_gtk_base_sink_finalize (GObject * object)
+{
+  GstGtkBaseSink *gtk_sink = GST_GTK_BASE_SINK (object);
+
+  GST_OBJECT_LOCK (gtk_sink);
+  if (gtk_sink->window && gtk_sink->window_destroy_id)
+    g_signal_handler_disconnect (gtk_sink->window, gtk_sink->window_destroy_id);
+  if (gtk_sink->widget && gtk_sink->widget_destroy_id)
+    g_signal_handler_disconnect (gtk_sink->widget, gtk_sink->widget_destroy_id);
+
+  g_clear_object (&gtk_sink->widget);
+  GST_OBJECT_UNLOCK (gtk_sink);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+widget_destroy_cb (GtkWidget * widget, GstGtkBaseSink * gtk_sink)
+{
+  GST_OBJECT_LOCK (gtk_sink);
+  g_clear_object (&gtk_sink->widget);
+  GST_OBJECT_UNLOCK (gtk_sink);
+}
+
+static void
+window_destroy_cb (GtkWidget * widget, GstGtkBaseSink * gtk_sink)
+{
+  GST_OBJECT_LOCK (gtk_sink);
+  gtk_sink->window = NULL;
+  GST_OBJECT_UNLOCK (gtk_sink);
+}
+
+static GtkGstBaseWidget *
+gst_gtk_base_sink_get_widget (GstGtkBaseSink * gtk_sink)
+{
+  if (gtk_sink->widget != NULL)
+    return gtk_sink->widget;
+
+  /* Ensure GTK is initialized, this has no side effect if it was already
+   * initialized. Also, we do that lazily, so the application can be first */
+  if (!gtk_init_check (NULL, NULL)) {
+    GST_ERROR_OBJECT (gtk_sink, "Could not ensure GTK initialization.");
+    return NULL;
+  }
+
+  g_assert (GST_GTK_BASE_SINK_GET_CLASS (gtk_sink)->create_widget);
+  gtk_sink->widget = (GtkGstBaseWidget *)
+      GST_GTK_BASE_SINK_GET_CLASS (gtk_sink)->create_widget ();
+
+  gtk_sink->bind_aspect_ratio =
+      g_object_bind_property (gtk_sink, "force-aspect-ratio", gtk_sink->widget,
+      "force-aspect-ratio", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
+  gtk_sink->bind_pixel_aspect_ratio =
+      g_object_bind_property (gtk_sink, "pixel-aspect-ratio", gtk_sink->widget,
+      "pixel-aspect-ratio", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
+  gtk_sink->bind_ignore_alpha =
+      g_object_bind_property (gtk_sink, "ignore-alpha", gtk_sink->widget,
+      "ignore-alpha", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
+
+  /* Take the floating ref, other wise the destruction of the container will
+   * make this widget disapear possibly before we are done. */
+  gst_object_ref_sink (gtk_sink->widget);
+  gtk_sink->widget_destroy_id = g_signal_connect (gtk_sink->widget, "destroy",
+      G_CALLBACK (widget_destroy_cb), gtk_sink);
+
+  /* back pointer */
+  gtk_gst_base_widget_set_element (GTK_GST_BASE_WIDGET (gtk_sink->widget),
+      GST_ELEMENT (gtk_sink));
+
+  return gtk_sink->widget;
+}
+
+static void
+gst_gtk_base_sink_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstGtkBaseSink *gtk_sink = GST_GTK_BASE_SINK (object);
+
+  switch (prop_id) {
+    case PROP_WIDGET:
+    {
+      GObject *widget = NULL;
+
+      GST_OBJECT_LOCK (gtk_sink);
+      if (gtk_sink->widget != NULL)
+        widget = G_OBJECT (gtk_sink->widget);
+      GST_OBJECT_UNLOCK (gtk_sink);
+
+      if (!widget)
+        widget =
+            gst_gtk_invoke_on_main ((GThreadFunc) gst_gtk_base_sink_get_widget,
+            gtk_sink);
+
+      g_value_set_object (value, widget);
+      break;
+    }
+    case PROP_FORCE_ASPECT_RATIO:
+      g_value_set_boolean (value, gtk_sink->force_aspect_ratio);
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      gst_value_set_fraction (value, gtk_sink->par_n, gtk_sink->par_d);
+      break;
+    case PROP_IGNORE_ALPHA:
+      g_value_set_boolean (value, gtk_sink->ignore_alpha);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_gtk_base_sink_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstGtkBaseSink *gtk_sink = GST_GTK_BASE_SINK (object);
+
+  switch (prop_id) {
+    case PROP_FORCE_ASPECT_RATIO:
+      gtk_sink->force_aspect_ratio = g_value_get_boolean (value);
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      gtk_sink->par_n = gst_value_get_fraction_numerator (value);
+      gtk_sink->par_d = gst_value_get_fraction_denominator (value);
+      break;
+    case PROP_IGNORE_ALPHA:
+      gtk_sink->ignore_alpha = g_value_get_boolean (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_gtk_base_sink_navigation_send_event (GstNavigation * navigation,
+    GstStructure * structure)
+{
+  GstGtkBaseSink *sink = GST_GTK_BASE_SINK (navigation);
+  GstEvent *event;
+  GstPad *pad;
+
+  event = gst_event_new_navigation (structure);
+  pad = gst_pad_get_peer (GST_VIDEO_SINK_PAD (sink));
+
+  GST_TRACE_OBJECT (sink, "navigation event %" GST_PTR_FORMAT, structure);
+
+  if (GST_IS_PAD (pad) && GST_IS_EVENT (event)) {
+    if (!gst_pad_send_event (pad, gst_event_ref (event))) {
+      /* If upstream didn't handle the event we'll post a message with it
+       * for the application in case it wants to do something with it */
+      gst_element_post_message (GST_ELEMENT_CAST (sink),
+          gst_navigation_message_new_event (GST_OBJECT_CAST (sink), event));
+    }
+    gst_event_unref (event);
+    gst_object_unref (pad);
+  }
+}
+
+static void
+gst_gtk_base_sink_navigation_interface_init (GstNavigationInterface * iface)
+{
+  iface->send_event = gst_gtk_base_sink_navigation_send_event;
+}
+
+static gboolean
+gst_gtk_base_sink_start_on_main (GstBaseSink * bsink)
+{
+  GstGtkBaseSink *gst_sink = GST_GTK_BASE_SINK (bsink);
+  GstGtkBaseSinkClass *klass = GST_GTK_BASE_SINK_GET_CLASS (bsink);
+  GtkWidget *toplevel;
+
+  if (gst_gtk_base_sink_get_widget (gst_sink) == NULL)
+    return FALSE;
+
+  /* After this point, gtk_sink->widget will always be set */
+
+  toplevel = gtk_widget_get_toplevel (GTK_WIDGET (gst_sink->widget));
+  if (!gtk_widget_is_toplevel (toplevel)) {
+    /* sanity check */
+    g_assert (klass->window_title);
+
+    /* User did not add widget its own UI, let's popup a new GtkWindow to
+     * make gst-launch-1.0 work. */
+    gst_sink->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+    gtk_window_set_default_size (GTK_WINDOW (gst_sink->window), 640, 480);
+    gtk_window_set_title (GTK_WINDOW (gst_sink->window), klass->window_title);
+    gtk_container_add (GTK_CONTAINER (gst_sink->window), toplevel);
+    gst_sink->window_destroy_id = g_signal_connect (gst_sink->window, "destroy",
+        G_CALLBACK (window_destroy_cb), gst_sink);
+  }
+
+  return TRUE;
+}
+
+static gboolean
+gst_gtk_base_sink_start (GstBaseSink * bsink)
+{
+  return ! !gst_gtk_invoke_on_main ((GThreadFunc)
+      gst_gtk_base_sink_start_on_main, bsink);
+}
+
+static gboolean
+gst_gtk_base_sink_stop_on_main (GstBaseSink * bsink)
+{
+  GstGtkBaseSink *gst_sink = GST_GTK_BASE_SINK (bsink);
+
+  if (gst_sink->window) {
+    gtk_widget_destroy (gst_sink->window);
+    gst_sink->window = NULL;
+    gst_sink->widget = NULL;
+  }
+
+  return TRUE;
+}
+
+static gboolean
+gst_gtk_base_sink_stop (GstBaseSink * bsink)
+{
+  GstGtkBaseSink *gst_sink = GST_GTK_BASE_SINK (bsink);
+
+  if (gst_sink->window)
+    return ! !gst_gtk_invoke_on_main ((GThreadFunc)
+        gst_gtk_base_sink_stop_on_main, bsink);
+
+  return TRUE;
+}
+
+static void
+gst_gtk_widget_show_all_and_unref (GtkWidget * widget)
+{
+  gtk_widget_show_all (widget);
+  g_object_unref (widget);
+}
+
+static GstStateChangeReturn
+gst_gtk_base_sink_change_state (GstElement * element, GstStateChange transition)
+{
+  GstGtkBaseSink *gtk_sink = GST_GTK_BASE_SINK (element);
+  GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
+
+  GST_DEBUG_OBJECT (element, "changing state: %s => %s",
+      gst_element_state_get_name (GST_STATE_TRANSITION_CURRENT (transition)),
+      gst_element_state_get_name (GST_STATE_TRANSITION_NEXT (transition)));
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (ret == GST_STATE_CHANGE_FAILURE)
+    return ret;
+
+  switch (transition) {
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+    {
+      GtkWindow *window = NULL;
+
+      GST_OBJECT_LOCK (gtk_sink);
+      if (gtk_sink->window)
+        window = g_object_ref (gtk_sink->window);
+      GST_OBJECT_UNLOCK (gtk_sink);
+
+      if (window)
+        gst_gtk_invoke_on_main ((GThreadFunc) gst_gtk_widget_show_all_and_unref,
+            window);
+
+      break;
+    }
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      GST_OBJECT_LOCK (gtk_sink);
+      if (gtk_sink->widget)
+        gtk_gst_base_widget_set_buffer (gtk_sink->widget, NULL);
+      GST_OBJECT_UNLOCK (gtk_sink);
+      break;
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+static void
+gst_gtk_base_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
+    GstClockTime * start, GstClockTime * end)
+{
+  GstGtkBaseSink *gtk_sink;
+
+  gtk_sink = GST_GTK_BASE_SINK (bsink);
+
+  if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+    *start = GST_BUFFER_TIMESTAMP (buf);
+    if (GST_BUFFER_DURATION_IS_VALID (buf))
+      *end = *start + GST_BUFFER_DURATION (buf);
+    else {
+      if (GST_VIDEO_INFO_FPS_N (&gtk_sink->v_info) > 0) {
+        *end = *start +
+            gst_util_uint64_scale_int (GST_SECOND,
+            GST_VIDEO_INFO_FPS_D (&gtk_sink->v_info),
+            GST_VIDEO_INFO_FPS_N (&gtk_sink->v_info));
+      }
+    }
+  }
+}
+
+gboolean
+gst_gtk_base_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
+{
+  GstGtkBaseSink *gtk_sink = GST_GTK_BASE_SINK (bsink);
+
+  GST_DEBUG ("set caps with %" GST_PTR_FORMAT, caps);
+
+  if (!gst_video_info_from_caps (&gtk_sink->v_info, caps))
+    return FALSE;
+
+  GST_OBJECT_LOCK (gtk_sink);
+
+  if (gtk_sink->widget == NULL) {
+    GST_OBJECT_UNLOCK (gtk_sink);
+    GST_ELEMENT_ERROR (gtk_sink, RESOURCE, NOT_FOUND,
+        ("%s", "Output widget was destroyed"), (NULL));
+    return FALSE;
+  }
+
+  if (!gtk_gst_base_widget_set_format (gtk_sink->widget, &gtk_sink->v_info)) {
+    GST_OBJECT_UNLOCK (gtk_sink);
+    return FALSE;
+  }
+  GST_OBJECT_UNLOCK (gtk_sink);
+
+  return TRUE;
+}
+
+static GstFlowReturn
+gst_gtk_base_sink_show_frame (GstVideoSink * vsink, GstBuffer * buf)
+{
+  GstGtkBaseSink *gtk_sink;
+
+  GST_TRACE ("rendering buffer:%p", buf);
+
+  gtk_sink = GST_GTK_BASE_SINK (vsink);
+
+  GST_OBJECT_LOCK (vsink);
+
+  if (gtk_sink->widget == NULL) {
+    GST_OBJECT_UNLOCK (gtk_sink);
+    GST_ELEMENT_ERROR (gtk_sink, RESOURCE, NOT_FOUND,
+        ("%s", "Output widget was destroyed"), (NULL));
+    return GST_FLOW_ERROR;
+  }
+
+  gtk_gst_base_widget_set_buffer (gtk_sink->widget, buf);
+
+  GST_OBJECT_UNLOCK (gtk_sink);
+
+  return GST_FLOW_OK;
+}
diff --git a/ext/gtk/gstgtkbasesink.h b/ext/gtk/gstgtkbasesink.h
new file mode 100644
index 000000000..ef8c28495
--- /dev/null
+++ b/ext/gtk/gstgtkbasesink.h
@@ -0,0 +1,94 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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_GTK_BASE_SINK_H__
+#define __GST_GTK_BASE_SINK_H__
+
+#include <gtk/gtk.h>
+#include <gst/gst.h>
+#include <gst/video/gstvideosink.h>
+#include <gst/video/video.h>
+
+#include "gtkgstbasewidget.h"
+
+#define GST_TYPE_GTK_BASE_SINK            (gst_gtk_base_sink_get_type())
+#define GST_GTK_BASE_SINK(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GTK_BASE_SINK,GstGtkBaseSink))
+#define GST_GTK_BASE_SINK_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GTK_BASE_SINK,GstGtkBaseSinkClass))
+#define GST_GTK_BASE_SINK_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_GTK_BASE_SINK, GstGtkBaseSinkClass))
+#define GST_IS_GTK_BASE_SINK(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GTK_BASE_SINK))
+#define GST_IS_GTK_BASE_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GTK_BASE_SINK))
+#define GST_GTK_BASE_SINK_CAST(obj)       ((GstGtkBaseSink*)(obj))
+
+G_BEGIN_DECLS
+
+typedef struct _GstGtkBaseSink GstGtkBaseSink;
+typedef struct _GstGtkBaseSinkClass GstGtkBaseSinkClass;
+
+GType gst_gtk_base_sink_get_type (void);
+
+/**
+ * GstGtkBaseSink:
+ *
+ * Opaque #GstGtkBaseSink object
+ */
+struct _GstGtkBaseSink
+{
+  /* <private> */
+  GstVideoSink         parent;
+
+  GstVideoInfo         v_info;
+
+  GtkGstBaseWidget     *widget;
+
+  /* properties */
+  gboolean             force_aspect_ratio;
+  GBinding             *bind_aspect_ratio;
+
+  gint                  par_n;
+  gint                  par_d;
+  GBinding             *bind_pixel_aspect_ratio;
+
+  gboolean              ignore_alpha;
+  GBinding             *bind_ignore_alpha;
+
+  GtkWidget            *window;
+  gulong               widget_destroy_id;
+  gulong               window_destroy_id;
+};
+
+/**
+ * GstGtkBaseSinkClass:
+ *
+ * The #GstGtkBaseSinkClass struct only contains private data
+ */
+struct _GstGtkBaseSinkClass
+{
+  GstVideoSinkClass object_class;
+
+  /* metadata */
+  const gchar *window_title;
+
+  /* virtuals */
+  GtkWidget* (*create_widget) (void);
+};
+
+G_END_DECLS
+
+#endif /* __GST_GTK_BASE_SINK_H__ */
diff --git a/ext/gtk/gstgtkglsink.c b/ext/gtk/gstgtkglsink.c
new file mode 100644
index 000000000..4439e85fb
--- /dev/null
+++ b/ext/gtk/gstgtkglsink.c
@@ -0,0 +1,311 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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-gtkglsink
+ * @title: gtkglsink
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gl/gstglfuncs.h>
+
+#include "gstgtkglsink.h"
+#include "gtkgstglwidget.h"
+
+GST_DEBUG_CATEGORY (gst_debug_gtk_gl_sink);
+#define GST_CAT_DEFAULT gst_debug_gtk_gl_sink
+
+static gboolean gst_gtk_gl_sink_start (GstBaseSink * bsink);
+static gboolean gst_gtk_gl_sink_stop (GstBaseSink * bsink);
+static gboolean gst_gtk_gl_sink_query (GstBaseSink * bsink, GstQuery * query);
+static gboolean gst_gtk_gl_sink_propose_allocation (GstBaseSink * bsink,
+    GstQuery * query);
+static GstCaps *gst_gtk_gl_sink_get_caps (GstBaseSink * bsink,
+    GstCaps * filter);
+
+static GstStaticPadTemplate gst_gtk_gl_sink_template =
+    GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE_WITH_FEATURES
+        (GST_CAPS_FEATURE_MEMORY_GL_MEMORY, "RGBA") "; "
+        GST_VIDEO_CAPS_MAKE_WITH_FEATURES
+        (GST_CAPS_FEATURE_MEMORY_GL_MEMORY ", "
+            GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION, "RGBA")));
+
+#define gst_gtk_gl_sink_parent_class parent_class
+G_DEFINE_TYPE_WITH_CODE (GstGtkGLSink, gst_gtk_gl_sink,
+    GST_TYPE_GTK_BASE_SINK, GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_gl_sink,
+        "gtkglsink", 0, "Gtk GL Video Sink"));
+
+static void
+gst_gtk_gl_sink_class_init (GstGtkGLSinkClass * klass)
+{
+  GstElementClass *gstelement_class;
+  GstBaseSinkClass *gstbasesink_class;
+  GstGtkBaseSinkClass *gstgtkbasesink_class;
+
+  gstelement_class = (GstElementClass *) klass;
+  gstbasesink_class = (GstBaseSinkClass *) klass;
+  gstgtkbasesink_class = (GstGtkBaseSinkClass *) klass;
+
+  gstbasesink_class->query = gst_gtk_gl_sink_query;
+  gstbasesink_class->propose_allocation = gst_gtk_gl_sink_propose_allocation;
+  gstbasesink_class->start = gst_gtk_gl_sink_start;
+  gstbasesink_class->stop = gst_gtk_gl_sink_stop;
+  gstbasesink_class->get_caps = gst_gtk_gl_sink_get_caps;
+
+  gstgtkbasesink_class->create_widget = gtk_gst_gl_widget_new;
+  gstgtkbasesink_class->window_title = "Gtk+ GL renderer";
+
+  gst_element_class_set_metadata (gstelement_class, "Gtk GL Video Sink",
+      "Sink/Video", "A video sink that renders to a GtkWidget using OpenGL",
+      "Matthew Waters <matthew@centricular.com>");
+
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_gtk_gl_sink_template);
+}
+
+static void
+gst_gtk_gl_sink_init (GstGtkGLSink * gtk_sink)
+{
+}
+
+static gboolean
+gst_gtk_gl_sink_query (GstBaseSink * bsink, GstQuery * query)
+{
+  GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (bsink);
+  gboolean res = FALSE;
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CONTEXT:
+    {
+      if (gst_gl_handle_context_query ((GstElement *) gtk_sink, query,
+              gtk_sink->display, gtk_sink->context, gtk_sink->gtk_context))
+        return TRUE;
+      break;
+    }
+    default:
+      res = GST_BASE_SINK_CLASS (parent_class)->query (bsink, query);
+      break;
+  }
+
+  return res;
+}
+
+static void
+_size_changed_cb (GtkWidget * widget, GdkRectangle * rectangle,
+    GstGtkGLSink * gtk_sink)
+{
+  gint scale_factor, width, height;
+  gboolean reconfigure;
+
+  scale_factor = gtk_widget_get_scale_factor (widget);
+  width = scale_factor * gtk_widget_get_allocated_width (widget);
+  height = scale_factor * gtk_widget_get_allocated_height (widget);
+
+  GST_OBJECT_LOCK (gtk_sink);
+  reconfigure =
+      (width != gtk_sink->display_width || height != gtk_sink->display_height);
+  gtk_sink->display_width = width;
+  gtk_sink->display_height = height;
+  GST_OBJECT_UNLOCK (gtk_sink);
+
+  if (reconfigure) {
+    GST_DEBUG_OBJECT (gtk_sink, "Sending reconfigure event on sinkpad.");
+    gst_pad_push_event (GST_BASE_SINK (gtk_sink)->sinkpad,
+        gst_event_new_reconfigure ());
+  }
+}
+
+static gboolean
+gst_gtk_gl_sink_start (GstBaseSink * bsink)
+{
+  GstGtkBaseSink *base_sink = GST_GTK_BASE_SINK (bsink);
+  GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (bsink);
+  GtkGstGLWidget *gst_widget;
+
+  if (!GST_BASE_SINK_CLASS (parent_class)->start (bsink))
+    return FALSE;
+
+  /* After this point, gtk_sink->widget will always be set */
+  gst_widget = GTK_GST_GL_WIDGET (base_sink->widget);
+
+  /* Track the allocation size */
+  g_signal_connect (gst_widget, "size-allocate", G_CALLBACK (_size_changed_cb),
+      gtk_sink);
+  _size_changed_cb (GTK_WIDGET (gst_widget), NULL, gtk_sink);
+
+  if (!gtk_gst_gl_widget_init_winsys (gst_widget))
+    return FALSE;
+
+  gtk_sink->display = gtk_gst_gl_widget_get_display (gst_widget);
+  gtk_sink->context = gtk_gst_gl_widget_get_context (gst_widget);
+  gtk_sink->gtk_context = gtk_gst_gl_widget_get_gtk_context (gst_widget);
+
+  if (!gtk_sink->display || !gtk_sink->context || !gtk_sink->gtk_context)
+    return FALSE;
+
+  gst_gl_element_propagate_display_context (GST_ELEMENT (bsink),
+      gtk_sink->display);
+
+  return TRUE;
+}
+
+static gboolean
+gst_gtk_gl_sink_stop (GstBaseSink * bsink)
+{
+  GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (bsink);
+
+  if (gtk_sink->display) {
+    gst_object_unref (gtk_sink->display);
+    gtk_sink->display = NULL;
+  }
+
+  if (gtk_sink->context) {
+    gst_object_unref (gtk_sink->context);
+    gtk_sink->context = NULL;
+  }
+
+  if (gtk_sink->gtk_context) {
+    gst_object_unref (gtk_sink->gtk_context);
+    gtk_sink->gtk_context = NULL;
+  }
+
+  return GST_BASE_SINK_CLASS (parent_class)->stop (bsink);
+}
+
+static gboolean
+gst_gtk_gl_sink_propose_allocation (GstBaseSink * bsink, GstQuery * query)
+{
+  GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (bsink);
+  GstBufferPool *pool = NULL;
+  GstStructure *config;
+  GstCaps *caps;
+  GstVideoInfo info;
+  guint size;
+  gboolean need_pool;
+  GstStructure *allocation_meta = NULL;
+  gint display_width, display_height;
+
+  if (!gtk_sink->display || !gtk_sink->context)
+    return FALSE;
+
+  gst_query_parse_allocation (query, &caps, &need_pool);
+
+  if (caps == NULL)
+    goto no_caps;
+
+  if (!gst_video_info_from_caps (&info, caps))
+    goto invalid_caps;
+
+  /* the normal size of a frame */
+  size = info.size;
+
+  if (need_pool) {
+    GST_DEBUG_OBJECT (gtk_sink, "create new pool");
+    pool = gst_gl_buffer_pool_new (gtk_sink->context);
+
+    config = gst_buffer_pool_get_config (pool);
+    gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
+    gst_buffer_pool_config_add_option (config,
+        GST_BUFFER_POOL_OPTION_GL_SYNC_META);
+
+    if (!gst_buffer_pool_set_config (pool, config))
+      goto config_failed;
+  }
+
+  /* we need at least 2 buffer because we hold on to the last one */
+  gst_query_add_allocation_pool (query, pool, size, 2, 0);
+  if (pool)
+    gst_object_unref (pool);
+
+  GST_OBJECT_LOCK (gtk_sink);
+  display_width = gtk_sink->display_width;
+  display_height = gtk_sink->display_height;
+  GST_OBJECT_UNLOCK (gtk_sink);
+
+  if (display_width != 0 && display_height != 0) {
+    GST_DEBUG_OBJECT (gtk_sink, "sending alloc query with size %dx%d",
+        display_width, display_height);
+    allocation_meta = gst_structure_new ("GstVideoOverlayCompositionMeta",
+        "width", G_TYPE_UINT, display_width,
+        "height", G_TYPE_UINT, display_height, NULL);
+  }
+
+  gst_query_add_allocation_meta (query,
+      GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, allocation_meta);
+
+  if (allocation_meta)
+    gst_structure_free (allocation_meta);
+
+  /* we also support various metadata */
+  gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, 0);
+
+  if (gtk_sink->context->gl_vtable->FenceSync)
+    gst_query_add_allocation_meta (query, GST_GL_SYNC_META_API_TYPE, 0);
+
+  return TRUE;
+
+  /* ERRORS */
+no_caps:
+  {
+    GST_DEBUG_OBJECT (bsink, "no caps specified");
+    return FALSE;
+  }
+invalid_caps:
+  {
+    GST_DEBUG_OBJECT (bsink, "invalid caps specified");
+    return FALSE;
+  }
+config_failed:
+  {
+    GST_DEBUG_OBJECT (bsink, "failed setting config");
+    return FALSE;
+  }
+}
+
+static GstCaps *
+gst_gtk_gl_sink_get_caps (GstBaseSink * bsink, GstCaps * filter)
+{
+  GstCaps *tmp = NULL;
+  GstCaps *result = NULL;
+
+  tmp = gst_pad_get_pad_template_caps (GST_BASE_SINK_PAD (bsink));
+
+  if (filter) {
+    GST_DEBUG_OBJECT (bsink, "intersecting with filter caps %" GST_PTR_FORMAT,
+        filter);
+
+    result = gst_caps_intersect_full (filter, tmp, GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (tmp);
+  } else {
+    result = tmp;
+  }
+
+  result = gst_gl_overlay_compositor_add_caps (result);
+
+  GST_DEBUG_OBJECT (bsink, "returning caps: %" GST_PTR_FORMAT, result);
+
+  return result;
+}
diff --git a/ext/gtk/gstgtkglsink.h b/ext/gtk/gstgtkglsink.h
new file mode 100644
index 000000000..789cf33f6
--- /dev/null
+++ b/ext/gtk/gstgtkglsink.h
@@ -0,0 +1,82 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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_GTK_GL_SINK_H__
+#define __GST_GTK_GL_SINK_H__
+
+#include <gtk/gtk.h>
+#include <gst/gst.h>
+#include <gst/video/gstvideosink.h>
+#include <gst/video/video.h>
+#include <gst/gl/gl.h>
+
+#include "gstgtkbasesink.h"
+
+
+#define GST_TYPE_GTK_GL_SINK            (gst_gtk_gl_sink_get_type())
+#define GST_GTK_GL_SINK(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GTK_GL_SINK,GstGtkGLSink))
+#define GST_GTK_GL_SINK_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GTK_GL_SINK,GstGtkGLSinkClass))
+#define GST_IS_GTK_GL_SINK(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GTK_GL_SINK))
+#define GST_IS_GTK_GL_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GTK_GL_SINK))
+#define GST_GTK_GL_SINK_CAST(obj)       ((GstGtkGLSink*)(obj))
+
+G_BEGIN_DECLS
+
+typedef struct _GstGtkGLSink GstGtkGLSink;
+typedef struct _GstGtkGLSinkClass GstGtkGLSinkClass;
+
+GType gst_gtk_gl_sink_get_type (void);
+
+/**
+ * GstGtkGLSink:
+ *
+ * Opaque #GstGtkGLSink object
+ */
+struct _GstGtkGLSink
+{
+  /* <private> */
+  GstGtkBaseSink        parent;
+
+  GstGLDisplay         *display;
+  GstGLContext         *context;
+  GstGLContext         *gtk_context;
+
+  GstGLUpload          *upload;
+  GstBuffer            *uploaded_buffer;
+
+  /* read/write with object lock */
+  gint                  display_width;
+  gint                  display_height;
+};
+
+/**
+ * GstGtkGLSinkClass:
+ *
+ * The #GstGtkGLSinkClass struct only contains private data
+ */
+struct _GstGtkGLSinkClass
+{
+  /* <private> */
+  GstGtkBaseSinkClass object_class;
+};
+
+G_END_DECLS
+
+#endif /* __GST_GTK_GL_SINK_H__ */
diff --git a/ext/gtk/gstgtksink.c b/ext/gtk/gstgtksink.c
new file mode 100644
index 000000000..ba8ea33ca
--- /dev/null
+++ b/ext/gtk/gstgtksink.c
@@ -0,0 +1,78 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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-gtkgstsink
+ * @title: gtkgstsink
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gtkgstwidget.h"
+#include "gstgtksink.h"
+
+GST_DEBUG_CATEGORY (gst_debug_gtk_sink);
+#define GST_CAT_DEFAULT gst_debug_gtk_sink
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+#define FORMATS "{ BGRx, BGRA }"
+#else
+#define FORMATS "{ xRGB, ARGB }"
+#endif
+
+static GstStaticPadTemplate gst_gtk_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (FORMATS))
+    );
+
+#define gst_gtk_sink_parent_class parent_class
+G_DEFINE_TYPE_WITH_CODE (GstGtkSink, gst_gtk_sink, GST_TYPE_GTK_BASE_SINK,
+    GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_sink, "gtksink", 0,
+        "Gtk Video Sink"));
+
+static void
+gst_gtk_sink_class_init (GstGtkSinkClass * klass)
+{
+  GstElementClass *gstelement_class;
+  GstGtkBaseSinkClass *base_class;
+
+  gstelement_class = (GstElementClass *) klass;
+  base_class = (GstGtkBaseSinkClass *) klass;
+
+  base_class->create_widget = gtk_gst_widget_new;
+  base_class->window_title = "Gtk+ Cairo renderer";
+
+  gst_element_class_set_metadata (gstelement_class, "Gtk Video Sink",
+      "Sink/Video", "A video sink that renders to a GtkWidget",
+      "Matthew Waters <matthew@centricular.com>");
+
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_gtk_sink_template);
+}
+
+static void
+gst_gtk_sink_init (GstGtkSink * gtk_sink)
+{
+}
diff --git a/ext/gtk/gstgtksink.h b/ext/gtk/gstgtksink.h
new file mode 100644
index 000000000..7dad3b053
--- /dev/null
+++ b/ext/gtk/gstgtksink.h
@@ -0,0 +1,69 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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_GTK_SINK_H__
+#define __GST_GTK_SINK_H__
+
+#include <gtk/gtk.h>
+#include <gst/gst.h>
+#include <gst/video/gstvideosink.h>
+#include <gst/video/video.h>
+
+#include "gstgtkbasesink.h"
+
+#define GST_TYPE_GTK_SINK            (gst_gtk_sink_get_type())
+#define GST_GTK_SINK(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GTK_SINK,GstGtkSink))
+#define GST_GTK_SINK_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GTK_SINK,GstGtkSinkClass))
+#define GST_IS_GTK_SINK(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GTK_SINK))
+#define GST_IS_GTK_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GTK_SINK))
+#define GST_GTK_SINK_CAST(obj)       ((GstGtkSink*)(obj))
+
+G_BEGIN_DECLS
+
+typedef struct _GstGtkSink GstGtkSink;
+typedef struct _GstGtkSinkClass GstGtkSinkClass;
+
+GType gst_gtk_sink_get_type (void);
+
+/**
+ * GstGtkSink:
+ *
+ * Opaque #GstGtkSink object
+ */
+struct _GstGtkSink
+{
+  /* <private> */
+  GstGtkBaseSink       parent;
+};
+
+/**
+ * GstGtkSinkClass:
+ *
+ * The #GstGtkSinkClass struct only contains private data
+ */
+struct _GstGtkSinkClass
+{
+  /* <private> */
+  GstGtkBaseSinkClass object_class;
+};
+
+G_END_DECLS
+
+#endif /* __GST_GTK_SINK_H__ */
diff --git a/ext/gtk/gstgtkutils.c b/ext/gtk/gstgtkutils.c
new file mode 100644
index 000000000..c730f0188
--- /dev/null
+++ b/ext/gtk/gstgtkutils.c
@@ -0,0 +1,71 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.com>
+ * Copyright (C) 2015 Thibault Saunier <tsaunier@gnome.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.
+ */
+
+#include "gstgtkutils.h"
+
+struct invoke_context
+{
+  GThreadFunc func;
+  gpointer data;
+  GMutex lock;
+  GCond cond;
+  gboolean fired;
+
+  gpointer res;
+};
+
+static gboolean
+gst_gtk_invoke_func (struct invoke_context *info)
+{
+  g_mutex_lock (&info->lock);
+  info->res = info->func (info->data);
+  info->fired = TRUE;
+  g_cond_signal (&info->cond);
+  g_mutex_unlock (&info->lock);
+
+  return G_SOURCE_REMOVE;
+}
+
+gpointer
+gst_gtk_invoke_on_main (GThreadFunc func, gpointer data)
+{
+  GMainContext *main_context = g_main_context_default ();
+  struct invoke_context info;
+
+  g_mutex_init (&info.lock);
+  g_cond_init (&info.cond);
+  info.fired = FALSE;
+  info.func = func;
+  info.data = data;
+
+  g_main_context_invoke (main_context, (GSourceFunc) gst_gtk_invoke_func,
+      &info);
+
+  g_mutex_lock (&info.lock);
+  while (!info.fired)
+    g_cond_wait (&info.cond, &info.lock);
+  g_mutex_unlock (&info.lock);
+
+  g_mutex_clear (&info.lock);
+  g_cond_clear (&info.cond);
+
+  return info.res;
+}
diff --git a/ext/gtk/gstgtkutils.h b/ext/gtk/gstgtkutils.h
new file mode 100644
index 000000000..7584ae2c6
--- /dev/null
+++ b/ext/gtk/gstgtkutils.h
@@ -0,0 +1,29 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.com>
+ * Copyright (C) 2015 Thibault Saunier <tsaunier@gnome.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_GTK_UTILS_H__
+#define __GST_GTK_UTILS_H__
+
+#include <glib.h>
+
+gpointer gst_gtk_invoke_on_main (GThreadFunc func, gpointer data);
+
+#endif /* __GST_GTK_UTILS_H__ */
diff --git a/ext/gtk/gstplugin.c b/ext/gtk/gstplugin.c
new file mode 100644
index 000000000..ed275785b
--- /dev/null
+++ b/ext/gtk/gstplugin.c
@@ -0,0 +1,52 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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 "gstgtksink.h"
+#if defined(HAVE_GTK3_GL)
+#include "gstgtkglsink.h"
+#endif
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+  if (!gst_element_register (plugin, "gtksink",
+          GST_RANK_NONE, GST_TYPE_GTK_SINK)) {
+    return FALSE;
+  }
+#if defined(HAVE_GTK3_GL)
+  if (!gst_element_register (plugin, "gtkglsink",
+          GST_RANK_NONE, GST_TYPE_GTK_GL_SINK)) {
+    return FALSE;
+  }
+#endif
+
+  return TRUE;
+}
+
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+    GST_VERSION_MINOR,
+    gtk,
+    "Gtk+ sink",
+    plugin_init, PACKAGE_VERSION, GST_LICENSE, GST_PACKAGE_NAME,
+    GST_PACKAGE_ORIGIN)
diff --git a/ext/gtk/gtkgstbasewidget.c b/ext/gtk/gtkgstbasewidget.c
new file mode 100644
index 000000000..4858f2764
--- /dev/null
+++ b/ext/gtk/gtkgstbasewidget.c
@@ -0,0 +1,497 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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 <stdio.h>
+
+#include "gtkgstbasewidget.h"
+
+GST_DEBUG_CATEGORY (gst_debug_gtk_base_widget);
+#define GST_CAT_DEFAULT gst_debug_gtk_base_widget
+
+#define DEFAULT_FORCE_ASPECT_RATIO  TRUE
+#define DEFAULT_PAR_N               0
+#define DEFAULT_PAR_D               1
+#define DEFAULT_IGNORE_ALPHA        TRUE
+
+enum
+{
+  PROP_0,
+  PROP_FORCE_ASPECT_RATIO,
+  PROP_PIXEL_ASPECT_RATIO,
+  PROP_IGNORE_ALPHA,
+};
+
+static void
+gtk_gst_base_widget_get_preferred_width (GtkWidget * widget, gint * min,
+    gint * natural)
+{
+  GtkGstBaseWidget *gst_widget = (GtkGstBaseWidget *) widget;
+  gint video_width = gst_widget->display_width;
+
+  if (!gst_widget->negotiated)
+    video_width = 10;
+
+  if (min)
+    *min = 1;
+  if (natural)
+    *natural = video_width;
+}
+
+static void
+gtk_gst_base_widget_get_preferred_height (GtkWidget * widget, gint * min,
+    gint * natural)
+{
+  GtkGstBaseWidget *gst_widget = (GtkGstBaseWidget *) widget;
+  gint video_height = gst_widget->display_height;
+
+  if (!gst_widget->negotiated)
+    video_height = 10;
+
+  if (min)
+    *min = 1;
+  if (natural)
+    *natural = video_height;
+}
+
+static void
+gtk_gst_base_widget_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GtkGstBaseWidget *gtk_widget = GTK_GST_BASE_WIDGET (object);
+
+  switch (prop_id) {
+    case PROP_FORCE_ASPECT_RATIO:
+      gtk_widget->force_aspect_ratio = g_value_get_boolean (value);
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      gtk_widget->par_n = gst_value_get_fraction_numerator (value);
+      gtk_widget->par_d = gst_value_get_fraction_denominator (value);
+      break;
+    case PROP_IGNORE_ALPHA:
+      gtk_widget->ignore_alpha = g_value_get_boolean (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gtk_gst_base_widget_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GtkGstBaseWidget *gtk_widget = GTK_GST_BASE_WIDGET (object);
+
+  switch (prop_id) {
+    case PROP_FORCE_ASPECT_RATIO:
+      g_value_set_boolean (value, gtk_widget->force_aspect_ratio);
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      gst_value_set_fraction (value, gtk_widget->par_n, gtk_widget->par_d);
+      break;
+    case PROP_IGNORE_ALPHA:
+      g_value_set_boolean (value, gtk_widget->ignore_alpha);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static gboolean
+_calculate_par (GtkGstBaseWidget * widget, GstVideoInfo * info)
+{
+  gboolean ok;
+  gint width, height;
+  gint par_n, par_d;
+  gint display_par_n, display_par_d;
+
+  width = GST_VIDEO_INFO_WIDTH (info);
+  height = GST_VIDEO_INFO_HEIGHT (info);
+
+  par_n = GST_VIDEO_INFO_PAR_N (info);
+  par_d = GST_VIDEO_INFO_PAR_D (info);
+
+  if (!par_n)
+    par_n = 1;
+
+  /* get display's PAR */
+  if (widget->par_n != 0 && widget->par_d != 0) {
+    display_par_n = widget->par_n;
+    display_par_d = widget->par_d;
+  } else {
+    display_par_n = 1;
+    display_par_d = 1;
+  }
+
+
+  ok = gst_video_calculate_display_ratio (&widget->display_ratio_num,
+      &widget->display_ratio_den, width, height, par_n, par_d, display_par_n,
+      display_par_d);
+
+  if (ok) {
+    GST_LOG ("PAR: %u/%u DAR:%u/%u", par_n, par_d, display_par_n,
+        display_par_d);
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+static void
+_apply_par (GtkGstBaseWidget * widget)
+{
+  guint display_ratio_num, display_ratio_den;
+  gint width, height;
+
+  width = GST_VIDEO_INFO_WIDTH (&widget->v_info);
+  height = GST_VIDEO_INFO_HEIGHT (&widget->v_info);
+
+  display_ratio_num = widget->display_ratio_num;
+  display_ratio_den = widget->display_ratio_den;
+
+  if (height % display_ratio_den == 0) {
+    GST_DEBUG ("keeping video height");
+    widget->display_width = (guint)
+        gst_util_uint64_scale_int (height, display_ratio_num,
+        display_ratio_den);
+    widget->display_height = height;
+  } else if (width % display_ratio_num == 0) {
+    GST_DEBUG ("keeping video width");
+    widget->display_width = width;
+    widget->display_height = (guint)
+        gst_util_uint64_scale_int (width, display_ratio_den, display_ratio_num);
+  } else {
+    GST_DEBUG ("approximating while keeping video height");
+    widget->display_width = (guint)
+        gst_util_uint64_scale_int (height, display_ratio_num,
+        display_ratio_den);
+    widget->display_height = height;
+  }
+
+  GST_DEBUG ("scaling to %dx%d", widget->display_width, widget->display_height);
+}
+
+static gboolean
+_queue_draw (GtkGstBaseWidget * widget)
+{
+  GTK_GST_BASE_WIDGET_LOCK (widget);
+  widget->draw_id = 0;
+
+  if (widget->pending_resize) {
+    widget->pending_resize = FALSE;
+
+    widget->v_info = widget->pending_v_info;
+    widget->negotiated = TRUE;
+
+    _apply_par (widget);
+
+    gtk_widget_queue_resize (GTK_WIDGET (widget));
+  } else {
+    gtk_widget_queue_draw (GTK_WIDGET (widget));
+  }
+
+  GTK_GST_BASE_WIDGET_UNLOCK (widget);
+
+  return G_SOURCE_REMOVE;
+}
+
+static const gchar *
+_gdk_key_to_navigation_string (guint keyval)
+{
+  /* TODO: expand */
+  switch (keyval) {
+#define KEY(key) case GDK_KEY_ ## key: return G_STRINGIFY(key)
+      KEY (Up);
+      KEY (Down);
+      KEY (Left);
+      KEY (Right);
+      KEY (Home);
+      KEY (End);
+#undef KEY
+    default:
+      return NULL;
+  }
+}
+
+static gboolean
+gtk_gst_base_widget_key_event (GtkWidget * widget, GdkEventKey * event)
+{
+  GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget);
+  GstElement *element;
+
+  if ((element = g_weak_ref_get (&base_widget->element))) {
+    if (GST_IS_NAVIGATION (element)) {
+      const gchar *str = _gdk_key_to_navigation_string (event->keyval);
+      const gchar *key_type =
+          event->type == GDK_KEY_PRESS ? "key-press" : "key-release";
+
+      if (!str)
+        str = event->string;
+
+      gst_navigation_send_key_event (GST_NAVIGATION (element), key_type, str);
+    }
+    g_object_unref (element);
+  }
+
+  return FALSE;
+}
+
+static void
+_fit_stream_to_allocated_size (GtkGstBaseWidget * base_widget,
+    GtkAllocation * allocation, GstVideoRectangle * result)
+{
+  if (base_widget->force_aspect_ratio) {
+    GstVideoRectangle src, dst;
+
+    src.x = 0;
+    src.y = 0;
+    src.w = base_widget->display_width;
+    src.h = base_widget->display_height;
+
+    dst.x = 0;
+    dst.y = 0;
+    dst.w = allocation->width;
+    dst.h = allocation->height;
+
+    gst_video_sink_center_rect (src, dst, result, TRUE);
+  } else {
+    result->x = 0;
+    result->y = 0;
+    result->w = allocation->width;
+    result->h = allocation->height;
+  }
+}
+
+static void
+_display_size_to_stream_size (GtkGstBaseWidget * base_widget, gdouble x,
+    gdouble y, gdouble * stream_x, gdouble * stream_y)
+{
+  gdouble stream_width, stream_height;
+  GtkAllocation allocation;
+  GstVideoRectangle result;
+
+  gtk_widget_get_allocation (GTK_WIDGET (base_widget), &allocation);
+  _fit_stream_to_allocated_size (base_widget, &allocation, &result);
+
+  stream_width = (gdouble) GST_VIDEO_INFO_WIDTH (&base_widget->v_info);
+  stream_height = (gdouble) GST_VIDEO_INFO_HEIGHT (&base_widget->v_info);
+
+  /* from display coordinates to stream coordinates */
+  if (result.w > 0)
+    *stream_x = (x - result.x) / result.w * stream_width;
+  else
+    *stream_x = 0.;
+
+  /* clip to stream size */
+  if (*stream_x < 0.)
+    *stream_x = 0.;
+  if (*stream_x > GST_VIDEO_INFO_WIDTH (&base_widget->v_info))
+    *stream_x = GST_VIDEO_INFO_WIDTH (&base_widget->v_info);
+
+  /* same for y-axis */
+  if (result.h > 0)
+    *stream_y = (y - result.y) / result.h * stream_height;
+  else
+    *stream_y = 0.;
+
+  if (*stream_y < 0.)
+    *stream_y = 0.;
+  if (*stream_y > GST_VIDEO_INFO_HEIGHT (&base_widget->v_info))
+    *stream_y = GST_VIDEO_INFO_HEIGHT (&base_widget->v_info);
+
+  GST_TRACE ("transform %fx%f into %fx%f", x, y, *stream_x, *stream_y);
+}
+
+static gboolean
+gtk_gst_base_widget_button_event (GtkWidget * widget, GdkEventButton * event)
+{
+  GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget);
+  GstElement *element;
+
+  if ((element = g_weak_ref_get (&base_widget->element))) {
+    if (GST_IS_NAVIGATION (element)) {
+      const gchar *key_type =
+          event->type ==
+          GDK_BUTTON_PRESS ? "mouse-button-press" : "mouse-button-release";
+      gdouble x, y;
+
+      _display_size_to_stream_size (base_widget, event->x, event->y, &x, &y);
+
+      gst_navigation_send_mouse_event (GST_NAVIGATION (element), key_type,
+          event->button, x, y);
+    }
+    g_object_unref (element);
+  }
+
+  return FALSE;
+}
+
+static gboolean
+gtk_gst_base_widget_motion_event (GtkWidget * widget, GdkEventMotion * event)
+{
+  GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget);
+  GstElement *element;
+
+  if ((element = g_weak_ref_get (&base_widget->element))) {
+    if (GST_IS_NAVIGATION (element)) {
+      gdouble x, y;
+
+      _display_size_to_stream_size (base_widget, event->x, event->y, &x, &y);
+
+      gst_navigation_send_mouse_event (GST_NAVIGATION (element), "mouse-move",
+          0, x, y);
+    }
+    g_object_unref (element);
+  }
+
+  return FALSE;
+}
+
+void
+gtk_gst_base_widget_class_init (GtkGstBaseWidgetClass * klass)
+{
+  GObjectClass *gobject_klass = (GObjectClass *) klass;
+  GtkWidgetClass *widget_klass = (GtkWidgetClass *) klass;
+
+  gobject_klass->set_property = gtk_gst_base_widget_set_property;
+  gobject_klass->get_property = gtk_gst_base_widget_get_property;
+
+  g_object_class_install_property (gobject_klass, PROP_FORCE_ASPECT_RATIO,
+      g_param_spec_boolean ("force-aspect-ratio",
+          "Force aspect ratio",
+          "When enabled, scaling will respect original aspect ratio",
+          DEFAULT_FORCE_ASPECT_RATIO,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_klass, PROP_PIXEL_ASPECT_RATIO,
+      gst_param_spec_fraction ("pixel-aspect-ratio", "Pixel Aspect Ratio",
+          "The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D,
+          G_MAXINT, 1, 1, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_klass, PROP_IGNORE_ALPHA,
+      g_param_spec_boolean ("ignore-alpha", "Ignore Alpha",
+          "When enabled, alpha will be ignored and converted to black",
+          DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  widget_klass->get_preferred_width = gtk_gst_base_widget_get_preferred_width;
+  widget_klass->get_preferred_height = gtk_gst_base_widget_get_preferred_height;
+  widget_klass->key_press_event = gtk_gst_base_widget_key_event;
+  widget_klass->key_release_event = gtk_gst_base_widget_key_event;
+  widget_klass->button_press_event = gtk_gst_base_widget_button_event;
+  widget_klass->button_release_event = gtk_gst_base_widget_button_event;
+  widget_klass->motion_notify_event = gtk_gst_base_widget_motion_event;
+
+  GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_base_widget, "gtkbasewidget", 0,
+      "Gtk Video Base Widget");
+}
+
+void
+gtk_gst_base_widget_init (GtkGstBaseWidget * widget)
+{
+  int event_mask;
+
+  widget->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO;
+  widget->par_n = DEFAULT_PAR_N;
+  widget->par_d = DEFAULT_PAR_D;
+  widget->ignore_alpha = DEFAULT_IGNORE_ALPHA;
+
+  gst_video_info_init (&widget->v_info);
+  gst_video_info_init (&widget->pending_v_info);
+
+  g_weak_ref_init (&widget->element, NULL);
+  g_mutex_init (&widget->lock);
+
+  gtk_widget_set_can_focus (GTK_WIDGET (widget), TRUE);
+  event_mask = gtk_widget_get_events (GTK_WIDGET (widget));
+  event_mask |= GDK_KEY_PRESS_MASK
+      | GDK_KEY_RELEASE_MASK
+      | GDK_BUTTON_PRESS_MASK
+      | GDK_BUTTON_RELEASE_MASK
+      | GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK;
+  gtk_widget_set_events (GTK_WIDGET (widget), event_mask);
+}
+
+void
+gtk_gst_base_widget_finalize (GObject * object)
+{
+  GtkGstBaseWidget *widget = GTK_GST_BASE_WIDGET (object);
+
+  gst_buffer_replace (&widget->pending_buffer, NULL);
+  gst_buffer_replace (&widget->buffer, NULL);
+  g_mutex_clear (&widget->lock);
+  g_weak_ref_clear (&widget->element);
+
+  if (widget->draw_id)
+    g_source_remove (widget->draw_id);
+}
+
+void
+gtk_gst_base_widget_set_element (GtkGstBaseWidget * widget,
+    GstElement * element)
+{
+  g_weak_ref_set (&widget->element, element);
+}
+
+gboolean
+gtk_gst_base_widget_set_format (GtkGstBaseWidget * widget,
+    GstVideoInfo * v_info)
+{
+  GTK_GST_BASE_WIDGET_LOCK (widget);
+
+  if (gst_video_info_is_equal (&widget->pending_v_info, v_info)) {
+    GTK_GST_BASE_WIDGET_UNLOCK (widget);
+    return TRUE;
+  }
+
+  if (!_calculate_par (widget, v_info)) {
+    GTK_GST_BASE_WIDGET_UNLOCK (widget);
+    return FALSE;
+  }
+
+  widget->pending_resize = TRUE;
+  widget->pending_v_info = *v_info;
+
+  GTK_GST_BASE_WIDGET_UNLOCK (widget);
+
+  return TRUE;
+}
+
+void
+gtk_gst_base_widget_set_buffer (GtkGstBaseWidget * widget, GstBuffer * buffer)
+{
+  /* As we have no type, this is better then no check */
+  g_return_if_fail (GTK_IS_WIDGET (widget));
+
+  GTK_GST_BASE_WIDGET_LOCK (widget);
+
+  gst_buffer_replace (&widget->pending_buffer, buffer);
+
+  if (!widget->draw_id) {
+    widget->draw_id = g_idle_add_full (G_PRIORITY_DEFAULT,
+        (GSourceFunc) _queue_draw, widget, NULL);
+  }
+
+  GTK_GST_BASE_WIDGET_UNLOCK (widget);
+}
diff --git a/ext/gtk/gtkgstbasewidget.h b/ext/gtk/gtkgstbasewidget.h
new file mode 100644
index 000000000..13737c632
--- /dev/null
+++ b/ext/gtk/gtkgstbasewidget.h
@@ -0,0 +1,97 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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 __GTK_GST_BASE_WIDGET_H__
+#define __GTK_GST_BASE_WIDGET_H__
+
+#include <gtk/gtk.h>
+#include <gst/gst.h>
+#include <gst/video/video.h>
+
+#define GTK_GST_BASE_WIDGET(w)         ((GtkGstBaseWidget *)(w))
+#define GTK_GST_BASE_WIDGET_CLASS(k)   ((GtkGstBaseWidgetClass *)(k))
+#define GTK_GST_BASE_WIDGET_LOCK(w)    g_mutex_lock(&((GtkGstBaseWidget*)(w))->lock)
+#define GTK_GST_BASE_WIDGET_UNLOCK(w)  g_mutex_unlock(&((GtkGstBaseWidget*)(w))->lock)
+
+G_BEGIN_DECLS
+
+typedef struct _GtkGstBaseWidget GtkGstBaseWidget;
+typedef struct _GtkGstBaseWidgetClass GtkGstBaseWidgetClass;
+
+struct _GtkGstBaseWidget
+{
+  union {
+    GtkDrawingArea drawing_area;
+#if GTK_CHECK_VERSION(3, 15, 0)
+    GtkGLArea gl_area;
+#endif
+  } parent;
+
+  /* properties */
+  gboolean force_aspect_ratio;
+  gint par_n, par_d;
+  gboolean ignore_alpha;
+
+  gint display_width;
+  gint display_height;
+
+  gboolean negotiated;
+  GstBuffer *pending_buffer;
+  GstBuffer *buffer;
+  GstVideoInfo v_info;
+
+  /* resize */
+  gboolean pending_resize;
+  GstVideoInfo pending_v_info;
+  guint display_ratio_num;
+  guint display_ratio_den;
+
+  /*< private >*/
+  GMutex lock;
+  GWeakRef element;
+
+  /* Pending draw idles callback */
+  guint draw_id;
+};
+
+struct _GtkGstBaseWidgetClass
+{
+  union {
+    GtkDrawingAreaClass drawing_area_class;
+#if GTK_CHECK_VERSION(3, 15, 0)
+    GtkGLAreaClass gl_area_class;
+#endif
+  } parent_class;
+};
+
+/* For implementer */
+void            gtk_gst_base_widget_class_init           (GtkGstBaseWidgetClass * klass);
+void            gtk_gst_base_widget_init                 (GtkGstBaseWidget * widget);
+
+void            gtk_gst_base_widget_finalize             (GObject * object);
+
+/* API */
+gboolean        gtk_gst_base_widget_set_format           (GtkGstBaseWidget * widget, GstVideoInfo * v_info);
+void            gtk_gst_base_widget_set_buffer           (GtkGstBaseWidget * widget, GstBuffer * buffer);
+void            gtk_gst_base_widget_set_element          (GtkGstBaseWidget * widget, GstElement * element);
+
+G_END_DECLS
+
+#endif /* __GTK_GST_BASE_WIDGET_H__ */
diff --git a/ext/gtk/gtkgstglwidget.c b/ext/gtk/gtkgstglwidget.c
new file mode 100644
index 000000000..76c46c9c8
--- /dev/null
+++ b/ext/gtk/gtkgstglwidget.c
@@ -0,0 +1,558 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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 <stdio.h>
+
+#include "gtkgstglwidget.h"
+#include "gstgtkutils.h"
+#include <gst/gl/gstglfuncs.h>
+#include <gst/video/video.h>
+
+#if GST_GL_HAVE_WINDOW_X11 && GST_GL_HAVE_PLATFORM_GLX && defined (GDK_WINDOWING_X11)
+#include <gdk/gdkx.h>
+#include <gst/gl/x11/gstgldisplay_x11.h>
+#endif
+
+#if GST_GL_HAVE_WINDOW_WAYLAND && GST_GL_HAVE_PLATFORM_EGL && defined (GDK_WINDOWING_WAYLAND)
+#include <gdk/gdkwayland.h>
+#include <gst/gl/wayland/gstgldisplay_wayland.h>
+#endif
+
+/**
+ * SECTION:gtkgstglwidget
+ * @title: GtkGstGlWidget
+ * @short_description: a #GtkGLArea that renders GStreamer video #GstBuffers
+ * @see_also: #GtkGLArea, #GstBuffer
+ *
+ * #GtkGstGLWidget is an #GtkWidget that renders GStreamer video buffers.
+ */
+
+#define GST_CAT_DEFAULT gtk_gst_gl_widget_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+G_DEFINE_TYPE_WITH_CODE (GtkGstGLWidget, gtk_gst_gl_widget, GTK_TYPE_GL_AREA,
+    GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "gtkgstglwidget", 0,
+        "Gtk Gst GL Widget"););
+
+#define GTK_GST_GL_WIDGET_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
+    GTK_TYPE_GST_GL_WIDGET, GtkGstGLWidgetPrivate))
+
+struct _GtkGstGLWidgetPrivate
+{
+  gboolean initted;
+  GstGLDisplay *display;
+  GdkGLContext *gdk_context;
+  GstGLContext *other_context;
+  GstGLContext *context;
+  GstGLUpload *upload;
+  GstGLShader *shader;
+  GLuint vao;
+  GLuint vertex_buffer;
+  GLint attr_position;
+  GLint attr_texture;
+  GLuint current_tex;
+  GstGLOverlayCompositor *overlay_compositor;
+};
+
+static const GLfloat vertices[] = {
+  1.0f, 1.0f, 0.0f, 1.0f, 0.0f,
+  -1.0f, 1.0f, 0.0f, 0.0f, 0.0f,
+  -1.0f, -1.0f, 0.0f, 0.0f, 1.0f,
+  1.0f, -1.0f, 0.0f, 1.0f, 1.0f
+};
+
+static void
+gtk_gst_gl_widget_bind_buffer (GtkGstGLWidget * gst_widget)
+{
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  const GstGLFuncs *gl = priv->context->gl_vtable;
+
+  gl->BindBuffer (GL_ARRAY_BUFFER, priv->vertex_buffer);
+
+  /* Load the vertex position */
+  gl->VertexAttribPointer (priv->attr_position, 3, GL_FLOAT, GL_FALSE,
+      5 * sizeof (GLfloat), (void *) 0);
+
+  /* Load the texture coordinate */
+  gl->VertexAttribPointer (priv->attr_texture, 2, GL_FLOAT, GL_FALSE,
+      5 * sizeof (GLfloat), (void *) (3 * sizeof (GLfloat)));
+
+  gl->EnableVertexAttribArray (priv->attr_position);
+  gl->EnableVertexAttribArray (priv->attr_texture);
+}
+
+static void
+gtk_gst_gl_widget_unbind_buffer (GtkGstGLWidget * gst_widget)
+{
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  const GstGLFuncs *gl = priv->context->gl_vtable;
+
+  gl->BindBuffer (GL_ARRAY_BUFFER, 0);
+
+  gl->DisableVertexAttribArray (priv->attr_position);
+  gl->DisableVertexAttribArray (priv->attr_texture);
+}
+
+static void
+gtk_gst_gl_widget_init_redisplay (GtkGstGLWidget * gst_widget)
+{
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  const GstGLFuncs *gl = priv->context->gl_vtable;
+  GError *error = NULL;
+
+  gst_gl_insert_debug_marker (priv->other_context, "initializing redisplay");
+  if (!(priv->shader = gst_gl_shader_new_default (priv->context, &error))) {
+    GST_ERROR ("Failed to initialize shader: %s", error->message);
+    return;
+  }
+
+  priv->attr_position =
+      gst_gl_shader_get_attribute_location (priv->shader, "a_position");
+  priv->attr_texture =
+      gst_gl_shader_get_attribute_location (priv->shader, "a_texcoord");
+
+  if (gl->GenVertexArrays) {
+    gl->GenVertexArrays (1, &priv->vao);
+    gl->BindVertexArray (priv->vao);
+  }
+
+  gl->GenBuffers (1, &priv->vertex_buffer);
+  gl->BindBuffer (GL_ARRAY_BUFFER, priv->vertex_buffer);
+  gl->BufferData (GL_ARRAY_BUFFER, 4 * 5 * sizeof (GLfloat), vertices,
+      GL_STATIC_DRAW);
+
+  if (gl->GenVertexArrays) {
+    gtk_gst_gl_widget_bind_buffer (gst_widget);
+    gl->BindVertexArray (0);
+  }
+
+  gl->BindBuffer (GL_ARRAY_BUFFER, 0);
+
+  priv->overlay_compositor =
+      gst_gl_overlay_compositor_new (priv->other_context);
+
+  priv->initted = TRUE;
+}
+
+static void
+_redraw_texture (GtkGstGLWidget * gst_widget, guint tex)
+{
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  const GstGLFuncs *gl = priv->context->gl_vtable;
+  const GLushort indices[] = { 0, 1, 2, 0, 2, 3 };
+
+  if (gst_widget->base.force_aspect_ratio) {
+    GstVideoRectangle src, dst, result;
+    gint widget_width, widget_height, widget_scale;
+
+    gl->ClearColor (0.0, 0.0, 0.0, 0.0);
+    gl->Clear (GL_COLOR_BUFFER_BIT);
+
+    widget_scale = gtk_widget_get_scale_factor ((GtkWidget *) gst_widget);
+    widget_width = gtk_widget_get_allocated_width ((GtkWidget *) gst_widget);
+    widget_height = gtk_widget_get_allocated_height ((GtkWidget *) gst_widget);
+
+    src.x = 0;
+    src.y = 0;
+    src.w = gst_widget->base.display_width;
+    src.h = gst_widget->base.display_height;
+
+    dst.x = 0;
+    dst.y = 0;
+    dst.w = widget_width * widget_scale;
+    dst.h = widget_height * widget_scale;
+
+    gst_video_sink_center_rect (src, dst, &result, TRUE);
+
+    gl->Viewport (result.x, result.y, result.w, result.h);
+  }
+
+  gst_gl_shader_use (priv->shader);
+
+  if (gl->BindVertexArray)
+    gl->BindVertexArray (priv->vao);
+  gtk_gst_gl_widget_bind_buffer (gst_widget);
+
+  gl->ActiveTexture (GL_TEXTURE0);
+  gl->BindTexture (GL_TEXTURE_2D, tex);
+  gst_gl_shader_set_uniform_1i (priv->shader, "tex", 0);
+
+  gl->DrawElements (GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, indices);
+
+  if (gl->BindVertexArray)
+    gl->BindVertexArray (0);
+  gtk_gst_gl_widget_unbind_buffer (gst_widget);
+
+  gl->BindTexture (GL_TEXTURE_2D, 0);
+}
+
+static inline void
+_draw_black (GstGLContext * context)
+{
+  const GstGLFuncs *gl = context->gl_vtable;
+
+  gst_gl_insert_debug_marker (context, "no buffer.  rendering black");
+  gl->ClearColor (0.0, 0.0, 0.0, 0.0);
+  gl->Clear (GL_COLOR_BUFFER_BIT);
+}
+
+static gboolean
+gtk_gst_gl_widget_render (GtkGLArea * widget, GdkGLContext * context)
+{
+  GtkGstGLWidgetPrivate *priv = GTK_GST_GL_WIDGET (widget)->priv;
+  GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget);
+
+  GTK_GST_BASE_WIDGET_LOCK (widget);
+
+  if (!priv->context || !priv->other_context)
+    goto done;
+
+  gst_gl_context_activate (priv->other_context, TRUE);
+
+  if (!priv->initted)
+    gtk_gst_gl_widget_init_redisplay (GTK_GST_GL_WIDGET (widget));
+
+  if (!priv->initted || !base_widget->negotiated) {
+    _draw_black (priv->other_context);
+    goto done;
+  }
+
+  /* Upload latest buffer */
+  if (base_widget->pending_buffer) {
+    GstBuffer *buffer = base_widget->pending_buffer;
+    GstVideoFrame gl_frame;
+    GstGLSyncMeta *sync_meta;
+
+    if (!gst_video_frame_map (&gl_frame, &base_widget->v_info, buffer,
+            GST_MAP_READ | GST_MAP_GL)) {
+      _draw_black (priv->other_context);
+      goto done;
+    }
+
+    priv->current_tex = *(guint *) gl_frame.data[0];
+    gst_gl_insert_debug_marker (priv->other_context, "redrawing texture %u",
+        priv->current_tex);
+
+    gst_gl_overlay_compositor_upload_overlays (priv->overlay_compositor,
+        buffer);
+
+    sync_meta = gst_buffer_get_gl_sync_meta (buffer);
+    if (sync_meta) {
+      /* XXX: the set_sync() seems to be needed for resizing */
+      gst_gl_sync_meta_set_sync_point (sync_meta, priv->context);
+      gst_gl_sync_meta_wait (sync_meta, priv->other_context);
+    }
+
+    gst_video_frame_unmap (&gl_frame);
+
+    if (base_widget->buffer)
+      gst_buffer_unref (base_widget->buffer);
+
+    /* Keep the buffer to ensure current_tex stay valid */
+    base_widget->buffer = buffer;
+    base_widget->pending_buffer = NULL;
+  }
+
+  GST_DEBUG ("rendering buffer %p with gdk context %p",
+      base_widget->buffer, context);
+
+  _redraw_texture (GTK_GST_GL_WIDGET (widget), priv->current_tex);
+  gst_gl_overlay_compositor_draw_overlays (priv->overlay_compositor);
+
+  gst_gl_insert_debug_marker (priv->other_context, "texture %u redrawn",
+      priv->current_tex);
+
+done:
+  if (priv->other_context)
+    gst_gl_context_activate (priv->other_context, FALSE);
+
+  GTK_GST_BASE_WIDGET_UNLOCK (widget);
+  return FALSE;
+}
+
+static void
+_reset_gl (GtkGstGLWidget * gst_widget)
+{
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  const GstGLFuncs *gl = priv->other_context->gl_vtable;
+
+  if (!priv->gdk_context)
+    priv->gdk_context = gtk_gl_area_get_context (GTK_GL_AREA (gst_widget));
+
+  if (priv->gdk_context == NULL)
+    return;
+
+  gdk_gl_context_make_current (priv->gdk_context);
+  gst_gl_context_activate (priv->other_context, TRUE);
+
+  if (priv->vao) {
+    gl->DeleteVertexArrays (1, &priv->vao);
+    priv->vao = 0;
+  }
+
+  if (priv->vertex_buffer) {
+    gl->DeleteBuffers (1, &priv->vertex_buffer);
+    priv->vertex_buffer = 0;
+  }
+
+  if (priv->upload) {
+    gst_object_unref (priv->upload);
+    priv->upload = NULL;
+  }
+
+  if (priv->shader) {
+    gst_object_unref (priv->shader);
+    priv->shader = NULL;
+  }
+
+  if (priv->overlay_compositor)
+    gst_object_unref (priv->overlay_compositor);
+
+  gst_gl_context_activate (priv->other_context, FALSE);
+
+  gst_object_unref (priv->other_context);
+  priv->other_context = NULL;
+
+  gdk_gl_context_clear_current ();
+
+  g_object_unref (priv->gdk_context);
+  priv->gdk_context = NULL;
+}
+
+static void
+gtk_gst_gl_widget_finalize (GObject * object)
+{
+  GtkGstGLWidgetPrivate *priv = GTK_GST_GL_WIDGET (object)->priv;
+  GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (object);
+
+  if (priv->other_context)
+    gst_gtk_invoke_on_main ((GThreadFunc) _reset_gl, base_widget);
+
+  if (priv->context)
+    gst_object_unref (priv->context);
+
+  if (priv->display)
+    gst_object_unref (priv->display);
+
+  gtk_gst_base_widget_finalize (object);
+  G_OBJECT_CLASS (gtk_gst_gl_widget_parent_class)->finalize (object);
+}
+
+static void
+gtk_gst_gl_widget_class_init (GtkGstGLWidgetClass * klass)
+{
+  GObjectClass *gobject_klass = (GObjectClass *) klass;
+  GtkGLAreaClass *gl_widget_klass = (GtkGLAreaClass *) klass;
+
+  g_type_class_add_private (klass, sizeof (GtkGstGLWidgetPrivate));
+  gtk_gst_base_widget_class_init (GTK_GST_BASE_WIDGET_CLASS (klass));
+
+  gobject_klass->finalize = gtk_gst_gl_widget_finalize;
+  gl_widget_klass->render = gtk_gst_gl_widget_render;
+}
+
+static void
+gtk_gst_gl_widget_init (GtkGstGLWidget * gst_widget)
+{
+  GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (gst_widget);
+  GdkDisplay *display;
+  GtkGstGLWidgetPrivate *priv;
+
+  gtk_gst_base_widget_init (base_widget);
+
+  gst_widget->priv = priv = GTK_GST_GL_WIDGET_GET_PRIVATE (gst_widget);
+
+  display = gdk_display_get_default ();
+
+#if GST_GL_HAVE_WINDOW_X11 && GST_GL_HAVE_PLATFORM_GLX && defined (GDK_WINDOWING_X11)
+  if (GDK_IS_X11_DISPLAY (display))
+    priv->display = (GstGLDisplay *)
+        gst_gl_display_x11_new_with_display (gdk_x11_display_get_xdisplay
+        (display));
+#endif
+#if GST_GL_HAVE_WINDOW_WAYLAND && GST_GL_HAVE_PLATFORM_EGL && defined (GDK_WINDOWING_WAYLAND)
+  if (GDK_IS_WAYLAND_DISPLAY (display)) {
+    struct wl_display *wayland_display =
+        gdk_wayland_display_get_wl_display (display);
+    priv->display = (GstGLDisplay *)
+        gst_gl_display_wayland_new_with_display (wayland_display);
+  }
+#endif
+
+  (void) display;
+
+  if (!priv->display)
+    priv->display = gst_gl_display_new ();
+
+  gtk_gl_area_set_has_alpha (GTK_GL_AREA (gst_widget),
+      !base_widget->ignore_alpha);
+}
+
+static void
+_get_gl_context (GtkGstGLWidget * gst_widget)
+{
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  GstGLPlatform platform;
+  GstGLAPI gl_api;
+  guintptr gl_handle;
+
+  gtk_widget_realize (GTK_WIDGET (gst_widget));
+
+  if (priv->other_context)
+    gst_object_unref (priv->other_context);
+  priv->other_context = NULL;
+
+  if (priv->gdk_context)
+    g_object_unref (priv->gdk_context);
+
+  priv->gdk_context = gtk_gl_area_get_context (GTK_GL_AREA (gst_widget));
+  if (priv->gdk_context == NULL) {
+    GError *error = gtk_gl_area_get_error (GTK_GL_AREA (gst_widget));
+
+    GST_ERROR_OBJECT (gst_widget, "Error creating GdkGLContext : %s",
+        error ? error->message : "No error set by Gdk");
+    g_clear_error (&error);
+    return;
+  }
+
+  g_object_ref (priv->gdk_context);
+
+  gdk_gl_context_make_current (priv->gdk_context);
+
+#if GST_GL_HAVE_WINDOW_X11 && GST_GL_HAVE_PLATFORM_GLX && defined (GDK_WINDOWING_X11)
+  if (GST_IS_GL_DISPLAY_X11 (priv->display)) {
+    platform = GST_GL_PLATFORM_GLX;
+    gl_api = gst_gl_context_get_current_gl_api (platform, NULL, NULL);
+    gl_handle = gst_gl_context_get_current_gl_context (platform);
+    if (gl_handle)
+      priv->other_context =
+          gst_gl_context_new_wrapped (priv->display, gl_handle,
+          platform, gl_api);
+  }
+#endif
+#if GST_GL_HAVE_WINDOW_WAYLAND && GST_GL_HAVE_PLATFORM_EGL && defined (GDK_WINDOWING_WAYLAND)
+  if (GST_IS_GL_DISPLAY_WAYLAND (priv->display)) {
+    platform = GST_GL_PLATFORM_EGL;
+    gl_api = gst_gl_context_get_current_gl_api (platform, NULL, NULL);
+    gl_handle = gst_gl_context_get_current_gl_context (platform);
+    if (gl_handle)
+      priv->other_context =
+          gst_gl_context_new_wrapped (priv->display, gl_handle,
+          platform, gl_api);
+  }
+#endif
+
+  (void) platform;
+  (void) gl_api;
+  (void) gl_handle;
+
+  if (priv->other_context) {
+    GError *error = NULL;
+
+    gst_gl_context_activate (priv->other_context, TRUE);
+    if (!gst_gl_context_fill_info (priv->other_context, &error)) {
+      GST_ERROR ("failed to retrieve gdk context info: %s", error->message);
+      g_clear_error (&error);
+      g_object_unref (priv->other_context);
+      priv->other_context = NULL;
+    } else {
+      gst_gl_context_activate (priv->other_context, FALSE);
+    }
+  }
+}
+
+GtkWidget *
+gtk_gst_gl_widget_new (void)
+{
+  return (GtkWidget *) g_object_new (GTK_TYPE_GST_GL_WIDGET, NULL);
+}
+
+gboolean
+gtk_gst_gl_widget_init_winsys (GtkGstGLWidget * gst_widget)
+{
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  GError *error = NULL;
+
+  g_return_val_if_fail (GTK_IS_GST_GL_WIDGET (gst_widget), FALSE);
+  g_return_val_if_fail (priv->display != NULL, FALSE);
+
+  GTK_GST_BASE_WIDGET_LOCK (gst_widget);
+
+  if (priv->display && priv->gdk_context && priv->other_context) {
+    GTK_GST_BASE_WIDGET_UNLOCK (gst_widget);
+    return TRUE;
+  }
+
+  if (!priv->other_context) {
+    GTK_GST_BASE_WIDGET_UNLOCK (gst_widget);
+    gst_gtk_invoke_on_main ((GThreadFunc) _get_gl_context, gst_widget);
+    GTK_GST_BASE_WIDGET_LOCK (gst_widget);
+  }
+
+  if (!GST_IS_GL_CONTEXT (priv->other_context)) {
+    GTK_GST_BASE_WIDGET_UNLOCK (gst_widget);
+    return FALSE;
+  }
+
+  GST_OBJECT_LOCK (priv->display);
+  if (!gst_gl_display_create_context (priv->display, priv->other_context,
+          &priv->context, &error)) {
+    g_clear_error (&error);
+    GST_OBJECT_UNLOCK (priv->display);
+    GTK_GST_BASE_WIDGET_UNLOCK (gst_widget);
+    return FALSE;
+  }
+  gst_gl_display_add_context (priv->display, priv->context);
+  GST_OBJECT_UNLOCK (priv->display);
+
+  GTK_GST_BASE_WIDGET_UNLOCK (gst_widget);
+  return TRUE;
+}
+
+GstGLContext *
+gtk_gst_gl_widget_get_gtk_context (GtkGstGLWidget * gst_widget)
+{
+  if (!gst_widget->priv->other_context)
+    return NULL;
+
+  return gst_object_ref (gst_widget->priv->other_context);
+}
+
+GstGLContext *
+gtk_gst_gl_widget_get_context (GtkGstGLWidget * gst_widget)
+{
+  if (!gst_widget->priv->context)
+    return NULL;
+
+  return gst_object_ref (gst_widget->priv->context);
+}
+
+GstGLDisplay *
+gtk_gst_gl_widget_get_display (GtkGstGLWidget * gst_widget)
+{
+  if (!gst_widget->priv->display)
+    return NULL;
+
+  return gst_object_ref (gst_widget->priv->display);
+}
diff --git a/ext/gtk/gtkgstglwidget.h b/ext/gtk/gtkgstglwidget.h
new file mode 100644
index 000000000..7f055c481
--- /dev/null
+++ b/ext/gtk/gtkgstglwidget.h
@@ -0,0 +1,77 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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 __GTK_GST_GL_WIDGET_H__
+#define __GTK_GST_GL_WIDGET_H__
+
+#include <gtk/gtk.h>
+#include <gst/gst.h>
+#include <gst/gl/gl.h>
+
+#include "gtkgstbasewidget.h"
+
+G_BEGIN_DECLS
+
+GType gtk_gst_gl_widget_get_type (void);
+#define GTK_TYPE_GST_GL_WIDGET (gtk_gst_gl_widget_get_type())
+#define GTK_GST_GL_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GTK_TYPE_GST_GL_WIDGET,GtkGstGLWidget))
+#define GTK_GST_GL_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GTK_TYPE_GST_GL_WIDGET,GtkGstGLWidgetClass))
+#define GTK_IS_GST_GL_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GTK_TYPE_GST_GL_WIDGET))
+#define GTK_IS_GST_GL_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GTK_TYPE_GST_GL_WIDGET))
+#define GTK_GST_GL_WIDGET_CAST(obj) ((GtkGstGLWidget*)(obj))
+
+typedef struct _GtkGstGLWidget GtkGstGLWidget;
+typedef struct _GtkGstGLWidgetClass GtkGstGLWidgetClass;
+typedef struct _GtkGstGLWidgetPrivate GtkGstGLWidgetPrivate;
+
+/**
+ * GtkGstGLWidget:
+ *
+ * Opaque #GtkGstGLWidget object
+ */
+struct _GtkGstGLWidget
+{
+  /* <private> */
+  GtkGstBaseWidget base;
+
+  GtkGstGLWidgetPrivate   *priv;
+};
+
+/**
+ * GtkGstGLWidgetClass:
+ *
+ * The #GtkGstGLWidgetClass struct only contains private data
+ */
+struct _GtkGstGLWidgetClass
+{
+  /* <private> */
+  GtkGstBaseWidgetClass base_class;
+};
+
+GtkWidget *     gtk_gst_gl_widget_new (void);
+
+gboolean        gtk_gst_gl_widget_init_winsys          (GtkGstGLWidget * widget);
+GstGLDisplay *  gtk_gst_gl_widget_get_display          (GtkGstGLWidget * widget);
+GstGLContext *  gtk_gst_gl_widget_get_context          (GtkGstGLWidget * widget);
+GstGLContext *  gtk_gst_gl_widget_get_gtk_context      (GtkGstGLWidget * widget);
+
+G_END_DECLS
+
+#endif /* __GTK_GST_GL_WIDGET_H__ */
diff --git a/ext/gtk/gtkgstwidget.c b/ext/gtk/gtkgstwidget.c
new file mode 100644
index 000000000..a936210ba
--- /dev/null
+++ b/ext/gtk/gtkgstwidget.c
@@ -0,0 +1,191 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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 <stdio.h>
+
+#include "gtkgstwidget.h"
+#include <gst/video/video.h>
+
+/**
+ * SECTION:gtkgstwidget
+ * @title: GtkGstWidget
+ * @short_description: a #GtkWidget that renders GStreamer video #GstBuffers
+ * @see_also: #GtkDrawingArea, #GstBuffer
+ *
+ * #GtkGstWidget is an #GtkWidget that renders GStreamer video buffers.
+ */
+
+G_DEFINE_TYPE (GtkGstWidget, gtk_gst_widget, GTK_TYPE_DRAWING_AREA);
+
+static gboolean
+gtk_gst_widget_draw (GtkWidget * widget, cairo_t * cr)
+{
+  GtkGstBaseWidget *gst_widget = (GtkGstBaseWidget *) widget;
+  guint widget_width, widget_height;
+  cairo_surface_t *surface;
+  GstVideoFrame frame;
+
+  widget_width = gtk_widget_get_allocated_width (widget);
+  widget_height = gtk_widget_get_allocated_height (widget);
+
+  GTK_GST_BASE_WIDGET_LOCK (gst_widget);
+
+  /* There is not much to optimize in term of redisplay, so simply swap the
+   * pending_buffer with the active buffer */
+  if (gst_widget->pending_buffer) {
+    if (gst_widget->buffer)
+      gst_buffer_unref (gst_widget->buffer);
+    gst_widget->buffer = gst_widget->pending_buffer;
+    gst_widget->pending_buffer = NULL;
+  }
+
+  /* failed to map the video frame */
+  if (gst_widget->negotiated && gst_widget->buffer
+      && gst_video_frame_map (&frame, &gst_widget->v_info,
+          gst_widget->buffer, GST_MAP_READ)) {
+    gdouble scale_x = (gdouble) widget_width / gst_widget->display_width;
+    gdouble scale_y = (gdouble) widget_height / gst_widget->display_height;
+    GstVideoRectangle result;
+    cairo_format_t format;
+
+    gst_widget->v_info = frame.info;
+    if (frame.info.finfo->format == GST_VIDEO_FORMAT_ARGB ||
+        frame.info.finfo->format == GST_VIDEO_FORMAT_BGRA) {
+      format = CAIRO_FORMAT_ARGB32;
+    } else {
+      format = CAIRO_FORMAT_RGB24;
+    }
+
+    surface = cairo_image_surface_create_for_data (frame.data[0],
+        format, frame.info.width, frame.info.height, frame.info.stride[0]);
+
+    if (gst_widget->force_aspect_ratio) {
+      GstVideoRectangle src, dst;
+
+      src.x = 0;
+      src.y = 0;
+      src.w = gst_widget->display_width;
+      src.h = gst_widget->display_height;
+
+      dst.x = 0;
+      dst.y = 0;
+      dst.w = widget_width;
+      dst.h = widget_height;
+
+      gst_video_sink_center_rect (src, dst, &result, TRUE);
+
+      scale_x = scale_y = MIN (scale_x, scale_y);
+    } else {
+      result.x = 0;
+      result.y = 0;
+      result.w = widget_width;
+      result.h = widget_height;
+    }
+
+    if (gst_widget->ignore_alpha) {
+      GdkRGBA color = { 0.0, 0.0, 0.0, 1.0 };
+
+      gdk_cairo_set_source_rgba (cr, &color);
+      if (result.x > 0) {
+        cairo_rectangle (cr, 0, 0, result.x, widget_height);
+        cairo_fill (cr);
+      }
+      if (result.y > 0) {
+        cairo_rectangle (cr, 0, 0, widget_width, result.y);
+        cairo_fill (cr);
+      }
+      if (result.w < widget_width) {
+        cairo_rectangle (cr, result.x + result.w, 0, widget_width - result.w,
+            widget_height);
+        cairo_fill (cr);
+      }
+      if (result.h < widget_height) {
+        cairo_rectangle (cr, 0, result.y + result.h, widget_width,
+            widget_height - result.h);
+        cairo_fill (cr);
+      }
+    }
+
+    scale_x *= (gdouble) gst_widget->display_width / (gdouble) frame.info.width;
+    scale_y *=
+        (gdouble) gst_widget->display_height / (gdouble) frame.info.height;
+
+    cairo_translate (cr, result.x, result.y);
+    cairo_scale (cr, scale_x, scale_y);
+    cairo_rectangle (cr, 0, 0, result.w, result.h);
+    cairo_set_source_surface (cr, surface, 0, 0);
+    cairo_paint (cr);
+
+    cairo_surface_destroy (surface);
+
+    gst_video_frame_unmap (&frame);
+  } else {
+    GdkRGBA color;
+
+    if (gst_widget->ignore_alpha) {
+      color.red = color.blue = color.green = 0.0;
+      color.alpha = 1.0;
+    } else {
+      gtk_style_context_get_color (gtk_widget_get_style_context (widget),
+          GTK_STATE_FLAG_NORMAL, &color);
+    }
+    gdk_cairo_set_source_rgba (cr, &color);
+    cairo_rectangle (cr, 0, 0, widget_width, widget_height);
+    cairo_fill (cr);
+  }
+
+  GTK_GST_BASE_WIDGET_UNLOCK (gst_widget);
+  return FALSE;
+}
+
+static void
+gtk_gst_widget_finalize (GObject * object)
+{
+  gtk_gst_base_widget_finalize (object);
+
+  G_OBJECT_CLASS (gtk_gst_widget_parent_class)->finalize (object);
+}
+
+static void
+gtk_gst_widget_class_init (GtkGstWidgetClass * klass)
+{
+  GObjectClass *gobject_klass = (GObjectClass *) klass;
+  GtkWidgetClass *widget_klass = (GtkWidgetClass *) klass;
+
+  gtk_gst_base_widget_class_init (GTK_GST_BASE_WIDGET_CLASS (klass));
+  gobject_klass->finalize = gtk_gst_widget_finalize;
+  widget_klass->draw = gtk_gst_widget_draw;
+}
+
+static void
+gtk_gst_widget_init (GtkGstWidget * widget)
+{
+  gtk_gst_base_widget_init (GTK_GST_BASE_WIDGET (widget));
+}
+
+GtkWidget *
+gtk_gst_widget_new (void)
+{
+  return (GtkWidget *) g_object_new (GTK_TYPE_GST_WIDGET, NULL);
+}
diff --git a/ext/gtk/gtkgstwidget.h b/ext/gtk/gtkgstwidget.h
new file mode 100644
index 000000000..427eebac4
--- /dev/null
+++ b/ext/gtk/gtkgstwidget.h
@@ -0,0 +1,68 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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 __GTK_GST_WIDGET_H__
+#define __GTK_GST_WIDGET_H__
+
+#include <gtk/gtk.h>
+#include <gst/gst.h>
+
+#include "gtkgstbasewidget.h"
+
+G_BEGIN_DECLS
+
+GType gtk_gst_widget_get_type (void);
+#define GTK_TYPE_GST_WIDGET (gtk_gst_widget_get_type())
+#define GTK_GST_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GTK_TYPE_GST_WIDGET,GtkGstWidget))
+#define GTK_GST_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GTK_TYPE_GST_WIDGET,GtkGstWidgetClass))
+#define GTK_IS_GST_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GTK_TYPE_GST_WIDGET))
+#define GST_IS_GST_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GTK_TYPE_GST_WIDGET))
+#define GTK_GST_WIDGET_CAST(obj) ((GtkGstWidget*)(obj))
+
+typedef struct _GtkGstWidget GtkGstWidget;
+typedef struct _GtkGstWidgetClass GtkGstWidgetClass;
+
+/**
+ * GtkGstWidget:
+ *
+ * Opaque #GtkGstWidget object
+ */
+struct _GtkGstWidget
+{
+  /* <private> */
+  GtkGstBaseWidget base;
+};
+
+/**
+ * GtkGstWidgetClass:
+ *
+ * The #GtkGstWidgetClass struct only contains private data
+ */
+struct _GtkGstWidgetClass
+{
+  /* <private> */
+  GtkGstBaseWidgetClass base_class;
+};
+
+GtkWidget *     gtk_gst_widget_new (void);
+
+G_END_DECLS
+
+#endif /* __GTK_GST_WIDGET_H__ */
diff --git a/ext/gtk/meson.build b/ext/gtk/meson.build
new file mode 100644
index 000000000..d7aeee23d
--- /dev/null
+++ b/ext/gtk/meson.build
@@ -0,0 +1,54 @@
+gtk_sources = [
+  'gstgtkbasesink.c',
+  'gstgtksink.c',
+  'gstgtkutils.c',
+  'gstplugin.c',
+  'gtkgstbasewidget.c',
+  'gtkgstwidget.c',
+]
+
+gtk_defines = []
+optional_deps = []
+
+gtk_dep = dependency('gtk+-3.0', required : false)
+if gtk_dep.found()
+  if build_gstgl and gstgl_dep.found() and gtk_dep.version().version_compare('>=3.15.0')
+    have_gtk3_gl_windowing = false
+
+    if gst_gl_have_window_x11 and gst_gl_have_platform_glx
+      gtk_x11_dep = dependency('gtk+-x11-3.0', required : false)
+      if gtk_x11_dep.found()
+        optional_deps += gtk_x11_dep
+        have_gtk3_gl_windowing = true
+      endif
+    endif
+
+    if gst_gl_have_window_wayland and gst_gl_have_platform_egl
+      gtk_wayland_dep = dependency('gtk+-wayland-3.0', required : false)
+      if gtk_wayland_dep.found()
+        optional_deps += gtk_wayland_dep
+        have_gtk3_gl_windowing = true
+      endif
+    endif
+
+    if have_gtk3_gl_windowing
+      gtk_sources += [
+        'gstgtkglsink.c',
+        'gtkgstglwidget.c',
+      ]
+      optional_deps += gstgl_dep
+      gtk_defines += ['-DGST_USE_UNSTABLE_API', '-DHAVE_GTK3_GL']
+    endif
+  endif
+
+  gstgtk = library('gstgtk',
+    gtk_sources,
+    c_args : gst_plugins_good_args + gtk_defines,
+    link_args : noseh_link_args,
+    include_directories : [configinc],
+    dependencies : [gtk_dep, gstvideo_dep, gstbase_dep, libm] + optional_deps,
+    install : true,
+    install_dir : plugins_install_dir,
+  )
+endif
+
diff --git a/ext/jack/Makefile.am b/ext/jack/Makefile.am
index e786a8db4..a8ef27abc 100644
--- a/ext/jack/Makefile.am
+++ b/ext/jack/Makefile.am
@@ -5,6 +5,5 @@ libgstjack_la_SOURCES = gstjackutil.c gstjack.c gstjackaudiosrc.c gstjackaudiosi
 libgstjack_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(JACK_CFLAGS)
 libgstjack_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(JACK_LIBS)
 libgstjack_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstjack_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstjackutil.h gstjackaudiosrc.h gstjackaudiosink.h gstjackaudioclient.h gstjack.h gstjackringbuffer.h
diff --git a/ext/jack/Makefile.in b/ext/jack/Makefile.in
index 35346f3bb..02891d3b9 100644
--- a/ext/jack/Makefile.in
+++ b/ext/jack/Makefile.in
@@ -174,10 +174,9 @@ 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 $@
+libgstjack_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -294,6 +293,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -317,6 +317,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -332,6 +334,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -354,10 +358,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -372,6 +383,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -389,6 +401,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -401,6 +415,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -419,6 +435,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -462,9 +481,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -478,11 +508,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -578,7 +613,6 @@ libgstjack_la_SOURCES = gstjackutil.c gstjack.c gstjackaudiosrc.c gstjackaudiosi
 libgstjack_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(JACK_CFLAGS)
 libgstjack_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(JACK_LIBS)
 libgstjack_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstjack_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstjackutil.h gstjackaudiosrc.h gstjackaudiosink.h gstjackaudioclient.h gstjack.h gstjackringbuffer.h
 all: all-am
 
@@ -689,39 +723,39 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstjack_la-gstjackutil.lo: gstjackutil.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjackutil.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjackutil.Tpo -c -o libgstjack_la-gstjackutil.lo `test -f 'gstjackutil.c' || echo '$(srcdir)/'`gstjackutil.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjackutil.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjackutil.Tpo -c -o libgstjack_la-gstjackutil.lo `test -f 'gstjackutil.c' || echo '$(srcdir)/'`gstjackutil.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstjack_la-gstjackutil.Tpo $(DEPDIR)/libgstjack_la-gstjackutil.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstjackutil.c' object='libgstjack_la-gstjackutil.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 $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackutil.lo `test -f 'gstjackutil.c' || echo '$(srcdir)/'`gstjackutil.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackutil.lo `test -f 'gstjackutil.c' || echo '$(srcdir)/'`gstjackutil.c
 
 libgstjack_la-gstjack.lo: gstjack.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjack.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjack.Tpo -c -o libgstjack_la-gstjack.lo `test -f 'gstjack.c' || echo '$(srcdir)/'`gstjack.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjack.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjack.Tpo -c -o libgstjack_la-gstjack.lo `test -f 'gstjack.c' || echo '$(srcdir)/'`gstjack.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstjack_la-gstjack.Tpo $(DEPDIR)/libgstjack_la-gstjack.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstjack.c' object='libgstjack_la-gstjack.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 $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjack.lo `test -f 'gstjack.c' || echo '$(srcdir)/'`gstjack.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjack.lo `test -f 'gstjack.c' || echo '$(srcdir)/'`gstjack.c
 
 libgstjack_la-gstjackaudiosrc.lo: gstjackaudiosrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjackaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjackaudiosrc.Tpo -c -o libgstjack_la-gstjackaudiosrc.lo `test -f 'gstjackaudiosrc.c' || echo '$(srcdir)/'`gstjackaudiosrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjackaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjackaudiosrc.Tpo -c -o libgstjack_la-gstjackaudiosrc.lo `test -f 'gstjackaudiosrc.c' || echo '$(srcdir)/'`gstjackaudiosrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstjack_la-gstjackaudiosrc.Tpo $(DEPDIR)/libgstjack_la-gstjackaudiosrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstjackaudiosrc.c' object='libgstjack_la-gstjackaudiosrc.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 $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackaudiosrc.lo `test -f 'gstjackaudiosrc.c' || echo '$(srcdir)/'`gstjackaudiosrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackaudiosrc.lo `test -f 'gstjackaudiosrc.c' || echo '$(srcdir)/'`gstjackaudiosrc.c
 
 libgstjack_la-gstjackaudiosink.lo: gstjackaudiosink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjackaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjackaudiosink.Tpo -c -o libgstjack_la-gstjackaudiosink.lo `test -f 'gstjackaudiosink.c' || echo '$(srcdir)/'`gstjackaudiosink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjackaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjackaudiosink.Tpo -c -o libgstjack_la-gstjackaudiosink.lo `test -f 'gstjackaudiosink.c' || echo '$(srcdir)/'`gstjackaudiosink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstjack_la-gstjackaudiosink.Tpo $(DEPDIR)/libgstjack_la-gstjackaudiosink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstjackaudiosink.c' object='libgstjack_la-gstjackaudiosink.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 $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackaudiosink.lo `test -f 'gstjackaudiosink.c' || echo '$(srcdir)/'`gstjackaudiosink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackaudiosink.lo `test -f 'gstjackaudiosink.c' || echo '$(srcdir)/'`gstjackaudiosink.c
 
 libgstjack_la-gstjackaudioclient.lo: gstjackaudioclient.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjackaudioclient.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjackaudioclient.Tpo -c -o libgstjack_la-gstjackaudioclient.lo `test -f 'gstjackaudioclient.c' || echo '$(srcdir)/'`gstjackaudioclient.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjackaudioclient.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjackaudioclient.Tpo -c -o libgstjack_la-gstjackaudioclient.lo `test -f 'gstjackaudioclient.c' || echo '$(srcdir)/'`gstjackaudioclient.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstjack_la-gstjackaudioclient.Tpo $(DEPDIR)/libgstjack_la-gstjackaudioclient.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstjackaudioclient.c' object='libgstjack_la-gstjackaudioclient.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 $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackaudioclient.lo `test -f 'gstjackaudioclient.c' || echo '$(srcdir)/'`gstjackaudioclient.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackaudioclient.lo `test -f 'gstjackaudioclient.c' || echo '$(srcdir)/'`gstjackaudioclient.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/jpeg/Makefile.am b/ext/jpeg/Makefile.am
index f394efbd7..797545540 100644
--- a/ext/jpeg/Makefile.am
+++ b/ext/jpeg/Makefile.am
@@ -10,7 +10,6 @@ libgstjpeg_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAG
 libgstjpeg_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) -lgstvideo-$(GST_API_VERSION) \
 	$(JPEG_LIBS) $(LIBM)
 libgstjpeg_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstjpeg_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = \
 	gstjpeg.h \
diff --git a/ext/jpeg/Makefile.in b/ext/jpeg/Makefile.in
index 613957ef3..a85bf99d8 100644
--- a/ext/jpeg/Makefile.in
+++ b/ext/jpeg/Makefile.in
@@ -173,10 +173,9 @@ 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 $@
+libgstjpeg_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -293,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -316,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -331,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -353,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -371,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -388,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -400,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -418,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -461,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -477,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -584,7 +619,6 @@ libgstjpeg_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) -lg
 	$(JPEG_LIBS) $(LIBM)
 
 libgstjpeg_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstjpeg_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
 	gstjpeg.h \
 	gstjpegdec.h gstjpegenc.h
@@ -696,25 +730,25 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstjpeg_la-gstjpeg.lo: gstjpeg.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -MT libgstjpeg_la-gstjpeg.lo -MD -MP -MF $(DEPDIR)/libgstjpeg_la-gstjpeg.Tpo -c -o libgstjpeg_la-gstjpeg.lo `test -f 'gstjpeg.c' || echo '$(srcdir)/'`gstjpeg.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -MT libgstjpeg_la-gstjpeg.lo -MD -MP -MF $(DEPDIR)/libgstjpeg_la-gstjpeg.Tpo -c -o libgstjpeg_la-gstjpeg.lo `test -f 'gstjpeg.c' || echo '$(srcdir)/'`gstjpeg.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstjpeg_la-gstjpeg.Tpo $(DEPDIR)/libgstjpeg_la-gstjpeg.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstjpeg.c' object='libgstjpeg_la-gstjpeg.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 $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstjpeg.lo `test -f 'gstjpeg.c' || echo '$(srcdir)/'`gstjpeg.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstjpeg.lo `test -f 'gstjpeg.c' || echo '$(srcdir)/'`gstjpeg.c
 
 libgstjpeg_la-gstjpegenc.lo: gstjpegenc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -MT libgstjpeg_la-gstjpegenc.lo -MD -MP -MF $(DEPDIR)/libgstjpeg_la-gstjpegenc.Tpo -c -o libgstjpeg_la-gstjpegenc.lo `test -f 'gstjpegenc.c' || echo '$(srcdir)/'`gstjpegenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -MT libgstjpeg_la-gstjpegenc.lo -MD -MP -MF $(DEPDIR)/libgstjpeg_la-gstjpegenc.Tpo -c -o libgstjpeg_la-gstjpegenc.lo `test -f 'gstjpegenc.c' || echo '$(srcdir)/'`gstjpegenc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstjpeg_la-gstjpegenc.Tpo $(DEPDIR)/libgstjpeg_la-gstjpegenc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstjpegenc.c' object='libgstjpeg_la-gstjpegenc.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 $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstjpegenc.lo `test -f 'gstjpegenc.c' || echo '$(srcdir)/'`gstjpegenc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstjpegenc.lo `test -f 'gstjpegenc.c' || echo '$(srcdir)/'`gstjpegenc.c
 
 libgstjpeg_la-gstjpegdec.lo: gstjpegdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -MT libgstjpeg_la-gstjpegdec.lo -MD -MP -MF $(DEPDIR)/libgstjpeg_la-gstjpegdec.Tpo -c -o libgstjpeg_la-gstjpegdec.lo `test -f 'gstjpegdec.c' || echo '$(srcdir)/'`gstjpegdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -MT libgstjpeg_la-gstjpegdec.lo -MD -MP -MF $(DEPDIR)/libgstjpeg_la-gstjpegdec.Tpo -c -o libgstjpeg_la-gstjpegdec.lo `test -f 'gstjpegdec.c' || echo '$(srcdir)/'`gstjpegdec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstjpeg_la-gstjpegdec.Tpo $(DEPDIR)/libgstjpeg_la-gstjpegdec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstjpegdec.c' object='libgstjpeg_la-gstjpegdec.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 $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstjpegdec.lo `test -f 'gstjpegdec.c' || echo '$(srcdir)/'`gstjpegdec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstjpegdec.lo `test -f 'gstjpegdec.c' || echo '$(srcdir)/'`gstjpegdec.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c
index 8486c64d0..d88b2583d 100644
--- a/ext/jpeg/gstjpegdec.c
+++ b/ext/jpeg/gstjpegdec.c
@@ -376,11 +376,13 @@ gst_jpeg_dec_parse (GstVideoDecoder * bdec, GstVideoCodecFrame * frame,
       goto have_full_frame;
     }
     if (value == 0xd8) {
-      /* Skip this frame if we found another SOI marker */
-      GST_DEBUG ("0x%08x: SOI marker before EOI, skipping", offset + 2);
+      GST_DEBUG ("0x%08x: SOI marker before EOI marker", offset + 2);
+
+      /* clear parse state */
+      dec->saw_header = FALSE;
       dec->parse_resync = FALSE;
-      size = offset + 2;
-      goto drop_frame;
+      toadd = offset;
+      goto have_full_frame;
     }
 
 
@@ -661,7 +663,8 @@ gst_jpeg_dec_ensure_buffers (GstJpegDec * dec, guint maxrowbytes)
 }
 
 static void
-gst_jpeg_dec_decode_grayscale (GstJpegDec * dec, GstVideoFrame * frame)
+gst_jpeg_dec_decode_grayscale (GstJpegDec * dec, GstVideoFrame * frame,
+    guint field, guint num_fields)
 {
   guchar *rows[16];
   guchar **scanarray[1] = { rows };
@@ -674,14 +677,18 @@ gst_jpeg_dec_decode_grayscale (GstJpegDec * dec, GstVideoFrame * frame)
   GST_DEBUG_OBJECT (dec, "indirect decoding of grayscale");
 
   width = GST_VIDEO_FRAME_WIDTH (frame);
-  height = GST_VIDEO_FRAME_HEIGHT (frame);
+  height = GST_VIDEO_FRAME_HEIGHT (frame) / num_fields;
 
   if (G_UNLIKELY (!gst_jpeg_dec_ensure_buffers (dec, GST_ROUND_UP_32 (width))))
     return;
 
   base[0] = GST_VIDEO_FRAME_COMP_DATA (frame, 0);
+  if (field == 2) {
+    base[0] += GST_VIDEO_FRAME_COMP_STRIDE (frame, 0);
+  }
+
   pstride = GST_VIDEO_FRAME_COMP_PSTRIDE (frame, 0);
-  rstride = GST_VIDEO_FRAME_COMP_STRIDE (frame, 0);
+  rstride = GST_VIDEO_FRAME_COMP_STRIDE (frame, 0) * num_fields;
 
   memcpy (rows, dec->idr_y, 16 * sizeof (gpointer));
 
@@ -706,7 +713,8 @@ gst_jpeg_dec_decode_grayscale (GstJpegDec * dec, GstVideoFrame * frame)
 }
 
 static void
-gst_jpeg_dec_decode_rgb (GstJpegDec * dec, GstVideoFrame * frame)
+gst_jpeg_dec_decode_rgb (GstJpegDec * dec, GstVideoFrame * frame,
+    guint field, guint num_fields)
 {
   guchar *r_rows[16], *g_rows[16], *b_rows[16];
   guchar **scanarray[3] = { r_rows, g_rows, b_rows };
@@ -719,16 +727,19 @@ gst_jpeg_dec_decode_rgb (GstJpegDec * dec, GstVideoFrame * frame)
   GST_DEBUG_OBJECT (dec, "indirect decoding of RGB");
 
   width = GST_VIDEO_FRAME_WIDTH (frame);
-  height = GST_VIDEO_FRAME_HEIGHT (frame);
+  height = GST_VIDEO_FRAME_HEIGHT (frame) / num_fields;
 
   if (G_UNLIKELY (!gst_jpeg_dec_ensure_buffers (dec, GST_ROUND_UP_32 (width))))
     return;
 
-  for (i = 0; i < 3; i++)
+  for (i = 0; i < 3; i++) {
     base[i] = GST_VIDEO_FRAME_COMP_DATA (frame, i);
+    if (field == 2)
+      base[i] += GST_VIDEO_FRAME_COMP_STRIDE (frame, i);
+  }
 
   pstride = GST_VIDEO_FRAME_COMP_PSTRIDE (frame, 0);
-  rstride = GST_VIDEO_FRAME_COMP_STRIDE (frame, 0);
+  rstride = GST_VIDEO_FRAME_COMP_STRIDE (frame, 0) * num_fields;
 
   memcpy (r_rows, dec->idr_y, 16 * sizeof (gpointer));
   memcpy (g_rows, dec->idr_u, 16 * sizeof (gpointer));
@@ -760,14 +771,14 @@ gst_jpeg_dec_decode_rgb (GstJpegDec * dec, GstVideoFrame * frame)
 
 static void
 gst_jpeg_dec_decode_indirect (GstJpegDec * dec, GstVideoFrame * frame, gint r_v,
-    gint r_h, gint comp)
+    gint r_h, gint comp, guint field, guint num_fields)
 {
   guchar *y_rows[16], *u_rows[16], *v_rows[16];
   guchar **scanarray[3] = { y_rows, u_rows, v_rows };
   gint i, j, k;
   gint lines;
   guchar *base[3], *last[3];
-  gint stride[3];
+  gint rowsize[3], stride[3];
   gint width, height;
 
   GST_DEBUG_OBJECT (dec,
@@ -781,11 +792,16 @@ gst_jpeg_dec_decode_indirect (GstJpegDec * dec, GstVideoFrame * frame, gint r_v,
 
   for (i = 0; i < 3; i++) {
     base[i] = GST_VIDEO_FRAME_COMP_DATA (frame, i);
-    stride[i] = GST_VIDEO_FRAME_COMP_STRIDE (frame, i);
+    stride[i] = GST_VIDEO_FRAME_COMP_STRIDE (frame, i) * num_fields;
+    rowsize[i] = GST_VIDEO_FRAME_COMP_STRIDE (frame, i);
     /* make sure we don't make jpeglib write beyond our buffer,
      * which might happen if (height % (r_v*DCTSIZE)) != 0 */
     last[i] = base[i] + (GST_VIDEO_FRAME_COMP_STRIDE (frame, i) *
         (GST_VIDEO_FRAME_COMP_HEIGHT (frame, i) - 1));
+
+    if (field == 2) {
+      base[i] += GST_VIDEO_FRAME_COMP_STRIDE (frame, i);
+    }
   }
 
   memcpy (y_rows, dec->idr_y, 16 * sizeof (gpointer));
@@ -806,22 +822,22 @@ gst_jpeg_dec_decode_indirect (GstJpegDec * dec, GstVideoFrame * frame, gint r_v,
     if (G_LIKELY (lines > 0)) {
       for (j = 0, k = 0; j < (r_v * DCTSIZE); j += r_v, k++) {
         if (G_LIKELY (base[0] <= last[0])) {
-          memcpy (base[0], y_rows[j], stride[0]);
+          memcpy (base[0], y_rows[j], rowsize[0]);
           base[0] += stride[0];
         }
         if (r_v == 2) {
           if (G_LIKELY (base[0] <= last[0])) {
-            memcpy (base[0], y_rows[j + 1], stride[0]);
+            memcpy (base[0], y_rows[j + 1], rowsize[0]);
             base[0] += stride[0];
           }
         }
         if (G_LIKELY (base[1] <= last[1] && base[2] <= last[2])) {
           if (r_h == 2) {
-            memcpy (base[1], u_rows[k], stride[1]);
-            memcpy (base[2], v_rows[k], stride[2]);
+            memcpy (base[1], u_rows[k], rowsize[1]);
+            memcpy (base[2], v_rows[k], rowsize[2]);
           } else if (r_h == 1) {
-            hresamplecpy1 (base[1], u_rows[k], stride[1]);
-            hresamplecpy1 (base[2], v_rows[k], stride[2]);
+            hresamplecpy1 (base[1], u_rows[k], rowsize[1]);
+            hresamplecpy1 (base[2], v_rows[k], rowsize[2]);
           } else {
             /* FIXME: implement (at least we avoid crashing by doing nothing) */
           }
@@ -839,7 +855,8 @@ gst_jpeg_dec_decode_indirect (GstJpegDec * dec, GstVideoFrame * frame, gint r_v,
 }
 
 static GstFlowReturn
-gst_jpeg_dec_decode_direct (GstJpegDec * dec, GstVideoFrame * frame)
+gst_jpeg_dec_decode_direct (GstJpegDec * dec, GstVideoFrame * frame,
+    guint field, guint num_fields)
 {
   guchar **line[3];             /* the jpeg line buffer         */
   guchar *y[4 * DCTSIZE] = { NULL, };   /* alloc enough for the lines   */
@@ -866,11 +883,15 @@ gst_jpeg_dec_decode_direct (GstJpegDec * dec, GstVideoFrame * frame)
 
   for (i = 0; i < 3; i++) {
     base[i] = GST_VIDEO_FRAME_COMP_DATA (frame, i);
-    stride[i] = GST_VIDEO_FRAME_COMP_STRIDE (frame, i);
+    stride[i] = GST_VIDEO_FRAME_COMP_STRIDE (frame, i) * num_fields;
     /* make sure we don't make jpeglib write beyond our buffer,
      * which might happen if (height % (r_v*DCTSIZE)) != 0 */
     last[i] = base[i] + (GST_VIDEO_FRAME_COMP_STRIDE (frame, i) *
         (GST_VIDEO_FRAME_COMP_HEIGHT (frame, i) - 1));
+
+    if (field == 2) {
+      base[i] += GST_VIDEO_FRAME_COMP_STRIDE (frame, i);
+    }
   }
 
   /* let jpeglib decode directly into our final buffer */
@@ -921,7 +942,8 @@ format_not_supported:
 }
 
 static void
-gst_jpeg_dec_negotiate (GstJpegDec * dec, gint width, gint height, gint clrspc)
+gst_jpeg_dec_negotiate (GstJpegDec * dec, gint width, gint height, gint clrspc,
+    gboolean interlaced)
 {
   GstVideoCodecState *outstate;
   GstVideoInfo *info;
@@ -969,6 +991,12 @@ gst_jpeg_dec_negotiate (GstJpegDec * dec, gint width, gint height, gint clrspc)
       break;
   }
 
+  if (interlaced) {
+    outstate->info.interlace_mode = GST_VIDEO_INTERLACE_MODE_INTERLEAVED;
+    GST_VIDEO_INFO_FIELD_ORDER (&outstate->info) =
+        GST_VIDEO_FIELD_ORDER_TOP_FIELD_FIRST;
+  }
+
   gst_video_codec_state_unref (outstate);
 
   gst_video_decoder_negotiate (GST_VIDEO_DECODER (dec));
@@ -978,33 +1006,10 @@ gst_jpeg_dec_negotiate (GstJpegDec * dec, gint width, gint height, gint clrspc)
 }
 
 static GstFlowReturn
-gst_jpeg_dec_handle_frame (GstVideoDecoder * bdec, GstVideoCodecFrame * frame)
+gst_jpeg_dec_prepare_decode (GstJpegDec * dec)
 {
-  GstFlowReturn ret = GST_FLOW_OK;
-  GstJpegDec *dec = (GstJpegDec *) bdec;
-  GstVideoFrame vframe;
-  gint width, height;
-  gint r_h, r_v;
-  guint code, hdr_ok;
-  gboolean need_unmap = TRUE;
-  GstVideoCodecState *state = NULL;
-  gboolean release_frame = TRUE;
-
-  dec->current_frame = frame;
-  gst_buffer_map (frame->input_buffer, &dec->current_frame_map, GST_MAP_READ);
-
-  dec->cinfo.src->next_input_byte = dec->current_frame_map.data;
-  dec->cinfo.src->bytes_in_buffer = dec->current_frame_map.size;
-
-  if (setjmp (dec->jerr.setjmp_buffer)) {
-    code = dec->jerr.pub.msg_code;
-
-    if (code == JERR_INPUT_EOF) {
-      GST_DEBUG ("jpeg input EOF error, we probably need more data");
-      goto need_more_data;
-    }
-    goto decode_error;
-  }
+  G_GNUC_UNUSED GstFlowReturn ret;
+  guint r_h, r_v, hdr_ok;
 
   /* read header */
   hdr_ok = jpeg_read_header (&dec->cinfo, TRUE);
@@ -1082,38 +1087,66 @@ gst_jpeg_dec_handle_frame (GstVideoDecoder * bdec, GstVideoCodecFrame * frame)
       break;
   }
 
-  width = dec->cinfo.output_width;
-  height = dec->cinfo.output_height;
-
-  if (G_UNLIKELY (width < MIN_WIDTH || width > MAX_WIDTH ||
-          height < MIN_HEIGHT || height > MAX_HEIGHT))
+  if (G_UNLIKELY (dec->cinfo.output_width < MIN_WIDTH ||
+          dec->cinfo.output_width > MAX_WIDTH ||
+          dec->cinfo.output_height < MIN_HEIGHT ||
+          dec->cinfo.output_height > MAX_HEIGHT))
     goto wrong_size;
 
-  gst_jpeg_dec_negotiate (dec, width, height, dec->cinfo.jpeg_color_space);
-
-  state = gst_video_decoder_get_output_state (bdec);
-  ret = gst_video_decoder_allocate_output_frame (bdec, frame);
-  if (G_UNLIKELY (ret != GST_FLOW_OK))
-    goto alloc_failed;
-
-  if (!gst_video_frame_map (&vframe, &state->info, frame->output_buffer,
-          GST_MAP_READWRITE))
-    goto alloc_failed;
+  return GST_FLOW_OK;
 
-  if (setjmp (dec->jerr.setjmp_buffer)) {
-    code = dec->jerr.pub.msg_code;
-    gst_video_frame_unmap (&vframe);
-    goto decode_error;
+/* ERRORS */
+wrong_size:
+  {
+    ret = GST_FLOW_ERROR;
+    GST_VIDEO_DECODER_ERROR (dec, 1, STREAM, DECODE,
+        (_("Failed to decode JPEG image")),
+        ("Picture is too small or too big (%ux%u)", dec->cinfo.output_width,
+            dec->cinfo.output_height), ret);
+    return GST_FLOW_ERROR;
+  }
+components_not_supported:
+  {
+    ret = GST_FLOW_ERROR;
+    GST_VIDEO_DECODER_ERROR (dec, 1, STREAM, DECODE,
+        (_("Failed to decode JPEG image")),
+        ("number of components not supported: %d (max 3)",
+            dec->cinfo.num_components), ret);
+    jpeg_abort_decompress (&dec->cinfo);
+    return GST_FLOW_ERROR;
+  }
+unsupported_colorspace:
+  {
+    ret = GST_FLOW_ERROR;
+    GST_VIDEO_DECODER_ERROR (dec, 1, STREAM, DECODE,
+        (_("Failed to decode JPEG image")),
+        ("Picture has unknown or unsupported colourspace"), ret);
+    jpeg_abort_decompress (&dec->cinfo);
+    return GST_FLOW_ERROR;
   }
+invalid_yuvrgbgrayscale:
+  {
+    ret = GST_FLOW_ERROR;
+    GST_VIDEO_DECODER_ERROR (dec, 1, STREAM, DECODE,
+        (_("Failed to decode JPEG image")),
+        ("Picture is corrupt or unhandled YUV/RGB/grayscale layout"), ret);
+    jpeg_abort_decompress (&dec->cinfo);
+    return GST_FLOW_ERROR;
+  }
+}
 
-  GST_LOG_OBJECT (dec, "width %d, height %d", width, height);
+static GstFlowReturn
+gst_jpeg_dec_decode (GstJpegDec * dec, GstVideoFrame * vframe, guint width,
+    guint height, guint field, guint num_fields)
+{
+  GstFlowReturn ret = GST_FLOW_OK;
 
   if (dec->cinfo.jpeg_color_space == JCS_RGB) {
-    gst_jpeg_dec_decode_rgb (dec, &vframe);
+    gst_jpeg_dec_decode_rgb (dec, vframe, field, num_fields);
   } else if (dec->cinfo.jpeg_color_space == JCS_GRAYSCALE) {
-    gst_jpeg_dec_decode_grayscale (dec, &vframe);
+    gst_jpeg_dec_decode_grayscale (dec, vframe, field, num_fields);
   } else {
-    GST_LOG_OBJECT (dec, "decompressing (reqired scanline buffer height = %u)",
+    GST_LOG_OBJECT (dec, "decompressing (required scanline buffer height = %u)",
         dec->cinfo.rec_outbuf_height);
 
     /* For some widths jpeglib requires more horizontal padding than I420 
@@ -1127,25 +1160,200 @@ gst_jpeg_dec_handle_frame (GstVideoDecoder * bdec, GstVideoCodecFrame * frame)
             || dec->cinfo.comp_info[2].h_samp_factor != 1)) {
       GST_CAT_LOG_OBJECT (GST_CAT_PERFORMANCE, dec,
           "indirect decoding using extra buffer copy");
-      gst_jpeg_dec_decode_indirect (dec, &vframe, r_v, r_h,
-          dec->cinfo.num_components);
+      gst_jpeg_dec_decode_indirect (dec, vframe,
+          dec->cinfo.comp_info[0].v_samp_factor,
+          dec->cinfo.comp_info[0].h_samp_factor, dec->cinfo.num_components,
+          field, num_fields);
     } else {
-      ret = gst_jpeg_dec_decode_direct (dec, &vframe);
+      ret = gst_jpeg_dec_decode_direct (dec, vframe, field, num_fields);
+    }
+  }
+
+  GST_LOG_OBJECT (dec, "decompressing finished: %s", gst_flow_get_name (ret));
+
+  if (G_UNLIKELY (ret != GST_FLOW_OK)) {
+    jpeg_abort_decompress (&dec->cinfo);
+  } else {
+    jpeg_finish_decompress (&dec->cinfo);
+  }
+
+  return ret;
+}
+
+static GstFlowReturn
+gst_jpeg_dec_handle_frame (GstVideoDecoder * bdec, GstVideoCodecFrame * frame)
+{
+  GstFlowReturn ret = GST_FLOW_OK;
+  GstJpegDec *dec = (GstJpegDec *) bdec;
+  GstVideoFrame vframe;
+  gint num_fields;              /* number of fields (1 or 2) */
+  gint output_height;           /* height of output image (one or two fields) */
+  gint height;                  /* height of current frame (whole image or a field) */
+  gint width;
+  guint code;
+  gboolean need_unmap = TRUE;
+  GstVideoCodecState *state = NULL;
+  gboolean release_frame = TRUE;
+  gboolean has_eoi;
+  guint8 *data;
+  gsize nbytes;
+
+  gst_buffer_map (frame->input_buffer, &dec->current_frame_map, GST_MAP_READ);
+
+  data = dec->current_frame_map.data;
+  nbytes = dec->current_frame_map.size;
+  has_eoi = ((data[nbytes - 2] != 0xff) || (data[nbytes - 1] != 0xd9));
+
+  /* some cameras fail to send an end-of-image marker (EOI),
+   * add it if that is the case. */
+  if (!has_eoi) {
+    GstMapInfo map;
+    GstBuffer *eoibuf = gst_buffer_new_and_alloc (2);
+
+    /* unmap, will add EOI and remap at the end */
+    gst_buffer_unmap (frame->input_buffer, &dec->current_frame_map);
+
+    gst_buffer_map (eoibuf, &map, GST_MAP_WRITE);
+    map.data[0] = 0xff;
+    map.data[1] = 0xd9;
+    gst_buffer_unmap (eoibuf, &map);
+
+    /* append to input buffer, and remap */
+    frame->input_buffer = gst_buffer_append (frame->input_buffer, eoibuf);
+
+    gst_buffer_map (frame->input_buffer, &dec->current_frame_map, GST_MAP_READ);
+    GST_DEBUG ("fixup EOI marker added");
+  }
+
+  dec->current_frame = frame;
+  dec->cinfo.src->next_input_byte = dec->current_frame_map.data;
+  dec->cinfo.src->bytes_in_buffer = dec->current_frame_map.size;
+
+  if (setjmp (dec->jerr.setjmp_buffer)) {
+    code = dec->jerr.pub.msg_code;
 
-      if (G_UNLIKELY (ret != GST_FLOW_OK))
-        goto decode_direct_failed;
+    if (code == JERR_INPUT_EOF) {
+      GST_DEBUG ("jpeg input EOF error, we probably need more data");
+      goto need_more_data;
     }
+    goto decode_error;
   }
 
-  gst_video_frame_unmap (&vframe);
+  /* read header and check values */
+  ret = gst_jpeg_dec_prepare_decode (dec);
+  if (G_UNLIKELY (ret == GST_FLOW_ERROR))
+    goto done;
+
+  width = dec->cinfo.output_width;
+  height = dec->cinfo.output_height;
+
+  /* is it interlaced MJPEG? (we really don't want to scan the jpeg data
+   * to see if there are two SOF markers in the packet to detect this) */
+  if (gst_video_decoder_get_packetized (bdec) &&
+      dec->input_state->info.height > height &&
+      dec->input_state->info.height <= (height * 2)
+      && dec->input_state->info.width == width) {
+    GST_LOG_OBJECT (dec,
+        "looks like an interlaced image: "
+        "input width/height of %dx%d with JPEG frame width/height of %dx%d",
+        dec->input_state->info.width, dec->input_state->info.height, width,
+        height);
+    output_height = dec->input_state->info.height;
+    height = dec->input_state->info.height / 2;
+    num_fields = 2;
+    GST_LOG_OBJECT (dec, "field height=%d", height);
+  } else {
+    output_height = height;
+    num_fields = 1;
+  }
+
+  gst_jpeg_dec_negotiate (dec, width, output_height,
+      dec->cinfo.jpeg_color_space, num_fields == 2);
+
+  state = gst_video_decoder_get_output_state (bdec);
+  ret = gst_video_decoder_allocate_output_frame (bdec, frame);
+  if (G_UNLIKELY (ret != GST_FLOW_OK))
+    goto alloc_failed;
+
+  if (!gst_video_frame_map (&vframe, &state->info, frame->output_buffer,
+          GST_MAP_READWRITE))
+    goto alloc_failed;
+
+  if (setjmp (dec->jerr.setjmp_buffer)) {
+    code = dec->jerr.pub.msg_code;
+    gst_video_frame_unmap (&vframe);
+    goto decode_error;
+  }
+
+  GST_LOG_OBJECT (dec, "width %d, height %d, fields %d", width, output_height,
+      num_fields);
+
+  ret = gst_jpeg_dec_decode (dec, &vframe, width, height, 1, num_fields);
+  if (G_UNLIKELY (ret != GST_FLOW_OK)) {
+    gst_video_frame_unmap (&vframe);
+    goto decode_failed;
+  }
 
   if (setjmp (dec->jerr.setjmp_buffer)) {
     code = dec->jerr.pub.msg_code;
+    gst_video_frame_unmap (&vframe);
     goto decode_error;
   }
 
-  GST_LOG_OBJECT (dec, "decompressing finished");
-  jpeg_finish_decompress (&dec->cinfo);
+  /* decode second field if there is one */
+  if (num_fields == 2) {
+    GstVideoFormat field2_format;
+
+    /* skip any chunk or padding bytes before the next SOI marker; both fields
+     * are in one single buffer here, so direct access should be fine here */
+    while (dec->jsrc.pub.bytes_in_buffer > 2 &&
+        GST_READ_UINT16_BE (dec->jsrc.pub.next_input_byte) != 0xffd8) {
+      --dec->jsrc.pub.bytes_in_buffer;
+      ++dec->jsrc.pub.next_input_byte;
+    }
+
+    if (gst_jpeg_dec_prepare_decode (dec) != GST_FLOW_OK) {
+      GST_WARNING_OBJECT (dec, "problem reading jpeg header of 2nd field");
+      /* FIXME: post a warning message here? */
+      gst_video_frame_unmap (&vframe);
+      goto decode_failed;
+    }
+
+    /* check if format has changed for the second field */
+    switch (dec->cinfo.jpeg_color_space) {
+      case JCS_RGB:
+        field2_format = GST_VIDEO_FORMAT_RGB;
+        break;
+      case JCS_GRAYSCALE:
+        field2_format = GST_VIDEO_FORMAT_GRAY8;
+        break;
+      default:
+        field2_format = GST_VIDEO_FORMAT_I420;
+        break;
+    }
+
+    GST_LOG_OBJECT (dec,
+        "got for second field of interlaced image: "
+        "input width/height of %dx%d with JPEG frame width/height of %dx%d",
+        dec->input_state->info.width, dec->input_state->info.height,
+        dec->cinfo.output_width, dec->cinfo.output_height);
+
+    if (dec->cinfo.output_width != GST_VIDEO_INFO_WIDTH (&state->info) ||
+        GST_VIDEO_INFO_HEIGHT (&state->info) <= dec->cinfo.output_height ||
+        GST_VIDEO_INFO_HEIGHT (&state->info) > (dec->cinfo.output_height * 2) ||
+        field2_format != GST_VIDEO_INFO_FORMAT (&state->info)) {
+      GST_WARNING_OBJECT (dec, "second field has different format than first");
+      gst_video_frame_unmap (&vframe);
+      goto decode_failed;
+    }
+
+    ret = gst_jpeg_dec_decode (dec, &vframe, width, height, 2, 2);
+    if (G_UNLIKELY (ret != GST_FLOW_OK)) {
+      gst_video_frame_unmap (&vframe);
+      goto decode_failed;
+    }
+  }
+  gst_video_frame_unmap (&vframe);
 
   gst_buffer_unmap (frame->input_buffer, &dec->current_frame_map);
   ret = gst_video_decoder_finish_frame (bdec, frame);
@@ -1175,14 +1383,6 @@ need_more_data:
     goto exit;
   }
   /* ERRORS */
-wrong_size:
-  {
-    GST_VIDEO_DECODER_ERROR (dec, 1, STREAM, DECODE,
-        (_("Failed to decode JPEG image")),
-        ("Picture is too small or too big (%ux%u)", width, height), ret);
-    ret = GST_FLOW_ERROR;
-    goto done;
-  }
 decode_error:
   {
     gchar err_msg[JMSG_LENGTH_MAX];
@@ -1201,10 +1401,9 @@ decode_error:
 
     goto done;
   }
-decode_direct_failed:
+decode_failed:
   {
     /* already posted an error message */
-    jpeg_abort_decompress (&dec->cinfo);
     goto done;
   }
 alloc_failed:
@@ -1225,31 +1424,6 @@ alloc_failed:
     }
     goto exit;
   }
-components_not_supported:
-  {
-    GST_VIDEO_DECODER_ERROR (dec, 1, STREAM, DECODE,
-        (_("Failed to decode JPEG image")),
-        ("number of components not supported: %d (max 3)",
-            dec->cinfo.num_components), ret);
-    jpeg_abort_decompress (&dec->cinfo);
-    goto done;
-  }
-unsupported_colorspace:
-  {
-    GST_VIDEO_DECODER_ERROR (dec, 1, STREAM, DECODE,
-        (_("Failed to decode JPEG image")),
-        ("Picture has unknown or unsupported colourspace"), ret);
-    jpeg_abort_decompress (&dec->cinfo);
-    goto done;
-  }
-invalid_yuvrgbgrayscale:
-  {
-    GST_VIDEO_DECODER_ERROR (dec, 1, STREAM, DECODE,
-        (_("Failed to decode JPEG image")),
-        ("Picture is corrupt or unhandled YUV/RGB/grayscale layout"), ret);
-    jpeg_abort_decompress (&dec->cinfo);
-    goto done;
-  }
 }
 
 static gboolean
diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c
index 67ae6dc76..3f4be0649 100644
--- a/ext/jpeg/gstjpegenc.c
+++ b/ext/jpeg/gstjpegenc.c
@@ -54,6 +54,7 @@ GST_DEBUG_CATEGORY_STATIC (jpegenc_debug);
 #define JPEG_DEFAULT_QUALITY 85
 #define JPEG_DEFAULT_SMOOTHING 0
 #define JPEG_DEFAULT_IDCT_METHOD	JDCT_FASTEST
+#define JPEG_DEFAULT_SNAPSHOT		FALSE
 
 /* JpegEnc signals and args */
 enum
@@ -67,7 +68,8 @@ enum
   PROP_0,
   PROP_QUALITY,
   PROP_SMOOTHING,
-  PROP_IDCT_METHOD
+  PROP_IDCT_METHOD,
+  PROP_SNAPSHOT
 };
 
 static void gst_jpegenc_finalize (GObject * object);
@@ -134,7 +136,8 @@ gst_jpegenc_class_init (GstJpegEncClass * klass)
   g_object_class_install_property (gobject_class, PROP_QUALITY,
       g_param_spec_int ("quality", "Quality", "Quality of encoding",
           0, 100, JPEG_DEFAULT_QUALITY,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
 
 #ifdef ENABLE_SMOOTHING
   /* disabled, since it doesn't seem to work */
@@ -149,11 +152,23 @@ gst_jpegenc_class_init (GstJpegEncClass * klass)
           "The IDCT algorithm to use", GST_TYPE_IDCT_METHOD,
           JPEG_DEFAULT_IDCT_METHOD,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstJpegEnc:snapshot:
+   *
+   * Send EOS after encoding a frame, useful for snapshots.
+   *
+   * Since: 1.14
+   */
+  g_object_class_install_property (gobject_class, PROP_SNAPSHOT,
+      g_param_spec_boolean ("snapshot", "Snapshot",
+          "Send EOS after encoding a frame, useful for snapshots",
+          JPEG_DEFAULT_SNAPSHOT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gst_element_class_add_static_pad_template (element_class,
       &gst_jpegenc_sink_pad_template);
   gst_element_class_add_static_pad_template (element_class,
       &gst_jpegenc_src_pad_template);
+
   gst_element_class_set_static_metadata (element_class, "JPEG image encoder",
       "Codec/Encoder/Image", "Encode images in JPEG format",
       "Wim Taymans <wim.taymans@tvd.be>");
@@ -253,7 +268,7 @@ gst_jpegenc_term_destination (j_compress_ptr cinfo)
   jpegenc->output_map.data = NULL;
   jpegenc->output_map.size = 0;
 
-  if (jpegenc->sof_marker != sof_marker) {
+  if (jpegenc->sof_marker != sof_marker || jpegenc->input_caps_changed) {
     GstVideoCodecState *output;
     output =
         gst_video_encoder_set_output_state (GST_VIDEO_ENCODER (jpegenc),
@@ -261,6 +276,7 @@ gst_jpegenc_term_destination (j_compress_ptr cinfo)
             NULL), jpegenc->input_state);
     gst_video_codec_state_unref (output);
     jpegenc->sof_marker = sof_marker;
+    jpegenc->input_caps_changed = FALSE;
   }
 
   outbuf = gst_buffer_new ();
@@ -301,6 +317,7 @@ gst_jpegenc_init (GstJpegEnc * jpegenc)
   jpegenc->quality = JPEG_DEFAULT_QUALITY;
   jpegenc->smoothing = JPEG_DEFAULT_SMOOTHING;
   jpegenc->idct_method = JPEG_DEFAULT_IDCT_METHOD;
+  jpegenc->snapshot = JPEG_DEFAULT_SNAPSHOT;
 }
 
 static void
@@ -360,6 +377,7 @@ gst_jpegenc_set_format (GstVideoEncoder * encoder, GstVideoCodecState * state)
   }
   enc->planar = (enc->inc[0] == 1 && enc->inc[1] == 1 && enc->inc[2] == 1);
 
+  enc->input_caps_changed = TRUE;
   gst_jpegenc_resync (enc);
 
   return TRUE;
@@ -474,9 +492,13 @@ gst_jpegenc_handle_frame (GstVideoEncoder * encoder, GstVideoCodecFrame * frame)
 #if JPEG_LIB_VERSION >= 70
   jpegenc->cinfo.do_fancy_downsampling = FALSE;
 #endif
+
+  GST_OBJECT_LOCK (jpegenc);
   jpegenc->cinfo.smoothing_factor = jpegenc->smoothing;
   jpegenc->cinfo.dct_method = jpegenc->idct_method;
   jpeg_set_quality (&jpegenc->cinfo, jpegenc->quality, TRUE);
+  GST_OBJECT_UNLOCK (jpegenc);
+
   jpeg_start_compress (&jpegenc->cinfo, TRUE);
 
   GST_LOG_OBJECT (jpegenc, "compressing");
@@ -521,7 +543,7 @@ gst_jpegenc_handle_frame (GstVideoEncoder * encoder, GstVideoCodecFrame * frame)
   jpeg_finish_compress (&jpegenc->cinfo);
   GST_LOG_OBJECT (jpegenc, "compressing done");
 
-  return jpegenc->res;
+  return (jpegenc->snapshot) ? GST_FLOW_EOS : jpegenc->res;
 
 invalid_frame:
   {
@@ -559,6 +581,9 @@ gst_jpegenc_set_property (GObject * object, guint prop_id,
     case PROP_IDCT_METHOD:
       jpegenc->idct_method = g_value_get_enum (value);
       break;
+    case PROP_SNAPSHOT:
+      jpegenc->snapshot = g_value_get_boolean (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -587,6 +612,9 @@ gst_jpegenc_get_property (GObject * object, guint prop_id, GValue * value,
     case PROP_IDCT_METHOD:
       g_value_set_enum (value, jpegenc->idct_method);
       break;
+    case PROP_SNAPSHOT:
+      g_value_set_boolean (value, jpegenc->snapshot);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
diff --git a/ext/jpeg/gstjpegenc.h b/ext/jpeg/gstjpegenc.h
index 7c636d358..df7529941 100644
--- a/ext/jpeg/gstjpegenc.h
+++ b/ext/jpeg/gstjpegenc.h
@@ -58,6 +58,8 @@ struct _GstJpegEnc
   GstVideoCodecFrame *current_frame;
   GstFlowReturn res;
 
+  gboolean input_caps_changed;
+
   guint channels;
 
   gint inc[GST_VIDEO_MAX_COMPONENTS];
@@ -84,6 +86,7 @@ struct _GstJpegEnc
   gint quality;
   gint smoothing;
   gint idct_method;
+  gboolean snapshot;
 
   GstMemory *output_mem;
   GstMapInfo output_map;
diff --git a/ext/lame/Makefile.am b/ext/lame/Makefile.am
new file mode 100644
index 000000000..46198c8ec
--- /dev/null
+++ b/ext/lame/Makefile.am
@@ -0,0 +1,10 @@
+plugin_LTLIBRARIES = libgstlame.la
+
+libgstlame_la_SOURCES = gstlamemp3enc.c plugin.c
+libgstlame_la_CFLAGS = \
+        $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(LAME_CFLAGS)
+libgstlame_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
+	$(GST_BASE_LIBS) $(GST_LIBS) $(LAME_LIBS)
+libgstlame_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+
+noinst_HEADERS = gstlamemp3enc.h
diff --git a/sys/sunaudio/Makefile.in b/ext/lame/Makefile.in
similarity index 71%
rename from sys/sunaudio/Makefile.in
rename to ext/lame/Makefile.in
index 6203211db..e806b9748 100644
--- a/sys/sunaudio/Makefile.in
+++ b/ext/lame/Makefile.in
@@ -90,7 +90,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-subdir = sys/sunaudio
+subdir = ext/lame
 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 \
@@ -163,24 +163,19 @@ am__uninstall_files_from_dir = { \
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-libgstsunaudio_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+libgstlame_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
-am_libgstsunaudio_la_OBJECTS = libgstsunaudio_la-gstsunaudio.lo \
-	libgstsunaudio_la-gstsunaudiosink.lo \
-	libgstsunaudio_la-gstsunaudiomixerctrl.lo \
-	libgstsunaudio_la-gstsunaudiomixer.lo \
-	libgstsunaudio_la-gstsunaudiomixertrack.lo \
-	libgstsunaudio_la-gstsunaudiomixeroptions.lo \
-	libgstsunaudio_la-gstsunaudiosrc.lo
-libgstsunaudio_la_OBJECTS = $(am_libgstsunaudio_la_OBJECTS)
+am_libgstlame_la_OBJECTS = libgstlame_la-gstlamemp3enc.lo \
+	libgstlame_la-plugin.lo
+libgstlame_la_OBJECTS = $(am_libgstlame_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 $@
+libgstlame_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgstlame_la_CFLAGS) \
+	$(CFLAGS) $(libgstlame_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
@@ -215,8 +210,8 @@ 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 = $(libgstsunaudio_la_SOURCES)
-DIST_SOURCES = $(libgstsunaudio_la_SOURCES)
+SOURCES = $(libgstlame_la_SOURCES)
+DIST_SOURCES = $(libgstlame_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -297,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -320,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -335,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -357,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -375,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -392,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -404,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -422,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -465,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -481,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -576,31 +607,16 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-plugin_LTLIBRARIES = libgstsunaudio.la
-libgstsunaudio_la_SOURCES = gstsunaudio.c \
-                            gstsunaudiosink.c \
-                            gstsunaudiomixerctrl.c \
-                            gstsunaudiomixer.c \
-                            gstsunaudiomixertrack.c \
-                            gstsunaudiomixeroptions.c \
-                            gstsunaudiosrc.c
-
-libgstsunaudio_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-libgstsunaudio_la_LIBADD = \
-        -lgstinterfaces-@GST_API_VERSION@ \
-        -lgstaudio-@GST_API_VERSION@ \
-        $(GST_PLUGINS_BASE_LIBS) \
-        $(GST_LIBS)
-
-libgstsunaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstsunaudio_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
-noinst_HEADERS = gstsunaudiosink.h \
-                 gstsunaudiomixer.h \
-                 gstsunaudiomixerctrl.h \
-                 gstsunaudiomixertrack.h \
-                 gstsunaudiomixeroptions.h \
-                 gstsunaudiosrc.h
+plugin_LTLIBRARIES = libgstlame.la
+libgstlame_la_SOURCES = gstlamemp3enc.c plugin.c
+libgstlame_la_CFLAGS = \
+        $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(LAME_CFLAGS)
 
+libgstlame_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
+	$(GST_BASE_LIBS) $(GST_LIBS) $(LAME_LIBS)
+
+libgstlame_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+noinst_HEADERS = gstlamemp3enc.h
 all: all-am
 
 .SUFFIXES:
@@ -614,9 +630,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/sunaudio/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/lame/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu sys/sunaudio/Makefile
+	  $(AUTOMAKE) --gnu ext/lame/Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -670,8 +686,8 @@ clean-pluginLTLIBRARIES:
 	  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)
+libgstlame.la: $(libgstlame_la_OBJECTS) $(libgstlame_la_DEPENDENCIES) $(EXTRA_libgstlame_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstlame_la_LINK) -rpath $(plugindir) $(libgstlame_la_OBJECTS) $(libgstlame_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -679,13 +695,8 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsunaudio_la-gstsunaudio.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsunaudio_la-gstsunaudiomixer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsunaudio_la-gstsunaudiomixerctrl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsunaudio_la-gstsunaudiomixeroptions.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsunaudio_la-gstsunaudiomixertrack.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsunaudio_la-gstsunaudiosink.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsunaudio_la-gstsunaudiosrc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstlame_la-gstlamemp3enc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstlame_la-plugin.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -711,54 +722,19 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libgstsunaudio_la-gstsunaudio.lo: gstsunaudio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudio.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudio.Tpo -c -o libgstsunaudio_la-gstsunaudio.lo `test -f 'gstsunaudio.c' || echo '$(srcdir)/'`gstsunaudio.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudio.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudio.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsunaudio.c' object='libgstsunaudio_la-gstsunaudio.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 $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudio.lo `test -f 'gstsunaudio.c' || echo '$(srcdir)/'`gstsunaudio.c
-
-libgstsunaudio_la-gstsunaudiosink.lo: gstsunaudiosink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudiosink.Tpo -c -o libgstsunaudio_la-gstsunaudiosink.lo `test -f 'gstsunaudiosink.c' || echo '$(srcdir)/'`gstsunaudiosink.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudiosink.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudiosink.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsunaudiosink.c' object='libgstsunaudio_la-gstsunaudiosink.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 $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiosink.lo `test -f 'gstsunaudiosink.c' || echo '$(srcdir)/'`gstsunaudiosink.c
-
-libgstsunaudio_la-gstsunaudiomixerctrl.lo: gstsunaudiomixerctrl.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudiomixerctrl.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixerctrl.Tpo -c -o libgstsunaudio_la-gstsunaudiomixerctrl.lo `test -f 'gstsunaudiomixerctrl.c' || echo '$(srcdir)/'`gstsunaudiomixerctrl.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixerctrl.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixerctrl.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsunaudiomixerctrl.c' object='libgstsunaudio_la-gstsunaudiomixerctrl.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 $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiomixerctrl.lo `test -f 'gstsunaudiomixerctrl.c' || echo '$(srcdir)/'`gstsunaudiomixerctrl.c
-
-libgstsunaudio_la-gstsunaudiomixer.lo: gstsunaudiomixer.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudiomixer.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixer.Tpo -c -o libgstsunaudio_la-gstsunaudiomixer.lo `test -f 'gstsunaudiomixer.c' || echo '$(srcdir)/'`gstsunaudiomixer.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixer.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixer.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsunaudiomixer.c' object='libgstsunaudio_la-gstsunaudiomixer.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 $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiomixer.lo `test -f 'gstsunaudiomixer.c' || echo '$(srcdir)/'`gstsunaudiomixer.c
-
-libgstsunaudio_la-gstsunaudiomixertrack.lo: gstsunaudiomixertrack.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudiomixertrack.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixertrack.Tpo -c -o libgstsunaudio_la-gstsunaudiomixertrack.lo `test -f 'gstsunaudiomixertrack.c' || echo '$(srcdir)/'`gstsunaudiomixertrack.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixertrack.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixertrack.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsunaudiomixertrack.c' object='libgstsunaudio_la-gstsunaudiomixertrack.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 $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiomixertrack.lo `test -f 'gstsunaudiomixertrack.c' || echo '$(srcdir)/'`gstsunaudiomixertrack.c
-
-libgstsunaudio_la-gstsunaudiomixeroptions.lo: gstsunaudiomixeroptions.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudiomixeroptions.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixeroptions.Tpo -c -o libgstsunaudio_la-gstsunaudiomixeroptions.lo `test -f 'gstsunaudiomixeroptions.c' || echo '$(srcdir)/'`gstsunaudiomixeroptions.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixeroptions.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixeroptions.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsunaudiomixeroptions.c' object='libgstsunaudio_la-gstsunaudiomixeroptions.lo' libtool=yes @AMDEPBACKSLASH@
+libgstlame_la-gstlamemp3enc.lo: gstlamemp3enc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlame_la_CFLAGS) $(CFLAGS) -MT libgstlame_la-gstlamemp3enc.lo -MD -MP -MF $(DEPDIR)/libgstlame_la-gstlamemp3enc.Tpo -c -o libgstlame_la-gstlamemp3enc.lo `test -f 'gstlamemp3enc.c' || echo '$(srcdir)/'`gstlamemp3enc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstlame_la-gstlamemp3enc.Tpo $(DEPDIR)/libgstlame_la-gstlamemp3enc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstlamemp3enc.c' object='libgstlame_la-gstlamemp3enc.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 $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiomixeroptions.lo `test -f 'gstsunaudiomixeroptions.c' || echo '$(srcdir)/'`gstsunaudiomixeroptions.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlame_la_CFLAGS) $(CFLAGS) -c -o libgstlame_la-gstlamemp3enc.lo `test -f 'gstlamemp3enc.c' || echo '$(srcdir)/'`gstlamemp3enc.c
 
-libgstsunaudio_la-gstsunaudiosrc.lo: gstsunaudiosrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudiosrc.Tpo -c -o libgstsunaudio_la-gstsunaudiosrc.lo `test -f 'gstsunaudiosrc.c' || echo '$(srcdir)/'`gstsunaudiosrc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudiosrc.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudiosrc.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsunaudiosrc.c' object='libgstsunaudio_la-gstsunaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@
+libgstlame_la-plugin.lo: plugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlame_la_CFLAGS) $(CFLAGS) -MT libgstlame_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstlame_la-plugin.Tpo -c -o libgstlame_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstlame_la-plugin.Tpo $(DEPDIR)/libgstlame_la-plugin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='plugin.c' object='libgstlame_la-plugin.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 $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiosrc.lo `test -f 'gstsunaudiosrc.c' || echo '$(srcdir)/'`gstsunaudiosrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlame_la_CFLAGS) $(CFLAGS) -c -o libgstlame_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/lame/gstlamemp3enc.c b/ext/lame/gstlamemp3enc.c
new file mode 100644
index 000000000..a824c5c3d
--- /dev/null
+++ b/ext/lame/gstlamemp3enc.c
@@ -0,0 +1,932 @@
+/* GStreamer
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2004> Wim Taymans <wim@fluendo.com>
+ * Copyright (C) <2005> Thomas Vander Stichele <thomas at apestaart dot org>
+ * Copyright (C) <2009> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-lamemp3enc
+ * @see_also: lame, mad, vorbisenc
+ *
+ * This element encodes raw integer audio into an MPEG-1 layer 3 (MP3) stream.
+ * Note that <ulink url="http://en.wikipedia.org/wiki/MP3">MP3</ulink> is not
+ * a free format, there are licensing and patent issues to take into
+ * consideration. See <ulink url="http://www.vorbis.com/">Ogg/Vorbis</ulink>
+ * for a royalty free (and often higher quality) alternative.
+ *
+ * <refsect2>
+ * <title>Output sample rate</title>
+ * If no fixed output sample rate is negotiated on the element's src pad,
+ * the element will choose an optimal sample rate to resample to internally.
+ * For example, a 16-bit 44.1 KHz mono audio stream encoded at 48 kbit will
+ * get resampled to 32 KHz.  Use filter caps on the src pad to force a
+ * particular sample rate.
+ * </refsect2>
+ * <refsect2>
+ * <title>Example pipelines</title>
+ * |[
+ * gst-launch-1.0 -v audiotestsrc wave=sine num-buffers=100 ! audioconvert ! lamemp3enc ! filesink location=sine.mp3
+ * ]| Encode a test sine signal to MP3.
+ * |[
+ * gst-launch-1.0 -v autoaudiosrc ! audioconvert ! lamemp3enc target=bitrate bitrate=192 ! filesink location=alsasrc.mp3
+ * ]| Record from a sound card using ALSA and encode to MP3 with an average bitrate of 192kbps
+ * |[
+ * gst-launch-1.0 -v filesrc location=music.wav ! decodebin ! audioconvert ! audioresample ! lamemp3enc target=quality quality=0 ! id3v2mux ! filesink location=music.mp3
+ * ]| Transcode from a .wav file to MP3 (the id3v2mux element is optional) with best VBR quality
+ * |[
+ * gst-launch-1.0 -v cdda://5 ! audioconvert ! lamemp3enc target=bitrate cbr=true bitrate=192 ! filesink location=track5.mp3
+ * ]| Encode Audio CD track 5 to MP3 with a constant bitrate of 192kbps
+ * |[
+ * gst-launch-1.0 -v audiotestsrc num-buffers=10 ! audio/x-raw,rate=44100,channels=1 ! lamemp3enc target=bitrate cbr=true bitrate=48 ! filesink location=test.mp3
+ * ]| Encode to a fixed sample rate
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+#include "gstlamemp3enc.h"
+#include <gst/gst-i18n-plugin.h>
+
+/* lame < 3.98 */
+#ifndef HAVE_LAME_SET_VBR_QUALITY
+#define lame_set_VBR_quality(flags,q) lame_set_VBR_q((flags),(int)(q))
+#endif
+
+GST_DEBUG_CATEGORY_STATIC (debug);
+#define GST_CAT_DEFAULT debug
+
+/* elementfactory information */
+
+/* LAMEMP3ENC can do MPEG-1, MPEG-2, and MPEG-2.5, so it has 9 possible
+ * sample rates it supports */
+static GstStaticPadTemplate gst_lamemp3enc_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) ", "
+        "layout = (string) interleaved, "
+        "rate = (int) { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, "
+        "channels = (int) 1; "
+        "audio/x-raw, "
+        "format = (string) " GST_AUDIO_NE (S16) ", "
+        "layout = (string) interleaved, "
+        "rate = (int) { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, "
+        "channels = (int) 2, " "channel-mask = (bitmask) 0x3")
+    );
+
+static GstStaticPadTemplate gst_lamemp3enc_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/mpeg, "
+        "mpegversion = (int) 1, "
+        "layer = (int) 3, "
+        "rate = (int) { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, "
+        "channels = (int) [ 1, 2 ]")
+    );
+
+/********** Define useful types for non-programmatic interfaces **********/
+enum
+{
+  LAMEMP3ENC_TARGET_QUALITY = 0,
+  LAMEMP3ENC_TARGET_BITRATE
+};
+
+#define GST_TYPE_LAMEMP3ENC_TARGET (gst_lamemp3enc_target_get_type())
+static GType
+gst_lamemp3enc_target_get_type (void)
+{
+  static GType lame_target_type = 0;
+  static const GEnumValue lame_targets[] = {
+    {LAMEMP3ENC_TARGET_QUALITY, "Quality", "quality"},
+    {LAMEMP3ENC_TARGET_BITRATE, "Bitrate", "bitrate"},
+    {0, NULL, NULL}
+  };
+
+  if (!lame_target_type) {
+    lame_target_type =
+        g_enum_register_static ("GstLameMP3EncTarget", lame_targets);
+  }
+  return lame_target_type;
+}
+
+enum
+{
+  LAMEMP3ENC_ENCODING_ENGINE_QUALITY_FAST = 0,
+  LAMEMP3ENC_ENCODING_ENGINE_QUALITY_STANDARD,
+  LAMEMP3ENC_ENCODING_ENGINE_QUALITY_HIGH
+};
+
+#define GST_TYPE_LAMEMP3ENC_ENCODING_ENGINE_QUALITY (gst_lamemp3enc_encoding_engine_quality_get_type())
+static GType
+gst_lamemp3enc_encoding_engine_quality_get_type (void)
+{
+  static GType lame_encoding_engine_quality_type = 0;
+  static const GEnumValue lame_encoding_engine_quality[] = {
+    {0, "Fast", "fast"},
+    {1, "Standard", "standard"},
+    {2, "High", "high"},
+    {0, NULL, NULL}
+  };
+
+  if (!lame_encoding_engine_quality_type) {
+    lame_encoding_engine_quality_type =
+        g_enum_register_static ("GstLameMP3EncEncodingEngineQuality",
+        lame_encoding_engine_quality);
+  }
+  return lame_encoding_engine_quality_type;
+}
+
+/********** Standard stuff for signals and arguments **********/
+
+enum
+{
+  ARG_0,
+  ARG_TARGET,
+  ARG_BITRATE,
+  ARG_CBR,
+  ARG_QUALITY,
+  ARG_ENCODING_ENGINE_QUALITY,
+  ARG_MONO
+};
+
+#define DEFAULT_TARGET LAMEMP3ENC_TARGET_QUALITY
+#define DEFAULT_BITRATE 128
+#define DEFAULT_CBR FALSE
+#define DEFAULT_QUALITY 4
+#define DEFAULT_ENCODING_ENGINE_QUALITY LAMEMP3ENC_ENCODING_ENGINE_QUALITY_STANDARD
+#define DEFAULT_MONO FALSE
+
+static gboolean gst_lamemp3enc_start (GstAudioEncoder * enc);
+static gboolean gst_lamemp3enc_stop (GstAudioEncoder * enc);
+static gboolean gst_lamemp3enc_set_format (GstAudioEncoder * enc,
+    GstAudioInfo * info);
+static GstFlowReturn gst_lamemp3enc_handle_frame (GstAudioEncoder * enc,
+    GstBuffer * in_buf);
+static void gst_lamemp3enc_flush (GstAudioEncoder * enc);
+
+static void gst_lamemp3enc_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_lamemp3enc_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static gboolean gst_lamemp3enc_setup (GstLameMP3Enc * lame, GstTagList ** tags);
+
+#define gst_lamemp3enc_parent_class parent_class
+G_DEFINE_TYPE (GstLameMP3Enc, gst_lamemp3enc, GST_TYPE_AUDIO_ENCODER);
+
+static void
+gst_lamemp3enc_release_memory (GstLameMP3Enc * lame)
+{
+  if (lame->lgf) {
+    lame_close (lame->lgf);
+    lame->lgf = NULL;
+  }
+}
+
+static void
+gst_lamemp3enc_finalize (GObject * obj)
+{
+  gst_lamemp3enc_release_memory (GST_LAMEMP3ENC (obj));
+
+  G_OBJECT_CLASS (parent_class)->finalize (obj);
+}
+
+static void
+gst_lamemp3enc_class_init (GstLameMP3EncClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+  GstAudioEncoderClass *base_class;
+
+  gobject_class = (GObjectClass *) klass;
+  gstelement_class = (GstElementClass *) klass;
+  base_class = (GstAudioEncoderClass *) klass;
+
+  gobject_class->set_property = gst_lamemp3enc_set_property;
+  gobject_class->get_property = gst_lamemp3enc_get_property;
+  gobject_class->finalize = gst_lamemp3enc_finalize;
+
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_lamemp3enc_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_lamemp3enc_sink_template);
+
+  gst_element_class_set_static_metadata (gstelement_class,
+      "L.A.M.E. mp3 encoder", "Codec/Encoder/Audio",
+      "High-quality free MP3 encoder",
+      "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
+
+  base_class->start = GST_DEBUG_FUNCPTR (gst_lamemp3enc_start);
+  base_class->stop = GST_DEBUG_FUNCPTR (gst_lamemp3enc_stop);
+  base_class->set_format = GST_DEBUG_FUNCPTR (gst_lamemp3enc_set_format);
+  base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_lamemp3enc_handle_frame);
+  base_class->flush = GST_DEBUG_FUNCPTR (gst_lamemp3enc_flush);
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_TARGET,
+      g_param_spec_enum ("target", "Target",
+          "Optimize for quality or bitrate", GST_TYPE_LAMEMP3ENC_TARGET,
+          DEFAULT_TARGET,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_BITRATE,
+      g_param_spec_int ("bitrate", "Bitrate (kb/s)",
+          "Bitrate in kbit/sec (Only valid if target is bitrate, for CBR one "
+          "of 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, "
+          "256 or 320)", 8, 320, DEFAULT_BITRATE,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_CBR,
+      g_param_spec_boolean ("cbr", "CBR", "Enforce constant bitrate encoding "
+          "(Only valid if target is bitrate)", DEFAULT_CBR,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_QUALITY,
+      g_param_spec_float ("quality", "Quality",
+          "VBR Quality from 0 to 10, 0 being the best "
+          "(Only valid if target is quality)", 0.0, 9.999,
+          DEFAULT_QUALITY,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass),
+      ARG_ENCODING_ENGINE_QUALITY, g_param_spec_enum ("encoding-engine-quality",
+          "Encoding Engine Quality", "Quality/speed of the encoding engine, "
+          "this does not affect the bitrate!",
+          GST_TYPE_LAMEMP3ENC_ENCODING_ENGINE_QUALITY,
+          DEFAULT_ENCODING_ENGINE_QUALITY,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MONO,
+      g_param_spec_boolean ("mono", "Mono", "Enforce mono encoding",
+          DEFAULT_MONO,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+}
+
+static void
+gst_lamemp3enc_init (GstLameMP3Enc * lame)
+{
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (lame));
+}
+
+static gboolean
+gst_lamemp3enc_start (GstAudioEncoder * enc)
+{
+  GstLameMP3Enc *lame = GST_LAMEMP3ENC (enc);
+
+  GST_DEBUG_OBJECT (lame, "start");
+
+  if (!lame->adapter)
+    lame->adapter = gst_adapter_new ();
+  gst_adapter_clear (lame->adapter);
+
+  return TRUE;
+}
+
+static gboolean
+gst_lamemp3enc_stop (GstAudioEncoder * enc)
+{
+  GstLameMP3Enc *lame = GST_LAMEMP3ENC (enc);
+
+  GST_DEBUG_OBJECT (lame, "stop");
+
+  if (lame->adapter) {
+    g_object_unref (lame->adapter);
+    lame->adapter = NULL;
+  }
+
+  gst_lamemp3enc_release_memory (lame);
+  return TRUE;
+}
+
+static gboolean
+gst_lamemp3enc_set_format (GstAudioEncoder * enc, GstAudioInfo * info)
+{
+  GstLameMP3Enc *lame;
+  gint out_samplerate;
+  gint version;
+  GstCaps *othercaps;
+  GstClockTime latency;
+  GstTagList *tags = NULL;
+
+  lame = GST_LAMEMP3ENC (enc);
+
+  /* parameters already parsed for us */
+  lame->samplerate = GST_AUDIO_INFO_RATE (info);
+  lame->num_channels = GST_AUDIO_INFO_CHANNELS (info);
+
+  /* but we might be asked to reconfigure, so reset */
+  gst_lamemp3enc_release_memory (lame);
+
+  GST_DEBUG_OBJECT (lame, "setting up lame");
+  if (!gst_lamemp3enc_setup (lame, &tags))
+    goto setup_failed;
+
+  out_samplerate = lame_get_out_samplerate (lame->lgf);
+  if (out_samplerate == 0)
+    goto zero_output_rate;
+  if (out_samplerate != lame->samplerate) {
+    GST_WARNING_OBJECT (lame,
+        "output samplerate %d is different from incoming samplerate %d",
+        out_samplerate, lame->samplerate);
+  }
+  lame->out_samplerate = out_samplerate;
+
+  version = lame_get_version (lame->lgf);
+  if (version == 0)
+    version = 2;
+  else if (version == 1)
+    version = 1;
+  else if (version == 2)
+    version = 3;
+
+  othercaps =
+      gst_caps_new_simple ("audio/mpeg",
+      "mpegversion", G_TYPE_INT, 1,
+      "mpegaudioversion", G_TYPE_INT, version,
+      "layer", G_TYPE_INT, 3,
+      "channels", G_TYPE_INT, lame->mono ? 1 : lame->num_channels,
+      "rate", G_TYPE_INT, out_samplerate, NULL);
+
+  /* and use these caps */
+  gst_audio_encoder_set_output_format (GST_AUDIO_ENCODER (enc), othercaps);
+  gst_caps_unref (othercaps);
+
+  /* base class feedback:
+   * - we will handle buffers, just hand us all available
+   * - report latency */
+  latency = gst_util_uint64_scale_int (lame_get_framesize (lame->lgf),
+      GST_SECOND, lame->samplerate);
+  gst_audio_encoder_set_latency (enc, latency, latency);
+
+  if (tags) {
+    gst_audio_encoder_merge_tags (enc, tags, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (tags);
+  }
+
+  return TRUE;
+
+zero_output_rate:
+  {
+    if (tags)
+      gst_tag_list_unref (tags);
+    GST_ELEMENT_ERROR (lame, LIBRARY, SETTINGS, (NULL),
+        ("LAME mp3 audio decided on a zero sample rate"));
+    return FALSE;
+  }
+setup_failed:
+  {
+    GST_ELEMENT_ERROR (lame, LIBRARY, SETTINGS,
+        (_("Failed to configure LAME mp3 audio encoder. Check your encoding parameters.")), (NULL));
+    return FALSE;
+  }
+}
+
+/* <php-emulation-mode>three underscores for ___rate is really really really
+ * private as opposed to one underscore<php-emulation-mode> */
+/* call this MACRO outside of the NULL state so that we have a higher chance
+ * of actually having a pipeline and bus to get the message through */
+
+#define CHECK_AND_FIXUP_BITRATE(obj,param,rate)		 		  \
+G_STMT_START {                                                            \
+  gint ___rate = rate;                                                    \
+  gint maxrate = 320;							  \
+  gint multiplier = 64;							  \
+  if (rate == 0) {                                                        \
+    ___rate = rate;                                                       \
+  } else if (rate <= 64) {				                  \
+    maxrate = 64; multiplier = 8;                                         \
+    if ((rate % 8) != 0) ___rate = GST_ROUND_UP_8 (rate); 		  \
+  } else if (rate <= 128) {						  \
+    maxrate = 128; multiplier = 16;                                       \
+    if ((rate % 16) != 0) ___rate = GST_ROUND_UP_16 (rate);               \
+  } else if (rate <= 256) {						  \
+    maxrate = 256; multiplier = 32;                                       \
+    if ((rate % 32) != 0) ___rate = GST_ROUND_UP_32 (rate);               \
+  } else if (rate <= 320) { 						  \
+    maxrate = 320; multiplier = 64;                                       \
+    if ((rate % 64) != 0) ___rate = GST_ROUND_UP_64 (rate);               \
+  }                                                                       \
+  if (___rate != rate) {                                                  \
+    GST_ELEMENT_WARNING (obj, LIBRARY, SETTINGS,			  \
+      (_("The requested bitrate %d kbit/s for property '%s' "             \
+       "is not allowed. "  					          \
+       "The bitrate was changed to %d kbit/s."), rate,		          \
+         param,  ___rate), 					          \
+       ("A bitrate below %d should be a multiple of %d.", 		  \
+          maxrate, multiplier));		  			  \
+    rate = ___rate;                                                       \
+  }                                                                       \
+} G_STMT_END
+
+static void
+gst_lamemp3enc_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstLameMP3Enc *lame;
+
+  lame = GST_LAMEMP3ENC (object);
+
+  switch (prop_id) {
+    case ARG_TARGET:
+      lame->target = g_value_get_enum (value);
+      break;
+    case ARG_BITRATE:
+      lame->bitrate = g_value_get_int (value);
+      break;
+    case ARG_CBR:
+      lame->cbr = g_value_get_boolean (value);
+      break;
+    case ARG_QUALITY:
+      lame->quality = g_value_get_float (value);
+      break;
+    case ARG_ENCODING_ENGINE_QUALITY:
+      lame->encoding_engine_quality = g_value_get_enum (value);
+      break;
+    case ARG_MONO:
+      lame->mono = g_value_get_boolean (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_lamemp3enc_get_property (GObject * object, guint prop_id, GValue * value,
+    GParamSpec * pspec)
+{
+  GstLameMP3Enc *lame;
+
+  lame = GST_LAMEMP3ENC (object);
+
+  switch (prop_id) {
+    case ARG_TARGET:
+      g_value_set_enum (value, lame->target);
+      break;
+    case ARG_BITRATE:
+      g_value_set_int (value, lame->bitrate);
+      break;
+    case ARG_CBR:
+      g_value_set_boolean (value, lame->cbr);
+      break;
+    case ARG_QUALITY:
+      g_value_set_float (value, lame->quality);
+      break;
+    case ARG_ENCODING_ENGINE_QUALITY:
+      g_value_set_enum (value, lame->encoding_engine_quality);
+      break;
+    case ARG_MONO:
+      g_value_set_boolean (value, lame->mono);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+/* **** credits go to mpegaudioparse **** */
+
+static const guint mp3types_bitrates[2][3][16] = {
+  {
+        {0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448,},
+        {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384,},
+        {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320,}
+      },
+  {
+        {0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256,},
+        {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160,},
+        {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160,}
+      },
+};
+
+static const guint mp3types_freqs[3][3] = { {44100, 48000, 32000},
+{22050, 24000, 16000},
+{11025, 12000, 8000}
+};
+
+static inline guint
+mp3_type_frame_length_from_header (GstLameMP3Enc * lame, guint32 header,
+    guint * put_version, guint * put_layer, guint * put_channels,
+    guint * put_bitrate, guint * put_samplerate, guint * put_mode,
+    guint * put_crc)
+{
+  guint length;
+  gulong mode, samplerate, bitrate, layer, channels, padding, crc;
+  gulong version;
+  gint lsf, mpg25;
+
+  if (header & (1 << 20)) {
+    lsf = (header & (1 << 19)) ? 0 : 1;
+    mpg25 = 0;
+  } else {
+    lsf = 1;
+    mpg25 = 1;
+  }
+
+  version = 1 + lsf + mpg25;
+
+  layer = 4 - ((header >> 17) & 0x3);
+
+  crc = (header >> 16) & 0x1;
+
+  bitrate = (header >> 12) & 0xF;
+  bitrate = mp3types_bitrates[lsf][layer - 1][bitrate] * 1000;
+  /* The caller has ensured we have a valid header, so bitrate can't be
+     zero here. */
+  g_assert (bitrate != 0);
+
+  samplerate = (header >> 10) & 0x3;
+  samplerate = mp3types_freqs[lsf + mpg25][samplerate];
+
+  padding = (header >> 9) & 0x1;
+
+  mode = (header >> 6) & 0x3;
+  channels = (mode == 3) ? 1 : 2;
+
+  switch (layer) {
+    case 1:
+      length = 4 * ((bitrate * 12) / samplerate + padding);
+      break;
+    case 2:
+      length = (bitrate * 144) / samplerate + padding;
+      break;
+    default:
+    case 3:
+      length = (bitrate * 144) / (samplerate << lsf) + padding;
+      break;
+  }
+
+  GST_DEBUG_OBJECT (lame, "Calculated mp3 frame length of %u bytes", length);
+  GST_DEBUG_OBJECT (lame, "samplerate = %lu, bitrate = %lu, version = %lu, "
+      "layer = %lu, channels = %lu", samplerate, bitrate, version,
+      layer, channels);
+
+  if (put_version)
+    *put_version = version;
+  if (put_layer)
+    *put_layer = layer;
+  if (put_channels)
+    *put_channels = channels;
+  if (put_bitrate)
+    *put_bitrate = bitrate;
+  if (put_samplerate)
+    *put_samplerate = samplerate;
+  if (put_mode)
+    *put_mode = mode;
+  if (put_crc)
+    *put_crc = crc;
+
+  return length;
+}
+
+static gboolean
+mp3_sync_check (GstLameMP3Enc * lame, unsigned long head)
+{
+  GST_DEBUG_OBJECT (lame, "checking mp3 header 0x%08lx", head);
+  /* if it's not a valid sync */
+  if ((head & 0xffe00000) != 0xffe00000) {
+    GST_WARNING_OBJECT (lame, "invalid sync");
+    return FALSE;
+  }
+  /* if it's an invalid MPEG version */
+  if (((head >> 19) & 3) == 0x1) {
+    GST_WARNING_OBJECT (lame, "invalid MPEG version: 0x%lx", (head >> 19) & 3);
+    return FALSE;
+  }
+  /* if it's an invalid layer */
+  if (!((head >> 17) & 3)) {
+    GST_WARNING_OBJECT (lame, "invalid layer: 0x%lx", (head >> 17) & 3);
+    return FALSE;
+  }
+  /* if it's an invalid bitrate */
+  if (((head >> 12) & 0xf) == 0x0) {
+    GST_WARNING_OBJECT (lame, "invalid bitrate: 0x%lx."
+        "Free format files are not supported yet", (head >> 12) & 0xf);
+    return FALSE;
+  }
+  if (((head >> 12) & 0xf) == 0xf) {
+    GST_WARNING_OBJECT (lame, "invalid bitrate: 0x%lx", (head >> 12) & 0xf);
+    return FALSE;
+  }
+  /* if it's an invalid samplerate */
+  if (((head >> 10) & 0x3) == 0x3) {
+    GST_WARNING_OBJECT (lame, "invalid samplerate: 0x%lx", (head >> 10) & 0x3);
+    return FALSE;
+  }
+
+  if ((head & 0x3) == 0x2) {
+    /* Ignore this as there are some files with emphasis 0x2 that can
+     * be played fine. See BGO #537235 */
+    GST_WARNING_OBJECT (lame, "invalid emphasis: 0x%lx", head & 0x3);
+  }
+
+  return TRUE;
+}
+
+/* **** end mpegaudioparse **** */
+
+static GstFlowReturn
+gst_lamemp3enc_finish_frames (GstLameMP3Enc * lame)
+{
+  gint av;
+  guint header;
+  GstFlowReturn result = GST_FLOW_OK;
+
+  /* limited parsing, we don't expect to lose sync here */
+  while ((result == GST_FLOW_OK) &&
+      ((av = gst_adapter_available (lame->adapter)) > 4)) {
+    guint rate, version, layer, size;
+    GstBuffer *mp3_buf;
+    const guint8 *data;
+    guint samples_per_frame;
+
+    data = gst_adapter_map (lame->adapter, 4);
+    header = GST_READ_UINT32_BE (data);
+    gst_adapter_unmap (lame->adapter);
+
+    if (!mp3_sync_check (lame, header))
+      goto invalid_header;
+
+    size = mp3_type_frame_length_from_header (lame, header, &version, &layer,
+        NULL, NULL, &rate, NULL, NULL);
+
+    if (G_UNLIKELY (layer != 3 || rate != lame->out_samplerate)) {
+      GST_DEBUG_OBJECT (lame,
+          "unexpected mp3 header with rate %u, version %u, layer %u",
+          rate, version, layer);
+      goto invalid_header;
+    }
+
+    if (size > av) {
+      /* pretty likely to occur when lame is holding back on us */
+      GST_LOG_OBJECT (lame, "frame size %u (> %d)", size, av);
+      break;
+    }
+
+    /* Account for the internal resampling, finish frame really wants to
+     * know about the number of incoming samples
+     */
+    samples_per_frame = (version == 1) ? 1152 : 576;
+    samples_per_frame *= lame->samplerate;
+    samples_per_frame /= lame->out_samplerate;
+
+    /* should be ok now */
+    mp3_buf = gst_adapter_take_buffer (lame->adapter, size);
+    /* number of samples for MPEG-1, layer 3 */
+    result = gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER (lame),
+        mp3_buf, samples_per_frame);
+  }
+
+exit:
+  return result;
+
+  /* ERRORS */
+invalid_header:
+  {
+    GST_ELEMENT_ERROR (lame, STREAM, ENCODE,
+        ("invalid lame mp3 sync header %08X", header), (NULL));
+    result = GST_FLOW_ERROR;
+    goto exit;
+  }
+}
+
+static GstFlowReturn
+gst_lamemp3enc_flush_full (GstLameMP3Enc * lame, gboolean push)
+{
+  GstBuffer *buf;
+  GstMapInfo map;
+  gint size;
+  GstFlowReturn result = GST_FLOW_OK;
+  gint av;
+
+  if (!lame->lgf)
+    return GST_FLOW_OK;
+
+  buf = gst_buffer_new_and_alloc (7200);
+  gst_buffer_map (buf, &map, GST_MAP_WRITE);
+  size = lame_encode_flush (lame->lgf, map.data, 7200);
+
+  if (size > 0) {
+    gst_buffer_unmap (buf, &map);
+    gst_buffer_resize (buf, 0, size);
+    GST_DEBUG_OBJECT (lame, "collecting final %d bytes", size);
+    gst_adapter_push (lame->adapter, buf);
+  } else {
+    gst_buffer_unmap (buf, &map);
+    GST_DEBUG_OBJECT (lame, "no final packet (size=%d, push=%d)", size, push);
+    gst_buffer_unref (buf);
+    result = GST_FLOW_OK;
+  }
+
+  if (push) {
+    result = gst_lamemp3enc_finish_frames (lame);
+  } else {
+    /* never mind */
+    gst_adapter_clear (lame->adapter);
+  }
+
+  /* either way, we expect nothing left */
+  if ((av = gst_adapter_available (lame->adapter))) {
+    /* should this be more fatal ?? */
+    GST_WARNING_OBJECT (lame, "unparsed %d bytes left after flushing", av);
+    /* clean up anyway */
+    gst_adapter_clear (lame->adapter);
+  }
+
+  return result;
+}
+
+static void
+gst_lamemp3enc_flush (GstAudioEncoder * enc)
+{
+  gst_lamemp3enc_flush_full (GST_LAMEMP3ENC (enc), FALSE);
+}
+
+static GstFlowReturn
+gst_lamemp3enc_handle_frame (GstAudioEncoder * enc, GstBuffer * in_buf)
+{
+  GstLameMP3Enc *lame;
+  gint mp3_buffer_size, mp3_size;
+  GstBuffer *mp3_buf;
+  GstFlowReturn result;
+  gint num_samples;
+  GstMapInfo in_map, mp3_map;
+
+  lame = GST_LAMEMP3ENC (enc);
+
+  /* squeeze remaining and push */
+  if (G_UNLIKELY (in_buf == NULL))
+    return gst_lamemp3enc_flush_full (lame, TRUE);
+
+  gst_buffer_map (in_buf, &in_map, GST_MAP_READ);
+
+  num_samples = in_map.size / 2;
+
+  /* allocate space for output */
+  mp3_buffer_size = 1.25 * num_samples + 7200;
+  mp3_buf = gst_buffer_new_allocate (NULL, mp3_buffer_size, NULL);
+  gst_buffer_map (mp3_buf, &mp3_map, GST_MAP_WRITE);
+
+  /* lame seems to be too stupid to get mono interleaved going */
+  if (lame->num_channels == 1) {
+    mp3_size = lame_encode_buffer (lame->lgf,
+        (short int *) in_map.data,
+        (short int *) in_map.data, num_samples, mp3_map.data, mp3_buffer_size);
+  } else {
+    mp3_size = lame_encode_buffer_interleaved (lame->lgf,
+        (short int *) in_map.data,
+        num_samples / lame->num_channels, mp3_map.data, mp3_buffer_size);
+  }
+  gst_buffer_unmap (in_buf, &in_map);
+
+  GST_LOG_OBJECT (lame, "encoded %" G_GSIZE_FORMAT " bytes of audio "
+      "to %d bytes of mp3", in_map.size, mp3_size);
+
+  if (G_LIKELY (mp3_size > 0)) {
+    /* unfortunately lame does not provide frame delineated output,
+     * so collect output and parse into frames ... */
+    gst_buffer_unmap (mp3_buf, &mp3_map);
+    gst_buffer_resize (mp3_buf, 0, mp3_size);
+    gst_adapter_push (lame->adapter, mp3_buf);
+    result = gst_lamemp3enc_finish_frames (lame);
+  } else {
+    gst_buffer_unmap (mp3_buf, &mp3_map);
+    if (mp3_size < 0) {
+      /* eat error ? */
+      g_warning ("error %d", mp3_size);
+    }
+    gst_buffer_unref (mp3_buf);
+    result = GST_FLOW_OK;
+  }
+
+  return result;
+}
+
+/* set up the encoder state */
+static gboolean
+gst_lamemp3enc_setup (GstLameMP3Enc * lame, GstTagList ** tags)
+{
+  gboolean res;
+
+#define CHECK_ERROR(command) G_STMT_START {\
+  if ((command) < 0) { \
+    GST_ERROR_OBJECT (lame, "setup failed: " G_STRINGIFY (command)); \
+    if (*tags) { \
+      gst_tag_list_unref (*tags); \
+      *tags = NULL; \
+    } \
+    return FALSE; \
+  } \
+}G_STMT_END
+
+  int retval;
+  GstCaps *allowed_caps;
+
+  GST_DEBUG_OBJECT (lame, "starting setup");
+
+  lame->lgf = lame_init ();
+
+  if (lame->lgf == NULL)
+    return FALSE;
+
+  *tags = gst_tag_list_new_empty ();
+
+  /* copy the parameters over */
+  lame_set_in_samplerate (lame->lgf, lame->samplerate);
+
+  /* let lame choose default samplerate unless outgoing sample rate is fixed */
+  allowed_caps = gst_pad_get_allowed_caps (GST_AUDIO_ENCODER_SRC_PAD (lame));
+
+  if (allowed_caps != NULL) {
+    GstStructure *structure;
+    gint samplerate;
+
+    structure = gst_caps_get_structure (allowed_caps, 0);
+
+    if (gst_structure_get_int (structure, "rate", &samplerate)) {
+      GST_DEBUG_OBJECT (lame, "Setting sample rate to %d as fixed in src caps",
+          samplerate);
+      lame_set_out_samplerate (lame->lgf, samplerate);
+    } else {
+      GST_DEBUG_OBJECT (lame, "Letting lame choose sample rate");
+      lame_set_out_samplerate (lame->lgf, 0);
+    }
+    gst_caps_unref (allowed_caps);
+    allowed_caps = NULL;
+  } else {
+    GST_DEBUG_OBJECT (lame, "No peer yet, letting lame choose sample rate");
+    lame_set_out_samplerate (lame->lgf, 0);
+  }
+
+  CHECK_ERROR (lame_set_num_channels (lame->lgf, lame->num_channels));
+  CHECK_ERROR (lame_set_bWriteVbrTag (lame->lgf, 0));
+
+  if (lame->target == LAMEMP3ENC_TARGET_QUALITY) {
+    CHECK_ERROR (lame_set_VBR (lame->lgf, vbr_default));
+    CHECK_ERROR (lame_set_VBR_quality (lame->lgf, lame->quality));
+  } else {
+    if (lame->cbr) {
+      CHECK_AND_FIXUP_BITRATE (lame, "bitrate", lame->bitrate);
+      CHECK_ERROR (lame_set_VBR (lame->lgf, vbr_off));
+      CHECK_ERROR (lame_set_brate (lame->lgf, lame->bitrate));
+    } else {
+      CHECK_ERROR (lame_set_VBR (lame->lgf, vbr_abr));
+      CHECK_ERROR (lame_set_VBR_mean_bitrate_kbps (lame->lgf, lame->bitrate));
+    }
+    gst_tag_list_add (*tags, GST_TAG_MERGE_REPLACE, GST_TAG_BITRATE,
+        lame->bitrate * 1000, NULL);
+  }
+
+  if (lame->encoding_engine_quality == LAMEMP3ENC_ENCODING_ENGINE_QUALITY_FAST)
+    CHECK_ERROR (lame_set_quality (lame->lgf, 7));
+  else if (lame->encoding_engine_quality ==
+      LAMEMP3ENC_ENCODING_ENGINE_QUALITY_HIGH)
+    CHECK_ERROR (lame_set_quality (lame->lgf, 2));
+  /* else default */
+
+  if (lame->mono)
+    CHECK_ERROR (lame_set_mode (lame->lgf, MONO));
+
+  /* initialize the lame encoder */
+  if ((retval = lame_init_params (lame->lgf)) >= 0) {
+    /* FIXME: it would be nice to print out the mode here */
+    GST_INFO
+        ("lame encoder setup (target %s, quality %f, bitrate %d, %d Hz, %d channels)",
+        (lame->target == LAMEMP3ENC_TARGET_QUALITY) ? "quality" : "bitrate",
+        lame->quality, lame->bitrate, lame->samplerate, lame->num_channels);
+    res = TRUE;
+  } else {
+    GST_ERROR_OBJECT (lame, "lame_init_params returned %d", retval);
+    res = FALSE;
+  }
+
+  GST_DEBUG_OBJECT (lame, "done with setup");
+  return res;
+#undef CHECK_ERROR
+}
+
+gboolean
+gst_lamemp3enc_register (GstPlugin * plugin)
+{
+  GST_DEBUG_CATEGORY_INIT (debug, "lamemp3enc", 0, "lame mp3 encoder");
+
+  if (!gst_element_register (plugin, "lamemp3enc", GST_RANK_PRIMARY,
+          GST_TYPE_LAMEMP3ENC))
+    return FALSE;
+
+  return TRUE;
+}
diff --git a/ext/lame/gstlamemp3enc.h b/ext/lame/gstlamemp3enc.h
new file mode 100644
index 000000000..25dbc46f8
--- /dev/null
+++ b/ext/lame/gstlamemp3enc.h
@@ -0,0 +1,83 @@
+/* GStreamer
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2009> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+
+#ifndef __GST_LAMEMP3ENC_H__
+#define __GST_LAMEMP3ENC_H__
+
+
+#include <gst/gst.h>
+#include <gst/audio/gstaudioencoder.h>
+#include <gst/base/gstadapter.h>
+
+G_BEGIN_DECLS
+
+#include <lame/lame.h>
+
+#define GST_TYPE_LAMEMP3ENC \
+  (gst_lamemp3enc_get_type())
+#define GST_LAMEMP3ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_LAMEMP3ENC,GstLameMP3Enc))
+#define GST_LAMEMP3ENC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_LAMEMP3ENC,GstLameMP3EncClass))
+#define GST_IS_LAMEMP3ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_LAMEMP3ENC))
+#define GST_IS_LAMEMP3ENC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_LAMEMP3ENC))
+
+typedef struct _GstLameMP3Enc GstLameMP3Enc;
+typedef struct _GstLameMP3EncClass GstLameMP3EncClass;
+
+/**
+ * GstLameMP3Enc:
+ *
+ * Opaque data structure.
+ */
+struct _GstLameMP3Enc {
+  GstAudioEncoder element;
+
+  /*< private >*/
+  gint samplerate;
+  gint out_samplerate;
+  gint num_channels;
+
+  /* properties */
+  gint target;
+  gint bitrate;
+  gboolean cbr;
+  gfloat quality;
+  gint encoding_engine_quality;
+  gboolean mono;
+
+  lame_global_flags *lgf;
+
+  GstAdapter *adapter;
+};
+
+struct _GstLameMP3EncClass {
+  GstAudioEncoderClass parent_class;
+};
+
+GType gst_lamemp3enc_get_type(void);
+gboolean gst_lamemp3enc_register (GstPlugin * plugin);
+
+G_END_DECLS
+
+#endif /* __GST_LAMEMP3ENC_H__ */
diff --git a/ext/lame/meson.build b/ext/lame/meson.build
new file mode 100644
index 000000000..e3e61b68f
--- /dev/null
+++ b/ext/lame/meson.build
@@ -0,0 +1,19 @@
+lame_dep = cc.find_library('mp3lame', required : false)
+
+if lame_dep.found() and cc.has_header_symbol('lame/lame.h', 'lame_init')
+  lame_extra_c_args = []
+  if cc.has_header_symbol('lame/lame.h', 'lame_set_VBR_quality')
+    lame_extra_c_args += ['-DHAVE_LAME_SET_VBR_QUALITY']
+  endif
+  if cc.has_header_symbol('lame/lame.h', 'MEDIUM')
+    lame_extra_c_args += ['-DGSTLAME_PRESET']
+  endif
+  lame = library('gstlame',
+    ['gstlamemp3enc.c', 'plugin.c'],
+    c_args : gst_plugins_good_args + lame_extra_c_args,
+    include_directories : [configinc, libsinc],
+    dependencies : [gstaudio_dep, lame_dep],
+    install : true,
+    install_dir : plugins_install_dir,
+  )
+endif
diff --git a/sys/sunaudio/gstsunaudio.c b/ext/lame/plugin.c
similarity index 53%
rename from sys/sunaudio/gstsunaudio.c
rename to ext/lame/plugin.c
index 633c1f012..6aae21ee3 100644
--- a/sys/sunaudio/gstsunaudio.c
+++ b/ext/lame/plugin.c
@@ -1,7 +1,5 @@
-/*
- * GStreamer - SunAudio plugin
- * Copyright (C) 2005,2006 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.com>
+/* GStreamer
+ * Copyright (C) <2009> Sebastian Dröge <sebastian.droege@collabora.co.uk>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -23,40 +21,24 @@
 #include "config.h"
 #endif
 
-#include "gst/gst-i18n-plugin.h"
+#include <gst/gst.h>
+#include <gst/gst-i18n-plugin.h>
 
-#include "gstsunaudiomixer.h"
-#include "gstsunaudiosink.h"
-#include "gstsunaudiosrc.h"
-
-extern gchar *__gst_oss_plugin_dir;
-
-GST_DEBUG_CATEGORY (sunaudio_debug);
+#include "gstlamemp3enc.h"
 
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
-  if (!gst_element_register (plugin, "sunaudiomixer", GST_RANK_NONE,
-          GST_TYPE_SUNAUDIO_MIXER) ||
-      !gst_element_register (plugin, "sunaudiosink", GST_RANK_SECONDARY,
-          GST_TYPE_SUNAUDIO_SINK) ||
-      !gst_element_register (plugin, "sunaudiosrc", GST_RANK_SECONDARY,
-          GST_TYPE_SUNAUDIO_SRC)) {
-    return FALSE;
-  }
-
-  GST_DEBUG_CATEGORY_INIT (sunaudio_debug, "sunaudio", 0, "sunaudio elements");
-
 #ifdef ENABLE_NLS
   bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
   bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 #endif /* ENABLE_NLS */
 
-  return TRUE;
+  return gst_lamemp3enc_register (plugin);
 }
 
 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
     GST_VERSION_MINOR,
-    sunaudio,
-    "Sun Audio support for GStreamer",
-    plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
+    lame,
+    "Encode MP3s with LAME",
+    plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
diff --git a/ext/libcaca/Makefile.am b/ext/libcaca/Makefile.am
index 029f529a9..93371e3da 100644
--- a/ext/libcaca/Makefile.am
+++ b/ext/libcaca/Makefile.am
@@ -13,6 +13,5 @@ libgstcacasink_la_LIBADD = \
 	$(GST_LIBS) \
 	$(LIBCACA_LIBS)
 libgstcacasink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstcacasink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstcacasink.h
diff --git a/ext/libcaca/Makefile.in b/ext/libcaca/Makefile.in
index 8f48b27da..50675b740 100644
--- a/ext/libcaca/Makefile.in
+++ b/ext/libcaca/Makefile.in
@@ -173,8 +173,8 @@ 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) \
+	$(AM_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@)
@@ -292,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -315,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -330,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -352,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -370,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -387,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -399,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -417,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -460,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -476,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -587,7 +623,6 @@ libgstcacasink_la_LIBADD = \
 	$(LIBCACA_LIBS)
 
 libgstcacasink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstcacasink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstcacasink.h
 all: all-am
 
@@ -694,11 +729,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstcacasink_la-gstcacasink.lo: gstcacasink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcacasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcacasink_la_CFLAGS) $(CFLAGS) -MT libgstcacasink_la-gstcacasink.lo -MD -MP -MF $(DEPDIR)/libgstcacasink_la-gstcacasink.Tpo -c -o libgstcacasink_la-gstcacasink.lo `test -f 'gstcacasink.c' || echo '$(srcdir)/'`gstcacasink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcacasink_la_CFLAGS) $(CFLAGS) -MT libgstcacasink_la-gstcacasink.lo -MD -MP -MF $(DEPDIR)/libgstcacasink_la-gstcacasink.Tpo -c -o libgstcacasink_la-gstcacasink.lo `test -f 'gstcacasink.c' || echo '$(srcdir)/'`gstcacasink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcacasink_la-gstcacasink.Tpo $(DEPDIR)/libgstcacasink_la-gstcacasink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcacasink.c' object='libgstcacasink_la-gstcacasink.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 $(libgstcacasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcacasink_la_CFLAGS) $(CFLAGS) -c -o libgstcacasink_la-gstcacasink.lo `test -f 'gstcacasink.c' || echo '$(srcdir)/'`gstcacasink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcacasink_la_CFLAGS) $(CFLAGS) -c -o libgstcacasink_la-gstcacasink.lo `test -f 'gstcacasink.c' || echo '$(srcdir)/'`gstcacasink.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/libcaca/gstcacasink.c b/ext/libcaca/gstcacasink.c
index 4e35f083b..40fb52a70 100644
--- a/ext/libcaca/gstcacasink.c
+++ b/ext/libcaca/gstcacasink.c
@@ -39,8 +39,6 @@
 #endif
 
 #include <string.h>
-#include <sys/time.h>
-
 #include "gstcacasink.h"
 
 
diff --git a/ext/libcaca/meson.build b/ext/libcaca/meson.build
new file mode 100644
index 000000000..5ff8714ca
--- /dev/null
+++ b/ext/libcaca/meson.build
@@ -0,0 +1,11 @@
+libcaca_dep = dependency('caca', required : false)
+
+if libcaca_dep.found()
+  library('gstcacasink', 'gstcacasink.c',
+    c_args : gst_plugins_good_args,
+    link_args : noseh_link_args,
+    include_directories : [configinc],
+    dependencies : [gstvideo_dep, gstbase_dep, libcaca_dep],
+    install : true,
+    install_dir : plugins_install_dir)
+endif
diff --git a/ext/libpng/Makefile.am b/ext/libpng/Makefile.am
index 712df09ad..598c8e30e 100644
--- a/ext/libpng/Makefile.am
+++ b/ext/libpng/Makefile.am
@@ -5,6 +5,5 @@ libgstpng_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS
 libgstpng_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_API_VERSION@ \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBPNG_LIBS)
 libgstpng_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstpng_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstpngdec.h gstpngenc.h
diff --git a/ext/libpng/Makefile.in b/ext/libpng/Makefile.in
index a7ffff21c..8b97b2747 100644
--- a/ext/libpng/Makefile.in
+++ b/ext/libpng/Makefile.in
@@ -173,10 +173,9 @@ 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 $@
+libgstpng_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -293,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -316,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -331,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -353,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -371,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -388,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -400,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -418,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -461,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -477,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -579,7 +614,6 @@ libgstpng_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_API_VERSION@ \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBPNG_LIBS)
 
 libgstpng_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstpng_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstpngdec.h gstpngenc.h
 all: all-am
 
@@ -688,25 +722,25 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstpng_la-gstpng.lo: gstpng.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -MT libgstpng_la-gstpng.lo -MD -MP -MF $(DEPDIR)/libgstpng_la-gstpng.Tpo -c -o libgstpng_la-gstpng.lo `test -f 'gstpng.c' || echo '$(srcdir)/'`gstpng.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -MT libgstpng_la-gstpng.lo -MD -MP -MF $(DEPDIR)/libgstpng_la-gstpng.Tpo -c -o libgstpng_la-gstpng.lo `test -f 'gstpng.c' || echo '$(srcdir)/'`gstpng.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstpng_la-gstpng.Tpo $(DEPDIR)/libgstpng_la-gstpng.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstpng.c' object='libgstpng_la-gstpng.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 $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -c -o libgstpng_la-gstpng.lo `test -f 'gstpng.c' || echo '$(srcdir)/'`gstpng.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -c -o libgstpng_la-gstpng.lo `test -f 'gstpng.c' || echo '$(srcdir)/'`gstpng.c
 
 libgstpng_la-gstpngenc.lo: gstpngenc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -MT libgstpng_la-gstpngenc.lo -MD -MP -MF $(DEPDIR)/libgstpng_la-gstpngenc.Tpo -c -o libgstpng_la-gstpngenc.lo `test -f 'gstpngenc.c' || echo '$(srcdir)/'`gstpngenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -MT libgstpng_la-gstpngenc.lo -MD -MP -MF $(DEPDIR)/libgstpng_la-gstpngenc.Tpo -c -o libgstpng_la-gstpngenc.lo `test -f 'gstpngenc.c' || echo '$(srcdir)/'`gstpngenc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstpng_la-gstpngenc.Tpo $(DEPDIR)/libgstpng_la-gstpngenc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstpngenc.c' object='libgstpng_la-gstpngenc.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 $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -c -o libgstpng_la-gstpngenc.lo `test -f 'gstpngenc.c' || echo '$(srcdir)/'`gstpngenc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -c -o libgstpng_la-gstpngenc.lo `test -f 'gstpngenc.c' || echo '$(srcdir)/'`gstpngenc.c
 
 libgstpng_la-gstpngdec.lo: gstpngdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -MT libgstpng_la-gstpngdec.lo -MD -MP -MF $(DEPDIR)/libgstpng_la-gstpngdec.Tpo -c -o libgstpng_la-gstpngdec.lo `test -f 'gstpngdec.c' || echo '$(srcdir)/'`gstpngdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -MT libgstpng_la-gstpngdec.lo -MD -MP -MF $(DEPDIR)/libgstpng_la-gstpngdec.Tpo -c -o libgstpng_la-gstpngdec.lo `test -f 'gstpngdec.c' || echo '$(srcdir)/'`gstpngdec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstpng_la-gstpngdec.Tpo $(DEPDIR)/libgstpng_la-gstpngdec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstpngdec.c' object='libgstpng_la-gstpngdec.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 $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -c -o libgstpng_la-gstpngdec.lo `test -f 'gstpngdec.c' || echo '$(srcdir)/'`gstpngdec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -c -o libgstpng_la-gstpngdec.lo `test -f 'gstpngdec.c' || echo '$(srcdir)/'`gstpngdec.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/libpng/gstpngdec.c b/ext/libpng/gstpngdec.c
index ca310fac0..581e3a9f4 100644
--- a/ext/libpng/gstpngdec.c
+++ b/ext/libpng/gstpngdec.c
@@ -341,6 +341,52 @@ gst_pngdec_caps_create_and_set (GstPngDec * pngdec)
     }
     gst_video_codec_state_unref (pngdec->output_state);
   }
+#ifdef HAVE_LIBPNG_1_5
+  if ((pngdec->color_type & PNG_COLOR_MASK_COLOR)
+      && !(pngdec->color_type & PNG_COLOR_MASK_PALETTE)
+      && png_get_valid (pngdec->png, pngdec->info, PNG_INFO_iCCP)) {
+    png_charp icc_name;
+    png_bytep icc_profile;
+    int icc_compression_type;
+    png_uint_32 icc_proflen = 0;
+    png_uint_32 ret = png_get_iCCP (pngdec->png, pngdec->info, &icc_name,
+        &icc_compression_type, &icc_profile, &icc_proflen);
+
+    if ((ret & PNG_INFO_iCCP)) {
+      gpointer gst_icc_prof = g_memdup (icc_profile, icc_proflen);
+      GstBuffer *tagbuffer = NULL;
+      GstSample *tagsample = NULL;
+      GstTagList *taglist = NULL;
+      GstStructure *info = NULL;
+      GstCaps *caps;
+
+      GST_DEBUG_OBJECT (pngdec, "extracted ICC profile '%s' length=%i",
+          icc_name, (guint32) icc_proflen);
+
+      tagbuffer = gst_buffer_new_wrapped (gst_icc_prof, icc_proflen);
+
+      caps = gst_caps_new_empty_simple ("application/vnd.iccprofile");
+      info = gst_structure_new_empty ("application/vnd.iccprofile");
+
+      if (icc_name)
+        gst_structure_set (info, "icc-name", G_TYPE_STRING, icc_name, NULL);
+
+      tagsample = gst_sample_new (tagbuffer, caps, NULL, info);
+
+      gst_buffer_unref (tagbuffer);
+      gst_caps_unref (caps);
+
+      taglist = gst_tag_list_new_empty ();
+      gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_ATTACHMENT,
+          tagsample, NULL);
+      gst_sample_unref (tagsample);
+
+      gst_video_decoder_merge_tags (GST_VIDEO_DECODER (pngdec), taglist,
+          GST_TAG_MERGE_APPEND);
+      gst_tag_list_unref (taglist);
+    }
+  }
+#endif
 
   pngdec->output_state =
       gst_video_decoder_set_output_state (GST_VIDEO_DECODER (pngdec), format,
diff --git a/ext/libpng/gstpngenc.c b/ext/libpng/gstpngenc.c
index 3d3e116b2..e9050b13a 100644
--- a/ext/libpng/gstpngenc.c
+++ b/ext/libpng/gstpngenc.c
@@ -304,7 +304,6 @@ gst_pngenc_handle_frame (GstVideoEncoder * encoder, GstVideoCodecFrame * frame)
   png_set_write_fn (pngenc->png_struct_ptr, pngenc,
       (png_rw_ptr) user_write_data, user_flush_data);
 
-  row_pointers = g_new (png_byte *, GST_VIDEO_INFO_HEIGHT (info));
   if (!gst_video_frame_map (&vframe, &pngenc->input_state->info,
           frame->input_buffer, GST_MAP_READ)) {
     GST_ELEMENT_ERROR (pngenc, STREAM, FORMAT, (NULL),
@@ -313,6 +312,8 @@ gst_pngenc_handle_frame (GstVideoEncoder * encoder, GstVideoCodecFrame * frame)
     goto done;
   }
 
+  row_pointers = g_new (png_byte *, GST_VIDEO_INFO_HEIGHT (info));
+
   for (row_index = 0; row_index < GST_VIDEO_INFO_HEIGHT (info); row_index++) {
     row_pointers[row_index] = GST_VIDEO_FRAME_COMP_DATA (&vframe, 0) +
         (row_index * GST_VIDEO_FRAME_COMP_STRIDE (&vframe, 0));
diff --git a/ext/meson.build b/ext/meson.build
index 544f29a22..52eb4c748 100644
--- a/ext/meson.build
+++ b/ext/meson.build
@@ -1,16 +1,20 @@
-# subdir('aalib')
+subdir('aalib')
 subdir('cairo')
 subdir('flac')
 subdir('gdk_pixbuf')
+subdir('gtk')
 subdir('jack')
 subdir('jpeg')
-# subdir('libcaca')
+subdir('lame')
+subdir('libcaca')
 # FIXME: dv plugin fails to link with msvc, wants pthread.lib
 if cc.get_id() != 'msvc'
   subdir('dv')
 endif
 subdir('libpng')
-# subdir('raw1394')
+subdir('mpg123')
+subdir('raw1394')
+# FIXME: subdir('qt')
 subdir('pulse')
 subdir('shout2')
 subdir('soup')
@@ -21,5 +25,6 @@ if cc.get_id() == 'msvc'
 else
   subdir('taglib')
 endif
+subdir('twolame')
 subdir('vpx')
 subdir('wavpack')
diff --git a/ext/mpg123/Makefile.am b/ext/mpg123/Makefile.am
new file mode 100644
index 000000000..465f32597
--- /dev/null
+++ b/ext/mpg123/Makefile.am
@@ -0,0 +1,11 @@
+plugin_LTLIBRARIES = libgstmpg123.la
+
+libgstmpg123_la_SOURCES = gstmpg123audiodec.c
+libgstmpg123_la_CFLAGS = -DGST_USE_UNSTABLE_API \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_BASE_CFLAGS) $(GST_CFLAGS) $(MPG123_CFLAGS)
+libgstmpg123_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_API_VERSION@ \
+	$(GST_BASE_LIBS) $(GST_LIBS) $(MPG123_LIBS)
+libgstmpg123_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+
+noinst_HEADERS = gstmpg123audiodec.h
diff --git a/ext/mpg123/Makefile.in b/ext/mpg123/Makefile.in
new file mode 100644
index 000000000..95710c946
--- /dev/null
+++ b/ext/mpg123/Makefile.in
@@ -0,0 +1,950 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 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 = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+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 = ext/mpg123
+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-version.m4 \
+	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.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.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)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
+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 =
+libgstmpg123_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_libgstmpg123_la_OBJECTS = libgstmpg123_la-gstmpg123audiodec.lo
+libgstmpg123_la_OBJECTS = $(am_libgstmpg123_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 = 
+libgstmpg123_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libgstmpg123_la_CFLAGS) $(CFLAGS) $(libgstmpg123_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 = $(libgstmpg123_la_SOURCES)
+DIST_SOURCES = $(libgstmpg123_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
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+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@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+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@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
+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_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
+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_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
+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_PREFIX = @GST_PREFIX@
+GST_REVISION = @GST_REVISION@
+GST_TOOLS_DIR = @GST_TOOLS_DIR@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
+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_CXX = @HAVE_CXX@
+HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
+HAVE_ROM1394 = @HAVE_ROM1394@
+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@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_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_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
+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@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
+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@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+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@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
+RANLIB = @RANLIB@
+RAW1394_CFLAGS = @RAW1394_CFLAGS@
+RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
+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@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
+USE_NLS = @USE_NLS@
+VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+VALGRIND_LIBS = @VALGRIND_LIBS@
+VALGRIND_PATH = @VALGRIND_PATH@
+VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
+VPX_130_CFLAGS = @VPX_130_CFLAGS@
+VPX_130_LIBS = @VPX_130_LIBS@
+VPX_140_CFLAGS = @VPX_140_CFLAGS@
+VPX_140_LIBS = @VPX_140_LIBS@
+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@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XFIXES_CFLAGS = @XFIXES_CFLAGS@
+XFIXES_LIBS = @XFIXES_LIBS@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XSHM_CFLAGS = @XSHM_CFLAGS@
+XSHM_LIBS = @XSHM_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_LIBS = @X_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@
+ax_pthread_config = @ax_pthread_config@
+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@
+runstatedir = @runstatedir@
+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 = libgstmpg123.la
+libgstmpg123_la_SOURCES = gstmpg123audiodec.c
+libgstmpg123_la_CFLAGS = -DGST_USE_UNSTABLE_API \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_BASE_CFLAGS) $(GST_CFLAGS) $(MPG123_CFLAGS)
+
+libgstmpg123_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_API_VERSION@ \
+	$(GST_BASE_LIBS) $(GST_LIBS) $(MPG123_LIBS)
+
+libgstmpg123_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+noinst_HEADERS = gstmpg123audiodec.h
+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 ext/mpg123/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu ext/mpg123/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}; \
+	}
+
+libgstmpg123.la: $(libgstmpg123_la_OBJECTS) $(libgstmpg123_la_DEPENDENCIES) $(EXTRA_libgstmpg123_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstmpg123_la_LINK) -rpath $(plugindir) $(libgstmpg123_la_OBJECTS) $(libgstmpg123_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpg123_la-gstmpg123audiodec.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
+
+libgstmpg123_la-gstmpg123audiodec.lo: gstmpg123audiodec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpg123_la_CFLAGS) $(CFLAGS) -MT libgstmpg123_la-gstmpg123audiodec.lo -MD -MP -MF $(DEPDIR)/libgstmpg123_la-gstmpg123audiodec.Tpo -c -o libgstmpg123_la-gstmpg123audiodec.lo `test -f 'gstmpg123audiodec.c' || echo '$(srcdir)/'`gstmpg123audiodec.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpg123_la-gstmpg123audiodec.Tpo $(DEPDIR)/libgstmpg123_la-gstmpg123audiodec.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmpg123audiodec.c' object='libgstmpg123_la-gstmpg123audiodec.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpg123_la_CFLAGS) $(CFLAGS) -c -o libgstmpg123_la-gstmpg123audiodec.lo `test -f 'gstmpg123audiodec.c' || echo '$(srcdir)/'`gstmpg123audiodec.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
+
+.PRECIOUS: Makefile
+
+
+# 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/ext/mpg123/gstmpg123audiodec.c b/ext/mpg123/gstmpg123audiodec.c
new file mode 100644
index 000000000..fa6743cb9
--- /dev/null
+++ b/ext/mpg123/gstmpg123audiodec.c
@@ -0,0 +1,634 @@
+/*  MP3 decoding plugin for GStreamer using the mpg123 library
+ *  Copyright (C) 2012 Carlos Rafael Giani
+ *
+ *  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
+ */
+
+/**
+ * SECTION: element-mpg123audiodec
+ * @see_also: lamemp3enc, mad
+ *
+ * Audio decoder for MPEG-1 layer 1/2/3 audio data.
+ *
+ * <refsect2>
+ * <title>Example pipelines</title>
+ * |[
+ * gst-launch-1.0 filesrc location=music.mp3 ! mpegaudioparse ! mpg123audiodec ! audioconvert ! audioresample ! autoaudiosink
+ * ]| Decode and play the mp3 file
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "gstmpg123audiodec.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+GST_DEBUG_CATEGORY_STATIC (mpg123_debug);
+#define GST_CAT_DEFAULT mpg123_debug
+
+/* Omitted sample formats that mpg123 supports (or at least can support):
+ *  - 8bit integer signed
+ *  - 8bit integer unsigned
+ *  - a-law
+ *  - mu-law
+ *  - 64bit float
+ *
+ * The first four formats are not supported by the GstAudioDecoder base class.
+ * (The internal gst_audio_format_from_caps_structure() call fails.)
+ *
+ * The 64bit float issue is tricky. mpg123 actually decodes to "real",
+ * not necessarily to "float".
+ *
+ * "real" can be fixed point, 32bit float, 64bit float. There seems to be
+ * no way how to find out which one of them is actually used.
+ *
+ * However, in all known installations, "real" equals 32bit float, so that's
+ * what is used. */
+
+static GstStaticPadTemplate static_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/mpeg, "
+        "mpegversion = (int) 1, "
+        "layer = (int) [ 1, 3 ], "
+        "rate = (int) { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, "
+        "channels = (int) [ 1, 2 ], " "parsed = (boolean) true ")
+    );
+
+static gboolean gst_mpg123_audio_dec_start (GstAudioDecoder * dec);
+static gboolean gst_mpg123_audio_dec_stop (GstAudioDecoder * dec);
+static GstFlowReturn gst_mpg123_audio_dec_push_decoded_bytes (GstMpg123AudioDec
+    * mpg123_decoder, unsigned char const *decoded_bytes,
+    size_t const num_decoded_bytes);
+static GstFlowReturn gst_mpg123_audio_dec_handle_frame (GstAudioDecoder * dec,
+    GstBuffer * input_buffer);
+static gboolean gst_mpg123_audio_dec_set_format (GstAudioDecoder * dec,
+    GstCaps * input_caps);
+static void gst_mpg123_audio_dec_flush (GstAudioDecoder * dec, gboolean hard);
+
+G_DEFINE_TYPE (GstMpg123AudioDec, gst_mpg123_audio_dec, GST_TYPE_AUDIO_DECODER);
+
+static void
+gst_mpg123_audio_dec_class_init (GstMpg123AudioDecClass * klass)
+{
+  GstAudioDecoderClass *base_class;
+  GstElementClass *element_class;
+  GstPadTemplate *src_template, *sink_template;
+  int error;
+
+  GST_DEBUG_CATEGORY_INIT (mpg123_debug, "mpg123", 0, "mpg123 mp3 decoder");
+
+  base_class = GST_AUDIO_DECODER_CLASS (klass);
+  element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_set_static_metadata (element_class,
+      "mpg123 mp3 decoder",
+      "Codec/Decoder/Audio",
+      "Decodes mp3 streams using the mpg123 library",
+      "Carlos Rafael Giani <dv@pseudoterminal.org>");
+
+  /* Not using static pad template for srccaps, since the comma-separated list
+   * of formats needs to be created depending on whatever mpg123 supports */
+  {
+    const int *format_list;
+    const long *rates_list;
+    size_t num, i;
+    GString *s;
+    GstCaps *src_template_caps;
+
+    s = g_string_new ("audio/x-raw, ");
+
+    mpg123_encodings (&format_list, &num);
+    g_string_append (s, "format = { ");
+    for (i = 0; i < num; ++i) {
+      switch (format_list[i]) {
+        case MPG123_ENC_SIGNED_16:
+          g_string_append (s, (i > 0) ? ", " : "");
+          g_string_append (s, GST_AUDIO_NE (S16));
+          break;
+        case MPG123_ENC_UNSIGNED_16:
+          g_string_append (s, (i > 0) ? ", " : "");
+          g_string_append (s, GST_AUDIO_NE (U16));
+          break;
+        case MPG123_ENC_SIGNED_24:
+          g_string_append (s, (i > 0) ? ", " : "");
+          g_string_append (s, GST_AUDIO_NE (S24));
+          break;
+        case MPG123_ENC_UNSIGNED_24:
+          g_string_append (s, (i > 0) ? ", " : "");
+          g_string_append (s, GST_AUDIO_NE (U24));
+          break;
+        case MPG123_ENC_SIGNED_32:
+          g_string_append (s, (i > 0) ? ", " : "");
+          g_string_append (s, GST_AUDIO_NE (S32));
+          break;
+        case MPG123_ENC_UNSIGNED_32:
+          g_string_append (s, (i > 0) ? ", " : "");
+          g_string_append (s, GST_AUDIO_NE (U32));
+          break;
+        case MPG123_ENC_FLOAT_32:
+          g_string_append (s, (i > 0) ? ", " : "");
+          g_string_append (s, GST_AUDIO_NE (F32));
+          break;
+        default:
+          GST_DEBUG ("Ignoring mpg123 format %d", format_list[i]);
+          break;
+      }
+    }
+    g_string_append (s, " }, ");
+
+    mpg123_rates (&rates_list, &num);
+    g_string_append (s, "rate = (int) { ");
+    for (i = 0; i < num; ++i) {
+      g_string_append_printf (s, "%s%lu", (i > 0) ? ", " : "", rates_list[i]);
+    }
+    g_string_append (s, "}, ");
+
+    g_string_append (s, "channels = (int) [ 1, 2 ], ");
+    g_string_append (s, "layout = (string) interleaved");
+
+    src_template_caps = gst_caps_from_string (s->str);
+    src_template = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
+        src_template_caps);
+    gst_caps_unref (src_template_caps);
+
+    g_string_free (s, TRUE);
+  }
+
+  sink_template = gst_static_pad_template_get (&static_sink_template);
+
+  gst_element_class_add_pad_template (element_class, sink_template);
+  gst_element_class_add_pad_template (element_class, src_template);
+
+  base_class->start = GST_DEBUG_FUNCPTR (gst_mpg123_audio_dec_start);
+  base_class->stop = GST_DEBUG_FUNCPTR (gst_mpg123_audio_dec_stop);
+  base_class->handle_frame =
+      GST_DEBUG_FUNCPTR (gst_mpg123_audio_dec_handle_frame);
+  base_class->set_format = GST_DEBUG_FUNCPTR (gst_mpg123_audio_dec_set_format);
+  base_class->flush = GST_DEBUG_FUNCPTR (gst_mpg123_audio_dec_flush);
+
+  error = mpg123_init ();
+  if (G_UNLIKELY (error != MPG123_OK))
+    GST_ERROR ("Could not initialize mpg123 library: %s",
+        mpg123_plain_strerror (error));
+  else
+    GST_INFO ("mpg123 library initialized");
+}
+
+
+void
+gst_mpg123_audio_dec_init (GstMpg123AudioDec * mpg123_decoder)
+{
+  mpg123_decoder->handle = NULL;
+  gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (mpg123_decoder), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (mpg123_decoder), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (mpg123_decoder));
+}
+
+
+static gboolean
+gst_mpg123_audio_dec_start (GstAudioDecoder * dec)
+{
+  GstMpg123AudioDec *mpg123_decoder;
+  int error;
+
+  mpg123_decoder = GST_MPG123_AUDIO_DEC (dec);
+  error = 0;
+
+  mpg123_decoder->handle = mpg123_new (NULL, &error);
+  mpg123_decoder->has_next_audioinfo = FALSE;
+  mpg123_decoder->frame_offset = 0;
+
+  /* Initially, the mpg123 handle comes with a set of default formats
+   * supported. This clears this set.  This is necessary, since only one
+   * format shall be supported (see set_format for more). */
+  mpg123_format_none (mpg123_decoder->handle);
+
+  /* Built-in mpg123 support for gapless decoding is disabled for now,
+   * since it does not work well with seeking */
+  mpg123_param (mpg123_decoder->handle, MPG123_REMOVE_FLAGS, MPG123_GAPLESS, 0);
+  /* Tells mpg123 to use a small read-ahead buffer for better MPEG sync;
+   * essential for MP3 radio streams */
+  mpg123_param (mpg123_decoder->handle, MPG123_ADD_FLAGS, MPG123_SEEKBUFFER, 0);
+  /* Sets the resync limit to the end of the stream (otherwise mpg123 may give
+   * up on decoding prematurely, especially with mp3 web radios) */
+  mpg123_param (mpg123_decoder->handle, MPG123_RESYNC_LIMIT, -1, 0);
+#if MPG123_API_VERSION >= 36
+  /* The precise API version where MPG123_AUTO_RESAMPLE appeared is
+   * somewhere between 29 and 36 */
+  /* Don't let mpg123 resample output */
+  mpg123_param (mpg123_decoder->handle, MPG123_REMOVE_FLAGS,
+      MPG123_AUTO_RESAMPLE, 0);
+#endif
+  /* Don't let mpg123 print messages to stdout/stderr */
+  mpg123_param (mpg123_decoder->handle, MPG123_ADD_FLAGS, MPG123_QUIET, 0);
+
+  /* Open in feed mode (= encoded data is fed manually into the handle). */
+  error = mpg123_open_feed (mpg123_decoder->handle);
+
+  if (G_UNLIKELY (error != MPG123_OK)) {
+    GST_ELEMENT_ERROR (dec, LIBRARY, INIT, (NULL),
+        ("%s", mpg123_strerror (mpg123_decoder->handle)));
+    mpg123_close (mpg123_decoder->handle);
+    mpg123_delete (mpg123_decoder->handle);
+    mpg123_decoder->handle = NULL;
+    return FALSE;
+  }
+
+  GST_INFO_OBJECT (dec, "mpg123 decoder started");
+
+  return TRUE;
+}
+
+
+static gboolean
+gst_mpg123_audio_dec_stop (GstAudioDecoder * dec)
+{
+  GstMpg123AudioDec *mpg123_decoder = GST_MPG123_AUDIO_DEC (dec);
+
+  if (G_LIKELY (mpg123_decoder->handle != NULL)) {
+    mpg123_close (mpg123_decoder->handle);
+    mpg123_delete (mpg123_decoder->handle);
+    mpg123_decoder->handle = NULL;
+  }
+
+  GST_INFO_OBJECT (dec, "mpg123 decoder stopped");
+
+  return TRUE;
+}
+
+
+static GstFlowReturn
+gst_mpg123_audio_dec_push_decoded_bytes (GstMpg123AudioDec * mpg123_decoder,
+    unsigned char const *decoded_bytes, size_t const num_decoded_bytes)
+{
+  GstBuffer *output_buffer;
+  GstAudioDecoder *dec;
+
+  output_buffer = NULL;
+  dec = GST_AUDIO_DECODER (mpg123_decoder);
+
+  if ((num_decoded_bytes == 0) || (decoded_bytes == NULL)) {
+    /* This occurs in the first few frames, which do not carry data; once
+     * MPG123_AUDIO_DEC_NEW_FORMAT is received, the empty frames stop occurring */
+    GST_DEBUG_OBJECT (mpg123_decoder,
+        "cannot decode yet, need more data -> no output buffer to push");
+    return GST_FLOW_OK;
+  }
+
+  output_buffer = gst_buffer_new_allocate (NULL, num_decoded_bytes, NULL);
+
+  if (output_buffer == NULL) {
+    /* This is necessary to advance playback in time,
+     * even when nothing was decoded. */
+    return gst_audio_decoder_finish_frame (dec, NULL, 1);
+  } else {
+    GstMapInfo info;
+
+    if (gst_buffer_map (output_buffer, &info, GST_MAP_WRITE)) {
+      memcpy (info.data, decoded_bytes, num_decoded_bytes);
+      gst_buffer_unmap (output_buffer, &info);
+    } else {
+      GST_ERROR_OBJECT (mpg123_decoder, "gst_buffer_map() returned NULL");
+      gst_buffer_unref (output_buffer);
+      output_buffer = NULL;
+    }
+
+    return gst_audio_decoder_finish_frame (dec, output_buffer, 1);
+  }
+}
+
+
+static GstFlowReturn
+gst_mpg123_audio_dec_handle_frame (GstAudioDecoder * dec,
+    GstBuffer * input_buffer)
+{
+  GstMpg123AudioDec *mpg123_decoder;
+  int decode_error;
+  unsigned char *decoded_bytes;
+  size_t num_decoded_bytes;
+  GstFlowReturn retval;
+
+  mpg123_decoder = GST_MPG123_AUDIO_DEC (dec);
+
+  g_assert (mpg123_decoder->handle != NULL);
+
+  /* The actual decoding */
+  {
+    /* feed input data (if there is any) */
+    if (G_LIKELY (input_buffer != NULL)) {
+      GstMapInfo info;
+
+      if (gst_buffer_map (input_buffer, &info, GST_MAP_READ)) {
+        mpg123_feed (mpg123_decoder->handle, info.data, info.size);
+        gst_buffer_unmap (input_buffer, &info);
+      } else {
+        GST_AUDIO_DECODER_ERROR (mpg123_decoder, 1, RESOURCE, READ, (NULL),
+            ("gst_memory_map() failed"), retval);
+        return retval;
+      }
+    }
+
+    /* Try to decode a frame */
+    decoded_bytes = NULL;
+    num_decoded_bytes = 0;
+    decode_error = mpg123_decode_frame (mpg123_decoder->handle,
+        &mpg123_decoder->frame_offset, &decoded_bytes, &num_decoded_bytes);
+  }
+
+  retval = GST_FLOW_OK;
+
+  switch (decode_error) {
+    case MPG123_NEW_FORMAT:
+      /* As mentioned in gst_mpg123_audio_dec_set_format(), the next audioinfo
+       * is not set immediately; instead, the code waits for mpg123 to take
+       * note of the new format, and then sets the audioinfo. This fixes glitches
+       * with mp3s containing several format headers (for example, first half
+       * using 44.1kHz, second half 32 kHz) */
+
+      GST_LOG_OBJECT (dec,
+          "mpg123 reported a new format -> setting next srccaps");
+
+      gst_mpg123_audio_dec_push_decoded_bytes (mpg123_decoder, decoded_bytes,
+          num_decoded_bytes);
+
+      /* If there is a next audioinfo, use it, then set has_next_audioinfo to
+       * FALSE, to make sure gst_audio_decoder_set_output_format() isn't called
+       * again until set_format is called by the base class */
+      if (mpg123_decoder->has_next_audioinfo) {
+        if (!gst_audio_decoder_set_output_format (dec,
+                &(mpg123_decoder->next_audioinfo))) {
+          GST_WARNING_OBJECT (dec, "Unable to set output format");
+          retval = GST_FLOW_NOT_NEGOTIATED;
+        }
+        mpg123_decoder->has_next_audioinfo = FALSE;
+      }
+
+      break;
+
+    case MPG123_NEED_MORE:
+    case MPG123_OK:
+      retval = gst_mpg123_audio_dec_push_decoded_bytes (mpg123_decoder,
+          decoded_bytes, num_decoded_bytes);
+      break;
+
+    case MPG123_DONE:
+      /* If this happens, then the upstream parser somehow missed the ending
+       * of the bitstream */
+      GST_LOG_OBJECT (dec, "mpg123 is done decoding");
+      gst_mpg123_audio_dec_push_decoded_bytes (mpg123_decoder, decoded_bytes,
+          num_decoded_bytes);
+      retval = GST_FLOW_EOS;
+      break;
+
+    default:
+    {
+      /* Anything else is considered an error */
+      int errcode;
+      retval = GST_FLOW_ERROR;  /* use error by default */
+      switch (decode_error) {
+        case MPG123_ERR:
+          errcode = mpg123_errcode (mpg123_decoder->handle);
+          break;
+        default:
+          errcode = decode_error;
+      }
+      switch (errcode) {
+        case MPG123_BAD_OUTFORMAT:{
+          GstCaps *input_caps =
+              gst_pad_get_current_caps (GST_AUDIO_DECODER_SINK_PAD (dec));
+          GST_ELEMENT_ERROR (dec, STREAM, FORMAT, (NULL),
+              ("Output sample format could not be used when trying to decode frame. "
+                  "This is typically caused when the input caps (often the sample "
+                  "rate) do not match the actual format of the audio data. "
+                  "Input caps: %" GST_PTR_FORMAT, input_caps)
+              );
+          gst_caps_unref (input_caps);
+          break;
+        }
+        default:{
+          char const *errmsg = mpg123_plain_strerror (errcode);
+          /* GST_AUDIO_DECODER_ERROR sets a new return value according to
+           * its estimations */
+          GST_AUDIO_DECODER_ERROR (mpg123_decoder, 1, STREAM, DECODE, (NULL),
+              ("mpg123 decoding error: %s", errmsg), retval);
+        }
+      }
+    }
+  }
+
+  return retval;
+}
+
+
+static gboolean
+gst_mpg123_audio_dec_set_format (GstAudioDecoder * dec, GstCaps * input_caps)
+{
+  /* "encoding" is the sample format specifier for mpg123 */
+  int encoding;
+  int sample_rate, num_channels;
+  GstAudioFormat format;
+  GstMpg123AudioDec *mpg123_decoder;
+  gboolean retval = FALSE;
+
+  mpg123_decoder = GST_MPG123_AUDIO_DEC (dec);
+
+  g_assert (mpg123_decoder->handle != NULL);
+
+  mpg123_decoder->has_next_audioinfo = FALSE;
+
+  /* Get sample rate and number of channels from input_caps */
+  {
+    GstStructure *structure;
+    gboolean err = FALSE;
+
+    /* Only the first structure is used (multiple
+     * input caps structures don't make sense */
+    structure = gst_caps_get_structure (input_caps, 0);
+
+    if (!gst_structure_get_int (structure, "rate", &sample_rate)) {
+      err = TRUE;
+      GST_ERROR_OBJECT (dec, "Input caps do not have a rate value");
+    }
+    if (!gst_structure_get_int (structure, "channels", &num_channels)) {
+      err = TRUE;
+      GST_ERROR_OBJECT (dec, "Input caps do not have a channel value");
+    }
+
+    if (G_UNLIKELY (err))
+      goto done;
+  }
+
+  /* Get sample format from the allowed src caps */
+  {
+    GstCaps *allowed_srccaps =
+        gst_pad_get_allowed_caps (GST_AUDIO_DECODER_SRC_PAD (dec));
+
+    if (allowed_srccaps == NULL) {
+      /* srcpad is not linked (yet), so no peer information is available;
+       * just use the default sample format (16 bit signed integer) */
+      GST_DEBUG_OBJECT (mpg123_decoder,
+          "srcpad is not linked (yet) -> using S16 sample format");
+      format = GST_AUDIO_FORMAT_S16;
+      encoding = MPG123_ENC_SIGNED_16;
+    } else if (gst_caps_is_empty (allowed_srccaps)) {
+      gst_caps_unref (allowed_srccaps);
+      goto done;
+    } else {
+      gchar const *format_str;
+      GValue const *format_value;
+
+      /* Look at the sample format values from the first structure */
+      GstStructure *structure = gst_caps_get_structure (allowed_srccaps, 0);
+      format_value = gst_structure_get_value (structure, "format");
+
+      if (format_value == NULL) {
+        gst_caps_unref (allowed_srccaps);
+        goto done;
+      } else if (GST_VALUE_HOLDS_LIST (format_value)) {
+        /* if value is a format list, pick the first entry */
+        GValue const *fmt_list_value =
+            gst_value_list_get_value (format_value, 0);
+        format_str = g_value_get_string (fmt_list_value);
+      } else if (G_VALUE_HOLDS_STRING (format_value)) {
+        /* if value is a string, use it directly */
+        format_str = g_value_get_string (format_value);
+      } else {
+        GST_ERROR_OBJECT (mpg123_decoder, "unexpected type for 'format' field "
+            "in caps structure %" GST_PTR_FORMAT, structure);
+        gst_caps_unref (allowed_srccaps);
+        goto done;
+      }
+
+      /* get the format value from the string */
+      format = gst_audio_format_from_string (format_str);
+      gst_caps_unref (allowed_srccaps);
+
+      g_assert (format != GST_AUDIO_FORMAT_UNKNOWN);
+
+      /* convert format to mpg123 encoding */
+      switch (format) {
+        case GST_AUDIO_FORMAT_S16:
+          encoding = MPG123_ENC_SIGNED_16;
+          break;
+        case GST_AUDIO_FORMAT_S24:
+          encoding = MPG123_ENC_SIGNED_24;
+          break;
+        case GST_AUDIO_FORMAT_S32:
+          encoding = MPG123_ENC_SIGNED_32;
+          break;
+        case GST_AUDIO_FORMAT_U16:
+          encoding = MPG123_ENC_UNSIGNED_16;
+          break;
+        case GST_AUDIO_FORMAT_U24:
+          encoding = MPG123_ENC_UNSIGNED_24;
+          break;
+        case GST_AUDIO_FORMAT_U32:
+          encoding = MPG123_ENC_UNSIGNED_32;
+          break;
+        case GST_AUDIO_FORMAT_F32:
+          encoding = MPG123_ENC_FLOAT_32;
+          break;
+        default:
+          g_assert_not_reached ();
+          goto done;
+      }
+    }
+  }
+
+  /* Sample rate, number of channels, and sample format are known at this point.
+   * Set the audioinfo structure's values and the mpg123 format. */
+  {
+    int err;
+
+    /* clear all existing format settings from the mpg123 instance */
+    mpg123_format_none (mpg123_decoder->handle);
+    /* set the chosen format */
+    err =
+        mpg123_format (mpg123_decoder->handle, sample_rate, num_channels,
+        encoding);
+
+    if (err != MPG123_OK) {
+      GST_WARNING_OBJECT (dec,
+          "mpg123_format() failed: %s",
+          mpg123_strerror (mpg123_decoder->handle));
+    } else {
+      gst_audio_info_init (&(mpg123_decoder->next_audioinfo));
+      gst_audio_info_set_format (&(mpg123_decoder->next_audioinfo), format,
+          sample_rate, num_channels, NULL);
+      GST_LOG_OBJECT (dec, "The next audio format is: %s, %u Hz, %u channels",
+          gst_audio_format_to_string (format), sample_rate, num_channels);
+      mpg123_decoder->has_next_audioinfo = TRUE;
+
+      retval = TRUE;
+    }
+  }
+
+done:
+  return retval;
+}
+
+
+static void
+gst_mpg123_audio_dec_flush (GstAudioDecoder * dec, gboolean hard)
+{
+  int error;
+  GstMpg123AudioDec *mpg123_decoder;
+
+  GST_LOG_OBJECT (dec, "Flushing decoder");
+
+  mpg123_decoder = GST_MPG123_AUDIO_DEC (dec);
+
+  g_assert (mpg123_decoder->handle != NULL);
+
+  /* Flush by reopening the feed */
+  mpg123_close (mpg123_decoder->handle);
+  error = mpg123_open_feed (mpg123_decoder->handle);
+
+  if (G_UNLIKELY (error != MPG123_OK)) {
+    GST_ELEMENT_ERROR (dec, LIBRARY, INIT, (NULL),
+        ("Error while reopening mpg123 feed: %s",
+            mpg123_plain_strerror (error)));
+    mpg123_close (mpg123_decoder->handle);
+    mpg123_delete (mpg123_decoder->handle);
+    mpg123_decoder->handle = NULL;
+  }
+
+  if (hard)
+    mpg123_decoder->has_next_audioinfo = FALSE;
+
+  /* opening/closing feeds do not affect the format defined by the
+   * mpg123_format() call that was made in gst_mpg123_audio_dec_set_format(),
+   * and since the up/downstream caps are not expected to change here, no
+   * mpg123_format() calls are done */
+}
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "mpg123audiodec",
+      GST_RANK_MARGINAL, gst_mpg123_audio_dec_get_type ());
+}
+
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+    GST_VERSION_MINOR,
+    mpg123, "mp3 decoding based on the mpg123 library",
+    plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
diff --git a/ext/mpg123/gstmpg123audiodec.h b/ext/mpg123/gstmpg123audiodec.h
new file mode 100644
index 000000000..b865c417a
--- /dev/null
+++ b/ext/mpg123/gstmpg123audiodec.h
@@ -0,0 +1,74 @@
+/*  MP3 decoding plugin for GStreamer using the mpg123 library
+ *  Copyright (C) 2012 Carlos Rafael Giani
+ *
+ *  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_MPG123_AUDIO_DEC_H__
+#define __GST_MPG123_AUDIO_DEC_H__
+
+/* This is what the visual studio build in mpg123 does before including the
+ * original header file. Without this we get syntax errors in the
+ * replace_reader function declarations because it doesn't know ssize_t etc.
+ * It doesn't realy matter for us if the ssize_t typedef here is correct. */
+#ifdef _MSC_VER
+#include <tchar.h>
+#include <stdlib.h>
+#include <sys/types.h>
+typedef long ssize_t;
+#include <stdint.h>
+#endif
+
+#include <gst/gst.h>
+#include <gst/audio/gstaudiodecoder.h>
+#include <mpg123.h>
+
+
+G_BEGIN_DECLS
+
+
+typedef struct _GstMpg123AudioDec GstMpg123AudioDec;
+typedef struct _GstMpg123AudioDecClass GstMpg123AudioDecClass;
+
+
+#define GST_TYPE_MPG123_AUDIO_DEC             (gst_mpg123_audio_dec_get_type())
+#define GST_MPG123_AUDIO_DEC(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_MPG123_AUDIO_DEC,GstMpg123AudioDec))
+#define GST_MPG123_AUDIO_DEC_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_MPG123_AUDIO_DEC,GstMpg123AudioDecClass))
+#define GST_IS_MPG123_AUDIO_DEC(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_MPG123_AUDIO_DEC))
+#define GST_IS_MPG123_AUDIO_DEC_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_MPG123_AUDIO_DEC))
+
+struct _GstMpg123AudioDec
+{
+  GstAudioDecoder parent;
+
+  mpg123_handle *handle;
+
+  GstAudioInfo next_audioinfo;
+  gboolean has_next_audioinfo;
+
+  off_t frame_offset;
+};
+
+
+struct _GstMpg123AudioDecClass
+{
+  GstAudioDecoderClass parent_class;
+};
+
+G_GNUC_INTERNAL GType gst_mpg123_audio_dec_get_type (void);
+
+G_END_DECLS
+
+#endif
diff --git a/ext/mpg123/meson.build b/ext/mpg123/meson.build
new file mode 100644
index 000000000..3891fd7d0
--- /dev/null
+++ b/ext/mpg123/meson.build
@@ -0,0 +1,12 @@
+mpg123_dep = dependency('libmpg123', version : '>= 1.3', required : false)
+
+if mpg123_dep.found()
+  gstmpg123 = library('gstmpg123',
+    'gstmpg123audiodec.c',
+    c_args : gst_plugins_good_args,
+    include_directories : [configinc],
+    dependencies : [gstaudio_dep, mpg123_dep],
+    install : true,
+    install_dir : plugins_install_dir,
+  )
+endif
diff --git a/ext/pulse/Makefile.am b/ext/pulse/Makefile.am
index 5a1d52ee8..90e0002fa 100644
--- a/ext/pulse/Makefile.am
+++ b/ext/pulse/Makefile.am
@@ -12,7 +12,6 @@ libgstpulseaudio_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSI
 	-lgstpbutils-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(PULSE_LIBS)
 libgstpulseaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstpulseaudio_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = \
 	pulsesink.h \
diff --git a/ext/pulse/Makefile.in b/ext/pulse/Makefile.in
index b7bdaab58..a832adc78 100644
--- a/ext/pulse/Makefile.in
+++ b/ext/pulse/Makefile.in
@@ -177,8 +177,8 @@ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 am__v_lt_1 = 
 libgstpulseaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-	$(libgstpulseaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libgstpulseaudio_la_CFLAGS) $(CFLAGS) \
 	$(libgstpulseaudio_la_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -296,6 +296,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -319,6 +320,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -334,6 +337,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -356,10 +361,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -374,6 +386,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -391,6 +404,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -403,6 +418,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -421,6 +438,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -464,9 +484,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -480,11 +511,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -589,7 +625,6 @@ libgstpulseaudio_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSI
 	$(GST_BASE_LIBS) $(GST_LIBS) $(PULSE_LIBS)
 
 libgstpulseaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstpulseaudio_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
 	pulsesink.h \
 	pulsesrc.h \
@@ -705,39 +740,39 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstpulseaudio_la-plugin.lo: plugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulseaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -MT libgstpulseaudio_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstpulseaudio_la-plugin.Tpo -c -o libgstpulseaudio_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -MT libgstpulseaudio_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstpulseaudio_la-plugin.Tpo -c -o libgstpulseaudio_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulseaudio_la-plugin.Tpo $(DEPDIR)/libgstpulseaudio_la-plugin.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='plugin.c' object='libgstpulseaudio_la-plugin.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 $(libgstpulseaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -c -o libgstpulseaudio_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -c -o libgstpulseaudio_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 
 libgstpulseaudio_la-pulsesink.lo: pulsesink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulseaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -MT libgstpulseaudio_la-pulsesink.lo -MD -MP -MF $(DEPDIR)/libgstpulseaudio_la-pulsesink.Tpo -c -o libgstpulseaudio_la-pulsesink.lo `test -f 'pulsesink.c' || echo '$(srcdir)/'`pulsesink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -MT libgstpulseaudio_la-pulsesink.lo -MD -MP -MF $(DEPDIR)/libgstpulseaudio_la-pulsesink.Tpo -c -o libgstpulseaudio_la-pulsesink.lo `test -f 'pulsesink.c' || echo '$(srcdir)/'`pulsesink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulseaudio_la-pulsesink.Tpo $(DEPDIR)/libgstpulseaudio_la-pulsesink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pulsesink.c' object='libgstpulseaudio_la-pulsesink.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 $(libgstpulseaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -c -o libgstpulseaudio_la-pulsesink.lo `test -f 'pulsesink.c' || echo '$(srcdir)/'`pulsesink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -c -o libgstpulseaudio_la-pulsesink.lo `test -f 'pulsesink.c' || echo '$(srcdir)/'`pulsesink.c
 
 libgstpulseaudio_la-pulsesrc.lo: pulsesrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulseaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -MT libgstpulseaudio_la-pulsesrc.lo -MD -MP -MF $(DEPDIR)/libgstpulseaudio_la-pulsesrc.Tpo -c -o libgstpulseaudio_la-pulsesrc.lo `test -f 'pulsesrc.c' || echo '$(srcdir)/'`pulsesrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -MT libgstpulseaudio_la-pulsesrc.lo -MD -MP -MF $(DEPDIR)/libgstpulseaudio_la-pulsesrc.Tpo -c -o libgstpulseaudio_la-pulsesrc.lo `test -f 'pulsesrc.c' || echo '$(srcdir)/'`pulsesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulseaudio_la-pulsesrc.Tpo $(DEPDIR)/libgstpulseaudio_la-pulsesrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pulsesrc.c' object='libgstpulseaudio_la-pulsesrc.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 $(libgstpulseaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -c -o libgstpulseaudio_la-pulsesrc.lo `test -f 'pulsesrc.c' || echo '$(srcdir)/'`pulsesrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -c -o libgstpulseaudio_la-pulsesrc.lo `test -f 'pulsesrc.c' || echo '$(srcdir)/'`pulsesrc.c
 
 libgstpulseaudio_la-pulsedeviceprovider.lo: pulsedeviceprovider.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulseaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -MT libgstpulseaudio_la-pulsedeviceprovider.lo -MD -MP -MF $(DEPDIR)/libgstpulseaudio_la-pulsedeviceprovider.Tpo -c -o libgstpulseaudio_la-pulsedeviceprovider.lo `test -f 'pulsedeviceprovider.c' || echo '$(srcdir)/'`pulsedeviceprovider.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -MT libgstpulseaudio_la-pulsedeviceprovider.lo -MD -MP -MF $(DEPDIR)/libgstpulseaudio_la-pulsedeviceprovider.Tpo -c -o libgstpulseaudio_la-pulsedeviceprovider.lo `test -f 'pulsedeviceprovider.c' || echo '$(srcdir)/'`pulsedeviceprovider.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulseaudio_la-pulsedeviceprovider.Tpo $(DEPDIR)/libgstpulseaudio_la-pulsedeviceprovider.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pulsedeviceprovider.c' object='libgstpulseaudio_la-pulsedeviceprovider.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 $(libgstpulseaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -c -o libgstpulseaudio_la-pulsedeviceprovider.lo `test -f 'pulsedeviceprovider.c' || echo '$(srcdir)/'`pulsedeviceprovider.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -c -o libgstpulseaudio_la-pulsedeviceprovider.lo `test -f 'pulsedeviceprovider.c' || echo '$(srcdir)/'`pulsedeviceprovider.c
 
 libgstpulseaudio_la-pulseutil.lo: pulseutil.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulseaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -MT libgstpulseaudio_la-pulseutil.lo -MD -MP -MF $(DEPDIR)/libgstpulseaudio_la-pulseutil.Tpo -c -o libgstpulseaudio_la-pulseutil.lo `test -f 'pulseutil.c' || echo '$(srcdir)/'`pulseutil.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -MT libgstpulseaudio_la-pulseutil.lo -MD -MP -MF $(DEPDIR)/libgstpulseaudio_la-pulseutil.Tpo -c -o libgstpulseaudio_la-pulseutil.lo `test -f 'pulseutil.c' || echo '$(srcdir)/'`pulseutil.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulseaudio_la-pulseutil.Tpo $(DEPDIR)/libgstpulseaudio_la-pulseutil.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pulseutil.c' object='libgstpulseaudio_la-pulseutil.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 $(libgstpulseaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -c -o libgstpulseaudio_la-pulseutil.lo `test -f 'pulseutil.c' || echo '$(srcdir)/'`pulseutil.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulseaudio_la_CFLAGS) $(CFLAGS) -c -o libgstpulseaudio_la-pulseutil.lo `test -f 'pulseutil.c' || echo '$(srcdir)/'`pulseutil.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/pulse/pulseutil.h b/ext/pulse/pulseutil.h
index 152c42d12..ef11424ee 100644
--- a/ext/pulse/pulseutil.h
+++ b/ext/pulse/pulseutil.h
@@ -60,7 +60,7 @@
 #define _PULSE_CAPS_DTS "audio/x-dts, framed = (boolean) true, " \
     "block-size = (int) { 512, 1024, 2048 }; "
 #define _PULSE_CAPS_MP3 "audio/mpeg, mpegversion = (int) 1, " \
-    "mpegaudioversion = (int) [ 1, 2 ], parsed = (boolean) true;"
+    "mpegaudioversion = (int) [ 1, 3 ], parsed = (boolean) true;"
 #define _PULSE_CAPS_AAC "audio/mpeg, mpegversion = (int) { 2, 4 }, " \
     "framed = (boolean) true, stream-format = (string) adts;"
 
diff --git a/ext/qt/Makefile.am b/ext/qt/Makefile.am
new file mode 100644
index 000000000..cf2f761c3
--- /dev/null
+++ b/ext/qt/Makefile.am
@@ -0,0 +1,60 @@
+plugin_LTLIBRARIES = libgstqmlgl.la
+
+noinst_HEADERS = \
+	gstqsgtexture.h \
+	gstqtglutility.h \
+	gstqtsink.h \
+	gstqtsrc.h \
+	qtitem.h \
+	qtwindow.h
+
+moc_generated = \
+	moc_qtitem.cc \
+	moc_qtwindow.cc \
+	moc_gstqsgtexture.cc
+
+#anything generated by the Qt tools...
+BUILT_SOURCES = $(moc_generated)
+CLEANFILES = $(moc_generated)
+
+nodist_libgstqmlgl_la_SOURCES = $(BUILT_SOURCES)
+
+libgstqmlgl_la_SOURCES = \
+	gstqsgtexture.cc \
+	gstqtglutility.cc \
+	qtitem.cc \
+	qtwindow.cc \
+	gstqtsink.cc \
+	gstqtsink.h \
+	gstqtsrc.cc \
+	gstqtsrc.h \
+	gstqtgl.h \
+	gstplugin.cc
+
+libgstqmlgl_la_CXXFLAGS = \
+	$(GST_PLUGINS_BAD_CFLAGS) \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_GL_CFLAGS) \
+	$(GST_BASE_CFLAGS) \
+	$(GST_CXXFLAGS) \
+	$(QT_CFLAGS) \
+	$(GL_CFLAGS) -std=c++11
+
+libgstqmlgl_la_LIBADD = \
+	$(GST_PLUGINS_BASE_LIBS) \
+	$(GST_GL_LIBS) \
+	-lgstvideo-$(GST_API_VERSION) \
+	$(GST_BASE_LIBS) \
+	$(QT_LIBS)
+
+libgstqmlgl_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+
+
+$(moc_generated): moc_%.cc: %.h
+	@MOC@ -o $@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MOC_CPPFLAGS) $<
+
+ui-%.h: %.ui
+	@UIC@ -o $@ $<
+
+qrc-%.cc: %.qrc
+	@RCC@ -o $@ $<
diff --git a/ext/qt/Makefile.in b/ext/qt/Makefile.in
new file mode 100644
index 000000000..98ac4a582
--- /dev/null
+++ b/ext/qt/Makefile.in
@@ -0,0 +1,1100 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 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 = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+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 = ext/qt
+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-version.m4 \
+	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.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.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)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
+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 =
+libgstqmlgl_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_libgstqmlgl_la_OBJECTS = libgstqmlgl_la-gstqsgtexture.lo \
+	libgstqmlgl_la-gstqtglutility.lo libgstqmlgl_la-qtitem.lo \
+	libgstqmlgl_la-qtwindow.lo libgstqmlgl_la-gstqtsink.lo \
+	libgstqmlgl_la-gstqtsrc.lo libgstqmlgl_la-gstplugin.lo
+am__objects_1 = libgstqmlgl_la-moc_qtitem.lo \
+	libgstqmlgl_la-moc_qtwindow.lo \
+	libgstqmlgl_la-moc_gstqsgtexture.lo
+am__objects_2 = $(am__objects_1)
+nodist_libgstqmlgl_la_OBJECTS = $(am__objects_2)
+libgstqmlgl_la_OBJECTS = $(am_libgstqmlgl_la_OBJECTS) \
+	$(nodist_libgstqmlgl_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 = 
+libgstqmlgl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+	$(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) \
+	$(libgstqmlgl_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
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_@AM_V@)
+am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
+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_CXXLD_1 = 
+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 = $(libgstqmlgl_la_SOURCES) $(nodist_libgstqmlgl_la_SOURCES)
+DIST_SOURCES = $(libgstqmlgl_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
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+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@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+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@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
+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_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
+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_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
+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_PREFIX = @GST_PREFIX@
+GST_REVISION = @GST_REVISION@
+GST_TOOLS_DIR = @GST_TOOLS_DIR@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
+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_CXX = @HAVE_CXX@
+HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
+HAVE_ROM1394 = @HAVE_ROM1394@
+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@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_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_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
+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@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
+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@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+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@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
+RANLIB = @RANLIB@
+RAW1394_CFLAGS = @RAW1394_CFLAGS@
+RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
+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@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
+USE_NLS = @USE_NLS@
+VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+VALGRIND_LIBS = @VALGRIND_LIBS@
+VALGRIND_PATH = @VALGRIND_PATH@
+VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
+VPX_130_CFLAGS = @VPX_130_CFLAGS@
+VPX_130_LIBS = @VPX_130_LIBS@
+VPX_140_CFLAGS = @VPX_140_CFLAGS@
+VPX_140_LIBS = @VPX_140_LIBS@
+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@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XFIXES_CFLAGS = @XFIXES_CFLAGS@
+XFIXES_LIBS = @XFIXES_LIBS@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XSHM_CFLAGS = @XSHM_CFLAGS@
+XSHM_LIBS = @XSHM_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_LIBS = @X_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@
+ax_pthread_config = @ax_pthread_config@
+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@
+runstatedir = @runstatedir@
+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 = libgstqmlgl.la
+noinst_HEADERS = \
+	gstqsgtexture.h \
+	gstqtglutility.h \
+	gstqtsink.h \
+	gstqtsrc.h \
+	qtitem.h \
+	qtwindow.h
+
+moc_generated = \
+	moc_qtitem.cc \
+	moc_qtwindow.cc \
+	moc_gstqsgtexture.cc
+
+
+#anything generated by the Qt tools...
+BUILT_SOURCES = $(moc_generated)
+CLEANFILES = $(moc_generated)
+nodist_libgstqmlgl_la_SOURCES = $(BUILT_SOURCES)
+libgstqmlgl_la_SOURCES = \
+	gstqsgtexture.cc \
+	gstqtglutility.cc \
+	qtitem.cc \
+	qtwindow.cc \
+	gstqtsink.cc \
+	gstqtsink.h \
+	gstqtsrc.cc \
+	gstqtsrc.h \
+	gstqtgl.h \
+	gstplugin.cc
+
+libgstqmlgl_la_CXXFLAGS = \
+	$(GST_PLUGINS_BAD_CFLAGS) \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_GL_CFLAGS) \
+	$(GST_BASE_CFLAGS) \
+	$(GST_CXXFLAGS) \
+	$(QT_CFLAGS) \
+	$(GL_CFLAGS) -std=c++11
+
+libgstqmlgl_la_LIBADD = \
+	$(GST_PLUGINS_BASE_LIBS) \
+	$(GST_GL_LIBS) \
+	-lgstvideo-$(GST_API_VERSION) \
+	$(GST_BASE_LIBS) \
+	$(QT_LIBS)
+
+libgstqmlgl_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+all: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .cc .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 ext/qt/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu ext/qt/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}; \
+	}
+
+libgstqmlgl.la: $(libgstqmlgl_la_OBJECTS) $(libgstqmlgl_la_DEPENDENCIES) $(EXTRA_libgstqmlgl_la_DEPENDENCIES) 
+	$(AM_V_CXXLD)$(libgstqmlgl_la_LINK) -rpath $(plugindir) $(libgstqmlgl_la_OBJECTS) $(libgstqmlgl_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstqmlgl_la-gstplugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstqmlgl_la-gstqsgtexture.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstqmlgl_la-gstqtglutility.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstqmlgl_la-gstqtsink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstqmlgl_la-gstqtsrc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstqmlgl_la-moc_gstqsgtexture.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstqmlgl_la-moc_qtitem.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstqmlgl_la-moc_qtwindow.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstqmlgl_la-qtitem.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstqmlgl_la-qtwindow.Plo@am__quote@
+
+.cc.o:
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cc.lo:
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
+
+libgstqmlgl_la-gstqsgtexture.lo: gstqsgtexture.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -MT libgstqmlgl_la-gstqsgtexture.lo -MD -MP -MF $(DEPDIR)/libgstqmlgl_la-gstqsgtexture.Tpo -c -o libgstqmlgl_la-gstqsgtexture.lo `test -f 'gstqsgtexture.cc' || echo '$(srcdir)/'`gstqsgtexture.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstqmlgl_la-gstqsgtexture.Tpo $(DEPDIR)/libgstqmlgl_la-gstqsgtexture.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gstqsgtexture.cc' object='libgstqmlgl_la-gstqsgtexture.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstqmlgl_la-gstqsgtexture.lo `test -f 'gstqsgtexture.cc' || echo '$(srcdir)/'`gstqsgtexture.cc
+
+libgstqmlgl_la-gstqtglutility.lo: gstqtglutility.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -MT libgstqmlgl_la-gstqtglutility.lo -MD -MP -MF $(DEPDIR)/libgstqmlgl_la-gstqtglutility.Tpo -c -o libgstqmlgl_la-gstqtglutility.lo `test -f 'gstqtglutility.cc' || echo '$(srcdir)/'`gstqtglutility.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstqmlgl_la-gstqtglutility.Tpo $(DEPDIR)/libgstqmlgl_la-gstqtglutility.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gstqtglutility.cc' object='libgstqmlgl_la-gstqtglutility.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstqmlgl_la-gstqtglutility.lo `test -f 'gstqtglutility.cc' || echo '$(srcdir)/'`gstqtglutility.cc
+
+libgstqmlgl_la-qtitem.lo: qtitem.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -MT libgstqmlgl_la-qtitem.lo -MD -MP -MF $(DEPDIR)/libgstqmlgl_la-qtitem.Tpo -c -o libgstqmlgl_la-qtitem.lo `test -f 'qtitem.cc' || echo '$(srcdir)/'`qtitem.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstqmlgl_la-qtitem.Tpo $(DEPDIR)/libgstqmlgl_la-qtitem.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='qtitem.cc' object='libgstqmlgl_la-qtitem.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstqmlgl_la-qtitem.lo `test -f 'qtitem.cc' || echo '$(srcdir)/'`qtitem.cc
+
+libgstqmlgl_la-qtwindow.lo: qtwindow.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -MT libgstqmlgl_la-qtwindow.lo -MD -MP -MF $(DEPDIR)/libgstqmlgl_la-qtwindow.Tpo -c -o libgstqmlgl_la-qtwindow.lo `test -f 'qtwindow.cc' || echo '$(srcdir)/'`qtwindow.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstqmlgl_la-qtwindow.Tpo $(DEPDIR)/libgstqmlgl_la-qtwindow.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='qtwindow.cc' object='libgstqmlgl_la-qtwindow.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstqmlgl_la-qtwindow.lo `test -f 'qtwindow.cc' || echo '$(srcdir)/'`qtwindow.cc
+
+libgstqmlgl_la-gstqtsink.lo: gstqtsink.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -MT libgstqmlgl_la-gstqtsink.lo -MD -MP -MF $(DEPDIR)/libgstqmlgl_la-gstqtsink.Tpo -c -o libgstqmlgl_la-gstqtsink.lo `test -f 'gstqtsink.cc' || echo '$(srcdir)/'`gstqtsink.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstqmlgl_la-gstqtsink.Tpo $(DEPDIR)/libgstqmlgl_la-gstqtsink.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gstqtsink.cc' object='libgstqmlgl_la-gstqtsink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstqmlgl_la-gstqtsink.lo `test -f 'gstqtsink.cc' || echo '$(srcdir)/'`gstqtsink.cc
+
+libgstqmlgl_la-gstqtsrc.lo: gstqtsrc.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -MT libgstqmlgl_la-gstqtsrc.lo -MD -MP -MF $(DEPDIR)/libgstqmlgl_la-gstqtsrc.Tpo -c -o libgstqmlgl_la-gstqtsrc.lo `test -f 'gstqtsrc.cc' || echo '$(srcdir)/'`gstqtsrc.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstqmlgl_la-gstqtsrc.Tpo $(DEPDIR)/libgstqmlgl_la-gstqtsrc.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gstqtsrc.cc' object='libgstqmlgl_la-gstqtsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstqmlgl_la-gstqtsrc.lo `test -f 'gstqtsrc.cc' || echo '$(srcdir)/'`gstqtsrc.cc
+
+libgstqmlgl_la-gstplugin.lo: gstplugin.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -MT libgstqmlgl_la-gstplugin.lo -MD -MP -MF $(DEPDIR)/libgstqmlgl_la-gstplugin.Tpo -c -o libgstqmlgl_la-gstplugin.lo `test -f 'gstplugin.cc' || echo '$(srcdir)/'`gstplugin.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstqmlgl_la-gstplugin.Tpo $(DEPDIR)/libgstqmlgl_la-gstplugin.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gstplugin.cc' object='libgstqmlgl_la-gstplugin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstqmlgl_la-gstplugin.lo `test -f 'gstplugin.cc' || echo '$(srcdir)/'`gstplugin.cc
+
+libgstqmlgl_la-moc_qtitem.lo: moc_qtitem.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -MT libgstqmlgl_la-moc_qtitem.lo -MD -MP -MF $(DEPDIR)/libgstqmlgl_la-moc_qtitem.Tpo -c -o libgstqmlgl_la-moc_qtitem.lo `test -f 'moc_qtitem.cc' || echo '$(srcdir)/'`moc_qtitem.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstqmlgl_la-moc_qtitem.Tpo $(DEPDIR)/libgstqmlgl_la-moc_qtitem.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='moc_qtitem.cc' object='libgstqmlgl_la-moc_qtitem.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstqmlgl_la-moc_qtitem.lo `test -f 'moc_qtitem.cc' || echo '$(srcdir)/'`moc_qtitem.cc
+
+libgstqmlgl_la-moc_qtwindow.lo: moc_qtwindow.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -MT libgstqmlgl_la-moc_qtwindow.lo -MD -MP -MF $(DEPDIR)/libgstqmlgl_la-moc_qtwindow.Tpo -c -o libgstqmlgl_la-moc_qtwindow.lo `test -f 'moc_qtwindow.cc' || echo '$(srcdir)/'`moc_qtwindow.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstqmlgl_la-moc_qtwindow.Tpo $(DEPDIR)/libgstqmlgl_la-moc_qtwindow.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='moc_qtwindow.cc' object='libgstqmlgl_la-moc_qtwindow.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstqmlgl_la-moc_qtwindow.lo `test -f 'moc_qtwindow.cc' || echo '$(srcdir)/'`moc_qtwindow.cc
+
+libgstqmlgl_la-moc_gstqsgtexture.lo: moc_gstqsgtexture.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -MT libgstqmlgl_la-moc_gstqsgtexture.lo -MD -MP -MF $(DEPDIR)/libgstqmlgl_la-moc_gstqsgtexture.Tpo -c -o libgstqmlgl_la-moc_gstqsgtexture.lo `test -f 'moc_gstqsgtexture.cc' || echo '$(srcdir)/'`moc_gstqsgtexture.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstqmlgl_la-moc_gstqsgtexture.Tpo $(DEPDIR)/libgstqmlgl_la-moc_gstqsgtexture.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='moc_gstqsgtexture.cc' object='libgstqmlgl_la-moc_gstqsgtexture.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstqmlgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstqmlgl_la-moc_gstqsgtexture.lo `test -f 'moc_gstqsgtexture.cc' || echo '$(srcdir)/'`moc_gstqsgtexture.cc
+
+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: $(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: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) 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:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+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."
+	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+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: all check install 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
+
+.PRECIOUS: Makefile
+
+
+$(moc_generated): moc_%.cc: %.h
+	@MOC@ -o $@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MOC_CPPFLAGS) $<
+
+ui-%.h: %.ui
+	@UIC@ -o $@ $<
+
+qrc-%.cc: %.qrc
+	@RCC@ -o $@ $<
+
+# 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/ext/qt/gstplugin.cc b/ext/qt/gstplugin.cc
new file mode 100644
index 000000000..79fb18189
--- /dev/null
+++ b/ext/qt/gstplugin.cc
@@ -0,0 +1,60 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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 "gstqtsink.h"
+#include "gstqtsrc.h"
+#include <QtQml/QQmlApplicationEngine>
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+  if (!gst_element_register (plugin, "qmlglsink",
+          GST_RANK_NONE, GST_TYPE_QT_SINK)) {
+    return FALSE;
+  }
+  
+  if (!gst_element_register (plugin, "qmlglsrc",
+          GST_RANK_NONE, GST_TYPE_QT_SRC)) {
+    return FALSE;
+  }
+  /* this means the plugin must be loaded before the qml engine is loaded */
+  qmlRegisterType<QtGLVideoItem> ("org.freedesktop.gstreamer.GLVideoItem", 1, 0, "GstGLVideoItem");
+
+  return TRUE;
+}
+
+#ifndef GST_PACKAGE_NAME
+#define GST_PACKAGE_NAME   "GStreamer Bad Plug-ins (qmake)"
+#define GST_PACKAGE_ORIGIN "Unknown package origin"
+#define GST_LICENSE        "LGPL"
+#define PACKAGE            "gst-plugins-bad (qmake)"
+#define PACKAGE_VERSION    "1.13.0.1"
+#endif
+
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+    GST_VERSION_MINOR,
+    qmlgl,
+    "Qt gl plugin",
+    plugin_init, PACKAGE_VERSION, GST_LICENSE, GST_PACKAGE_NAME,
+    GST_PACKAGE_ORIGIN)
diff --git a/ext/qt/gstqsgtexture.cc b/ext/qt/gstqsgtexture.cc
new file mode 100644
index 000000000..2b314e0ee
--- /dev/null
+++ b/ext/qt/gstqsgtexture.cc
@@ -0,0 +1,224 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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 <vector>
+#include <stdio.h>
+
+#include <gst/video/video.h>
+#include <gst/gl/gl.h>
+#include <gst/gl/gstglfuncs.h>
+#include "gstqsgtexture.h"
+
+#define GST_CAT_DEFAULT gst_qsg_texture_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+GstQSGTexture::GstQSGTexture ()
+{
+  static volatile gsize _debug;
+
+  initializeOpenGLFunctions();
+
+  if (g_once_init_enter (&_debug)) {
+    GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtqsgtexture", 0,
+        "Qt Scenegraph Texture");
+    g_once_init_leave (&_debug, 1);
+  }
+
+  gst_video_info_init (&this->v_info);
+  this->buffer_ = NULL;
+  this->qt_context_ = NULL;
+  this->sync_buffer_ = gst_buffer_new ();
+  this->dummy_tex_id_ = 0;
+}
+
+GstQSGTexture::~GstQSGTexture ()
+{
+  gst_buffer_replace (&this->buffer_, NULL);
+  gst_buffer_replace (&this->sync_buffer_, NULL);
+  if (this->dummy_tex_id_ && QOpenGLContext::currentContext ()) {
+    QOpenGLContext::currentContext ()->functions ()->glDeleteTextures (1,
+        &this->dummy_tex_id_);
+  }
+}
+
+/* only called from the streaming thread with scene graph thread blocked */
+void
+GstQSGTexture::setCaps (GstCaps * caps)
+{
+  GST_LOG ("%p setCaps %" GST_PTR_FORMAT, this, caps);
+
+  gst_video_info_from_caps (&this->v_info, caps);
+}
+
+/* only called from the streaming thread with scene graph thread blocked */
+gboolean
+GstQSGTexture::setBuffer (GstBuffer * buffer)
+{
+  GST_LOG ("%p setBuffer %" GST_PTR_FORMAT, this, buffer);
+  /* FIXME: update more state here */
+  if (!gst_buffer_replace (&this->buffer_, buffer))
+    return FALSE;
+
+  this->qt_context_ = gst_gl_context_get_current ();
+
+  return TRUE;
+}
+
+/* only called from qt's scene graph render thread */
+void
+GstQSGTexture::bind ()
+{
+  const GstGLFuncs *gl;
+  GstGLContext *context;
+  GstGLSyncMeta *sync_meta;
+  GstMemory *mem;
+  guint tex_id;
+  gboolean use_dummy_tex = TRUE;
+
+  if (!this->qt_context_)
+    return;
+
+  gst_gl_context_activate (this->qt_context_, TRUE);
+
+  if (!this->buffer_)
+    goto out;
+  if (GST_VIDEO_INFO_FORMAT (&this->v_info) == GST_VIDEO_FORMAT_UNKNOWN)
+    goto out;
+
+  this->mem_ = gst_buffer_peek_memory (this->buffer_, 0);
+  if (!this->mem_)
+    goto out;
+
+  g_assert (this->qt_context_);
+  gl = this->qt_context_->gl_vtable;
+
+  /* FIXME: should really lock the memory to prevent write access */
+  if (!gst_video_frame_map (&this->v_frame, &this->v_info, this->buffer_,
+        (GstMapFlags) (GST_MAP_READ | GST_MAP_GL))) {
+    g_assert_not_reached ();
+    goto out;
+  }
+
+  mem = gst_buffer_peek_memory (this->buffer_, 0);
+  g_assert (gst_is_gl_memory (mem));
+
+  context = ((GstGLBaseMemory *)mem)->context;
+
+  sync_meta = gst_buffer_get_gl_sync_meta (this->sync_buffer_);
+  if (!sync_meta)
+    sync_meta = gst_buffer_add_gl_sync_meta (context, this->sync_buffer_);
+
+  gst_gl_sync_meta_set_sync_point (sync_meta, context);
+
+  gst_gl_sync_meta_wait (sync_meta, this->qt_context_);
+
+  tex_id = *(guint *) this->v_frame.data[0];
+  GST_LOG ("%p binding Qt texture %u", this, tex_id);
+
+  gl->BindTexture (GL_TEXTURE_2D, tex_id);
+
+  gst_video_frame_unmap (&this->v_frame);
+
+  /* Texture was successfully bound, so we do not need
+   * to use the dummy texture */
+  use_dummy_tex = FALSE;
+
+out:
+  if (G_UNLIKELY (use_dummy_tex)) {
+    QOpenGLContext *qglcontext = QOpenGLContext::currentContext ();
+    QOpenGLFunctions *funcs = qglcontext->functions ();
+
+    /* Create dummy texture if not already present.
+     * Use the Qt OpenGL functions instead of the GstGL ones,
+     * since we are using the Qt OpenGL context here, and we must
+     * be able to delete the texture in the destructor. */
+    if (this->dummy_tex_id_ == 0) {
+      /* Make this a black 64x64 pixel RGBA texture.
+       * This size and format is supported pretty much everywhere, so these
+       * are a safe pick. (64 pixel sidelength must be supported according
+       * to the GLES2 spec, table 6.18.)
+       * Set min/mag filters to GL_LINEAR to make sure no mipmapping is used. */
+      const int tex_sidelength = 64;
+      std::vector < guint8 > dummy_data (tex_sidelength * tex_sidelength * 4, 0);
+
+      funcs->glGenTextures (1, &this->dummy_tex_id_);
+      funcs->glBindTexture (GL_TEXTURE_2D, this->dummy_tex_id_);
+      funcs->glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+      funcs->glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+      funcs->glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, tex_sidelength,
+          tex_sidelength, 0, GL_RGBA, GL_UNSIGNED_BYTE, &dummy_data[0]);
+    }
+
+    g_assert (this->dummy_tex_id_ != 0);
+
+    funcs->glBindTexture (GL_TEXTURE_2D, this->dummy_tex_id_);
+  }
+
+  gst_gl_context_activate (this->qt_context_, FALSE);
+}
+
+/* can be called from any thread */
+int
+GstQSGTexture::textureId () const
+{
+  int tex_id = 0;
+
+  if (this->buffer_) {
+    GstMemory *mem = gst_buffer_peek_memory (this->buffer_, 0);
+
+    tex_id = ((GstGLMemory *) mem)->tex_id;
+  }
+
+  GST_LOG ("%p get texture id %u", this, tex_id);
+
+  return tex_id;
+}
+
+/* can be called from any thread */
+QSize
+GstQSGTexture::textureSize () const
+{
+  if (GST_VIDEO_INFO_FORMAT (&this->v_info) == GST_VIDEO_FORMAT_UNKNOWN)
+    return QSize (0, 0);
+
+  GST_TRACE ("%p get texture size %ux%u", this, this->v_info.width,
+      this->v_info.height);
+
+  return QSize (this->v_info.width, this->v_info.height);
+}
+
+/* can be called from any thread */
+bool
+GstQSGTexture::hasAlphaChannel () const
+{
+  /* FIXME: support RGB textures */
+  return true;
+}
+
+/* can be called from any thread */
+bool
+GstQSGTexture::hasMipmaps () const
+{
+  return false;
+}
diff --git a/ext/qt/gstqsgtexture.h b/ext/qt/gstqsgtexture.h
new file mode 100644
index 000000000..fdabe93a9
--- /dev/null
+++ b/ext/qt/gstqsgtexture.h
@@ -0,0 +1,59 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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_QSG_TEXTURE_H__
+#define __GST_QSG_TEXTURE_H__
+
+#include <gst/gst.h>
+#include <gst/video/video.h>
+#include <gst/gl/gl.h>
+
+#include "gstqtgl.h"
+#include <QtQuick/QSGTexture>
+#include <QtGui/QOpenGLFunctions>
+
+class GstQSGTexture : public QSGTexture, protected QOpenGLFunctions
+{
+    Q_OBJECT
+public:
+    GstQSGTexture ();
+    ~GstQSGTexture ();
+
+    void setCaps (GstCaps * caps);
+    gboolean setBuffer (GstBuffer * buffer);
+
+    /* QSGTexture */
+    void bind ();
+    int textureId () const;
+    QSize textureSize () const;
+    bool hasAlphaChannel () const;
+    bool hasMipmaps () const;
+
+private:
+    GstBuffer * buffer_;
+    GstBuffer * sync_buffer_;
+    GstGLContext * qt_context_;
+    GstMemory * mem_;
+    GLuint dummy_tex_id_;
+    GstVideoInfo v_info;
+    GstVideoFrame v_frame;
+};
+
+#endif /* __GST_QSG_TEXTURE_H__ */
diff --git a/ext/qt/gstqtgl.h b/ext/qt/gstqtgl.h
new file mode 100644
index 000000000..85aad6205
--- /dev/null
+++ b/ext/qt/gstqtgl.h
@@ -0,0 +1,37 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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.
+ */
+
+/* qt uses the same trick as us to typedef GLsync on gles2 but to a different
+ * type which confuses the preprocessor.  As it's never actually used by qt
+ * public headers, define it to something else to avoid redefinition
+ * warnings/errors */
+
+#include <gst/gl/gstglconfig.h>
+#include <QtCore/qglobal.h>
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 9, 0))
+#include <QtGui/qtgui-config.h>
+#endif
+
+#if defined(QT_OPENGL_ES_2) && GST_GL_HAVE_WINDOW_ANDROID
+#define GLsync gst_qt_GLsync
+#include <QOpenGLContext>
+#include <QOpenGLFunctions>
+#undef GLsync
+#endif /* defined(QT_OPENGL_ES_2) */
diff --git a/ext/qt/gstqtglutility.cc b/ext/qt/gstqtglutility.cc
new file mode 100644
index 000000000..8d5b24283
--- /dev/null
+++ b/ext/qt/gstqtglutility.cc
@@ -0,0 +1,247 @@
+/*
+ * GStreamer
+ * Copyright (C) 2016 Freescale Semiconductor, Inc. All rights reserved.
+ *
+ * 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 "gstqtglutility.h"
+#include <QtGui/QGuiApplication>
+
+#if GST_GL_HAVE_WINDOW_X11 && defined (HAVE_QT_X11)
+#include <QX11Info>
+#include <gst/gl/x11/gstgldisplay_x11.h>
+#endif
+
+#if GST_GL_HAVE_WINDOW_WAYLAND && GST_GL_HAVE_PLATFORM_EGL && defined (HAVE_QT_WAYLAND)
+#include <qpa/qplatformnativeinterface.h>
+#include <gst/gl/wayland/gstgldisplay_wayland.h>
+#endif
+
+#if GST_GL_HAVE_PLATFORM_EGL && defined (HAVE_QT_EGLFS)
+#if GST_GL_HAVE_WINDOW_VIV_FB
+#include <qpa/qplatformnativeinterface.h>
+#include <gst/gl/viv-fb/gstgldisplay_viv_fb.h>
+#else
+#include <gst/gl/egl/gstegl.h>
+#include <gst/gl/egl/gstgldisplay_egl.h>
+#endif
+#endif
+
+#define GST_CAT_DEFAULT qt_gl_utils_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+GstGLDisplay *
+gst_qt_get_gl_display ()
+{
+  GstGLDisplay *display = NULL;
+  QGuiApplication *app = static_cast<QGuiApplication *> (QCoreApplication::instance ());
+  static volatile gsize _debug;
+
+  g_assert (app != NULL);
+
+  if (g_once_init_enter (&_debug)) {
+    GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglutility", 0,
+        "Qt gl utility functions");
+    g_once_init_leave (&_debug, 1);
+  }
+  GST_INFO ("QGuiApplication::instance()->platformName() %s", app->platformName().toUtf8().data());
+
+#if GST_GL_HAVE_WINDOW_X11 && defined (HAVE_QT_X11)
+  if (QString::fromUtf8 ("xcb") == app->platformName())
+    display = (GstGLDisplay *)
+        gst_gl_display_x11_new_with_display (QX11Info::display ());
+#endif
+#if GST_GL_HAVE_WINDOW_WAYLAND && GST_GL_HAVE_PLATFORM_EGL && defined (HAVE_QT_WAYLAND)
+  if (QString::fromUtf8 ("wayland") == app->platformName()
+        || QString::fromUtf8 ("wayland-egl") == app->platformName()){
+    struct wl_display * wayland_display;
+    QPlatformNativeInterface *native =
+        QGuiApplication::platformNativeInterface();
+    wayland_display = (struct wl_display *)
+        native->nativeResourceForWindow("display", NULL);
+    display = (GstGLDisplay *)
+        gst_gl_display_wayland_new_with_display (wayland_display);
+  }
+#endif
+#if GST_GL_HAVE_PLATFORM_EGL && GST_GL_HAVE_WINDOW_ANDROID
+  if (QString::fromUtf8 ("android") == app->platformName())
+    display = (GstGLDisplay *) gst_gl_display_egl_new_with_egl_display (eglGetDisplay(EGL_DEFAULT_DISPLAY));
+#elif GST_GL_HAVE_PLATFORM_EGL && defined (HAVE_QT_EGLFS)
+  if (QString::fromUtf8("eglfs") == app->platformName()) {
+#if GST_GL_HAVE_WINDOW_VIV_FB
+    /* FIXME: Could get the display directly from Qt like this
+      QPlatformNativeInterface *native =
+          QGuiApplication::platformNativeInterface();
+      EGLDisplay egl_display = (EGLDisplay)
+          native->nativeResourceForWindow("egldisplay", NULL);
+
+      However we seem to have no way for getting the EGLNativeDisplayType, aka
+      native_display, via public API. As such we have to assume that display 0
+      is always used. Only way around that is parsing the index the same way as
+      Qt does in QEGLDeviceIntegration::fbDeviceName(), so let's do that.
+    */
+    const gchar *fb_dev;
+    gint disp_idx = 0;
+
+    fb_dev = g_getenv ("QT_QPA_EGLFS_FB");
+    if (fb_dev) {
+      if (sscanf (fb_dev, "/dev/fb%d", &disp_idx) != 1)
+        disp_idx = 0;
+    }
+
+    display = (GstGLDisplay *) gst_gl_display_viv_fb_new (disp_idx);
+#else
+    display = (GstGLDisplay *) gst_gl_display_egl_new_with_egl_display (eglGetDisplay(EGL_DEFAULT_DISPLAY));
+#endif
+  }
+#endif
+
+#if GST_GL_HAVE_WINDOW_COCOA && GST_GL_HAVE_PLATFORM_CGL && defined (HAVE_QT_MAC)
+  if (QString::fromUtf8 ("cocoa") == app->platformName())
+    display = (GstGLDisplay *) gst_gl_display_new ();
+#endif
+#if GST_GL_HAVE_WINDOW_EAGL && GST_GL_HAVE_PLATFORM_EAGL && defined (HAVE_QT_IOS)
+  if (QString::fromUtf8 ("ios") == app->platformName())
+    display = gst_gl_display_new ();
+#endif
+#if GST_GL_HAVE_WINDOW_WIN32 && GST_GL_HAVE_PLATFORM_WGL && defined (HAVE_QT_WIN32)
+  if (QString::fromUtf8 ("windows") == app->platformName())
+    display = gst_gl_display_new ();
+#endif
+
+  if (!display)
+    display = gst_gl_display_new ();
+
+  return display;
+}
+
+gboolean
+gst_qt_get_gl_wrapcontext (GstGLDisplay * display,
+    GstGLContext **wrap_glcontext, GstGLContext **context)
+{
+  GstGLPlatform platform = (GstGLPlatform) 0;
+  GstGLAPI gl_api;
+  guintptr gl_handle;
+  GError *error = NULL;
+
+  g_return_val_if_fail (display != NULL && wrap_glcontext != NULL, FALSE);
+
+#if GST_GL_HAVE_WINDOW_X11 && defined (HAVE_QT_X11)
+  if (GST_IS_GL_DISPLAY_X11 (display)) {
+#if GST_GL_HAVE_PLATFORM_GLX
+    platform = GST_GL_PLATFORM_GLX;
+#elif GST_GL_HAVE_PLATFORM_EGL
+    platform = GST_GL_PLATFORM_EGL;
+#endif
+  }
+#endif
+#if GST_GL_HAVE_WINDOW_WAYLAND && defined (HAVE_QT_WAYLAND)
+  if (GST_IS_GL_DISPLAY_WAYLAND (display)) {
+    platform = GST_GL_PLATFORM_EGL;
+  }
+#endif
+#if GST_GL_HAVE_PLATFORM_EGL && defined (HAVE_QT_EGLFS)
+#if GST_GL_HAVE_WINDOW_VIV_FB
+  if (GST_IS_GL_DISPLAY_VIV_FB (display)) {
+#else
+  if (GST_IS_GL_DISPLAY_EGL (display)) {
+#endif
+    platform = GST_GL_PLATFORM_EGL;
+  }
+#endif
+  if (platform == 0) {
+#if GST_GL_HAVE_WINDOW_COCOA && GST_GL_HAVE_PLATFORM_CGL && defined (HAVE_QT_MAC)
+    platform = GST_GL_PLATFORM_CGL;
+#elif GST_GL_HAVE_WINDOW_EAGL && GST_GL_HAVE_PLATFORM_EAGL && defined (HAVE_QT_IOS)
+    platform = GST_GL_PLATFORM_EAGL;
+#elif GST_GL_HAVE_WINDOW_WIN32 && GST_GL_HAVE_PLATFORM_WGL && defined (HAVE_QT_WIN32)
+    platform = GST_GL_PLATFORM_WGL;
+#else
+    GST_ERROR ("Unknown platform");
+    return FALSE;
+#endif
+  }
+
+  gl_api = gst_gl_context_get_current_gl_api (platform, NULL, NULL);
+  gl_handle = gst_gl_context_get_current_gl_context (platform);
+  if (gl_handle)
+    *wrap_glcontext =
+        gst_gl_context_new_wrapped (display, gl_handle,
+        platform, gl_api);
+
+  if (!*wrap_glcontext) {
+    GST_ERROR ("cannot wrap qt OpenGL context");
+    return FALSE;
+  }
+ 
+  (void) platform;
+  (void) gl_api;
+  (void) gl_handle;
+
+  gst_gl_context_activate (*wrap_glcontext, TRUE);
+  if (!gst_gl_context_fill_info (*wrap_glcontext, &error)) {
+    GST_ERROR ("failed to retrieve qt context info: %s", error->message);
+    g_object_unref (*wrap_glcontext);
+    *wrap_glcontext = NULL;
+    return FALSE;
+  } else {
+    gst_gl_display_filter_gl_api (display, gst_gl_context_get_gl_api (*wrap_glcontext));
+#if GST_GL_HAVE_WINDOW_WIN32 && GST_GL_HAVE_PLATFORM_WGL && defined (HAVE_QT_WIN32)  
+    g_return_val_if_fail (context != NULL, FALSE);
+
+    G_STMT_START {
+      GstGLWindow *window;
+      HDC device;
+
+      /* If there's no wglCreateContextAttribsARB() support, then we would fallback to
+       * wglShareLists() which will fail with ERROR_BUSY (0xaa) if either of the GL
+       * contexts are current in any other thread.
+       *
+       * The workaround here is to temporarily disable Qt's GL context while we
+       * set up our own.
+       *
+       * Sometimes wglCreateContextAttribsARB()
+       * exists, but isn't functional (some Intel drivers), so it's easiest to do this
+       * unconditionally.
+       */
+      *context = gst_gl_context_new (display);
+      window = gst_gl_context_get_window (*context);
+      device = (HDC) gst_gl_window_get_display (window);
+
+      wglMakeCurrent (device, 0);
+      gst_object_unref (window);
+      if (!gst_gl_context_create (*context, *wrap_glcontext, &error)) {
+        GST_ERROR ("%p failed to create shared GL context: %s", this, error->message);
+        g_object_unref (*context);
+        *context = NULL;
+        g_object_unref (*wrap_glcontext);
+        *wrap_glcontext = NULL;
+        wglMakeCurrent (device, (HGLRC) gl_handle);
+        return FALSE;
+      }
+      wglMakeCurrent (device, (HGLRC) gl_handle);
+    }
+#endif
+    gst_gl_context_activate (*wrap_glcontext, FALSE);
+  } G_STMT_END;
+
+  return TRUE;
+}
diff --git a/ext/qt/gstqtglutility.h b/ext/qt/gstqtglutility.h
new file mode 100644
index 000000000..ca9023773
--- /dev/null
+++ b/ext/qt/gstqtglutility.h
@@ -0,0 +1,34 @@
+/*
+ * GStreamer
+ * Copyright (C) 2016 Freescale Semiconductor, Inc. All rights reserved.
+ *
+ * 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 __QT_GL_UTILS_H__
+#define __QT_GL_UTILS_H__
+
+#include <gst/gst.h>
+#include <gst/gl/gl.h>
+
+G_BEGIN_DECLS
+
+GstGLDisplay * gst_qt_get_gl_display ();
+gboolean       gst_qt_get_gl_wrapcontext (GstGLDisplay * display,
+    GstGLContext **wrap_glcontext, GstGLContext **context);
+
+G_END_DECLS
+#endif /* __QT_GL_UTILS_H__ */
diff --git a/ext/qt/gstqtsink.cc b/ext/qt/gstqtsink.cc
new file mode 100644
index 000000000..2a4ad7ccc
--- /dev/null
+++ b/ext/qt/gstqtsink.cc
@@ -0,0 +1,493 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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:gstqtsink
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstqtsink.h"
+#include <QtGui/QGuiApplication>
+
+#include <gst/gl/gstglfuncs.h>
+
+#define GST_CAT_DEFAULT gst_debug_qt_gl_sink
+GST_DEBUG_CATEGORY (GST_CAT_DEFAULT);
+
+static void gst_qt_sink_finalize (GObject * object);
+static void gst_qt_sink_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * param_spec);
+static void gst_qt_sink_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * param_spec);
+
+static gboolean gst_qt_sink_stop (GstBaseSink * bsink);
+
+static gboolean gst_qt_sink_query (GstBaseSink * bsink, GstQuery * query);
+
+static GstStateChangeReturn
+gst_qt_sink_change_state (GstElement * element, GstStateChange transition);
+
+static void gst_qt_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
+    GstClockTime * start, GstClockTime * end);
+static gboolean gst_qt_sink_set_caps (GstBaseSink * bsink, GstCaps * caps);
+static GstFlowReturn gst_qt_sink_show_frame (GstVideoSink * bsink,
+    GstBuffer * buf);
+static gboolean gst_qt_sink_propose_allocation (GstBaseSink * bsink,
+    GstQuery * query);
+
+static GstStaticPadTemplate gst_qt_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-raw(" GST_CAPS_FEATURE_MEMORY_GL_MEMORY "), "
+    "format = (string) RGBA, "
+    "width = " GST_VIDEO_SIZE_RANGE ", "
+    "height = " GST_VIDEO_SIZE_RANGE ", "
+    "framerate = " GST_VIDEO_FPS_RANGE ", "
+    "texture-target = (string) 2D"));
+
+#define DEFAULT_FORCE_ASPECT_RATIO  TRUE
+#define DEFAULT_PAR_N               0
+#define DEFAULT_PAR_D               1
+
+enum
+{
+  ARG_0,
+  PROP_WIDGET,
+  PROP_FORCE_ASPECT_RATIO,
+  PROP_PIXEL_ASPECT_RATIO,
+};
+
+enum
+{
+  SIGNAL_0,
+  LAST_SIGNAL
+};
+
+#define gst_qt_sink_parent_class parent_class
+G_DEFINE_TYPE_WITH_CODE (GstQtSink, gst_qt_sink,
+    GST_TYPE_VIDEO_SINK, GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT,
+        "qtsink", 0, "Qt Video Sink"));
+
+static void
+gst_qt_sink_class_init (GstQtSinkClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+  GstBaseSinkClass *gstbasesink_class;
+  GstVideoSinkClass *gstvideosink_class;
+
+  gobject_class = (GObjectClass *) klass;
+  gstelement_class = (GstElementClass *) klass;
+  gstbasesink_class = (GstBaseSinkClass *) klass;
+  gstvideosink_class = (GstVideoSinkClass *) klass;
+
+  gobject_class->set_property = gst_qt_sink_set_property;
+  gobject_class->get_property = gst_qt_sink_get_property;
+
+  gst_element_class_set_metadata (gstelement_class, "Qt Video Sink",
+      "Sink/Video", "A video sink that renders to a QQuickItem",
+      "Matthew Waters <matthew@centricular.com>");
+
+  g_object_class_install_property (gobject_class, PROP_WIDGET,
+      g_param_spec_pointer ("widget", "QQuickItem",
+          "The QQuickItem to place in the object hierarchy",
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO,
+      g_param_spec_boolean ("force-aspect-ratio",
+          "Force aspect ratio",
+          "When enabled, scaling will respect original aspect ratio",
+          DEFAULT_FORCE_ASPECT_RATIO,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_PIXEL_ASPECT_RATIO,
+      gst_param_spec_fraction ("pixel-aspect-ratio", "Pixel Aspect Ratio",
+          "The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D,
+          G_MAXINT, 1, 1, 1,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  gst_element_class_add_static_pad_template (gstelement_class, &gst_qt_sink_template);
+
+  gobject_class->finalize = gst_qt_sink_finalize;
+
+  gstelement_class->change_state = gst_qt_sink_change_state;
+  gstbasesink_class->query = gst_qt_sink_query;
+  gstbasesink_class->set_caps = gst_qt_sink_set_caps;
+  gstbasesink_class->get_times = gst_qt_sink_get_times;
+  gstbasesink_class->propose_allocation = gst_qt_sink_propose_allocation;
+  gstbasesink_class->stop = gst_qt_sink_stop;
+
+  gstvideosink_class->show_frame = gst_qt_sink_show_frame;
+}
+
+static void
+gst_qt_sink_init (GstQtSink * qt_sink)
+{
+  qt_sink->widget = QSharedPointer<QtGLVideoItemInterface>();
+}
+
+static void
+gst_qt_sink_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (object);
+
+  switch (prop_id) {
+    case PROP_WIDGET: {
+      QtGLVideoItem *qt_item = static_cast<QtGLVideoItem *> (g_value_get_pointer (value));
+      if (qt_item)
+        qt_sink->widget = qt_item->getInterface();
+      else
+        qt_sink->widget.clear();
+      break;
+    }
+    case PROP_FORCE_ASPECT_RATIO:
+      g_return_if_fail (qt_sink->widget);
+      qt_sink->widget->setForceAspectRatio (g_value_get_boolean (value));
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      g_return_if_fail (qt_sink->widget);
+      qt_sink->widget->setDAR (gst_value_get_fraction_numerator (value),
+          gst_value_get_fraction_denominator (value));
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+_reset (GstQtSink * qt_sink)
+{
+  if (qt_sink->display) {
+    gst_object_unref (qt_sink->display);
+    qt_sink->display = NULL;
+  }
+
+  if (qt_sink->context) {
+    gst_object_unref (qt_sink->context);
+    qt_sink->context = NULL;
+  }
+
+  if (qt_sink->qt_context) {
+    gst_object_unref (qt_sink->qt_context);
+    qt_sink->qt_context = NULL;
+  }
+}
+
+static void
+gst_qt_sink_finalize (GObject * object)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (object);
+
+  _reset (qt_sink);
+
+  qt_sink->widget.clear();
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gst_qt_sink_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (object);
+
+  switch (prop_id) {
+    case PROP_WIDGET:
+      /* This is not really safe - the app needs to be
+       * sure the widget is going to be kept alive or
+       * this can crash */
+      if (qt_sink->widget)
+        g_value_set_pointer (value, qt_sink->widget->videoItem());
+      else
+        g_value_set_pointer (value, NULL);
+      break;
+    case PROP_FORCE_ASPECT_RATIO:
+      if (qt_sink->widget)
+        g_value_set_boolean (value, qt_sink->widget->getForceAspectRatio ());
+      else
+        g_value_set_boolean (value, DEFAULT_FORCE_ASPECT_RATIO);
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      if (qt_sink->widget) {
+        gint num, den;
+        qt_sink->widget->getDAR (&num, &den);
+        gst_value_set_fraction (value, num, den);
+      } else {
+        gst_value_set_fraction (value, DEFAULT_PAR_N, DEFAULT_PAR_D);
+      }
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static gboolean
+gst_qt_sink_query (GstBaseSink * bsink, GstQuery * query)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (bsink);
+  gboolean res = FALSE;
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CONTEXT:
+    {
+      if (gst_gl_handle_context_query ((GstElement *) qt_sink, query,
+          qt_sink->display, qt_sink->context, qt_sink->qt_context))
+        return TRUE;
+
+      /* fallthrough */
+    }
+    default:
+      res = GST_BASE_SINK_CLASS (parent_class)->query (bsink, query);
+      break;
+  }
+
+  return res;
+}
+
+static gboolean
+gst_qt_sink_stop (GstBaseSink * bsink)
+{
+  return TRUE;
+}
+
+static GstStateChangeReturn
+gst_qt_sink_change_state (GstElement * element, GstStateChange transition)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (element);
+  GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
+  QGuiApplication *app;
+
+  GST_DEBUG ("changing state: %s => %s",
+      gst_element_state_get_name (GST_STATE_TRANSITION_CURRENT (transition)),
+      gst_element_state_get_name (GST_STATE_TRANSITION_NEXT (transition)));
+
+  switch (transition) {
+    case GST_STATE_CHANGE_NULL_TO_READY:
+      app = static_cast<QGuiApplication *> (QCoreApplication::instance ());
+      if (!app) {
+        GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND,
+            ("%s", "Failed to connect to Qt"),
+            ("%s", "Could not retrieve QGuiApplication instance"));
+        return GST_STATE_CHANGE_FAILURE;
+      }
+
+      if (!qt_sink->widget) {
+        GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND,
+            ("%s", "Required property \'widget\' not set"),
+            (NULL));
+        return GST_STATE_CHANGE_FAILURE;
+      }
+
+      if (!qt_sink->widget->initWinSys()) {
+        GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND,
+            ("%s", "Could not initialize window system"),
+            (NULL));
+        return GST_STATE_CHANGE_FAILURE;
+      }
+
+      qt_sink->display = qt_sink->widget->getDisplay();
+      qt_sink->context = qt_sink->widget->getContext();
+      qt_sink->qt_context = qt_sink->widget->getQtContext();
+
+      if (!qt_sink->display || !qt_sink->context || !qt_sink->qt_context) {
+        GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND,
+            ("%s", "Could not retrieve window system OpenGL configuration"),
+            (NULL));
+        return GST_STATE_CHANGE_FAILURE;
+      }
+      break;
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
+      break;
+    default:
+      break;
+  }
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (ret == GST_STATE_CHANGE_FAILURE)
+    return ret;
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      if (qt_sink->widget)
+        qt_sink->widget->setBuffer(NULL);
+      break;
+    case GST_STATE_CHANGE_READY_TO_NULL:
+      break;
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+static void
+gst_qt_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
+    GstClockTime * start, GstClockTime * end)
+{
+  GstQtSink *qt_sink;
+
+  qt_sink = GST_QT_SINK (bsink);
+
+  if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+    *start = GST_BUFFER_TIMESTAMP (buf);
+    if (GST_BUFFER_DURATION_IS_VALID (buf))
+      *end = *start + GST_BUFFER_DURATION (buf);
+    else {
+      if (GST_VIDEO_INFO_FPS_N (&qt_sink->v_info) > 0) {
+        *end = *start +
+            gst_util_uint64_scale_int (GST_SECOND,
+            GST_VIDEO_INFO_FPS_D (&qt_sink->v_info),
+            GST_VIDEO_INFO_FPS_N (&qt_sink->v_info));
+      }
+    }
+  }
+}
+
+gboolean
+gst_qt_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (bsink);
+
+  GST_DEBUG ("set caps with %" GST_PTR_FORMAT, caps);
+
+  if (!gst_video_info_from_caps (&qt_sink->v_info, caps))
+    return FALSE;
+
+  if (!qt_sink->widget)
+    return FALSE;
+
+  return qt_sink->widget->setCaps(caps);
+}
+
+static GstFlowReturn
+gst_qt_sink_show_frame (GstVideoSink * vsink, GstBuffer * buf)
+{
+  GstQtSink *qt_sink;
+
+  GST_TRACE ("rendering buffer:%p", buf);
+
+  qt_sink = GST_QT_SINK (vsink);
+
+  if (qt_sink->widget)
+    qt_sink->widget->setBuffer(buf);
+
+  return GST_FLOW_OK;
+}
+
+static gboolean
+gst_qt_sink_propose_allocation (GstBaseSink * bsink, GstQuery * query)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (bsink);
+  GstBufferPool *pool;
+  GstStructure *config;
+  GstCaps *caps;
+  guint size;
+  gboolean need_pool;
+
+  if (!qt_sink->display || !qt_sink->context)
+    return FALSE;
+
+  gst_query_parse_allocation (query, &caps, &need_pool);
+
+  if (caps == NULL)
+    goto no_caps;
+
+  /* FIXME re-using buffer pool breaks renegotiation */
+  if ((pool = qt_sink->pool))
+    gst_object_ref (pool);
+
+  if (pool != NULL) {
+    GstCaps *pcaps;
+
+    /* we had a pool, check caps */
+    GST_DEBUG_OBJECT (qt_sink, "check existing pool caps");
+    config = gst_buffer_pool_get_config (pool);
+    gst_buffer_pool_config_get_params (config, &pcaps, &size, NULL, NULL);
+
+    if (!gst_caps_is_equal (caps, pcaps)) {
+      GST_DEBUG_OBJECT (qt_sink, "pool has different caps");
+      /* different caps, we can't use this pool */
+      gst_object_unref (pool);
+      pool = NULL;
+    }
+    gst_structure_free (config);
+  } else {
+    GstVideoInfo info;
+
+    if (!gst_video_info_from_caps (&info, caps))
+      goto invalid_caps;
+
+    /* the normal size of a frame */
+    size = info.size;
+  }
+
+  if (pool == NULL && need_pool) {
+  
+    GST_DEBUG_OBJECT (qt_sink, "create new pool");
+    pool = gst_gl_buffer_pool_new (qt_sink->context);
+
+    config = gst_buffer_pool_get_config (pool);
+    gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
+    if (!gst_buffer_pool_set_config (pool, config))
+      goto config_failed;
+  }
+
+  /* we need at least 2 buffer because we hold on to the last one */
+  gst_query_add_allocation_pool (query, pool, size, 2, 0);
+  if (pool)
+    gst_object_unref (pool);
+
+  /* we also support various metadata */
+  gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, 0);
+
+  if (qt_sink->context->gl_vtable->FenceSync)
+    gst_query_add_allocation_meta (query, GST_GL_SYNC_META_API_TYPE, 0);
+
+  return TRUE;
+
+  /* ERRORS */
+no_caps:
+  {
+    GST_DEBUG_OBJECT (bsink, "no caps specified");
+    return FALSE;
+  }
+invalid_caps:
+  {
+    GST_DEBUG_OBJECT (bsink, "invalid caps specified");
+    return FALSE;
+  }
+config_failed:
+  {
+    GST_DEBUG_OBJECT (bsink, "failed setting config");
+    return FALSE;
+  }
+}
diff --git a/ext/qt/gstqtsink.h b/ext/qt/gstqtsink.h
new file mode 100644
index 000000000..3ee20b7d5
--- /dev/null
+++ b/ext/qt/gstqtsink.h
@@ -0,0 +1,79 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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_QT_SINK_H__
+#define __GST_QT_SINK_H__
+
+#include <gst/gst.h>
+#include <gst/video/gstvideosink.h>
+#include <gst/video/video.h>
+#include <gst/gl/gl.h>
+#include "qtitem.h"
+
+typedef struct _GstQtSink GstQtSink;
+typedef struct _GstQtSinkClass GstQtSinkClass;
+typedef struct _GstQtSinkPrivate GstQtSinkPrivate;
+
+G_BEGIN_DECLS
+
+GType gst_qt_sink_get_type (void);
+#define GST_TYPE_QT_SINK            (gst_qt_sink_get_type())
+#define GST_QT_SINK(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_QT_SINK,GstQtSink))
+#define GST_QT_SINK_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_QT_SINK,GstQtSinkClass))
+#define GST_IS_QT_SINK(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_QT_SINK))
+#define GST_IS_QT_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_QT_SINK))
+#define GST_QT_SINK_CAST(obj)       ((GstQtSink*)(obj))
+
+/**
+ * GstQtSink:
+ *
+ * Opaque #GstQtSink object
+ */
+struct _GstQtSink
+{
+  /* <private> */
+  GstVideoSink          parent;
+
+  GstVideoInfo          v_info;
+  GstBufferPool        *pool;
+
+  GstGLDisplay         *display;
+  GstGLContext         *context;
+  GstGLContext         *qt_context;
+
+  QSharedPointer<QtGLVideoItemInterface> widget;
+};
+
+/**
+ * GstQtSinkClass:
+ *
+ * The #GstQtSinkClass struct only contains private data
+ */
+struct _GstQtSinkClass
+{
+  /* <private> */
+  GstVideoSinkClass object_class;
+};
+
+GstQtSink *    gst_qt_sink_new (void);
+
+G_END_DECLS
+
+#endif /* __GST_QT_SINK_H__ */
diff --git a/ext/qt/gstqtsrc.cc b/ext/qt/gstqtsrc.cc
new file mode 100644
index 000000000..1cf9592b5
--- /dev/null
+++ b/ext/qt/gstqtsrc.cc
@@ -0,0 +1,548 @@
+/*
+ * GStreamer
+ * Copyright (C) 2016 Freescale Semiconductor, Inc. All rights reserved.
+ *
+ * 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:qmlglsrc
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstqtsrc.h"
+#include <QtGui/QGuiApplication>
+
+#define GST_CAT_DEFAULT gst_debug_qt_gl_src
+GST_DEBUG_CATEGORY (GST_CAT_DEFAULT);
+
+#define DEFAULT_IS_LIVE TRUE
+
+static void gst_qt_src_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_qt_src_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+
+static void gst_qt_src_finalize (GObject * object);
+
+static gboolean gst_qt_src_setcaps (GstBaseSrc * bsrc, GstCaps * caps);
+static GstCaps *gst_qt_src_get_caps (GstBaseSrc * bsrc, GstCaps * filter);
+static gboolean gst_qt_src_query (GstBaseSrc * bsrc, GstQuery * query);
+
+static gboolean gst_qt_src_decide_allocation (GstBaseSrc * bsrc,
+    GstQuery * query);
+static GstFlowReturn gst_qt_src_fill (GstPushSrc * psrc, GstBuffer * buffer);
+static GstStateChangeReturn gst_qt_src_change_state (GstElement * element,
+    GstStateChange transition);
+static gboolean gst_qt_src_start (GstBaseSrc * basesrc);
+static gboolean gst_qt_src_stop (GstBaseSrc * basesrc);
+
+static GstStaticPadTemplate gst_qt_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-raw(" GST_CAPS_FEATURE_MEMORY_GL_MEMORY "), "
+        "format = (string) RGBA, "
+        "width = " GST_VIDEO_SIZE_RANGE ", "
+        "height = " GST_VIDEO_SIZE_RANGE ", "
+        "framerate = " GST_VIDEO_FPS_RANGE ", "
+        "texture-target = (string) 2D"));
+
+enum
+{
+  ARG_0,
+  PROP_WINDOW,
+  PROP_DEFAULT_FBO
+};
+
+#define gst_qt_src_parent_class parent_class
+G_DEFINE_TYPE_WITH_CODE (GstQtSrc, gst_qt_src,
+    GST_TYPE_PUSH_SRC, GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT,
+        "qtsrc", 0, "Qt Video Src"));
+
+static const gfloat vertical_flip_matrix[] = {
+  1.0f, 0.0f, 0.0f, 0.0f,
+  0.0f, -1.0f, 0.0f, 1.0f,
+  0.0f, 0.0f, 1.0f, 0.0f,
+  0.0f, 0.0f, 0.0f, 1.0f,
+};
+
+static void
+gst_qt_src_class_init (GstQtSrcClass * klass)
+{
+  GObjectClass *gobject_class = (GObjectClass *) klass;
+  GstElementClass *gstelement_class = (GstElementClass *) klass;
+  GstBaseSrcClass *gstbasesrc_class = (GstBaseSrcClass *) klass;
+  GstPushSrcClass *gstpushsrc_class = (GstPushSrcClass *) klass;
+
+  gobject_class->set_property = gst_qt_src_set_property;
+  gobject_class->get_property = gst_qt_src_get_property;
+  gobject_class->finalize = gst_qt_src_finalize;
+
+  gst_element_class_set_metadata (gstelement_class, "Qt Video Source",
+      "Source/Video", "A video src that captures a window from a QML view",
+      "Multimedia Team <shmmmw@freescale.com>");
+
+  g_object_class_install_property (gobject_class, PROP_WINDOW,
+      g_param_spec_pointer ("window", "QQuickWindow",
+          "The QQuickWindow to place in the object hierarchy",
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_DEFAULT_FBO,
+      g_param_spec_boolean ("use-default-fbo",
+          "Whether to use default FBO",
+          "When set it will not create a new FBO for the QML render thread",
+          FALSE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_qt_src_template));
+
+  gstelement_class->change_state = gst_qt_src_change_state;
+  gstbasesrc_class->set_caps = gst_qt_src_setcaps;
+  gstbasesrc_class->get_caps = gst_qt_src_get_caps;
+  gstbasesrc_class->query = gst_qt_src_query;
+  gstbasesrc_class->start = gst_qt_src_start;
+  gstbasesrc_class->stop = gst_qt_src_stop;
+  gstbasesrc_class->decide_allocation = gst_qt_src_decide_allocation;
+
+  gstpushsrc_class->fill = gst_qt_src_fill;
+}
+
+static void
+gst_qt_src_init (GstQtSrc * src)
+{
+  gst_base_src_set_format (GST_BASE_SRC (src), GST_FORMAT_TIME);
+  gst_base_src_set_live (GST_BASE_SRC (src), DEFAULT_IS_LIVE);
+  src->default_fbo = FALSE;
+  src->pending_image_orientation = TRUE;
+}
+
+static void
+gst_qt_src_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstQtSrc *qt_src = GST_QT_SRC (object);
+
+  switch (prop_id) {
+    case PROP_WINDOW:{
+      qt_src->qwindow =
+          static_cast < QQuickWindow * >(g_value_get_pointer (value));
+
+      if (qt_src->window) {
+        delete qt_src->window;
+        qt_src->window = NULL;
+      }
+
+      if (qt_src->qwindow)
+        qt_src->window = new QtGLWindow (NULL, qt_src->qwindow);
+
+      break;
+    }
+    case PROP_DEFAULT_FBO:
+      qt_src->default_fbo = g_value_get_boolean (value);
+      if (qt_src->window)
+        qt_window_use_default_fbo (qt_src->window, qt_src->default_fbo);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_qt_src_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstQtSrc *qt_src = GST_QT_SRC (object);
+
+  switch (prop_id) {
+    case PROP_WINDOW:
+      g_value_set_pointer (value, qt_src->qwindow);
+      break;
+    case PROP_DEFAULT_FBO:
+      g_value_set_boolean (value, qt_src->default_fbo);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_qt_src_finalize (GObject * object)
+{
+  GstQtSrc *qt_src = GST_QT_SRC (object);
+
+  GST_DEBUG ("qmlglsrc finalize");
+  if (qt_src->context)
+    gst_object_unref (qt_src->context);
+  qt_src->context = NULL;
+
+  if (qt_src->qt_context)
+    gst_object_unref (qt_src->qt_context);
+  qt_src->qt_context = NULL;
+
+  if (qt_src->display)
+    gst_object_unref (qt_src->display);
+  qt_src->display = NULL;
+
+  if (qt_src->window)
+    delete qt_src->window;
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static gboolean
+gst_qt_src_setcaps (GstBaseSrc * bsrc, GstCaps * caps)
+{
+  GstQtSrc *qt_src = GST_QT_SRC (bsrc);
+
+  GST_DEBUG ("set caps with %" GST_PTR_FORMAT, caps);
+
+  if (!gst_video_info_from_caps (&qt_src->v_info, caps))
+    return FALSE;
+
+  if (!qt_window_set_caps (qt_src->window, caps))
+    return FALSE;
+
+  return TRUE;
+}
+
+static GstCaps *
+gst_qt_src_get_caps (GstBaseSrc * bsrc, GstCaps * filter)
+{
+  GstCaps *caps = NULL, *temp = NULL;
+  GstPadTemplate *pad_template;
+  GstBaseSrcClass *bclass = GST_BASE_SRC_GET_CLASS (bsrc);
+  GstQtSrc *qt_src = GST_QT_SRC (bsrc);
+  guint i;
+  gint width, height;
+
+  if (qt_src->window) {
+    qt_src->window->getGeometry (&width, &height);
+  }
+
+  pad_template =
+      gst_element_class_get_pad_template (GST_ELEMENT_CLASS (bclass), "src");
+  if (pad_template != NULL)
+    caps = gst_pad_template_get_caps (pad_template);
+
+  if (qt_src->window) {
+    temp = gst_caps_copy (caps);
+    guint n_caps = gst_caps_get_size (caps);
+
+    for (i = 0; i < n_caps; i++) {
+      GstStructure *s = gst_caps_get_structure (temp, i);
+      gst_structure_set (s, "width", G_TYPE_INT, width, NULL);
+      gst_structure_set (s, "height", G_TYPE_INT, height, NULL);
+      /* because the framerate is unknown */
+      gst_structure_set (s, "framerate", GST_TYPE_FRACTION, 0, 1, NULL);
+      gst_structure_set (s, "pixel-aspect-ratio",
+          GST_TYPE_FRACTION, 1, 1, NULL);
+    }
+
+    gst_caps_unref (caps);
+    caps = temp;
+  }
+
+  if (filter) {
+    GstCaps *intersection;
+
+    intersection =
+        gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (caps);
+    caps = intersection;
+  }
+
+  return caps;
+}
+
+static gboolean
+gst_qt_src_query (GstBaseSrc * bsrc, GstQuery * query)
+{
+  GstQtSrc *qt_src = GST_QT_SRC (bsrc);
+  gboolean res = FALSE;
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CONTEXT:
+    {
+      if (!qt_window_is_scenegraph_initialized (qt_src->window))
+        return FALSE;
+
+      if (!qt_src->display && !qt_src->qt_context) {
+        qt_src->display = qt_window_get_display (qt_src->window);
+        qt_src->qt_context = qt_window_get_qt_context (qt_src->window);
+      }
+
+      if (gst_gl_handle_context_query ((GstElement *) qt_src, query,
+          qt_src->display, qt_src->context, qt_src->qt_context))
+        return TRUE;
+
+      /* fallthrough */
+    }
+    default:
+      res = GST_BASE_SRC_CLASS (parent_class)->query (bsrc, query);
+      break;
+  }
+
+  return res;
+}
+
+static gboolean
+_find_local_gl_context (GstQtSrc * qt_src)
+{
+  if (gst_gl_query_local_gl_context (GST_ELEMENT (qt_src), GST_PAD_SRC,
+      &qt_src->context))
+    return TRUE;
+  return FALSE;
+}
+
+static gboolean
+gst_qt_src_decide_allocation (GstBaseSrc * bsrc, GstQuery * query)
+{
+  GstBufferPool *pool = NULL;
+  GstStructure *config;
+  GstCaps *caps;
+  guint min, max, size, n, i;
+  gboolean update_pool, update_allocator;
+  GstAllocator *allocator;
+  GstAllocationParams params;
+  GstGLVideoAllocationParams *glparams;
+  GstVideoInfo vinfo;
+  GstQtSrc *qt_src = GST_QT_SRC (bsrc);
+
+  if (gst_query_find_allocation_meta (query,
+          GST_VIDEO_AFFINE_TRANSFORMATION_META_API_TYPE, NULL)) {
+    qt_src->downstream_supports_affine_meta = TRUE;
+  } else {
+    qt_src->downstream_supports_affine_meta = FALSE;
+  }
+
+  gst_query_parse_allocation (query, &caps, NULL);
+  if (!caps)
+    return FALSE;
+
+  gst_video_info_from_caps (&vinfo, caps);
+
+  n = gst_query_get_n_allocation_pools (query);
+  if (n > 0) {
+    update_pool = TRUE;
+    for (i = 0; i < n; i++) {
+      gst_query_parse_nth_allocation_pool (query, i, &pool, &size, &min, &max);
+
+      if (!pool || !GST_IS_GL_BUFFER_POOL (pool)) {
+        if (pool)
+          gst_object_unref (pool);
+        pool = NULL;
+      }
+    }
+  }
+
+  if (!pool) {
+    size = vinfo.size;
+    min = max = 0;
+    update_pool = FALSE;
+  }
+
+  if (!qt_src->context && !_find_local_gl_context (qt_src))
+    return FALSE;
+
+  if (!pool) {
+    if (!qt_src->context || !GST_IS_GL_CONTEXT (qt_src->context))
+      return FALSE;
+
+    pool = gst_gl_buffer_pool_new (qt_src->context);
+    GST_INFO_OBJECT (qt_src, "No pool, create one ourself %p", pool);
+  }
+
+  config = gst_buffer_pool_get_config (pool);
+
+  gst_buffer_pool_config_set_params (config, caps, size, min, max);
+  gst_buffer_pool_config_add_option (config, GST_BUFFER_POOL_OPTION_VIDEO_META);
+  if (gst_query_find_allocation_meta (query, GST_GL_SYNC_META_API_TYPE, NULL))
+    gst_buffer_pool_config_add_option (config,
+        GST_BUFFER_POOL_OPTION_GL_SYNC_META);
+
+  if (gst_query_get_n_allocation_params (query) > 0) {
+    gst_query_parse_nth_allocation_param (query, 0, &allocator, &params);
+    gst_buffer_pool_config_set_allocator (config, allocator, &params);
+    GST_INFO_OBJECT (qt_src, "got allocator %p", allocator);
+    update_allocator = TRUE;
+  } else {
+    allocator = NULL;
+    gst_allocation_params_init (&params);
+    update_allocator = FALSE;
+  }
+
+  glparams =
+      gst_gl_video_allocation_params_new (qt_src->context, &params, &vinfo, 0,
+      NULL, GST_GL_TEXTURE_TARGET_2D, GST_GL_RGBA);
+  gst_buffer_pool_config_set_gl_allocation_params (config,
+      (GstGLAllocationParams *) glparams);
+  gst_gl_allocation_params_free ((GstGLAllocationParams *) glparams);
+
+  if (!gst_buffer_pool_set_config (pool, config))
+    GST_WARNING_OBJECT (qt_src, "Failed to set buffer pool config");
+
+  if (update_allocator)
+    gst_query_set_nth_allocation_param (query, 0, allocator, &params);
+  else
+    gst_query_add_allocation_param (query, allocator, &params);
+  if (allocator)
+    gst_object_unref (allocator);
+
+  if (update_pool)
+    gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max);
+  else
+    gst_query_add_allocation_pool (query, pool, size, min, max);
+  gst_object_unref (pool);
+
+  GST_INFO_OBJECT (qt_src, "successfully decide_allocation");
+  return TRUE;
+}
+
+static GstFlowReturn
+gst_qt_src_fill (GstPushSrc * psrc, GstBuffer * buffer)
+{
+  GstQtSrc *qt_src = GST_QT_SRC (psrc);
+
+  GST_DEBUG_OBJECT (qt_src, "setting buffer %p", buffer);
+
+  if (!qt_window_set_buffer (qt_src->window, buffer)) {
+    GST_ERROR_OBJECT (qt_src, "failed to fill buffer %p", buffer);
+    return GST_FLOW_ERROR;
+  }
+
+  if (!qt_src->downstream_supports_affine_meta) {
+    if (qt_src->pending_image_orientation) {
+      /* let downstream know the image orientation is vertical filp */
+      GstTagList *image_orientation_tag =
+          gst_tag_list_new (GST_TAG_IMAGE_ORIENTATION, "flip-rotate-180", NULL);
+
+      gst_pad_push_event (GST_BASE_SRC_PAD (psrc),
+          gst_event_new_tag (image_orientation_tag));
+
+      qt_src->pending_image_orientation = FALSE;
+    }
+  } else {
+    GstVideoAffineTransformationMeta *trans_meta;
+    trans_meta = gst_buffer_add_video_affine_transformation_meta (buffer);
+    gst_video_affine_transformation_meta_apply_matrix (trans_meta,
+        vertical_flip_matrix);
+  }
+
+  GST_DEBUG_OBJECT (qt_src, "buffer fill done %p", buffer);
+
+  return GST_FLOW_OK;
+}
+
+static GstStateChangeReturn
+gst_qt_src_change_state (GstElement * element, GstStateChange transition)
+{
+  GstQtSrc *qt_src = GST_QT_SRC (element);
+  GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
+  QGuiApplication *app;
+
+  GST_DEBUG ("changing state: %s => %s",
+      gst_element_state_get_name (GST_STATE_TRANSITION_CURRENT (transition)),
+      gst_element_state_get_name (GST_STATE_TRANSITION_NEXT (transition)));
+
+  switch (transition) {
+    case GST_STATE_CHANGE_NULL_TO_READY:
+      app = static_cast < QGuiApplication * >(QCoreApplication::instance ());
+      if (!app) {
+        GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND,
+            ("%s", "Failed to connect to Qt"),
+            ("%s", "Could not retrieve QGuiApplication instance"));
+        return GST_STATE_CHANGE_FAILURE;
+      }
+
+      if (!qt_src->window) {
+        GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND,
+            ("%s", "Required property \'window\' not set"), (NULL));
+        return GST_STATE_CHANGE_FAILURE;
+      }
+
+      if (!qt_window_is_scenegraph_initialized (qt_src->window)) {
+        GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND,
+            ("%s", "Could not initialize window system"), (NULL));
+        return GST_STATE_CHANGE_FAILURE;
+      }
+
+      qt_window_use_default_fbo (qt_src->window, qt_src->default_fbo);
+
+      break;
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
+      break;
+    default:
+      break;
+  }
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (ret == GST_STATE_CHANGE_FAILURE)
+    return ret;
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      break;
+    case GST_STATE_CHANGE_READY_TO_NULL:
+      break;
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+static gboolean
+gst_qt_src_start (GstBaseSrc * basesrc)
+{
+  GstQtSrc *qt_src = GST_QT_SRC (basesrc);
+
+  /* already has get OpenGL configuration from qt */
+  if (qt_src->display && qt_src->qt_context)
+    return TRUE;
+
+  if (!qt_window_is_scenegraph_initialized (qt_src->window))
+    return FALSE;
+
+  qt_src->display = qt_window_get_display (qt_src->window);
+  qt_src->qt_context = qt_window_get_qt_context (qt_src->window);
+
+  if (!qt_src->display || !qt_src->qt_context) {
+    GST_ERROR_OBJECT (qt_src,
+        "Could not retrieve window system OpenGL configuration");
+    return FALSE;
+  }
+
+  GST_DEBUG_OBJECT (qt_src, "Got qt display %p and qt gl context %p",
+      qt_src->display, qt_src->qt_context);
+  return TRUE;
+}
+
+static gboolean
+gst_qt_src_stop (GstBaseSrc * basesrc)
+{
+  return TRUE;
+}
diff --git a/ext/qt/gstqtsrc.h b/ext/qt/gstqtsrc.h
new file mode 100644
index 000000000..d84544224
--- /dev/null
+++ b/ext/qt/gstqtsrc.h
@@ -0,0 +1,80 @@
+/*
+ * GStreamer
+ * Copyright (C) 2016 Freescale Semiconductor, Inc. All rights reserved.
+ *
+ * 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_QT_SRC_H__
+#define __GST_QT_SRC_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstpushsrc.h>
+#include <gst/video/video.h>
+#include <gst/gl/gl.h>
+#include "qtwindow.h"
+
+typedef struct _GstQtSrc GstQtSrc;
+typedef struct _GstQtSrcClass GstQtSrcClass;
+
+G_BEGIN_DECLS
+
+GType gst_qt_src_get_type (void);
+#define GST_TYPE_QT_SRC            (gst_qt_src_get_type())
+#define GST_QT_SRC(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_QT_SRC,GstQtSrc))
+#define GST_QT_SRC_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_QT_SRC,GstQtSrcClass))
+#define GST_IS_QT_SRC(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_QT_SRC))
+#define GST_IS_QT_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_QT_SRC))
+#define GST_QT_SRC_CAST(obj)       ((GstQtSrc*)(obj))
+
+/**
+ * GstQtSrc:
+ *
+ * Opaque #GstQtSrc object
+ */
+struct _GstQtSrc
+{
+  /* <private> */
+  GstPushSrc            parent;
+
+  QQuickWindow          *qwindow;
+  QtGLWindow            *window;
+
+  GstVideoInfo          v_info;
+
+  GstGLDisplay         *display;
+  GstGLContext         *context;
+  GstGLContext         *qt_context;
+
+  gboolean              default_fbo;
+  gboolean              downstream_supports_affine_meta;
+  gboolean              pending_image_orientation;
+};
+
+/**
+ * GstQtSrcClass:
+ *
+ * The #GstQtSrcClass struct only contains private data
+ */
+struct _GstQtSrcClass
+{
+  /* <private> */
+  GstPushSrcClass object_class;
+};
+
+G_END_DECLS
+
+#endif /* __GST_QT_SRC_H__ */
diff --git a/ext/qt/qtitem.cc b/ext/qt/qtitem.cc
new file mode 100644
index 000000000..65b883eab
--- /dev/null
+++ b/ext/qt/qtitem.cc
@@ -0,0 +1,546 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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 <stdio.h>
+
+#include <gst/video/video.h>
+#include "qtitem.h"
+#include "gstqsgtexture.h"
+#include "gstqtglutility.h"
+
+#include <QtCore/QRunnable>
+#include <QtCore/QMutexLocker>
+#include <QtGui/QGuiApplication>
+#include <QtQuick/QQuickWindow>
+#include <QtQuick/QSGSimpleTextureNode>
+
+/**
+ * SECTION:gtkgstglwidget
+ * @short_description: a #GtkGLArea that renders GStreamer video #GstBuffers
+ * @see_also: #GtkGLArea, #GstBuffer
+ *
+ * #QtGLVideoItem is an #QQuickItem that renders GStreamer video buffers.
+ */
+
+#define GST_CAT_DEFAULT qt_item_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+#define DEFAULT_FORCE_ASPECT_RATIO  TRUE
+#define DEFAULT_PAR_N               0
+#define DEFAULT_PAR_D               1
+
+enum
+{
+  PROP_0,
+  PROP_FORCE_ASPECT_RATIO,
+  PROP_PIXEL_ASPECT_RATIO,
+};
+
+struct _QtGLVideoItemPrivate
+{
+  GMutex lock;
+
+  /* properties */
+  gboolean force_aspect_ratio;
+  gint par_n, par_d;
+
+  gint display_width;
+  gint display_height;
+
+  gboolean negotiated;
+  GstBuffer *buffer;
+  GstCaps *caps;
+  GstVideoInfo v_info;
+
+  gboolean initted;
+  GstGLDisplay *display;
+  QOpenGLContext *qt_context;
+  GstGLContext *other_context;
+  GstGLContext *context;
+};
+
+class InitializeSceneGraph : public QRunnable
+{
+public:
+  InitializeSceneGraph(QtGLVideoItem *item);
+  void run();
+
+private:
+  QtGLVideoItem *item_;
+};
+
+InitializeSceneGraph::InitializeSceneGraph(QtGLVideoItem *item) :
+  item_(item)
+{
+}
+
+void InitializeSceneGraph::run()
+{
+  item_->onSceneGraphInitialized();
+}
+
+QtGLVideoItem::QtGLVideoItem()
+{
+  static volatile gsize _debug;
+
+  if (g_once_init_enter (&_debug)) {
+    GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglwidget", 0, "Qt GL Widget");
+    g_once_init_leave (&_debug, 1);
+  }
+  this->m_openGlContextInitialized = false;
+  this->setFlag (QQuickItem::ItemHasContents, true);
+
+  this->priv = g_new0 (QtGLVideoItemPrivate, 1);
+
+  this->priv->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO;
+  this->priv->par_n = DEFAULT_PAR_N;
+  this->priv->par_d = DEFAULT_PAR_D;
+
+  g_mutex_init (&this->priv->lock);
+
+  this->priv->display = gst_qt_get_gl_display();
+
+  connect(this, SIGNAL(windowChanged(QQuickWindow*)), this,
+          SLOT(handleWindowChanged(QQuickWindow*)));
+
+  this->proxy = QSharedPointer<QtGLVideoItemInterface>(new QtGLVideoItemInterface(this));
+
+  GST_DEBUG ("%p init Qt Video Item", this);
+}
+
+QtGLVideoItem::~QtGLVideoItem()
+{
+  /* Before destroying the priv info, make sure
+   * no qmlglsink's will call in again, and that
+   * any ongoing calls are done by invalidating the proxy
+   * pointer */
+  GST_INFO ("Destroying QtGLVideoItem and invalidating the proxy");
+  proxy->invalidateRef();
+  proxy.clear();
+
+  g_mutex_clear (&this->priv->lock);
+  if (this->priv->context)
+    gst_object_unref(this->priv->context);
+  if (this->priv->other_context)
+    gst_object_unref(this->priv->other_context);
+  if (this->priv->display)
+    gst_object_unref(this->priv->display);
+  g_free (this->priv);
+  this->priv = NULL;
+}
+
+void
+QtGLVideoItem::setDAR(gint num, gint den)
+{
+  this->priv->par_n = num;
+  this->priv->par_d = den;
+}
+
+void
+QtGLVideoItem::getDAR(gint * num, gint * den)
+{
+  if (num)
+    *num = this->priv->par_n;
+  if (den)
+    *den = this->priv->par_d;
+}
+
+void
+QtGLVideoItem::setForceAspectRatio(bool force_aspect_ratio)
+{
+  this->priv->force_aspect_ratio = !!force_aspect_ratio;
+}
+
+bool
+QtGLVideoItem::getForceAspectRatio()
+{
+  return this->priv->force_aspect_ratio;
+}
+
+bool
+QtGLVideoItem::itemInitialized()
+{
+  return m_openGlContextInitialized;
+}
+
+QSGNode *
+QtGLVideoItem::updatePaintNode(QSGNode * oldNode,
+    UpdatePaintNodeData * updatePaintNodeData)
+{
+  if (!m_openGlContextInitialized) {
+    return oldNode;
+  }
+
+  QSGSimpleTextureNode *texNode = static_cast<QSGSimpleTextureNode *> (oldNode);
+  GstVideoRectangle src, dst, result;
+  GstQSGTexture *tex;
+
+  g_mutex_lock (&this->priv->lock);
+  gst_gl_context_activate (this->priv->other_context, TRUE);
+
+  GST_TRACE ("%p updatePaintNode", this);
+
+  if (!this->priv->caps) {
+    g_mutex_unlock (&this->priv->lock);
+    return NULL;
+  }
+
+  if (!texNode) {
+    texNode = new QSGSimpleTextureNode ();
+    texNode->setOwnsTexture (true);
+    texNode->setTexture (new GstQSGTexture ());
+  }
+
+  tex = static_cast<GstQSGTexture *> (texNode->texture());
+  tex->setCaps (this->priv->caps);
+  tex->setBuffer (this->priv->buffer);
+  texNode->markDirty(QSGNode::DirtyMaterial);
+
+  if (this->priv->force_aspect_ratio) {
+    src.w = this->priv->display_width;
+    src.h = this->priv->display_height;
+
+    dst.x = boundingRect().x();
+    dst.y = boundingRect().y();
+    dst.w = boundingRect().width();
+    dst.h = boundingRect().height();
+
+    gst_video_sink_center_rect (src, dst, &result, TRUE);
+  } else {
+    result.x = boundingRect().x();
+    result.y = boundingRect().y();
+    result.w = boundingRect().width();
+    result.h = boundingRect().height();
+  }
+
+  texNode->setRect (QRectF (result.x, result.y, result.w, result.h));
+
+  gst_gl_context_activate (this->priv->other_context, FALSE);
+  g_mutex_unlock (&this->priv->lock);
+
+  return texNode;
+}
+
+static void
+_reset (QtGLVideoItem * qt_item)
+{
+  gst_buffer_replace (&qt_item->priv->buffer, NULL);
+
+  gst_caps_replace (&qt_item->priv->caps, NULL);
+
+  qt_item->priv->negotiated = FALSE;
+  qt_item->priv->initted = FALSE;
+}
+
+void
+QtGLVideoItemInterface::setBuffer (GstBuffer * buffer)
+{
+  QMutexLocker locker(&lock);
+
+  if (qt_item == NULL)
+    return;
+
+  if (!qt_item->priv->negotiated) {
+    GST_WARNING ("Got buffer on unnegotiated QtGLVideoItem. Dropping");
+    return;
+  }
+
+  g_mutex_lock (&qt_item->priv->lock);
+
+  gst_buffer_replace (&qt_item->priv->buffer, buffer);
+
+  QMetaObject::invokeMethod(qt_item, "update", Qt::QueuedConnection);
+
+  g_mutex_unlock (&qt_item->priv->lock);
+}
+
+void
+QtGLVideoItem::onSceneGraphInitialized ()
+{
+  GST_DEBUG ("scene graph initialization with Qt GL context %p",
+      this->window()->openglContext ());
+
+  if (this->priv->qt_context == this->window()->openglContext ())
+    return;
+
+  this->priv->qt_context = this->window()->openglContext ();
+  if (this->priv->qt_context == NULL) {
+    g_assert_not_reached ();
+    return;
+  }
+
+  m_openGlContextInitialized = gst_qt_get_gl_wrapcontext (this->priv->display,
+      &this->priv->other_context, &this->priv->context);
+
+  GST_DEBUG ("%p created wrapped GL context %" GST_PTR_FORMAT, this,
+      this->priv->other_context);
+
+  emit itemInitializedChanged();
+}
+
+void
+QtGLVideoItem::onSceneGraphInvalidated ()
+{
+  GST_FIXME ("%p scene graph invalidated", this);
+}
+
+gboolean
+QtGLVideoItemInterface::initWinSys ()
+{
+  QMutexLocker locker(&lock);
+
+  GError *error = NULL;
+
+  if (qt_item == NULL)
+    return FALSE;
+
+  g_mutex_lock (&qt_item->priv->lock);
+
+  if (qt_item->priv->display && qt_item->priv->qt_context
+      && qt_item->priv->other_context && qt_item->priv->context) {
+    /* already have the necessary state */
+    g_mutex_unlock (&qt_item->priv->lock);
+    return TRUE;
+  }
+
+  if (!GST_IS_GL_DISPLAY (qt_item->priv->display)) {
+    GST_ERROR ("%p failed to retrieve display connection %" GST_PTR_FORMAT,
+        qt_item, qt_item->priv->display);
+    g_mutex_unlock (&qt_item->priv->lock);
+    return FALSE;
+  }
+
+  if (!GST_IS_GL_CONTEXT (qt_item->priv->other_context)) {
+    GST_ERROR ("%p failed to retrieve wrapped context %" GST_PTR_FORMAT, qt_item,
+        qt_item->priv->other_context);
+    g_mutex_unlock (&qt_item->priv->lock);
+    return FALSE;
+  }
+
+  qt_item->priv->context = gst_gl_context_new (qt_item->priv->display);
+
+  if (!qt_item->priv->context) {
+    g_mutex_unlock (&qt_item->priv->lock);
+    return FALSE;
+  }
+
+  if (!gst_gl_context_create (qt_item->priv->context, qt_item->priv->other_context,
+        &error)) {
+    GST_ERROR ("%s", error->message);
+    g_mutex_unlock (&qt_item->priv->lock);
+    return FALSE;
+  }
+
+  g_mutex_unlock (&qt_item->priv->lock);
+  return TRUE;
+}
+
+void
+QtGLVideoItem::handleWindowChanged(QQuickWindow *win)
+{
+  if (win) {
+    if (win->isSceneGraphInitialized())
+      win->scheduleRenderJob(new InitializeSceneGraph(this), QQuickWindow::BeforeSynchronizingStage);
+    else
+      connect(win, SIGNAL(sceneGraphInitialized()), this, SLOT(onSceneGraphInitialized()), Qt::DirectConnection);
+
+    connect(win, SIGNAL(sceneGraphInvalidated()), this, SLOT(onSceneGraphInvalidated()), Qt::DirectConnection);
+  } else {
+    this->priv->qt_context = NULL;
+  }
+}
+
+static gboolean
+_calculate_par (QtGLVideoItem * widget, GstVideoInfo * info)
+{
+  gboolean ok;
+  gint width, height;
+  gint par_n, par_d;
+  gint display_par_n, display_par_d;
+  guint display_ratio_num, display_ratio_den;
+
+  width = GST_VIDEO_INFO_WIDTH (info);
+  height = GST_VIDEO_INFO_HEIGHT (info);
+
+  par_n = GST_VIDEO_INFO_PAR_N (info);
+  par_d = GST_VIDEO_INFO_PAR_D (info);
+
+  if (!par_n)
+    par_n = 1;
+
+  /* get display's PAR */
+  if (widget->priv->par_n != 0 && widget->priv->par_d != 0) {
+    display_par_n = widget->priv->par_n;
+    display_par_d = widget->priv->par_d;
+  } else {
+    display_par_n = 1;
+    display_par_d = 1;
+  }
+
+  ok = gst_video_calculate_display_ratio (&display_ratio_num,
+      &display_ratio_den, width, height, par_n, par_d, display_par_n,
+      display_par_d);
+
+  if (!ok)
+    return FALSE;
+
+  GST_LOG ("PAR: %u/%u DAR:%u/%u", par_n, par_d, display_par_n, display_par_d);
+
+  if (height % display_ratio_den == 0) {
+    GST_DEBUG ("keeping video height");
+    widget->priv->display_width = (guint)
+        gst_util_uint64_scale_int (height, display_ratio_num,
+        display_ratio_den);
+    widget->priv->display_height = height;
+  } else if (width % display_ratio_num == 0) {
+    GST_DEBUG ("keeping video width");
+    widget->priv->display_width = width;
+    widget->priv->display_height = (guint)
+        gst_util_uint64_scale_int (width, display_ratio_den, display_ratio_num);
+  } else {
+    GST_DEBUG ("approximating while keeping video height");
+    widget->priv->display_width = (guint)
+        gst_util_uint64_scale_int (height, display_ratio_num,
+        display_ratio_den);
+    widget->priv->display_height = height;
+  }
+  GST_DEBUG ("scaling to %dx%d", widget->priv->display_width,
+      widget->priv->display_height);
+
+  return TRUE;
+}
+
+gboolean
+QtGLVideoItemInterface::setCaps (GstCaps * caps)
+{
+  QMutexLocker locker(&lock);
+  GstVideoInfo v_info;
+
+  g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
+  g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
+
+  if (qt_item == NULL)
+    return FALSE;
+
+  if (qt_item->priv->caps && gst_caps_is_equal_fixed (qt_item->priv->caps, caps))
+    return TRUE;
+
+  if (!gst_video_info_from_caps (&v_info, caps))
+    return FALSE;
+
+  g_mutex_lock (&qt_item->priv->lock);
+
+  _reset (qt_item);
+
+  gst_caps_replace (&qt_item->priv->caps, caps);
+
+  if (!_calculate_par (qt_item, &v_info)) {
+    g_mutex_unlock (&qt_item->priv->lock);
+    return FALSE;
+  }
+
+  qt_item->priv->v_info = v_info;
+  qt_item->priv->negotiated = TRUE;
+
+  g_mutex_unlock (&qt_item->priv->lock);
+
+  return TRUE;
+}
+
+GstGLContext *
+QtGLVideoItemInterface::getQtContext ()
+{
+  QMutexLocker locker(&lock);
+
+  if (!qt_item || !qt_item->priv->other_context)
+    return NULL;
+
+  return (GstGLContext *) gst_object_ref (qt_item->priv->other_context);
+}
+
+GstGLContext *
+QtGLVideoItemInterface::getContext ()
+{
+  QMutexLocker locker(&lock);
+
+  if (!qt_item || !qt_item->priv->context)
+    return NULL;
+
+  return (GstGLContext *) gst_object_ref (qt_item->priv->context);
+}
+
+GstGLDisplay *
+QtGLVideoItemInterface::getDisplay() 
+{
+  QMutexLocker locker(&lock);
+
+  if (!qt_item || !qt_item->priv->display)
+    return NULL;
+
+  return (GstGLDisplay *) gst_object_ref (qt_item->priv->display);
+}
+
+void
+QtGLVideoItemInterface::setDAR(gint num, gint den)
+{
+  QMutexLocker locker(&lock);
+  if (!qt_item)
+    return;
+  qt_item->setDAR(num, den);
+}
+
+void
+QtGLVideoItemInterface::getDAR(gint * num, gint * den)
+{
+  QMutexLocker locker(&lock);
+  if (!qt_item)
+    return;
+  qt_item->getDAR (num, den);
+}
+
+void
+QtGLVideoItemInterface::setForceAspectRatio(bool force_aspect_ratio)
+{
+  QMutexLocker locker(&lock);
+  if (!qt_item)
+    return;
+  qt_item->setForceAspectRatio(force_aspect_ratio);
+}
+
+bool
+QtGLVideoItemInterface::getForceAspectRatio()
+{
+  QMutexLocker locker(&lock);
+  if (!qt_item)
+    return FALSE;
+  return qt_item->getForceAspectRatio();
+}
+
+void
+QtGLVideoItemInterface::invalidateRef()
+{
+  QMutexLocker locker(&lock);
+  qt_item = NULL;
+}
+
diff --git a/ext/qt/qtitem.h b/ext/qt/qtitem.h
new file mode 100644
index 000000000..065d043ea
--- /dev/null
+++ b/ext/qt/qtitem.h
@@ -0,0 +1,109 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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 __QT_ITEM_H__
+#define __QT_ITEM_H__
+
+#include <gst/gst.h>
+#include <gst/gl/gl.h>
+
+#include "gstqtgl.h"
+#include <QtCore/QMutex>
+#include <QtQuick/QQuickItem>
+#include <QtGui/QOpenGLContext>
+#include <QtGui/QOpenGLFunctions>
+
+typedef struct _QtGLVideoItemPrivate QtGLVideoItemPrivate;
+
+class QtGLVideoItem;
+
+class QtGLVideoItemInterface : public QObject
+{
+    Q_OBJECT
+public:
+    QtGLVideoItemInterface (QtGLVideoItem *w) : qt_item (w), lock() {};
+
+    void invalidateRef();
+
+    void setBuffer (GstBuffer * buffer);
+    gboolean setCaps (GstCaps *caps);
+    gboolean initWinSys ();
+    GstGLContext *getQtContext();
+    GstGLContext *getContext();
+    GstGLDisplay *getDisplay();
+    QtGLVideoItem *videoItem () { return qt_item; };
+
+    void setDAR(gint, gint);
+    void getDAR(gint *, gint *);
+    void setForceAspectRatio(bool);
+    bool getForceAspectRatio();
+private:
+    QtGLVideoItem *qt_item;
+    QMutex lock;
+};
+
+class InitializeSceneGraph;
+
+class QtGLVideoItem : public QQuickItem, protected QOpenGLFunctions
+{
+    Q_OBJECT
+
+    Q_PROPERTY(bool itemInitialized
+               READ itemInitialized
+               NOTIFY itemInitializedChanged)
+
+public:
+    QtGLVideoItem();
+    ~QtGLVideoItem();
+
+    void setDAR(gint, gint);
+    void getDAR(gint *, gint *);
+    void setForceAspectRatio(bool);
+    bool getForceAspectRatio();
+    bool itemInitialized();
+
+    QSharedPointer<QtGLVideoItemInterface> getInterface() { return proxy; };
+    /* private for C interface ... */
+    QtGLVideoItemPrivate *priv;
+
+Q_SIGNALS:
+    void itemInitializedChanged();
+
+private Q_SLOTS:
+    void handleWindowChanged(QQuickWindow * win);
+    void onSceneGraphInitialized();
+    void onSceneGraphInvalidated();
+
+protected:
+    QSGNode * updatePaintNode (QSGNode * oldNode, UpdatePaintNodeData * updatePaintNodeData);
+
+private:
+
+    friend class InitializeSceneGraph;
+    void setViewportSize(const QSize &size);
+    void shareContext();
+
+    QSize m_viewportSize;
+    bool m_openGlContextInitialized;
+
+    QSharedPointer<QtGLVideoItemInterface> proxy;
+};
+
+#endif /* __QT_ITEM_H__ */
diff --git a/ext/qt/qtwindow.cc b/ext/qt/qtwindow.cc
new file mode 100644
index 000000000..62d26b647
--- /dev/null
+++ b/ext/qt/qtwindow.cc
@@ -0,0 +1,434 @@
+/*
+ * GStreamer
+ * Copyright (C) 2016 Freescale Semiconductor, Inc. All rights reserved.
+ *
+ * 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 <stdio.h>
+
+#include <gst/video/video.h>
+#include <gst/gl/gstglfuncs.h>
+#include "qtwindow.h"
+#include "gstqsgtexture.h"
+#include "gstqtglutility.h"
+
+#include <QtCore/QDateTime>
+#include <QtCore/QRunnable>
+#include <QtGui/QGuiApplication>
+#include <QtQuick/QQuickWindow>
+#include <QOpenGLFramebufferObject>
+
+/* compatability definitions... */
+#ifndef GL_READ_FRAMEBUFFER
+#define GL_READ_FRAMEBUFFER 0x8CA8
+#endif
+#ifndef GL_DRAW_FRAMEBUFFER
+#define GL_DRAW_FRAMEBUFFER 0x8CA9
+#endif
+
+/**
+ * SECTION:
+ *
+ * #QtGLWindow is an #QQuickWindow that grab QtQuick view to GStreamer OpenGL video buffers.
+ */
+
+GST_DEBUG_CATEGORY_STATIC (qt_window_debug);
+#define GST_CAT_DEFAULT qt_window_debug
+
+struct _QtGLWindowPrivate
+{
+  GMutex lock;
+  GCond update_cond;
+
+  GstBuffer *buffer;
+  GstCaps *caps;
+  GstVideoInfo v_info;
+
+  gboolean initted;
+  gboolean updated;
+  gboolean quit;
+  gboolean result;
+  gboolean useDefaultFbo;
+
+  GstGLDisplay *display;
+  GstGLContext *other_context;
+
+  GLuint fbo;
+
+  /* frames that qmlview rendered in its gl thread */
+  quint64 frames_rendered;
+  quint64 start;
+  quint64 stop;
+};
+
+class InitQtGLContext : public QRunnable
+{
+public:
+  InitQtGLContext(QtGLWindow *window);
+  void run();
+
+private:
+  QtGLWindow *window_;
+};
+
+InitQtGLContext::InitQtGLContext(QtGLWindow *window) :
+  window_(window)
+{
+}
+
+void InitQtGLContext::run()
+{
+  window_->onSceneGraphInitialized();
+}
+
+QtGLWindow::QtGLWindow ( QWindow * parent, QQuickWindow *src ) :
+  QQuickWindow( parent ), source (src)
+{
+  QGuiApplication *app = static_cast<QGuiApplication *> (QCoreApplication::instance ());
+  static volatile gsize _debug;
+
+  g_assert (app != NULL);
+
+  if (g_once_init_enter (&_debug)) {
+    GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglwindow", 0, "Qt GL QuickWindow");
+    g_once_init_leave (&_debug, 1);
+  }
+
+  this->priv = g_new0 (QtGLWindowPrivate, 1);
+
+  g_mutex_init (&this->priv->lock);
+  g_cond_init (&this->priv->update_cond);
+
+  this->priv->display = gst_qt_get_gl_display();
+
+  connect (source, SIGNAL(beforeRendering()), this, SLOT(beforeRendering()), Qt::DirectConnection);
+  connect (source, SIGNAL(afterRendering()), this, SLOT(afterRendering()), Qt::DirectConnection);
+  connect (app, SIGNAL(aboutToQuit()), this, SLOT(aboutToQuit()), Qt::DirectConnection);
+  if (source->isSceneGraphInitialized())
+    source->scheduleRenderJob(new InitQtGLContext(this), QQuickWindow::BeforeSynchronizingStage);
+  else
+    connect (source, SIGNAL(sceneGraphInitialized()), this, SLOT(onSceneGraphInitialized()), Qt::DirectConnection);
+
+  connect (source, SIGNAL(sceneGraphInvalidated()), this, SLOT(onSceneGraphInvalidated()), Qt::DirectConnection);
+
+  GST_DEBUG ("%p init Qt Window", this->priv->display);
+}
+
+QtGLWindow::~QtGLWindow()
+{
+  GST_DEBUG ("deinit Qt Window");
+  g_mutex_clear (&this->priv->lock);
+  g_cond_clear (&this->priv->update_cond);
+  if (this->priv->other_context)
+    gst_object_unref(this->priv->other_context);
+  if (this->priv->display)
+    gst_object_unref(this->priv->display);
+  g_free (this->priv);
+  this->priv = NULL;
+}
+
+void
+QtGLWindow::beforeRendering()
+{
+  unsigned int width, height;
+
+  g_mutex_lock (&this->priv->lock);
+
+  static volatile gsize once = 0;
+  if (g_once_init_enter(&once)) {
+    this->priv->start = QDateTime::currentDateTime().toMSecsSinceEpoch();
+    g_once_init_leave(&once,1);
+  }
+
+  if (!fbo && !this->priv->useDefaultFbo) {
+
+    width = source->width();
+    height = source->height();
+
+    GST_DEBUG ("create new framebuffer object %dX%d", width, height);
+
+    fbo.reset(new QOpenGLFramebufferObject (width, height,
+          QOpenGLFramebufferObject::NoAttachment, GL_TEXTURE_2D, GL_RGBA));
+
+    source->setRenderTarget(fbo.data());
+  } else if (this->priv->useDefaultFbo) {
+    GST_DEBUG ("use default fbo for render target");
+    fbo.reset(NULL);
+    source->setRenderTarget(NULL);
+  }
+
+  g_mutex_unlock (&this->priv->lock);
+}
+
+
+void
+QtGLWindow::afterRendering()
+{
+  GstVideoFrame gl_frame;
+  GstVideoInfo *info;
+  GstGLContext *context;
+  gboolean ret;
+  guint width, height;
+  const GstGLFuncs *gl;
+  GLuint dst_tex;
+
+  g_mutex_lock (&this->priv->lock);
+
+  this->priv->frames_rendered++;
+
+  if(!this->priv->buffer || this->priv->updated == TRUE) {
+    GST_DEBUG ("skip this frame");
+    g_mutex_unlock (&this->priv->lock);
+    return;
+  }
+
+  GST_DEBUG ("copy buffer %p",this->priv->buffer);
+
+  width = GST_VIDEO_INFO_WIDTH (&this->priv->v_info);
+  height = GST_VIDEO_INFO_HEIGHT (&this->priv->v_info);
+  info = &this->priv->v_info;
+  context = this->priv->other_context;
+
+  gst_gl_context_activate (context, TRUE);
+  gl = context->gl_vtable;
+
+  ret = gst_video_frame_map (&gl_frame, info, this->priv->buffer,
+      (GstMapFlags) (GST_MAP_WRITE | GST_MAP_GL));
+
+  if (!ret) {
+    this->priv->buffer = NULL;
+    GST_ERROR ("Failed to map video frame");
+    goto errors;
+  }
+
+  gl->BindFramebuffer (GL_READ_FRAMEBUFFER, this->source->renderTargetId());
+
+  ret = gst_gl_context_check_framebuffer_status (context, GL_READ_FRAMEBUFFER);
+  if (!ret) {
+    GST_ERROR ("FBO errors");
+    goto errors;
+  }
+
+  dst_tex = *(guint *) gl_frame.data[0];
+  GST_DEBUG ("qml render target id %d, render to tex %d %dX%d", 
+      this->source->renderTargetId(), dst_tex, width,height);
+
+  gl->BindTexture (GL_TEXTURE_2D, dst_tex);
+  if (gl->BlitFramebuffer) {
+    gl->BindFramebuffer (GL_DRAW_FRAMEBUFFER, this->priv->fbo);
+    gl->FramebufferTexture2D (GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+              GL_TEXTURE_2D, dst_tex, 0);
+
+    ret = gst_gl_context_check_framebuffer_status (context, GL_DRAW_FRAMEBUFFER);
+    if (!ret) {
+      GST_ERROR ("FBO errors");
+      goto errors;
+    }
+    gl->ReadBuffer (GL_COLOR_ATTACHMENT0);
+    gl->BlitFramebuffer (0, 0, width, height,
+        0, 0, width, height,
+        GL_COLOR_BUFFER_BIT, GL_LINEAR);
+  } else {
+    gl->CopyTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, width, height, 0);
+  }
+  
+  GST_DEBUG ("rendering finished");
+
+errors:
+  gl->BindFramebuffer (GL_FRAMEBUFFER, 0);
+  gst_video_frame_unmap (&gl_frame);
+
+  gst_gl_context_activate (context, FALSE);
+
+  this->priv->result = ret;
+  this->priv->updated = TRUE;
+  g_cond_signal (&this->priv->update_cond);
+  g_mutex_unlock (&this->priv->lock);
+}
+
+void
+QtGLWindow::aboutToQuit()
+{
+  g_mutex_lock (&this->priv->lock);
+
+  this->priv->updated = TRUE;
+  this->priv->quit = TRUE;
+  g_cond_signal (&this->priv->update_cond);
+
+  this->priv->stop = QDateTime::currentDateTime().toMSecsSinceEpoch();
+  qint64 duration = this->priv->stop - this->priv->start;
+  float fps = ((float)this->priv->frames_rendered / duration * 1000);
+
+  GST_DEBUG("about to quit, total refresh frames (%lld) in (%0.3f) seconds, fps: %0.3f",
+      this->priv->frames_rendered, (float)duration / 1000, fps);
+
+  g_mutex_unlock (&this->priv->lock);
+}
+
+void
+QtGLWindow::onSceneGraphInitialized()
+{
+  GST_DEBUG ("scene graph initialization with Qt GL context %p",
+      this->source->openglContext ());
+
+  this->priv->initted = gst_qt_get_gl_wrapcontext (this->priv->display,
+      &this->priv->other_context, NULL);
+
+  if (this->priv->initted && this->priv->other_context) {
+    const GstGLFuncs *gl;
+
+    gst_gl_context_activate (this->priv->other_context, TRUE);
+    gl = this->priv->other_context->gl_vtable;
+
+    gl->GenFramebuffers (1, &this->priv->fbo);
+
+    gst_gl_context_activate (this->priv->other_context, FALSE);
+  }
+
+  GST_DEBUG ("%p created wrapped GL context %" GST_PTR_FORMAT, this,
+      this->priv->other_context);
+}
+
+void
+QtGLWindow::onSceneGraphInvalidated()
+{
+  GST_DEBUG ("scene graph invalidated");
+
+  if (this->priv->fbo && this->priv->other_context) {
+    const GstGLFuncs *gl;
+
+    gst_gl_context_activate (this->priv->other_context, TRUE);
+    gl = this->priv->other_context->gl_vtable;
+
+    gl->DeleteFramebuffers (1, &this->priv->fbo);
+
+    gst_gl_context_activate (this->priv->other_context, FALSE);
+  }
+}
+
+bool
+QtGLWindow::getGeometry(int * width, int * height)
+{
+  if (width == NULL || height == NULL)
+    return FALSE;
+
+  *width = this->source->width();
+  *height = this->source->height();
+
+  return TRUE;
+}
+
+GstGLContext *
+qt_window_get_qt_context (QtGLWindow * qt_window)
+{
+  g_return_val_if_fail (qt_window != NULL, NULL);
+
+  if (!qt_window->priv->other_context)
+    return NULL;
+
+  return (GstGLContext *) gst_object_ref (qt_window->priv->other_context);
+}
+
+GstGLDisplay *
+qt_window_get_display (QtGLWindow * qt_window)
+{
+  g_return_val_if_fail (qt_window != NULL, NULL);
+
+  if (!qt_window->priv->display)
+    return NULL;
+
+  return (GstGLDisplay *) gst_object_ref (qt_window->priv->display);
+}
+
+gboolean
+qt_window_is_scenegraph_initialized (QtGLWindow * qt_window)
+{
+  g_return_val_if_fail (qt_window != NULL, FALSE);
+
+  return qt_window->priv->initted;
+}
+
+gboolean
+qt_window_set_caps (QtGLWindow * qt_window, GstCaps * caps)
+{
+  GstVideoInfo v_info;
+
+  g_return_val_if_fail (qt_window != NULL, FALSE);
+  g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
+  g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
+
+  if (qt_window->priv->caps && gst_caps_is_equal_fixed (qt_window->priv->caps, caps))
+    return TRUE;
+
+  if (!gst_video_info_from_caps (&v_info, caps))
+    return FALSE;
+
+  g_mutex_lock (&qt_window->priv->lock);
+
+  gst_caps_replace (&qt_window->priv->caps, caps);
+
+  qt_window->priv->v_info = v_info;
+
+  g_mutex_unlock (&qt_window->priv->lock);
+
+  return TRUE;
+}
+
+gboolean
+qt_window_set_buffer (QtGLWindow * qt_window, GstBuffer * buffer)
+{
+  g_return_val_if_fail (qt_window != NULL, FALSE);
+  g_return_val_if_fail (qt_window->priv->initted, FALSE);
+  gboolean ret;
+
+  g_mutex_lock (&qt_window->priv->lock);
+
+  if (qt_window->priv->quit){
+    GST_DEBUG("about to quit, drop this buffer");
+    g_mutex_unlock (&qt_window->priv->lock);
+    return TRUE;
+  }
+
+  qt_window->priv->updated = FALSE;
+  qt_window->priv->buffer = buffer;
+
+  while (!qt_window->priv->updated) 
+    g_cond_wait (&qt_window->priv->update_cond, &qt_window->priv->lock);
+  
+  ret = qt_window->priv->result;
+
+  g_mutex_unlock (&qt_window->priv->lock);
+
+  return ret;
+}
+
+void
+qt_window_use_default_fbo (QtGLWindow * qt_window, gboolean useDefaultFbo)
+{
+  g_return_if_fail (qt_window != NULL);
+
+  g_mutex_lock (&qt_window->priv->lock);
+
+  GST_DEBUG ("set to use default fbo %d", useDefaultFbo);
+  qt_window->priv->useDefaultFbo = useDefaultFbo;
+
+  g_mutex_unlock (&qt_window->priv->lock);
+}
diff --git a/ext/qt/qtwindow.h b/ext/qt/qtwindow.h
new file mode 100644
index 000000000..697f3897a
--- /dev/null
+++ b/ext/qt/qtwindow.h
@@ -0,0 +1,70 @@
+/*
+ * GStreamer
+ * Copyright (C) 2016 Freescale Semiconductor, Inc. All rights reserved.
+ *
+ * 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 __QT_WINDOW_H__
+#define __QT_WINDOW_H__
+
+#include <gst/gst.h>
+#include <gst/gl/gl.h>
+
+#include "gstqtgl.h"
+#include <QtQuick/QQuickWindow>
+#include <QtGui/QOpenGLContext>
+#include <QtGui/QOpenGLFunctions>
+
+typedef struct _QtGLWindowPrivate QtGLWindowPrivate;
+
+class InitQtGLContext;
+
+class QtGLWindow : public QQuickWindow, protected QOpenGLFunctions
+{
+    Q_OBJECT
+public:
+    QtGLWindow (QWindow * parent = NULL, QQuickWindow *source = NULL);
+    ~QtGLWindow ();
+    bool getGeometry (int * width, int * height);
+
+    /* private for C interface ... */
+    QtGLWindowPrivate *priv;
+
+private Q_SLOTS:
+    void beforeRendering ();
+    void afterRendering ();
+    void onSceneGraphInitialized ();
+    void onSceneGraphInvalidated ();
+    void aboutToQuit();
+
+private:
+    friend class InitQtGLContext;
+    QQuickWindow * source;
+    QScopedPointer<QOpenGLFramebufferObject> fbo;
+};
+
+extern "C"
+{
+gboolean        qt_window_set_buffer (QtGLWindow * qt_window, GstBuffer * buffer);
+gboolean        qt_window_set_caps (QtGLWindow * qt_window, GstCaps * caps);
+GstGLContext *  qt_window_get_qt_context (QtGLWindow * qt_window);
+GstGLDisplay *  qt_window_get_display (QtGLWindow * qt_window);
+gboolean        qt_window_is_scenegraph_initialized (QtGLWindow * qt_window);
+void            qt_window_use_default_fbo (QtGLWindow * qt_window, gboolean useDefaultFbo);
+}
+
+#endif /* __QT_WINDOW_H__ */
diff --git a/ext/raw1394/Makefile.am b/ext/raw1394/Makefile.am
index 4df412ab5..25b6a4839 100644
--- a/ext/raw1394/Makefile.am
+++ b/ext/raw1394/Makefile.am
@@ -22,7 +22,6 @@ libgst1394_la_LIBADD = \
 	$(GST_LIBS) \
 	$(DV1394_LIBS)
 libgst1394_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgst1394_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstdv1394src.h gst1394probe.h $(hdvheaders) \
 	gst1394clock.h
diff --git a/ext/raw1394/Makefile.in b/ext/raw1394/Makefile.in
index 7b5af5f17..bb31c5a26 100644
--- a/ext/raw1394/Makefile.in
+++ b/ext/raw1394/Makefile.in
@@ -177,10 +177,9 @@ 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 $@
+libgst1394_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -299,6 +298,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -322,6 +322,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -337,6 +339,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -359,10 +363,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -377,6 +388,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -394,6 +406,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -406,6 +420,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -424,6 +440,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -467,9 +486,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -483,11 +513,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -600,7 +635,6 @@ libgst1394_la_LIBADD = \
 	$(DV1394_LIBS)
 
 libgst1394_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgst1394_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstdv1394src.h gst1394probe.h $(hdvheaders) \
 	gst1394clock.h
 
@@ -713,39 +747,39 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgst1394_la-gst1394.lo: gst1394.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gst1394.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gst1394.Tpo -c -o libgst1394_la-gst1394.lo `test -f 'gst1394.c' || echo '$(srcdir)/'`gst1394.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gst1394.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gst1394.Tpo -c -o libgst1394_la-gst1394.lo `test -f 'gst1394.c' || echo '$(srcdir)/'`gst1394.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgst1394_la-gst1394.Tpo $(DEPDIR)/libgst1394_la-gst1394.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst1394.c' object='libgst1394_la-gst1394.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 $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gst1394.lo `test -f 'gst1394.c' || echo '$(srcdir)/'`gst1394.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gst1394.lo `test -f 'gst1394.c' || echo '$(srcdir)/'`gst1394.c
 
 libgst1394_la-gst1394probe.lo: gst1394probe.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gst1394probe.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gst1394probe.Tpo -c -o libgst1394_la-gst1394probe.lo `test -f 'gst1394probe.c' || echo '$(srcdir)/'`gst1394probe.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gst1394probe.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gst1394probe.Tpo -c -o libgst1394_la-gst1394probe.lo `test -f 'gst1394probe.c' || echo '$(srcdir)/'`gst1394probe.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgst1394_la-gst1394probe.Tpo $(DEPDIR)/libgst1394_la-gst1394probe.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst1394probe.c' object='libgst1394_la-gst1394probe.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 $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gst1394probe.lo `test -f 'gst1394probe.c' || echo '$(srcdir)/'`gst1394probe.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gst1394probe.lo `test -f 'gst1394probe.c' || echo '$(srcdir)/'`gst1394probe.c
 
 libgst1394_la-gstdv1394src.lo: gstdv1394src.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gstdv1394src.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gstdv1394src.Tpo -c -o libgst1394_la-gstdv1394src.lo `test -f 'gstdv1394src.c' || echo '$(srcdir)/'`gstdv1394src.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gstdv1394src.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gstdv1394src.Tpo -c -o libgst1394_la-gstdv1394src.lo `test -f 'gstdv1394src.c' || echo '$(srcdir)/'`gstdv1394src.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgst1394_la-gstdv1394src.Tpo $(DEPDIR)/libgst1394_la-gstdv1394src.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdv1394src.c' object='libgst1394_la-gstdv1394src.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 $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gstdv1394src.lo `test -f 'gstdv1394src.c' || echo '$(srcdir)/'`gstdv1394src.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gstdv1394src.lo `test -f 'gstdv1394src.c' || echo '$(srcdir)/'`gstdv1394src.c
 
 libgst1394_la-gsthdv1394src.lo: gsthdv1394src.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gsthdv1394src.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gsthdv1394src.Tpo -c -o libgst1394_la-gsthdv1394src.lo `test -f 'gsthdv1394src.c' || echo '$(srcdir)/'`gsthdv1394src.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gsthdv1394src.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gsthdv1394src.Tpo -c -o libgst1394_la-gsthdv1394src.lo `test -f 'gsthdv1394src.c' || echo '$(srcdir)/'`gsthdv1394src.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgst1394_la-gsthdv1394src.Tpo $(DEPDIR)/libgst1394_la-gsthdv1394src.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsthdv1394src.c' object='libgst1394_la-gsthdv1394src.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 $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gsthdv1394src.lo `test -f 'gsthdv1394src.c' || echo '$(srcdir)/'`gsthdv1394src.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gsthdv1394src.lo `test -f 'gsthdv1394src.c' || echo '$(srcdir)/'`gsthdv1394src.c
 
 libgst1394_la-gst1394clock.lo: gst1394clock.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gst1394clock.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gst1394clock.Tpo -c -o libgst1394_la-gst1394clock.lo `test -f 'gst1394clock.c' || echo '$(srcdir)/'`gst1394clock.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gst1394clock.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gst1394clock.Tpo -c -o libgst1394_la-gst1394clock.lo `test -f 'gst1394clock.c' || echo '$(srcdir)/'`gst1394clock.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgst1394_la-gst1394clock.Tpo $(DEPDIR)/libgst1394_la-gst1394clock.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst1394clock.c' object='libgst1394_la-gst1394clock.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 $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gst1394clock.lo `test -f 'gst1394clock.c' || echo '$(srcdir)/'`gst1394clock.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gst1394clock.lo `test -f 'gst1394clock.c' || echo '$(srcdir)/'`gst1394clock.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/raw1394/gst1394clock.c b/ext/raw1394/gst1394clock.c
index 977ba00b3..9a3411dd4 100644
--- a/ext/raw1394/gst1394clock.c
+++ b/ext/raw1394/gst1394clock.c
@@ -100,6 +100,9 @@ gst_1394_clock_new (const gchar * name)
       GST_1394_CLOCK (g_object_new (GST_TYPE_1394_CLOCK, "name", name,
           "clock-type", GST_CLOCK_TYPE_OTHER, NULL));
 
+  /* Clear floating flag */
+  gst_object_ref_sink (_1394clock);
+
   return _1394clock;
 }
 
diff --git a/ext/raw1394/meson.build b/ext/raw1394/meson.build
new file mode 100644
index 000000000..27a6a5ab2
--- /dev/null
+++ b/ext/raw1394/meson.build
@@ -0,0 +1,22 @@
+raw1394_dep = dependency('libraw1394', version: '>= 2.0.0', required: false)
+avc1394_dep = dependency('libavc1394', version: '>= 0.5.4', required: false)
+iec61883_dep = dependency('libiec61883', version: '>= 1.0.0', required: false)
+
+have_1394 = false
+if raw1394_dep.found() and iec61883_dep.found() and avc1394_dep.found()
+  if cc.has_function('avc1394_send_command', dependencies: avc1394_dep)
+    if cc.has_function('rom1394_free_directory', dependencies: avc1394_dep)
+      have_1394 = true
+    endif
+  endif
+endif
+
+if have_1394
+  library('gst1394',
+    'gst1394.c', 'gst1394probe.c', 'gstdv1394src.c', 'gsthdv1394src.c', 'gst1394clock.c',
+    c_args : gst_plugins_good_args + ['-DHAVE_LIBIEC61883'],
+    include_directories : [configinc, libsinc],
+    dependencies : [gstvideo_dep, gstbase_dep, raw1394_dep, avc1394_dep, iec61883_dep],
+    install : true,
+    install_dir : plugins_install_dir)
+endif
diff --git a/ext/shout2/Makefile.am b/ext/shout2/Makefile.am
index 45e12c9db..67705fb93 100644
--- a/ext/shout2/Makefile.am
+++ b/ext/shout2/Makefile.am
@@ -4,6 +4,5 @@ libgstshout2_la_SOURCES = gstshout2.c
 libgstshout2_la_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(SHOUT2_CFLAGS)
 libgstshout2_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(SHOUT2_LIBS)
 libgstshout2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstshout2_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstshout2.h
diff --git a/ext/shout2/Makefile.in b/ext/shout2/Makefile.in
index e724df709..b9ff22589 100644
--- a/ext/shout2/Makefile.in
+++ b/ext/shout2/Makefile.in
@@ -172,9 +172,9 @@ 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_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
@@ -291,6 +291,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -314,6 +315,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -329,6 +332,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -351,10 +356,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -369,6 +381,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -386,6 +399,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -398,6 +413,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -416,6 +433,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -459,9 +479,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -475,11 +506,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -575,7 +611,6 @@ libgstshout2_la_SOURCES = gstshout2.c
 libgstshout2_la_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(SHOUT2_CFLAGS)
 libgstshout2_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(SHOUT2_LIBS)
 libgstshout2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstshout2_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstshout2.h
 all: all-am
 
@@ -682,11 +717,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstshout2_la-gstshout2.lo: gstshout2.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshout2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshout2_la_CFLAGS) $(CFLAGS) -MT libgstshout2_la-gstshout2.lo -MD -MP -MF $(DEPDIR)/libgstshout2_la-gstshout2.Tpo -c -o libgstshout2_la-gstshout2.lo `test -f 'gstshout2.c' || echo '$(srcdir)/'`gstshout2.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshout2_la_CFLAGS) $(CFLAGS) -MT libgstshout2_la-gstshout2.lo -MD -MP -MF $(DEPDIR)/libgstshout2_la-gstshout2.Tpo -c -o libgstshout2_la-gstshout2.lo `test -f 'gstshout2.c' || echo '$(srcdir)/'`gstshout2.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstshout2_la-gstshout2.Tpo $(DEPDIR)/libgstshout2_la-gstshout2.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstshout2.c' object='libgstshout2_la-gstshout2.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 $(libgstshout2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshout2_la_CFLAGS) $(CFLAGS) -c -o libgstshout2_la-gstshout2.lo `test -f 'gstshout2.c' || echo '$(srcdir)/'`gstshout2.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshout2_la_CFLAGS) $(CFLAGS) -c -o libgstshout2_la-gstshout2.lo `test -f 'gstshout2.c' || echo '$(srcdir)/'`gstshout2.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/shout2/gstshout2.c b/ext/shout2/gstshout2.c
index 867a134b1..3d3f652dd 100644
--- a/ext/shout2/gstshout2.c
+++ b/ext/shout2/gstshout2.c
@@ -70,7 +70,10 @@ enum
   ARG_PROTOCOL,                 /* Protocol to connect with */
 
   ARG_MOUNT,                    /* mountpoint of stream (icecast only) */
-  ARG_URL                       /* the stream's homepage URL */
+  ARG_URL,                      /* the stream's homepage URL */
+
+  ARG_TIMEOUT                   /* The max amount of time to wait for
+                                   network activity */
 };
 
 #define DEFAULT_IP           "127.0.0.1"
@@ -84,6 +87,7 @@ enum
 #define DEFAULT_MOUNT        ""
 #define DEFAULT_URL          ""
 #define DEFAULT_PROTOCOL     SHOUT2SEND_PROTOCOL_HTTP
+#define DEFAULT_TIMEOUT      10000
 
 #ifdef SHOUT_FORMAT_WEBM
 #define WEBM_CAPS "; video/webm; audio/webm"
@@ -207,6 +211,12 @@ gst_shout2send_class_init (GstShout2sendClass * klass)
       g_param_spec_string ("url", "url", "the stream's homepage URL",
           DEFAULT_URL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_TIMEOUT,
+      g_param_spec_uint ("timeout", "timeout",
+          "Max amount of time to wait for network activity, in milliseconds",
+          1, G_MAXUINT, DEFAULT_TIMEOUT,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   /* signals */
   gst_shout2send_signals[SIGNAL_CONNECTION_PROBLEM] =
       g_signal_new ("connection-problem", G_TYPE_FROM_CLASS (klass),
@@ -253,6 +263,7 @@ gst_shout2send_init (GstShout2send * shout2send)
   shout2send->url = g_strdup (DEFAULT_URL);
   shout2send->protocol = DEFAULT_PROTOCOL;
   shout2send->ispublic = DEFAULT_PUBLIC;
+  shout2send->timeout = DEFAULT_TIMEOUT;
 
   shout2send->format = -1;
   shout2send->tags = gst_tag_list_new_empty ();
@@ -491,7 +502,7 @@ gst_shout2send_start (GstBaseSink * basesink)
     goto set_failed;
 
   cur_prop = "username";
-  GST_DEBUG_OBJECT (sink, "setting %s: %s", cur_prop, "source");
+  GST_DEBUG_OBJECT (sink, "setting %s: %s", cur_prop, sink->username);
   if (shout_set_user (sink->conn, sink->username) != SHOUTERR_SUCCESS)
     goto set_failed;
 
@@ -518,20 +529,53 @@ set_failed:
 static GstFlowReturn
 gst_shout2send_connect (GstShout2send * sink)
 {
+  GstFlowReturn fret = GST_FLOW_OK;
+  gint ret;
+  GstClockTime start_ts;
+
   GST_DEBUG_OBJECT (sink, "Connection format is: %d", sink->format);
 
   if (sink->format == -1)
     goto no_caps;
 
+  if (shout_set_nonblocking (sink->conn, 1) != SHOUTERR_SUCCESS)
+    goto could_not_set_nonblocking;
+
   if (shout_set_format (sink->conn, sink->format) != SHOUTERR_SUCCESS)
     goto could_not_set_format;
 
-  if (shout_open (sink->conn) != SHOUTERR_SUCCESS)
+  GST_DEBUG_OBJECT (sink, "connecting");
+
+  start_ts = gst_util_get_timestamp ();
+  ret = shout_open (sink->conn);
+
+  /* wait for connection or timeout */
+  while (ret == SHOUTERR_BUSY) {
+    if (gst_util_get_timestamp () - start_ts > sink->timeout * GST_MSECOND) {
+      goto connection_timeout;
+    }
+    if (gst_poll_wait (sink->timer, 10 * GST_MSECOND) == -1) {
+      GST_LOG_OBJECT (sink, "unlocked");
+
+      fret = gst_base_sink_wait_preroll (GST_BASE_SINK (sink));
+      if (fret != GST_FLOW_OK)
+        goto done;
+    }
+    ret = shout_get_connected (sink->conn);
+  }
+
+  if (ret != SHOUTERR_CONNECTED && ret != SHOUTERR_SUCCESS)
     goto could_not_connect;
 
   GST_DEBUG_OBJECT (sink, "connected to server");
   sink->connected = TRUE;
 
+  /* initialize sending rate monitoring */
+  sink->prev_queuelen = 0;
+  sink->data_sent = 0;
+  sink->stalled = TRUE;
+  sink->datasent_reset_ts = sink->stalled_ts = gst_util_get_timestamp ();
+
   /* let's set metadata */
   if (sink->songmetadata) {
     shout_metadata_t *pmetadata;
@@ -543,7 +587,8 @@ gst_shout2send_connect (GstShout2send * sink)
     shout_metadata_free (pmetadata);
   }
 
-  return GST_FLOW_OK;
+done:
+  return fret;
 
 /* ERRORS */
 no_caps:
@@ -553,6 +598,14 @@ no_caps:
     return GST_FLOW_NOT_NEGOTIATED;
   }
 
+could_not_set_nonblocking:
+  {
+    GST_ELEMENT_ERROR (sink, LIBRARY, SETTINGS, (NULL),
+        ("Error configuring libshout to use non-blocking i/o: %s",
+            shout_get_error (sink->conn)));
+    return GST_FLOW_ERROR;
+  }
+
 could_not_set_format:
   {
     GST_ELEMENT_ERROR (sink, LIBRARY, SETTINGS, (NULL),
@@ -569,6 +622,15 @@ could_not_connect:
         shout_get_errno (sink->conn));
     return GST_FLOW_ERROR;
   }
+
+connection_timeout:
+  {
+    GST_ELEMENT_ERROR (sink, RESOURCE, OPEN_WRITE,
+        (_("Could not connect to server")), ("connection timed out"));
+    g_signal_emit (sink, gst_shout2send_signals[SIGNAL_CONNECTION_PROBLEM], 0,
+        shout_get_errno (sink->conn));
+    return GST_FLOW_ERROR;
+  }
 }
 
 static gboolean
@@ -628,6 +690,8 @@ gst_shout2send_render (GstBaseSink * basesink, GstBuffer * buf)
   gint delay;
   GstFlowReturn fret = GST_FLOW_OK;
   GstMapInfo map;
+  GstClockTime now;
+  ssize_t queuelen;
 
   sink = GST_SHOUT2SEND (basesink);
 
@@ -655,13 +719,54 @@ gst_shout2send_render (GstBaseSink * basesink, GstBuffer * buf)
     GST_LOG_OBJECT (sink, "we're %d msec late", -delay);
   }
 
+  /* accumulate how much data have actually been sent
+   * to the network since the last call to shout_send() */
+  queuelen = shout_queuelen (sink->conn);
+  if (sink->prev_queuelen > 0)
+    sink->data_sent += sink->prev_queuelen - queuelen;
+
   gst_buffer_map (buf, &map, GST_MAP_READ);
-  GST_LOG_OBJECT (sink, "sending %u bytes of data", (guint) map.size);
+
+  /* add map.size instead of re-reading the queue length because
+   * the data may actually be sent immediately */
+  sink->prev_queuelen = queuelen + map.size;
+
+  GST_LOG_OBJECT (sink, "sending %u bytes of data, queue length now is %"
+      G_GUINT64_FORMAT, (guint) map.size, sink->prev_queuelen);
+
   ret = shout_send (sink->conn, map.data, map.size);
+
   gst_buffer_unmap (buf, &map);
   if (ret != SHOUTERR_SUCCESS)
     goto send_error;
 
+  now = gst_util_get_timestamp ();
+  if (now - sink->datasent_reset_ts >= 500 * GST_MSECOND) {
+    guint64 send_rate;
+
+    send_rate = gst_util_uint64_scale (sink->data_sent, GST_SECOND,
+        now - sink->datasent_reset_ts);
+
+    if (send_rate == 0 && !sink->stalled) {
+      sink->stalled = TRUE;
+      sink->stalled_ts = now;
+    } else if (send_rate > 0 && sink->stalled) {
+      sink->stalled = FALSE;
+    }
+
+    sink->data_sent = 0;
+    sink->datasent_reset_ts = now;
+
+    GST_DEBUG_OBJECT (sink, "sending rate is %" G_GUINT64_FORMAT " bps, "
+        "stalled %d, stalled_ts %" GST_TIME_FORMAT, send_rate, sink->stalled,
+        GST_TIME_ARGS (sink->stalled_ts));
+
+    if (sink->stalled && now - sink->stalled_ts >= sink->timeout * GST_MSECOND) {
+      GST_WARNING_OBJECT (sink, "network send queue is stalled for too long");
+      goto network_error;
+    }
+  }
+
 done:
 
   return fret;
@@ -675,6 +780,15 @@ send_error:
         shout_get_errno (sink->conn));
     return GST_FLOW_ERROR;
   }
+
+network_error:
+  {
+    GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, (NULL),
+        ("network timeout reached"));
+    g_signal_emit (sink, gst_shout2send_signals[SIGNAL_CONNECTION_PROBLEM], 0,
+        SHOUTERR_BUSY);
+    return GST_FLOW_ERROR;
+  }
 }
 
 static void
@@ -727,6 +841,9 @@ gst_shout2send_set_property (GObject * object, guint prop_id,
       g_free (shout2send->url);
       shout2send->url = g_strdup (g_value_get_string (value));
       break;
+    case ARG_TIMEOUT:
+      shout2send->timeout = g_value_get_uint (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -775,6 +892,9 @@ gst_shout2send_get_property (GObject * object, guint prop_id,
     case ARG_URL:              /* the stream's homepage URL */
       g_value_set_string (value, shout2send->url);
       break;
+    case ARG_TIMEOUT:
+      g_value_set_uint (value, shout2send->timeout);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -825,5 +945,4 @@ GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
     GST_VERSION_MINOR,
     shout2,
     "Sends data to an icecast server using libshout2",
-    plugin_init,
-    VERSION, "LGPL", "libshout2", "http://www.icecast.org/download/")
+    plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
diff --git a/ext/shout2/gstshout2.h b/ext/shout2/gstshout2.h
index 2222bacf1..408716692 100644
--- a/ext/shout2/gstshout2.h
+++ b/ext/shout2/gstshout2.h
@@ -46,6 +46,12 @@ struct _GstShout2send {
 
   shout_t *conn;
 
+  guint64 prev_queuelen;
+  guint64 data_sent;
+  GstClockTime datasent_reset_ts;
+  gboolean stalled;
+  GstClockTime stalled_ts;
+
   gchar *ip;
   guint port;
   gchar *password;
@@ -60,7 +66,8 @@ struct _GstShout2send {
   gchar *songmetadata;
   gchar *songartist;
   gchar *songtitle;
-  int    format;
+  gint  format;
+  guint timeout;
 
   GstTagList* tags;
 };
diff --git a/ext/soup/Makefile.am b/ext/soup/Makefile.am
index 8b5de4a23..7751594a0 100644
--- a/ext/soup/Makefile.am
+++ b/ext/soup/Makefile.am
@@ -8,6 +8,5 @@ libgstsoup_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \
 	-DSOUP_VERSION_MAX_ALLOWED=SOUP_DEPRECATED_IN_2_48
 libgstsoup_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ $(GST_BASE_LIBS) $(SOUP_LIBS)
 libgstsoup_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstsoup_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstsouphttpsrc.h gstsouphttpclientsink.h gstsouputils.h
diff --git a/ext/soup/Makefile.in b/ext/soup/Makefile.in
index f33e5d970..ec48e78cb 100644
--- a/ext/soup/Makefile.in
+++ b/ext/soup/Makefile.in
@@ -173,10 +173,9 @@ 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 = 
-libgstsoup_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-	$(libgstsoup_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
-	$(CCLD) $(libgstsoup_la_CFLAGS) $(CFLAGS) \
-	$(libgstsoup_la_LDFLAGS) $(LDFLAGS) -o $@
+libgstsoup_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgstsoup_la_CFLAGS) \
+	$(CFLAGS) $(libgstsoup_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
@@ -293,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -316,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -331,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -353,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -371,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -388,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -400,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -418,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -461,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -477,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -581,7 +616,6 @@ libgstsoup_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \
 
 libgstsoup_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ $(GST_BASE_LIBS) $(SOUP_LIBS)
 libgstsoup_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstsoup_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstsouphttpsrc.h gstsouphttpclientsink.h gstsouputils.h
 all: all-am
 
@@ -691,32 +725,32 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstsoup_la-gstsouphttpsrc.lo: gstsouphttpsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsoup_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -MT libgstsoup_la-gstsouphttpsrc.lo -MD -MP -MF $(DEPDIR)/libgstsoup_la-gstsouphttpsrc.Tpo -c -o libgstsoup_la-gstsouphttpsrc.lo `test -f 'gstsouphttpsrc.c' || echo '$(srcdir)/'`gstsouphttpsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -MT libgstsoup_la-gstsouphttpsrc.lo -MD -MP -MF $(DEPDIR)/libgstsoup_la-gstsouphttpsrc.Tpo -c -o libgstsoup_la-gstsouphttpsrc.lo `test -f 'gstsouphttpsrc.c' || echo '$(srcdir)/'`gstsouphttpsrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsoup_la-gstsouphttpsrc.Tpo $(DEPDIR)/libgstsoup_la-gstsouphttpsrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsouphttpsrc.c' object='libgstsoup_la-gstsouphttpsrc.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 $(libgstsoup_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -c -o libgstsoup_la-gstsouphttpsrc.lo `test -f 'gstsouphttpsrc.c' || echo '$(srcdir)/'`gstsouphttpsrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -c -o libgstsoup_la-gstsouphttpsrc.lo `test -f 'gstsouphttpsrc.c' || echo '$(srcdir)/'`gstsouphttpsrc.c
 
 libgstsoup_la-gstsouphttpclientsink.lo: gstsouphttpclientsink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsoup_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -MT libgstsoup_la-gstsouphttpclientsink.lo -MD -MP -MF $(DEPDIR)/libgstsoup_la-gstsouphttpclientsink.Tpo -c -o libgstsoup_la-gstsouphttpclientsink.lo `test -f 'gstsouphttpclientsink.c' || echo '$(srcdir)/'`gstsouphttpclientsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -MT libgstsoup_la-gstsouphttpclientsink.lo -MD -MP -MF $(DEPDIR)/libgstsoup_la-gstsouphttpclientsink.Tpo -c -o libgstsoup_la-gstsouphttpclientsink.lo `test -f 'gstsouphttpclientsink.c' || echo '$(srcdir)/'`gstsouphttpclientsink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsoup_la-gstsouphttpclientsink.Tpo $(DEPDIR)/libgstsoup_la-gstsouphttpclientsink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsouphttpclientsink.c' object='libgstsoup_la-gstsouphttpclientsink.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 $(libgstsoup_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -c -o libgstsoup_la-gstsouphttpclientsink.lo `test -f 'gstsouphttpclientsink.c' || echo '$(srcdir)/'`gstsouphttpclientsink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -c -o libgstsoup_la-gstsouphttpclientsink.lo `test -f 'gstsouphttpclientsink.c' || echo '$(srcdir)/'`gstsouphttpclientsink.c
 
 libgstsoup_la-gstsouputils.lo: gstsouputils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsoup_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -MT libgstsoup_la-gstsouputils.lo -MD -MP -MF $(DEPDIR)/libgstsoup_la-gstsouputils.Tpo -c -o libgstsoup_la-gstsouputils.lo `test -f 'gstsouputils.c' || echo '$(srcdir)/'`gstsouputils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -MT libgstsoup_la-gstsouputils.lo -MD -MP -MF $(DEPDIR)/libgstsoup_la-gstsouputils.Tpo -c -o libgstsoup_la-gstsouputils.lo `test -f 'gstsouputils.c' || echo '$(srcdir)/'`gstsouputils.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsoup_la-gstsouputils.Tpo $(DEPDIR)/libgstsoup_la-gstsouputils.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsouputils.c' object='libgstsoup_la-gstsouputils.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 $(libgstsoup_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -c -o libgstsoup_la-gstsouputils.lo `test -f 'gstsouputils.c' || echo '$(srcdir)/'`gstsouputils.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -c -o libgstsoup_la-gstsouputils.lo `test -f 'gstsouputils.c' || echo '$(srcdir)/'`gstsouputils.c
 
 libgstsoup_la-gstsoup.lo: gstsoup.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsoup_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -MT libgstsoup_la-gstsoup.lo -MD -MP -MF $(DEPDIR)/libgstsoup_la-gstsoup.Tpo -c -o libgstsoup_la-gstsoup.lo `test -f 'gstsoup.c' || echo '$(srcdir)/'`gstsoup.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -MT libgstsoup_la-gstsoup.lo -MD -MP -MF $(DEPDIR)/libgstsoup_la-gstsoup.Tpo -c -o libgstsoup_la-gstsoup.lo `test -f 'gstsoup.c' || echo '$(srcdir)/'`gstsoup.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsoup_la-gstsoup.Tpo $(DEPDIR)/libgstsoup_la-gstsoup.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsoup.c' object='libgstsoup_la-gstsoup.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 $(libgstsoup_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -c -o libgstsoup_la-gstsoup.lo `test -f 'gstsoup.c' || echo '$(srcdir)/'`gstsoup.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsoup_la_CFLAGS) $(CFLAGS) -c -o libgstsoup_la-gstsoup.lo `test -f 'gstsoup.c' || echo '$(srcdir)/'`gstsoup.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c
index 52c1b8182..28642e359 100644
--- a/ext/soup/gstsouphttpsrc.c
+++ b/ext/soup/gstsouphttpsrc.c
@@ -86,6 +86,8 @@
 GST_DEBUG_CATEGORY_STATIC (souphttpsrc_debug);
 #define GST_CAT_DEFAULT souphttpsrc_debug
 
+#define GST_SOUP_SESSION_CONTEXT "gst.soup.session"
+
 static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
@@ -123,7 +125,7 @@ enum
 #define DEFAULT_IRADIO_MODE          TRUE
 #define DEFAULT_SOUP_LOG_LEVEL       SOUP_LOGGER_LOG_HEADERS
 #define DEFAULT_COMPRESS             FALSE
-#define DEFAULT_KEEP_ALIVE           FALSE
+#define DEFAULT_KEEP_ALIVE           TRUE
 #define DEFAULT_SSL_STRICT           TRUE
 #define DEFAULT_SSL_CA_FILE          NULL
 #define DEFAULT_SSL_USE_SYSTEM_CA_FILE TRUE
@@ -152,6 +154,8 @@ static void gst_soup_http_src_get_property (GObject * object, guint prop_id,
 
 static GstStateChangeReturn gst_soup_http_src_change_state (GstElement *
     element, GstStateChange transition);
+static void gst_soup_http_src_set_context (GstElement * element,
+    GstContext * context);
 static GstFlowReturn gst_soup_http_src_create (GstPushSrc * psrc,
     GstBuffer ** outbuf);
 static gboolean gst_soup_http_src_start (GstBaseSrc * bsrc);
@@ -413,6 +417,8 @@ gst_soup_http_src_class_init (GstSoupHTTPSrcClass * klass)
       "Wouter Cloetens <wouter@mind.be>");
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_soup_http_src_change_state);
+  gstelement_class->set_context =
+      GST_DEBUG_FUNCPTR (gst_soup_http_src_set_context);
 
   gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_soup_http_src_start);
   gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_soup_http_src_stop);
@@ -481,9 +487,13 @@ gst_soup_http_src_init (GstSoupHTTPSrc * src)
   src->cookies = NULL;
   src->iradio_mode = DEFAULT_IRADIO_MODE;
   src->session = NULL;
+  src->external_session = NULL;
+  src->forced_external_session = FALSE;
   src->msg = NULL;
   src->timeout = DEFAULT_TIMEOUT;
   src->log_level = DEFAULT_SOUP_LOG_LEVEL;
+  src->compress = DEFAULT_COMPRESS;
+  src->keep_alive = DEFAULT_KEEP_ALIVE;
   src->ssl_strict = DEFAULT_SSL_STRICT;
   src->ssl_use_system_ca_file = DEFAULT_SSL_USE_SYSTEM_CA_FILE;
   src->tls_database = DEFAULT_TLS_DATABASE;
@@ -512,6 +522,11 @@ gst_soup_http_src_dispose (GObject * gobject)
 
   gst_soup_http_src_session_close (src);
 
+  if (src->external_session) {
+    g_object_unref (src->external_session);
+    src->external_session = NULL;
+  }
+
   G_OBJECT_CLASS (parent_class)->dispose (gobject);
 }
 
@@ -898,50 +913,119 @@ gst_soup_http_src_session_open (GstSoupHTTPSrc * src)
   }
 
   if (!src->session) {
-    GST_DEBUG_OBJECT (src, "Creating session");
-    if (src->proxy == NULL) {
-      src->session =
-          soup_session_new_with_options (SOUP_SESSION_USER_AGENT,
-          src->user_agent, SOUP_SESSION_TIMEOUT, src->timeout,
-          SOUP_SESSION_SSL_STRICT, src->ssl_strict,
-          SOUP_SESSION_TLS_INTERACTION, src->tls_interaction, NULL);
+    GstQuery *query;
+    gboolean can_share = (src->timeout == DEFAULT_TIMEOUT)
+        && (src->ssl_strict == DEFAULT_SSL_STRICT)
+        && (src->tls_interaction == NULL) && (src->proxy == NULL)
+        && (src->tls_database == DEFAULT_TLS_DATABASE)
+        && (src->ssl_ca_file == DEFAULT_SSL_CA_FILE)
+        && (src->ssl_use_system_ca_file == DEFAULT_SSL_USE_SYSTEM_CA_FILE);
+
+    query = gst_query_new_context (GST_SOUP_SESSION_CONTEXT);
+    if (gst_pad_peer_query (GST_BASE_SRC_PAD (src), query)) {
+      GstContext *context;
+
+      gst_query_parse_context (query, &context);
+      gst_element_set_context (GST_ELEMENT_CAST (src), context);
     } else {
-      src->session =
-          soup_session_new_with_options (SOUP_SESSION_PROXY_URI, src->proxy,
-          SOUP_SESSION_TIMEOUT, src->timeout,
-          SOUP_SESSION_SSL_STRICT, src->ssl_strict,
-          SOUP_SESSION_USER_AGENT, src->user_agent,
-          SOUP_SESSION_TLS_INTERACTION, src->tls_interaction, NULL);
+      GstMessage *message;
+
+      message =
+          gst_message_new_need_context (GST_OBJECT_CAST (src),
+          GST_SOUP_SESSION_CONTEXT);
+      gst_element_post_message (GST_ELEMENT_CAST (src), message);
+    }
+    gst_query_unref (query);
+
+    GST_OBJECT_LOCK (src);
+    if (src->external_session && (can_share || src->forced_external_session)) {
+      GST_DEBUG_OBJECT (src, "Using external session %p",
+          src->external_session);
+      src->session = g_object_ref (src->external_session);
+      src->session_is_shared = TRUE;
+    } else {
+      GST_DEBUG_OBJECT (src, "Creating session (can share %d)", can_share);
+
+      /* We explicitly set User-Agent to NULL here and overwrite it per message
+       * to be able to have the same session with different User-Agents per
+       * source */
+      if (src->proxy == NULL) {
+        src->session =
+            soup_session_new_with_options (SOUP_SESSION_USER_AGENT,
+            NULL, SOUP_SESSION_TIMEOUT, src->timeout,
+            SOUP_SESSION_SSL_STRICT, src->ssl_strict,
+            SOUP_SESSION_TLS_INTERACTION, src->tls_interaction, NULL);
+      } else {
+        src->session =
+            soup_session_new_with_options (SOUP_SESSION_PROXY_URI, src->proxy,
+            SOUP_SESSION_TIMEOUT, src->timeout,
+            SOUP_SESSION_SSL_STRICT, src->ssl_strict,
+            SOUP_SESSION_USER_AGENT, NULL,
+            SOUP_SESSION_TLS_INTERACTION, src->tls_interaction, NULL);
+      }
+
+      if (src->session) {
+        gst_soup_util_log_setup (src->session, src->log_level,
+            GST_ELEMENT (src));
+        soup_session_add_feature_by_type (src->session,
+            SOUP_TYPE_CONTENT_DECODER);
+        soup_session_add_feature_by_type (src->session, SOUP_TYPE_COOKIE_JAR);
+
+        if (can_share) {
+          GstContext *context;
+          GstMessage *message;
+          GstStructure *s;
+
+          GST_DEBUG_OBJECT (src, "Sharing session %p", src->session);
+          src->session_is_shared = TRUE;
+
+          /* Unset the limit the number of maximum allowed connection */
+          g_object_set (src->session, SOUP_SESSION_MAX_CONNS, G_MAXINT,
+              SOUP_SESSION_MAX_CONNS_PER_HOST, G_MAXINT, NULL);
+
+          context = gst_context_new (GST_SOUP_SESSION_CONTEXT, TRUE);
+          s = gst_context_writable_structure (context);
+          gst_structure_set (s, "session", SOUP_TYPE_SESSION, src->session,
+              "force", G_TYPE_BOOLEAN, FALSE, NULL);
+
+          gst_object_ref (src->session);
+          GST_OBJECT_UNLOCK (src);
+          gst_element_set_context (GST_ELEMENT_CAST (src), context);
+          message =
+              gst_message_new_have_context (GST_OBJECT_CAST (src), context);
+          gst_element_post_message (GST_ELEMENT_CAST (src), message);
+          GST_OBJECT_LOCK (src);
+          gst_object_unref (src->session);
+        } else {
+          src->session_is_shared = FALSE;
+        }
+      }
     }
 
     if (!src->session) {
       GST_ELEMENT_ERROR (src, LIBRARY, INIT,
-          (NULL), ("Failed to create async session"));
+          (NULL), ("Failed to create session"));
+      GST_OBJECT_UNLOCK (src);
       return FALSE;
     }
 
     g_signal_connect (src->session, "authenticate",
         G_CALLBACK (gst_soup_http_src_authenticate_cb), src);
 
-    /* Set up logging */
-    gst_soup_util_log_setup (src->session, src->log_level, GST_ELEMENT (src));
-    if (src->tls_database)
-      g_object_set (src->session, "tls-database", src->tls_database, NULL);
-    else if (src->ssl_ca_file)
-      g_object_set (src->session, "ssl-ca-file", src->ssl_ca_file, NULL);
-    else
-      g_object_set (src->session, "ssl-use-system-ca-file",
-          src->ssl_use_system_ca_file, NULL);
+    if (!src->session_is_shared) {
+      if (src->tls_database)
+        g_object_set (src->session, "tls-database", src->tls_database, NULL);
+      else if (src->ssl_ca_file)
+        g_object_set (src->session, "ssl-ca-file", src->ssl_ca_file, NULL);
+      else
+        g_object_set (src->session, "ssl-use-system-ca-file",
+            src->ssl_use_system_ca_file, NULL);
+    }
+    GST_OBJECT_UNLOCK (src);
   } else {
     GST_DEBUG_OBJECT (src, "Re-using session");
   }
 
-  if (src->compress)
-    soup_session_add_feature_by_type (src->session, SOUP_TYPE_CONTENT_DECODER);
-  else
-    soup_session_remove_feature_by_type (src->session,
-        SOUP_TYPE_CONTENT_DECODER);
-
   return TRUE;
 }
 
@@ -958,10 +1042,14 @@ gst_soup_http_src_session_close (GstSoupHTTPSrc * src)
   }
 
   if (src->session) {
-    soup_session_abort (src->session);
+    if (!src->session_is_shared)
+      soup_session_abort (src->session);
+    g_signal_handlers_disconnect_by_func (src->session,
+        G_CALLBACK (gst_soup_http_src_authenticate_cb), src);
     g_object_unref (src->session);
     src->session = NULL;
   }
+
   g_mutex_unlock (&src->mutex);
 }
 
@@ -969,6 +1057,10 @@ static void
 gst_soup_http_src_authenticate_cb (SoupSession * session, SoupMessage * msg,
     SoupAuth * auth, gboolean retrying, GstSoupHTTPSrc * src)
 {
+  /* Might be from another user of the shared session */
+  if (!GST_IS_SOUP_HTTP_SRC (src) || msg != src->msg)
+    return;
+
   if (!retrying) {
     /* First time authentication only, if we fail and are called again with retry true fall through */
     if (msg->status_code == SOUP_STATUS_UNAUTHORIZED) {
@@ -1038,16 +1130,9 @@ gst_soup_http_src_got_headers (GstSoupHTTPSrc * src, SoupMessage * msg)
     return GST_FLOW_OK;
   }
 
-  if (msg->status_code == SOUP_STATUS_UNAUTHORIZED) {
-    /* force an error */
-    return gst_soup_http_src_parse_status (msg, src);
-  }
-
-  src->got_headers = TRUE;
-  g_cond_broadcast (&src->have_headers_cond);
-
   http_headers = gst_structure_new_empty ("http-headers");
-  gst_structure_set (http_headers, "uri", G_TYPE_STRING, src->location, NULL);
+  gst_structure_set (http_headers, "uri", G_TYPE_STRING, src->location,
+      "http-status-code", G_TYPE_UINT, msg->status_code, NULL);
   if (src->redirection_uri)
     gst_structure_set (http_headers, "redirection-uri", G_TYPE_STRING,
         src->redirection_uri, NULL);
@@ -1064,6 +1149,19 @@ gst_soup_http_src_got_headers (GstSoupHTTPSrc * src, SoupMessage * msg)
       headers, NULL);
   gst_structure_free (headers);
 
+  gst_element_post_message (GST_ELEMENT_CAST (src),
+      gst_message_new_element (GST_OBJECT_CAST (src),
+          gst_structure_copy (http_headers)));
+
+  if (msg->status_code == SOUP_STATUS_UNAUTHORIZED) {
+    /* force an error */
+    gst_structure_free (http_headers);
+    return gst_soup_http_src_parse_status (msg, src);
+  }
+
+  src->got_headers = TRUE;
+  g_cond_broadcast (&src->have_headers_cond);
+
   http_headers_event =
       gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM_STICKY, http_headers);
   gst_event_replace (&src->http_headers_event, http_headers_event);
@@ -1362,6 +1460,29 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src, const gchar * method)
         ("Error parsing URL."), ("URL: %s", src->location));
     return FALSE;
   }
+
+  /* Duplicating the defaults of libsoup here. We don't want to set a
+   * User-Agent in the session as each source might have its own User-Agent
+   * set */
+  if (!src->user_agent || !*src->user_agent) {
+    gchar *user_agent =
+        g_strdup_printf ("libsoup/%u.%u.%u", soup_get_major_version (),
+        soup_get_minor_version (), soup_get_micro_version ());
+    soup_message_headers_append (src->msg->request_headers, "User-Agent",
+        user_agent);
+    g_free (user_agent);
+  } else if (g_str_has_suffix (src->user_agent, " ")) {
+    gchar *user_agent = g_strdup_printf ("%slibsoup/%u.%u.%u", src->user_agent,
+        soup_get_major_version (),
+        soup_get_minor_version (), soup_get_micro_version ());
+    soup_message_headers_append (src->msg->request_headers, "User-Agent",
+        user_agent);
+    g_free (user_agent);
+  } else {
+    soup_message_headers_append (src->msg->request_headers, "User-Agent",
+        src->user_agent);
+  }
+
   if (!src->keep_alive) {
     soup_message_headers_append (src->msg->request_headers, "Connection",
         "close");
@@ -1379,6 +1500,9 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src, const gchar * method)
     }
   }
 
+  if (!src->compress)
+    soup_message_disable_feature (src->msg, SOUP_TYPE_CONTENT_DECODER);
+
   soup_message_set_flags (src->msg, SOUP_MESSAGE_OVERWRITE_CHUNKS |
       (src->automatic_redirect ? 0 : SOUP_MESSAGE_NO_REDIRECT));
 
@@ -1711,6 +1835,13 @@ done:
       goto retry;
     }
   }
+
+  if (ret == GST_FLOW_FLUSHING) {
+    g_mutex_lock (&src->mutex);
+    src->retry_count = 0;
+    g_mutex_unlock (&src->mutex);
+  }
+
   return ret;
 }
 
@@ -1731,7 +1862,7 @@ gst_soup_http_src_stop (GstBaseSrc * bsrc)
 
   src = GST_SOUP_HTTP_SRC (bsrc);
   GST_DEBUG_OBJECT (src, "stop()");
-  if (src->keep_alive && !src->msg)
+  if (src->keep_alive && !src->msg && !src->session_is_shared)
     gst_soup_http_src_cancel_message (src);
   else
     gst_soup_http_src_session_close (src);
@@ -1761,6 +1892,33 @@ gst_soup_http_src_change_state (GstElement * element, GstStateChange transition)
   return ret;
 }
 
+static void
+gst_soup_http_src_set_context (GstElement * element, GstContext * context)
+{
+  GstSoupHTTPSrc *src = GST_SOUP_HTTP_SRC (element);
+
+  if (g_strcmp0 (gst_context_get_context_type (context),
+          GST_SOUP_SESSION_CONTEXT) == 0) {
+    const GstStructure *s = gst_context_get_structure (context);
+
+    GST_OBJECT_LOCK (src);
+    if (src->external_session)
+      g_object_unref (src->external_session);
+    src->external_session = NULL;
+    gst_structure_get (s, "session", SOUP_TYPE_SESSION, &src->external_session,
+        NULL);
+    src->forced_external_session = FALSE;
+    gst_structure_get (s, "force", G_TYPE_BOOLEAN,
+        &src->forced_external_session, NULL);
+
+    GST_DEBUG_OBJECT (src, "Setting external session %p (force: %d)",
+        src->external_session, src->forced_external_session);
+    GST_OBJECT_UNLOCK (src);
+  }
+
+  GST_ELEMENT_CLASS (parent_class)->set_context (element, context);
+}
+
 /* Interrupt a blocking request. */
 static gboolean
 gst_soup_http_src_unlock (GstBaseSrc * bsrc)
@@ -1964,7 +2122,7 @@ gst_soup_http_src_set_proxy (GstSoupHTTPSrc * src, const gchar * uri)
   if (uri == NULL || *uri == '\0')
     return TRUE;
 
-  if (g_str_has_prefix (uri, "http://")) {
+  if (g_strstr_len (uri, -1, "://")) {
     src->proxy = soup_uri_new (uri);
   } else {
     gchar *new_uri = g_strconcat ("http://", uri, NULL);
diff --git a/ext/soup/gstsouphttpsrc.h b/ext/soup/gstsouphttpsrc.h
index f140f80c5..06851ddfa 100644
--- a/ext/soup/gstsouphttpsrc.h
+++ b/ext/soup/gstsouphttpsrc.h
@@ -60,6 +60,9 @@ struct _GstSoupHTTPSrc {
   gchar *proxy_pw;             /* Authentication user password for proxy URI. */
   gchar **cookies;             /* HTTP request cookies. */
   SoupSession *session;        /* Async context. */
+  gboolean session_is_shared;
+  SoupSession *external_session; /* Shared via GstContext */
+  gboolean forced_external_session; /* If session was explicitly set from application */
   SoupMessage *msg;            /* Request message. */
   gint retry_count;            /* Number of retries since we received data */
   gint max_retries;            /* Maximum number of retries */
diff --git a/ext/speex/Makefile.am b/ext/speex/Makefile.am
index a6c8c4a11..930f594e9 100644
--- a/ext/speex/Makefile.am
+++ b/ext/speex/Makefile.am
@@ -13,6 +13,5 @@ libgstspeex_la_LIBADD = \
 	$(GST_LIBS) \
 	$(SPEEX_LIBS)
 libgstspeex_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM)
-libgstspeex_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstspeexenc.h gstspeexdec.h 
diff --git a/ext/speex/Makefile.in b/ext/speex/Makefile.in
index 11995319e..8227d930b 100644
--- a/ext/speex/Makefile.in
+++ b/ext/speex/Makefile.in
@@ -174,9 +174,9 @@ 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_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
@@ -293,6 +293,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -316,6 +317,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -331,6 +334,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -353,10 +358,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -371,6 +383,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -388,6 +401,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -400,6 +415,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -418,6 +435,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -461,9 +481,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -477,11 +508,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -588,7 +624,6 @@ libgstspeex_la_LIBADD = \
 	$(SPEEX_LIBS)
 
 libgstspeex_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM)
-libgstspeex_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstspeexenc.h gstspeexdec.h 
 all: all-am
 
@@ -697,25 +732,25 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstspeex_la-gstspeex.lo: gstspeex.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -MT libgstspeex_la-gstspeex.lo -MD -MP -MF $(DEPDIR)/libgstspeex_la-gstspeex.Tpo -c -o libgstspeex_la-gstspeex.lo `test -f 'gstspeex.c' || echo '$(srcdir)/'`gstspeex.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -MT libgstspeex_la-gstspeex.lo -MD -MP -MF $(DEPDIR)/libgstspeex_la-gstspeex.Tpo -c -o libgstspeex_la-gstspeex.lo `test -f 'gstspeex.c' || echo '$(srcdir)/'`gstspeex.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstspeex_la-gstspeex.Tpo $(DEPDIR)/libgstspeex_la-gstspeex.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstspeex.c' object='libgstspeex_la-gstspeex.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 $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -c -o libgstspeex_la-gstspeex.lo `test -f 'gstspeex.c' || echo '$(srcdir)/'`gstspeex.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -c -o libgstspeex_la-gstspeex.lo `test -f 'gstspeex.c' || echo '$(srcdir)/'`gstspeex.c
 
 libgstspeex_la-gstspeexdec.lo: gstspeexdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -MT libgstspeex_la-gstspeexdec.lo -MD -MP -MF $(DEPDIR)/libgstspeex_la-gstspeexdec.Tpo -c -o libgstspeex_la-gstspeexdec.lo `test -f 'gstspeexdec.c' || echo '$(srcdir)/'`gstspeexdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -MT libgstspeex_la-gstspeexdec.lo -MD -MP -MF $(DEPDIR)/libgstspeex_la-gstspeexdec.Tpo -c -o libgstspeex_la-gstspeexdec.lo `test -f 'gstspeexdec.c' || echo '$(srcdir)/'`gstspeexdec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstspeex_la-gstspeexdec.Tpo $(DEPDIR)/libgstspeex_la-gstspeexdec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstspeexdec.c' object='libgstspeex_la-gstspeexdec.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 $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -c -o libgstspeex_la-gstspeexdec.lo `test -f 'gstspeexdec.c' || echo '$(srcdir)/'`gstspeexdec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -c -o libgstspeex_la-gstspeexdec.lo `test -f 'gstspeexdec.c' || echo '$(srcdir)/'`gstspeexdec.c
 
 libgstspeex_la-gstspeexenc.lo: gstspeexenc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -MT libgstspeex_la-gstspeexenc.lo -MD -MP -MF $(DEPDIR)/libgstspeex_la-gstspeexenc.Tpo -c -o libgstspeex_la-gstspeexenc.lo `test -f 'gstspeexenc.c' || echo '$(srcdir)/'`gstspeexenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -MT libgstspeex_la-gstspeexenc.lo -MD -MP -MF $(DEPDIR)/libgstspeex_la-gstspeexenc.Tpo -c -o libgstspeex_la-gstspeexenc.lo `test -f 'gstspeexenc.c' || echo '$(srcdir)/'`gstspeexenc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstspeex_la-gstspeexenc.Tpo $(DEPDIR)/libgstspeex_la-gstspeexenc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstspeexenc.c' object='libgstspeex_la-gstspeexenc.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 $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -c -o libgstspeex_la-gstspeexenc.lo `test -f 'gstspeexenc.c' || echo '$(srcdir)/'`gstspeexenc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -c -o libgstspeex_la-gstspeexenc.lo `test -f 'gstspeexenc.c' || echo '$(srcdir)/'`gstspeexenc.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/taglib/Makefile.am b/ext/taglib/Makefile.am
index d959c0a88..515b342b9 100644
--- a/ext/taglib/Makefile.am
+++ b/ext/taglib/Makefile.am
@@ -14,6 +14,5 @@ libgsttaglib_la_LIBADD = \
 	$(GST_LIBS) \
 	$(TAGLIB_LIBS)
 libgsttaglib_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgsttaglib_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstid3v2mux.h gstapev2mux.h
diff --git a/ext/taglib/Makefile.in b/ext/taglib/Makefile.in
index 640fe838c..c3de83517 100644
--- a/ext/taglib/Makefile.in
+++ b/ext/taglib/Makefile.in
@@ -173,8 +173,8 @@ 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) \
+	$(AM_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@)
@@ -310,6 +310,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -333,6 +334,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -348,6 +351,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -370,10 +375,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -388,6 +400,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -405,6 +418,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -417,6 +432,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -435,6 +452,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -478,9 +498,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -494,11 +525,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -607,7 +643,6 @@ libgsttaglib_la_LIBADD = \
 	$(TAGLIB_LIBS)
 
 libgsttaglib_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgsttaglib_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstid3v2mux.h gstapev2mux.h
 all: all-am
 
@@ -716,11 +751,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgsttaglib_la-gsttaglibplugin.lo: gsttaglibplugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CFLAGS) $(CFLAGS) -MT libgsttaglib_la-gsttaglibplugin.lo -MD -MP -MF $(DEPDIR)/libgsttaglib_la-gsttaglibplugin.Tpo -c -o libgsttaglib_la-gsttaglibplugin.lo `test -f 'gsttaglibplugin.c' || echo '$(srcdir)/'`gsttaglibplugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CFLAGS) $(CFLAGS) -MT libgsttaglib_la-gsttaglibplugin.lo -MD -MP -MF $(DEPDIR)/libgsttaglib_la-gsttaglibplugin.Tpo -c -o libgsttaglib_la-gsttaglibplugin.lo `test -f 'gsttaglibplugin.c' || echo '$(srcdir)/'`gsttaglibplugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsttaglib_la-gsttaglibplugin.Tpo $(DEPDIR)/libgsttaglib_la-gsttaglibplugin.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttaglibplugin.c' object='libgsttaglib_la-gsttaglibplugin.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 $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CFLAGS) $(CFLAGS) -c -o libgsttaglib_la-gsttaglibplugin.lo `test -f 'gsttaglibplugin.c' || echo '$(srcdir)/'`gsttaglibplugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CFLAGS) $(CFLAGS) -c -o libgsttaglib_la-gsttaglibplugin.lo `test -f 'gsttaglibplugin.c' || echo '$(srcdir)/'`gsttaglibplugin.c
 
 .cc.o:
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -747,18 +782,18 @@ libgsttaglib_la-gsttaglibplugin.lo: gsttaglibplugin.c
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
 
 libgsttaglib_la-gstid3v2mux.lo: gstid3v2mux.cc
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -MT libgsttaglib_la-gstid3v2mux.lo -MD -MP -MF $(DEPDIR)/libgsttaglib_la-gstid3v2mux.Tpo -c -o libgsttaglib_la-gstid3v2mux.lo `test -f 'gstid3v2mux.cc' || echo '$(srcdir)/'`gstid3v2mux.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -MT libgsttaglib_la-gstid3v2mux.lo -MD -MP -MF $(DEPDIR)/libgsttaglib_la-gstid3v2mux.Tpo -c -o libgsttaglib_la-gstid3v2mux.lo `test -f 'gstid3v2mux.cc' || echo '$(srcdir)/'`gstid3v2mux.cc
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsttaglib_la-gstid3v2mux.Tpo $(DEPDIR)/libgsttaglib_la-gstid3v2mux.Plo
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gstid3v2mux.cc' object='libgsttaglib_la-gstid3v2mux.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -c -o libgsttaglib_la-gstid3v2mux.lo `test -f 'gstid3v2mux.cc' || echo '$(srcdir)/'`gstid3v2mux.cc
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -c -o libgsttaglib_la-gstid3v2mux.lo `test -f 'gstid3v2mux.cc' || echo '$(srcdir)/'`gstid3v2mux.cc
 
 libgsttaglib_la-gstapev2mux.lo: gstapev2mux.cc
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -MT libgsttaglib_la-gstapev2mux.lo -MD -MP -MF $(DEPDIR)/libgsttaglib_la-gstapev2mux.Tpo -c -o libgsttaglib_la-gstapev2mux.lo `test -f 'gstapev2mux.cc' || echo '$(srcdir)/'`gstapev2mux.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -MT libgsttaglib_la-gstapev2mux.lo -MD -MP -MF $(DEPDIR)/libgsttaglib_la-gstapev2mux.Tpo -c -o libgsttaglib_la-gstapev2mux.lo `test -f 'gstapev2mux.cc' || echo '$(srcdir)/'`gstapev2mux.cc
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsttaglib_la-gstapev2mux.Tpo $(DEPDIR)/libgsttaglib_la-gstapev2mux.Plo
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gstapev2mux.cc' object='libgsttaglib_la-gstapev2mux.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -c -o libgsttaglib_la-gstapev2mux.lo `test -f 'gstapev2mux.cc' || echo '$(srcdir)/'`gstapev2mux.cc
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -c -o libgsttaglib_la-gstapev2mux.lo `test -f 'gstapev2mux.cc' || echo '$(srcdir)/'`gstapev2mux.cc
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/taglib/meson.build b/ext/taglib/meson.build
index c0b6a50fc..241f9b5db 100644
--- a/ext/taglib/meson.build
+++ b/ext/taglib/meson.build
@@ -6,10 +6,20 @@ taglib_sources = [
 
 taglib_dep = dependency('taglib', version : '>= 1.5', required : false)
 
-if taglib_dep.found() and add_languages('cpp')
+if taglib_dep.found() and add_languages('cpp', required : false)
+  extra_args = []
+  cxx = meson.get_compiler('cpp')
+  if cxx.has_argument('-fvisibility=hidden')
+    extra_args += ['-fvisibility=hidden']
+  endif
+  if cxx.has_argument('-fno-strict-aliasing')
+    extra_args += ['-fno-strict-aliasing']
+  endif
+
   gsttaglib = library('gsttaglib',
     taglib_sources,
     c_args : gst_plugins_good_args + ['-DGST_USE_UNSTABLE_API'],
+    cpp_args : gst_plugins_good_args + ['-DGST_USE_UNSTABLE_API'] + extra_args,
     include_directories : [configinc, libsinc],
     dependencies : [gsttag_dep, taglib_dep],
     install : true,
diff --git a/ext/twolame/Makefile.am b/ext/twolame/Makefile.am
new file mode 100644
index 000000000..362ee20f6
--- /dev/null
+++ b/ext/twolame/Makefile.am
@@ -0,0 +1,11 @@
+plugin_LTLIBRARIES = libgsttwolame.la
+
+libgsttwolame_la_SOURCES = gsttwolamemp2enc.c
+libgsttwolame_la_CFLAGS = \
+	$(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(TWOLAME_CFLAGS)
+libgsttwolame_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
+	-lgstaudio-@GST_API_VERSION@ -lgstpbutils-@GST_API_VERSION@ \
+	$(GST_LIBS) $(TWOLAME_LIBS)
+libgsttwolame_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+
+noinst_HEADERS = gsttwolamemp2enc.h
diff --git a/ext/twolame/Makefile.in b/ext/twolame/Makefile.in
new file mode 100644
index 000000000..9d9a52dd4
--- /dev/null
+++ b/ext/twolame/Makefile.in
@@ -0,0 +1,949 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 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 = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+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 = ext/twolame
+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-version.m4 \
+	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.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.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)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
+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 =
+libgsttwolame_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+am_libgsttwolame_la_OBJECTS = libgsttwolame_la-gsttwolamemp2enc.lo
+libgsttwolame_la_OBJECTS = $(am_libgsttwolame_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 = 
+libgsttwolame_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libgsttwolame_la_CFLAGS) $(CFLAGS) \
+	$(libgsttwolame_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 = $(libgsttwolame_la_SOURCES)
+DIST_SOURCES = $(libgsttwolame_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
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+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@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+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@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
+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_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
+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_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
+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_PREFIX = @GST_PREFIX@
+GST_REVISION = @GST_REVISION@
+GST_TOOLS_DIR = @GST_TOOLS_DIR@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
+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_CXX = @HAVE_CXX@
+HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
+HAVE_ROM1394 = @HAVE_ROM1394@
+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@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_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_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
+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@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
+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@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+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@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
+RANLIB = @RANLIB@
+RAW1394_CFLAGS = @RAW1394_CFLAGS@
+RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
+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@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
+USE_NLS = @USE_NLS@
+VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+VALGRIND_LIBS = @VALGRIND_LIBS@
+VALGRIND_PATH = @VALGRIND_PATH@
+VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
+VPX_130_CFLAGS = @VPX_130_CFLAGS@
+VPX_130_LIBS = @VPX_130_LIBS@
+VPX_140_CFLAGS = @VPX_140_CFLAGS@
+VPX_140_LIBS = @VPX_140_LIBS@
+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@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XFIXES_CFLAGS = @XFIXES_CFLAGS@
+XFIXES_LIBS = @XFIXES_LIBS@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XSHM_CFLAGS = @XSHM_CFLAGS@
+XSHM_LIBS = @XSHM_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_LIBS = @X_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@
+ax_pthread_config = @ax_pthread_config@
+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@
+runstatedir = @runstatedir@
+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 = libgsttwolame.la
+libgsttwolame_la_SOURCES = gsttwolamemp2enc.c
+libgsttwolame_la_CFLAGS = \
+	$(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(TWOLAME_CFLAGS)
+
+libgsttwolame_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
+	-lgstaudio-@GST_API_VERSION@ -lgstpbutils-@GST_API_VERSION@ \
+	$(GST_LIBS) $(TWOLAME_LIBS)
+
+libgsttwolame_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+noinst_HEADERS = gsttwolamemp2enc.h
+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 ext/twolame/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu ext/twolame/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}; \
+	}
+
+libgsttwolame.la: $(libgsttwolame_la_OBJECTS) $(libgsttwolame_la_DEPENDENCIES) $(EXTRA_libgsttwolame_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgsttwolame_la_LINK) -rpath $(plugindir) $(libgsttwolame_la_OBJECTS) $(libgsttwolame_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttwolame_la-gsttwolamemp2enc.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
+
+libgsttwolame_la-gsttwolamemp2enc.lo: gsttwolamemp2enc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttwolame_la_CFLAGS) $(CFLAGS) -MT libgsttwolame_la-gsttwolamemp2enc.lo -MD -MP -MF $(DEPDIR)/libgsttwolame_la-gsttwolamemp2enc.Tpo -c -o libgsttwolame_la-gsttwolamemp2enc.lo `test -f 'gsttwolamemp2enc.c' || echo '$(srcdir)/'`gsttwolamemp2enc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsttwolame_la-gsttwolamemp2enc.Tpo $(DEPDIR)/libgsttwolame_la-gsttwolamemp2enc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttwolamemp2enc.c' object='libgsttwolame_la-gsttwolamemp2enc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttwolame_la_CFLAGS) $(CFLAGS) -c -o libgsttwolame_la-gsttwolamemp2enc.lo `test -f 'gsttwolamemp2enc.c' || echo '$(srcdir)/'`gsttwolamemp2enc.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
+
+.PRECIOUS: Makefile
+
+
+# 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/ext/twolame/gsttwolamemp2enc.c b/ext/twolame/gsttwolamemp2enc.c
new file mode 100644
index 000000000..31bec6b78
--- /dev/null
+++ b/ext/twolame/gsttwolamemp2enc.c
@@ -0,0 +1,893 @@
+/* GStreamer
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2004> Wim Taymans <wim@fluendo.com>
+ * Copyright (C) <2005> Thomas Vander Stichele <thomas at apestaart dot org>
+ * Copyright (C) <2008> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/*
+ * Based on the lame element.
+ */
+
+/**
+ * SECTION:element-twolame
+ * @see_also: mad, lame
+ *
+ * This element encodes raw integer audio into an MPEG-1 layer 2 (MP2) stream.
+ *
+ * <refsect2>
+ * <title>Example pipelines</title>
+ * |[
+ * gst-launch-1.0 -v audiotestsrc wave=sine num-buffers=100 ! audioconvert ! twolame ! filesink location=sine.mp2
+ * ]| Encode a test sine signal to MP2.
+ * |[
+ * gst-launch-1.0 -v alsasrc ! audioconvert ! twolame bitrate=192 ! filesink location=alsasrc.mp2
+ * ]| Record from a sound card using ALSA and encode to MP2
+ * |[
+ * gst-launch-1.0 -v filesrc location=music.wav ! decodebin ! audioconvert ! audioresample ! twolame bitrate=192 ! id3v2mux ! filesink location=music.mp2
+ * ]| Transcode from a .wav file to MP2 (the id3v2mux element is optional)
+ * |[
+ * gst-launch-1.0 -v cdda://5 ! audioconvert ! twolame bitrate=192 ! filesink location=track5.mp2
+ * ]| Encode Audio CD track 5 to MP2
+ * </refsect2>
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "string.h"
+#include "gsttwolamemp2enc.h"
+#include "gst/gst-i18n-plugin.h"
+
+GST_DEBUG_CATEGORY_STATIC (debug);
+#define GST_CAT_DEFAULT debug
+
+/* TwoLAME can do MPEG-1, MPEG-2 so it has 6 possible
+ * sample rates it supports */
+static GstStaticPadTemplate gst_two_lame_sink_template =
+    GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, "
+        "format = (string) { " GST_AUDIO_NE (F32) ", " GST_AUDIO_NE (S16) " }, "
+        "layout = (string) interleaved, "
+        "rate = (int) { 16000, 22050, 24000, 32000, 44100, 48000 }, "
+        "channels = (int) 1; "
+        "audio/x-raw, "
+        "format = (string) { " GST_AUDIO_NE (F32) ", " GST_AUDIO_NE (S16) " }, "
+        "layout = (string) interleaved, "
+        "rate = (int) { 16000, 22050, 24000, 32000, 44100, 48000 }, "
+        "channels = (int) 2," "channel-mask = (bitmask) 0x3")
+    );
+
+static GstStaticPadTemplate gst_two_lame_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/mpeg, "
+        "mpegversion = (int) 1, "
+        "layer = (int) 2, "
+        "rate = (int) { 16000, 22050, 24000, 32000, 44100, 48000 }, "
+        "channels = (int) [ 1, 2 ]")
+    );
+
+static struct
+{
+  gint mode;
+  gint psymodel;
+  gint bitrate;
+  gint padding;
+  gboolean energy_level_extension;
+  gint emphasis;
+  gboolean error_protection;
+  gboolean copyright;
+  gboolean original;
+  gboolean vbr;
+  gfloat vbr_level;
+  gfloat ath_level;
+  gint vbr_max_bitrate;
+  gboolean quick_mode;
+  gint quick_mode_count;
+} gst_two_lame_default_settings;
+
+/********** Define useful types for non-programmatic interfaces **********/
+#define GST_TYPE_TWO_LAME_MODE (gst_two_lame_mode_get_type())
+static GType
+gst_two_lame_mode_get_type (void)
+{
+  static GType two_lame_mode_type = 0;
+  static const GEnumValue two_lame_modes[] = {
+    {TWOLAME_AUTO_MODE, "Auto", "auto"},
+    {TWOLAME_STEREO, "Stereo", "stereo"},
+    {TWOLAME_JOINT_STEREO, "Joint Stereo", "joint"},
+    {TWOLAME_DUAL_CHANNEL, "Dual Channel", "dual"},
+    {TWOLAME_MONO, "Mono", "mono"},
+    {0, NULL, NULL}
+  };
+
+  if (!two_lame_mode_type) {
+    two_lame_mode_type =
+        g_enum_register_static ("GstTwoLameMode", two_lame_modes);
+  }
+  return two_lame_mode_type;
+}
+
+#define GST_TYPE_TWO_LAME_PADDING (gst_two_lame_padding_get_type())
+static GType
+gst_two_lame_padding_get_type (void)
+{
+  static GType two_lame_padding_type = 0;
+  static const GEnumValue two_lame_padding[] = {
+    {TWOLAME_PAD_NO, "No Padding", "never"},
+    {TWOLAME_PAD_ALL, "Always Pad", "always"},
+    {0, NULL, NULL}
+  };
+
+  if (!two_lame_padding_type) {
+    two_lame_padding_type =
+        g_enum_register_static ("GstTwoLamePadding", two_lame_padding);
+  }
+  return two_lame_padding_type;
+}
+
+#define GST_TYPE_TWO_LAME_EMPHASIS (gst_two_lame_emphasis_get_type())
+static GType
+gst_two_lame_emphasis_get_type (void)
+{
+  static GType two_lame_emphasis_type = 0;
+  static const GEnumValue two_lame_emphasis[] = {
+    {TWOLAME_EMPHASIS_N, "No emphasis", "none"},
+    {TWOLAME_EMPHASIS_5, "50/15 ms", "5"},
+    {TWOLAME_EMPHASIS_C, "CCIT J.17", "ccit"},
+    {0, NULL, NULL}
+  };
+
+  if (!two_lame_emphasis_type) {
+    two_lame_emphasis_type =
+        g_enum_register_static ("GstTwoLameEmphasis", two_lame_emphasis);
+  }
+
+  return two_lame_emphasis_type;
+}
+
+/********** Standard stuff for signals and arguments **********/
+
+enum
+{
+  ARG_0,
+  ARG_MODE,
+  ARG_PSYMODEL,
+  ARG_BITRATE,
+  ARG_PADDING,
+  ARG_ENERGY_LEVEL_EXTENSION,
+  ARG_EMPHASIS,
+  ARG_ERROR_PROTECTION,
+  ARG_COPYRIGHT,
+  ARG_ORIGINAL,
+  ARG_VBR,
+  ARG_VBR_LEVEL,
+  ARG_ATH_LEVEL,
+  ARG_VBR_MAX_BITRATE,
+  ARG_QUICK_MODE,
+  ARG_QUICK_MODE_COUNT
+};
+
+static gboolean gst_two_lame_start (GstAudioEncoder * enc);
+static gboolean gst_two_lame_stop (GstAudioEncoder * enc);
+static gboolean gst_two_lame_set_format (GstAudioEncoder * enc,
+    GstAudioInfo * info);
+static GstFlowReturn gst_two_lame_handle_frame (GstAudioEncoder * enc,
+    GstBuffer * in_buf);
+static void gst_two_lame_flush (GstAudioEncoder * enc);
+
+static void gst_two_lame_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_two_lame_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static gboolean gst_two_lame_setup (GstTwoLame * twolame);
+
+G_DEFINE_TYPE (GstTwoLame, gst_two_lame, GST_TYPE_AUDIO_ENCODER);
+
+static void
+gst_two_lame_release_memory (GstTwoLame * twolame)
+{
+  if (twolame->glopts) {
+    twolame_close (&twolame->glopts);
+    twolame->glopts = NULL;
+  }
+}
+
+static void
+gst_two_lame_finalize (GObject * obj)
+{
+  gst_two_lame_release_memory (GST_TWO_LAME (obj));
+
+  G_OBJECT_CLASS (gst_two_lame_parent_class)->finalize (obj);
+}
+
+static void
+gst_two_lame_class_init (GstTwoLameClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstAudioEncoderClass *gstbase_class;
+
+  gobject_class = (GObjectClass *) klass;
+  gstbase_class = (GstAudioEncoderClass *) klass;
+
+  gobject_class->set_property = gst_two_lame_set_property;
+  gobject_class->get_property = gst_two_lame_get_property;
+  gobject_class->finalize = gst_two_lame_finalize;
+
+  gstbase_class->start = GST_DEBUG_FUNCPTR (gst_two_lame_start);
+  gstbase_class->stop = GST_DEBUG_FUNCPTR (gst_two_lame_stop);
+  gstbase_class->set_format = GST_DEBUG_FUNCPTR (gst_two_lame_set_format);
+  gstbase_class->handle_frame = GST_DEBUG_FUNCPTR (gst_two_lame_handle_frame);
+  gstbase_class->flush = GST_DEBUG_FUNCPTR (gst_two_lame_flush);
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MODE,
+      g_param_spec_enum ("mode", "Mode", "Encoding mode",
+          GST_TYPE_TWO_LAME_MODE, gst_two_lame_default_settings.mode,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_PSYMODEL,
+      g_param_spec_int ("psymodel", "Psychoacoustic Model",
+          "Psychoacoustic model used to encode the audio",
+          -1, 4, gst_two_lame_default_settings.psymodel,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_BITRATE,
+      g_param_spec_int ("bitrate", "Bitrate (kb/s)",
+          "Bitrate in kbit/sec (8, 16, 24, 32, 40, 48, 56, 64, 80, 96, "
+          "112, 128, 144, 160, 192, 224, 256, 320, 384)",
+          8, 384, gst_two_lame_default_settings.bitrate,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_PADDING,
+      g_param_spec_enum ("padding", "Padding", "Padding type",
+          GST_TYPE_TWO_LAME_PADDING, gst_two_lame_default_settings.padding,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass),
+      ARG_ENERGY_LEVEL_EXTENSION,
+      g_param_spec_boolean ("energy-level-extension", "Energy Level Extension",
+          "Write peak PCM level to each frame",
+          gst_two_lame_default_settings.energy_level_extension,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_EMPHASIS,
+      g_param_spec_enum ("emphasis", "Emphasis",
+          "Pre-emphasis to apply to the decoded audio",
+          GST_TYPE_TWO_LAME_EMPHASIS, gst_two_lame_default_settings.emphasis,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_ERROR_PROTECTION,
+      g_param_spec_boolean ("error-protection", "Error protection",
+          "Adds checksum to every frame",
+          gst_two_lame_default_settings.error_protection,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_COPYRIGHT,
+      g_param_spec_boolean ("copyright", "Copyright", "Mark as copyright",
+          gst_two_lame_default_settings.copyright,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_ORIGINAL,
+      g_param_spec_boolean ("original", "Original", "Mark as original",
+          gst_two_lame_default_settings.original,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_VBR,
+      g_param_spec_boolean ("vbr", "VBR", "Enable variable bitrate mode",
+          gst_two_lame_default_settings.vbr,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_VBR_LEVEL,
+      g_param_spec_float ("vbr-level", "VBR Level", "VBR Level",
+          -10.0, 10.0, gst_two_lame_default_settings.vbr_level,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_ATH_LEVEL,
+      g_param_spec_float ("ath-level", "ATH Level", "ATH Level in dB",
+          -G_MAXFLOAT, G_MAXFLOAT, gst_two_lame_default_settings.ath_level,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_VBR_MAX_BITRATE,
+      g_param_spec_int ("vbr-max-bitrate", "VBR max bitrate",
+          "Specify maximum VBR bitrate (0=off, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, "
+          "112, 128, 144, 160, 192, 224, 256, 320, 384)",
+          0, 384, gst_two_lame_default_settings.vbr_max_bitrate,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_QUICK_MODE,
+      g_param_spec_boolean ("quick-mode", "Quick mode",
+          "Calculate Psymodel every frames",
+          gst_two_lame_default_settings.quick_mode,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_QUICK_MODE_COUNT,
+      g_param_spec_int ("quick-mode-count", "Quick mode count",
+          "Calculate Psymodel every n frames",
+          0, G_MAXINT, gst_two_lame_default_settings.quick_mode_count,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_two_lame_src_template);
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_two_lame_sink_template);
+
+  gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
+      "TwoLAME mp2 encoder", "Codec/Encoder/Audio",
+      "High-quality free MP2 encoder",
+      "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
+}
+
+static gboolean
+gst_two_lame_set_format (GstAudioEncoder * enc, GstAudioInfo * info)
+{
+  GstTwoLame *twolame;
+  gint out_samplerate;
+  gint version;
+  GstCaps *othercaps;
+
+  twolame = GST_TWO_LAME (enc);
+
+  /* parameters already parsed for us */
+  twolame->samplerate = GST_AUDIO_INFO_RATE (info);
+  twolame->num_channels = GST_AUDIO_INFO_CHANNELS (info);
+  twolame->float_input = !GST_AUDIO_INFO_IS_INTEGER (info);
+
+  /* but we might be asked to reconfigure, so reset */
+  gst_two_lame_release_memory (twolame);
+
+  GST_DEBUG_OBJECT (twolame, "setting up twolame");
+  if (!gst_two_lame_setup (twolame))
+    goto setup_failed;
+
+  out_samplerate = twolame_get_out_samplerate (twolame->glopts);
+  if (out_samplerate == 0)
+    goto zero_output_rate;
+
+  if (out_samplerate != twolame->samplerate) {
+    GST_WARNING_OBJECT (twolame,
+        "output samplerate %d is different from incoming samplerate %d",
+        out_samplerate, twolame->samplerate);
+  }
+
+  version = twolame_get_version (twolame->glopts);
+  if (version == TWOLAME_MPEG2)
+    version = 2;
+  else
+    version = 1;
+
+  othercaps =
+      gst_caps_new_simple ("audio/mpeg",
+      "mpegversion", G_TYPE_INT, 1,
+      "mpegaudioversion", G_TYPE_INT, version,
+      "layer", G_TYPE_INT, 2,
+      "channels", G_TYPE_INT,
+      twolame->mode == TWOLAME_MONO ? 1 : twolame->num_channels, "rate",
+      G_TYPE_INT, out_samplerate, NULL);
+
+  /* and use these caps */
+  gst_audio_encoder_set_output_format (GST_AUDIO_ENCODER (twolame), othercaps);
+  gst_caps_unref (othercaps);
+
+  /* report needs to base class:
+   * hand one frame at a time, if we are pretty sure what a frame is */
+  if (out_samplerate == twolame->samplerate) {
+    gst_audio_encoder_set_frame_samples_min (enc, 1152);
+    gst_audio_encoder_set_frame_samples_max (enc, 1152);
+    gst_audio_encoder_set_frame_max (enc, 1);
+  }
+
+  return TRUE;
+
+zero_output_rate:
+  {
+    GST_ELEMENT_ERROR (twolame, LIBRARY, SETTINGS, (NULL),
+        ("TwoLAME decided on a zero sample rate"));
+    return FALSE;
+  }
+setup_failed:
+  {
+    GST_ELEMENT_ERROR (twolame, LIBRARY, SETTINGS,
+        (_("Failed to configure TwoLAME encoder. Check your encoding parameters.")), (NULL));
+    return FALSE;
+  }
+}
+
+static void
+gst_two_lame_init (GstTwoLame * twolame)
+{
+  GST_DEBUG_OBJECT (twolame, "starting initialization");
+
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (twolame));
+
+  twolame->mode = gst_two_lame_default_settings.mode;
+  twolame->psymodel = gst_two_lame_default_settings.psymodel;
+  twolame->bitrate = gst_two_lame_default_settings.bitrate;
+  twolame->padding = gst_two_lame_default_settings.padding;
+  twolame->energy_level_extension =
+      gst_two_lame_default_settings.energy_level_extension;
+  twolame->emphasis = gst_two_lame_default_settings.emphasis;
+  twolame->error_protection = gst_two_lame_default_settings.error_protection;
+  twolame->copyright = gst_two_lame_default_settings.copyright;
+  twolame->original = gst_two_lame_default_settings.original;
+  twolame->vbr = gst_two_lame_default_settings.vbr;
+  twolame->vbr_level = gst_two_lame_default_settings.vbr_level;
+  twolame->ath_level = gst_two_lame_default_settings.ath_level;
+  twolame->vbr_max_bitrate = gst_two_lame_default_settings.vbr_max_bitrate;
+  twolame->quick_mode = gst_two_lame_default_settings.quick_mode;
+  twolame->quick_mode_count = gst_two_lame_default_settings.quick_mode_count;
+
+  GST_DEBUG_OBJECT (twolame, "done initializing");
+}
+
+static gboolean
+gst_two_lame_start (GstAudioEncoder * enc)
+{
+  GstTwoLame *twolame = GST_TWO_LAME (enc);
+
+  GST_DEBUG_OBJECT (twolame, "start");
+  return TRUE;
+}
+
+static gboolean
+gst_two_lame_stop (GstAudioEncoder * enc)
+{
+  GstTwoLame *twolame = GST_TWO_LAME (enc);
+
+  GST_DEBUG_OBJECT (twolame, "stop");
+
+  gst_two_lame_release_memory (twolame);
+  return TRUE;
+}
+
+/* <php-emulation-mode>three underscores for ___rate is really really really
+ * private as opposed to one underscore<php-emulation-mode> */
+/* call this MACRO outside of the NULL state so that we have a higher chance
+ * of actually having a pipeline and bus to get the message through */
+
+#define CHECK_AND_FIXUP_BITRATE(obj,param,rate)         		  \
+G_STMT_START {                                                            \
+  gint ___rate = rate;                                                    \
+  gint maxrate = 320;							  \
+  gint multiplier = 64;							  \
+  if (rate <= 64) {							  \
+    maxrate = 64; multiplier = 8;                                         \
+    if ((rate % 8) != 0) ___rate = GST_ROUND_UP_8 (rate); 		  \
+  } else if (rate <= 144) {						  \
+    maxrate = 144; multiplier = 16;                                       \
+    if ((rate % 16) != 0) ___rate = GST_ROUND_UP_16 (rate);               \
+  } else if (rate <= 256) {						  \
+    maxrate = 256; multiplier = 32;                                       \
+    if ((rate % 32) != 0) ___rate = GST_ROUND_UP_32 (rate);               \
+  } else if (rate <= 384) { 						  \
+    maxrate = 384; multiplier = 64;                                       \
+    if ((rate % 64) != 0) ___rate = GST_ROUND_UP_64 (rate);               \
+  }                                                                       \
+  if (___rate != rate) {                                                  \
+    GST_ELEMENT_WARNING (obj, LIBRARY, SETTINGS,			  \
+        (_("The requested bitrate %d kbit/s for property '%s' "           \
+           "is not allowed. "  					          \
+           "The bitrate was changed to %d kbit/s."), rate,		  \
+         param,  ___rate), 					          \
+        ("A bitrate below %d should be a multiple of %d.", 		  \
+            maxrate, multiplier));		  			  \
+    rate = ___rate;                                                       \
+  }                                                                       \
+} G_STMT_END
+
+static void
+gst_two_lame_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstTwoLame *twolame = GST_TWO_LAME (object);
+
+  switch (prop_id) {
+    case ARG_MODE:
+      twolame->mode = g_value_get_enum (value);
+      break;
+    case ARG_PSYMODEL:
+      twolame->psymodel = g_value_get_int (value);
+      break;
+    case ARG_BITRATE:
+      twolame->bitrate = g_value_get_int (value);
+      break;
+    case ARG_PADDING:
+      twolame->padding = g_value_get_enum (value);
+      break;
+    case ARG_ENERGY_LEVEL_EXTENSION:
+      twolame->energy_level_extension = g_value_get_boolean (value);
+      break;
+    case ARG_EMPHASIS:
+      twolame->emphasis = g_value_get_enum (value);
+      break;
+    case ARG_ERROR_PROTECTION:
+      twolame->error_protection = g_value_get_boolean (value);
+      break;
+    case ARG_COPYRIGHT:
+      twolame->copyright = g_value_get_boolean (value);
+      break;
+    case ARG_ORIGINAL:
+      twolame->original = g_value_get_boolean (value);
+      break;
+    case ARG_VBR:
+      twolame->vbr = g_value_get_boolean (value);
+      break;
+    case ARG_VBR_LEVEL:
+      twolame->vbr_level = g_value_get_float (value);
+      break;
+    case ARG_ATH_LEVEL:
+      twolame->ath_level = g_value_get_float (value);
+      break;
+    case ARG_VBR_MAX_BITRATE:
+      twolame->vbr_max_bitrate = g_value_get_int (value);
+      break;
+    case ARG_QUICK_MODE:
+      twolame->quick_mode = g_value_get_boolean (value);
+      break;
+    case ARG_QUICK_MODE_COUNT:
+      twolame->quick_mode_count = g_value_get_int (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_two_lame_get_property (GObject * object, guint prop_id, GValue * value,
+    GParamSpec * pspec)
+{
+  GstTwoLame *twolame = GST_TWO_LAME (object);
+
+  switch (prop_id) {
+    case ARG_MODE:
+      g_value_set_enum (value, twolame->mode);
+      break;
+    case ARG_PSYMODEL:
+      g_value_set_int (value, twolame->psymodel);
+      break;
+    case ARG_BITRATE:
+      g_value_set_int (value, twolame->bitrate);
+      break;
+    case ARG_PADDING:
+      g_value_set_enum (value, twolame->padding);
+      break;
+    case ARG_ENERGY_LEVEL_EXTENSION:
+      g_value_set_boolean (value, twolame->energy_level_extension);
+      break;
+    case ARG_EMPHASIS:
+      g_value_set_enum (value, twolame->emphasis);
+      break;
+    case ARG_ERROR_PROTECTION:
+      g_value_set_boolean (value, twolame->error_protection);
+      break;
+    case ARG_COPYRIGHT:
+      g_value_set_boolean (value, twolame->copyright);
+      break;
+    case ARG_ORIGINAL:
+      g_value_set_boolean (value, twolame->original);
+      break;
+    case ARG_VBR:
+      g_value_set_boolean (value, twolame->vbr);
+      break;
+    case ARG_VBR_LEVEL:
+      g_value_set_float (value, twolame->vbr_level);
+      break;
+    case ARG_ATH_LEVEL:
+      g_value_set_float (value, twolame->ath_level);
+      break;
+    case ARG_VBR_MAX_BITRATE:
+      g_value_set_int (value, twolame->vbr_max_bitrate);
+      break;
+    case ARG_QUICK_MODE:
+      g_value_set_boolean (value, twolame->quick_mode);
+      break;
+    case ARG_QUICK_MODE_COUNT:
+      g_value_set_int (value, twolame->quick_mode_count);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static GstFlowReturn
+gst_two_lame_flush_full (GstTwoLame * lame, gboolean push)
+{
+  GstBuffer *buf;
+  GstMapInfo map;
+  gint size;
+  GstFlowReturn result = GST_FLOW_OK;
+
+  if (!lame->glopts)
+    return GST_FLOW_OK;
+
+  buf = gst_buffer_new_and_alloc (16384);
+  gst_buffer_map (buf, &map, GST_MAP_WRITE);
+  size = twolame_encode_flush (lame->glopts, map.data, 16384);
+  gst_buffer_unmap (buf, &map);
+
+  if (size > 0 && push) {
+    gst_buffer_set_size (buf, size);
+    GST_DEBUG_OBJECT (lame, "pushing final packet of %u bytes", size);
+    result = gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER (lame), buf, -1);
+  } else {
+    GST_DEBUG_OBJECT (lame, "no final packet (size=%d, push=%d)", size, push);
+    gst_buffer_unref (buf);
+    result = GST_FLOW_OK;
+  }
+  return result;
+}
+
+static void
+gst_two_lame_flush (GstAudioEncoder * enc)
+{
+  gst_two_lame_flush_full (GST_TWO_LAME (enc), FALSE);
+}
+
+static GstFlowReturn
+gst_two_lame_handle_frame (GstAudioEncoder * enc, GstBuffer * buf)
+{
+  GstTwoLame *twolame;
+  gint mp3_buffer_size, mp3_size;
+  GstBuffer *mp3_buf;
+  GstFlowReturn result;
+  gint num_samples;
+  GstMapInfo map, mp3_map;
+
+  twolame = GST_TWO_LAME (enc);
+
+  /* squeeze remaining and push */
+  if (G_UNLIKELY (buf == NULL))
+    return gst_two_lame_flush_full (twolame, TRUE);
+
+  gst_buffer_map (buf, &map, GST_MAP_READ);
+
+  if (twolame->float_input)
+    num_samples = map.size / 4;
+  else
+    num_samples = map.size / 2;
+
+  /* allocate space for output */
+  mp3_buffer_size = 1.25 * num_samples + 16384;
+  mp3_buf = gst_buffer_new_and_alloc (mp3_buffer_size);
+  gst_buffer_map (mp3_buf, &mp3_map, GST_MAP_WRITE);
+
+  if (twolame->num_channels == 1) {
+    if (twolame->float_input)
+      mp3_size = twolame_encode_buffer_float32 (twolame->glopts,
+          (float *) map.data,
+          (float *) map.data, num_samples, mp3_map.data, mp3_buffer_size);
+    else
+      mp3_size = twolame_encode_buffer (twolame->glopts,
+          (short int *) map.data,
+          (short int *) map.data, num_samples, mp3_map.data, mp3_buffer_size);
+  } else {
+    if (twolame->float_input)
+      mp3_size = twolame_encode_buffer_float32_interleaved (twolame->glopts,
+          (float *) map.data,
+          num_samples / twolame->num_channels, mp3_map.data, mp3_buffer_size);
+    else
+      mp3_size = twolame_encode_buffer_interleaved (twolame->glopts,
+          (short int *) map.data,
+          num_samples / twolame->num_channels, mp3_map.data, mp3_buffer_size);
+  }
+
+  GST_LOG_OBJECT (twolame, "encoded %" G_GSIZE_FORMAT " bytes of audio "
+      "to %d bytes of mp3", map.size, mp3_size);
+
+  gst_buffer_unmap (buf, &map);
+  gst_buffer_unmap (mp3_buf, &mp3_map);
+
+  if (mp3_size > 0) {
+    gst_buffer_set_size (mp3_buf, mp3_size);
+    result = gst_audio_encoder_finish_frame (enc, mp3_buf, -1);
+  } else {
+    if (mp3_size < 0) {
+      /* eat error ? */
+      g_warning ("error %d", mp3_size);
+    }
+    gst_buffer_unref (mp3_buf);
+    result = GST_FLOW_OK;
+  }
+
+  return result;
+}
+
+/* set up the encoder state */
+static gboolean
+gst_two_lame_setup (GstTwoLame * twolame)
+{
+
+#define CHECK_ERROR(command) G_STMT_START {\
+  if ((command) < 0) { \
+    GST_ERROR_OBJECT (twolame, "setup failed: " G_STRINGIFY (command)); \
+    return FALSE; \
+  } \
+}G_STMT_END
+
+  int retval;
+  GstCaps *allowed_caps;
+
+  GST_DEBUG_OBJECT (twolame, "starting setup");
+
+  /* check if we're already setup; if we are, we might want to check
+   * if this initialization is compatible with the previous one */
+  /* FIXME: do this */
+  if (twolame->setup) {
+    GST_WARNING_OBJECT (twolame, "already setup");
+    twolame->setup = FALSE;
+  }
+
+  twolame->glopts = twolame_init ();
+
+  if (twolame->glopts == NULL)
+    return FALSE;
+
+  /* copy the parameters over */
+  twolame_set_in_samplerate (twolame->glopts, twolame->samplerate);
+
+  /* let twolame choose default samplerate unless outgoing sample rate is fixed */
+  allowed_caps = gst_pad_get_allowed_caps (GST_AUDIO_ENCODER_SRC_PAD (twolame));
+
+  if (allowed_caps != NULL) {
+    GstStructure *structure;
+    gint samplerate;
+
+    structure = gst_caps_get_structure (allowed_caps, 0);
+
+    if (gst_structure_get_int (structure, "rate", &samplerate)) {
+      GST_DEBUG_OBJECT (twolame,
+          "Setting sample rate to %d as fixed in src caps", samplerate);
+      twolame_set_out_samplerate (twolame->glopts, samplerate);
+    } else {
+      GST_DEBUG_OBJECT (twolame, "Letting twolame choose sample rate");
+      twolame_set_out_samplerate (twolame->glopts, 0);
+    }
+    gst_caps_unref (allowed_caps);
+    allowed_caps = NULL;
+  } else {
+    GST_DEBUG_OBJECT (twolame,
+        "No peer yet, letting twolame choose sample rate");
+    twolame_set_out_samplerate (twolame->glopts, 0);
+  }
+
+  /* force mono encoding if we only have one channel */
+  if (twolame->num_channels == 1)
+    twolame->mode = 3;
+
+  /* Fix bitrates and MPEG version */
+
+  CHECK_ERROR (twolame_set_num_channels (twolame->glopts,
+          twolame->num_channels));
+
+  CHECK_ERROR (twolame_set_mode (twolame->glopts, twolame->mode));
+  CHECK_ERROR (twolame_set_psymodel (twolame->glopts, twolame->psymodel));
+  CHECK_AND_FIXUP_BITRATE (twolame, "bitrate", twolame->bitrate);
+  CHECK_ERROR (twolame_set_bitrate (twolame->glopts, twolame->bitrate));
+  CHECK_ERROR (twolame_set_padding (twolame->glopts, twolame->padding));
+  CHECK_ERROR (twolame_set_energy_levels (twolame->glopts,
+          twolame->energy_level_extension));
+  CHECK_ERROR (twolame_set_emphasis (twolame->glopts, twolame->emphasis));
+  CHECK_ERROR (twolame_set_error_protection (twolame->glopts,
+          twolame->error_protection));
+  CHECK_ERROR (twolame_set_copyright (twolame->glopts, twolame->copyright));
+  CHECK_ERROR (twolame_set_original (twolame->glopts, twolame->original));
+  CHECK_ERROR (twolame_set_VBR (twolame->glopts, twolame->vbr));
+  CHECK_ERROR (twolame_set_VBR_level (twolame->glopts, twolame->vbr_level));
+  CHECK_ERROR (twolame_set_ATH_level (twolame->glopts, twolame->ath_level));
+  CHECK_AND_FIXUP_BITRATE (twolame, "vbr-max-bitrate",
+      twolame->vbr_max_bitrate);
+  CHECK_ERROR (twolame_set_VBR_max_bitrate_kbps (twolame->glopts,
+          twolame->vbr_max_bitrate));
+  CHECK_ERROR (twolame_set_quick_mode (twolame->glopts, twolame->quick_mode));
+  CHECK_ERROR (twolame_set_quick_count (twolame->glopts,
+          twolame->quick_mode_count));
+
+  /* initialize the twolame encoder */
+  if ((retval = twolame_init_params (twolame->glopts)) >= 0) {
+    twolame->setup = TRUE;
+    /* FIXME: it would be nice to print out the mode here */
+    GST_INFO ("twolame encoder setup (%d kbit/s, %d Hz, %d channels)",
+        twolame->bitrate, twolame->samplerate, twolame->num_channels);
+  } else {
+    GST_ERROR_OBJECT (twolame, "twolame_init_params returned %d", retval);
+  }
+
+  GST_DEBUG_OBJECT (twolame, "done with setup");
+
+  return twolame->setup;
+#undef CHECK_ERROR
+}
+
+static gboolean
+gst_two_lame_get_default_settings (void)
+{
+  twolame_options *glopts = NULL;
+
+  glopts = twolame_init ();
+  if (glopts == NULL) {
+    GST_ERROR ("Couldn't initialize TwoLAME");
+    return FALSE;
+  }
+
+  twolame_set_num_channels (glopts, 2);
+  twolame_set_in_samplerate (glopts, 44100);
+
+  if (twolame_init_params (glopts) != 0) {
+    GST_ERROR ("Couldn't set default parameters");
+    return FALSE;
+  }
+
+  gst_two_lame_default_settings.mode = TWOLAME_JOINT_STEREO;    /* twolame_get_mode (glopts); */
+  gst_two_lame_default_settings.psymodel = twolame_get_psymodel (glopts);
+  gst_two_lame_default_settings.bitrate = twolame_get_bitrate (glopts);
+  gst_two_lame_default_settings.padding = twolame_get_padding (glopts);
+  gst_two_lame_default_settings.energy_level_extension =
+      twolame_get_energy_levels (glopts);
+  gst_two_lame_default_settings.emphasis = twolame_get_emphasis (glopts);
+  gst_two_lame_default_settings.error_protection =
+      twolame_get_error_protection (glopts);
+  gst_two_lame_default_settings.copyright = twolame_get_copyright (glopts);
+  gst_two_lame_default_settings.original = twolame_get_original (glopts);
+  gst_two_lame_default_settings.vbr = twolame_get_VBR (glopts);
+  gst_two_lame_default_settings.vbr_level = twolame_get_VBR_level (glopts);
+  gst_two_lame_default_settings.ath_level = twolame_get_ATH_level (glopts);
+  gst_two_lame_default_settings.vbr_max_bitrate =
+      twolame_get_VBR_max_bitrate_kbps (glopts);
+  gst_two_lame_default_settings.quick_mode = twolame_get_quick_mode (glopts);
+  gst_two_lame_default_settings.quick_mode_count =
+      twolame_get_quick_count (glopts);
+
+  twolame_close (&glopts);
+
+  return TRUE;
+}
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+  GST_DEBUG_CATEGORY_INIT (debug, "twolame", 0, "twolame mp2 encoder");
+
+  if (!gst_two_lame_get_default_settings ())
+    return FALSE;
+
+#ifdef ENABLE_NLS
+  GST_DEBUG ("binding text domain %s to locale dir %s", GETTEXT_PACKAGE,
+      LOCALEDIR);
+  bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+#endif /* ENABLE_NLS */
+
+  if (!gst_element_register (plugin, "twolamemp2enc", GST_RANK_PRIMARY,
+          GST_TYPE_TWO_LAME))
+    return FALSE;
+
+  return TRUE;
+}
+
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+    GST_VERSION_MINOR,
+    twolame,
+    "Encode MP2s with TwoLAME",
+    plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
diff --git a/ext/twolame/gsttwolamemp2enc.h b/ext/twolame/gsttwolamemp2enc.h
new file mode 100644
index 000000000..72a6beaec
--- /dev/null
+++ b/ext/twolame/gsttwolamemp2enc.h
@@ -0,0 +1,88 @@
+/* GStreamer
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2008> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+
+#ifndef __GST_TWO_LAME_H__
+#define __GST_TWO_LAME_H__
+
+
+#include <gst/gst.h>
+#include <gst/audio/gstaudioencoder.h>
+
+G_BEGIN_DECLS
+
+#include <twolame.h>
+
+#define GST_TYPE_TWO_LAME \
+  (gst_two_lame_get_type())
+#define GST_TWO_LAME(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TWO_LAME,GstTwoLame))
+#define GST_TWO_LAME_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TWO_LAME,GstTwoLameClass))
+#define GST_IS_TWO_LAME(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TWO_LAME))
+#define GST_IS_TWO_LAME_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TWO_LAME))
+
+typedef struct _GstTwoLame GstTwoLame;
+typedef struct _GstTwoLameClass GstTwoLameClass;
+
+/**
+ * GstTwoLame:
+ *
+ * Opaque data structure.
+ */
+struct _GstTwoLame {
+  GstAudioEncoder element;
+
+  gint samplerate;
+  gint num_channels;
+  gboolean float_input;
+  gboolean setup;
+
+  gint mode;
+  gint psymodel;
+  gint bitrate;
+  gint padding;
+  gboolean energy_level_extension;
+  gint emphasis;
+  gboolean error_protection;
+  gboolean copyright;
+  gboolean original;
+  gboolean vbr;
+  gfloat vbr_level;
+  gfloat ath_level;
+  gint vbr_max_bitrate;
+  gboolean quick_mode;
+  gint quick_mode_count;
+
+  twolame_options *glopts;
+};
+
+struct _GstTwoLameClass {
+  GstAudioEncoderClass parent_class;
+};
+
+GType gst_two_lame_get_type(void);
+
+G_END_DECLS
+
+
+#endif /* __GST_TWO_LAME_H__ */
diff --git a/ext/twolame/meson.build b/ext/twolame/meson.build
new file mode 100644
index 000000000..cabab63ad
--- /dev/null
+++ b/ext/twolame/meson.build
@@ -0,0 +1,12 @@
+twolame_dep = dependency('twolame', version : '>= 0.3.10', required : false)
+
+if twolame_dep.found()
+  twolame = library('gsttwolame',
+    ['gsttwolamemp2enc.c'],
+    c_args : gst_plugins_good_args,
+    include_directories : [configinc, libsinc],
+    dependencies : [gstaudio_dep, twolame_dep],
+    install : true,
+    install_dir : plugins_install_dir,
+  )
+endif
diff --git a/ext/vpx/Makefile.am b/ext/vpx/Makefile.am
index 4453fc015..71ce6de73 100644
--- a/ext/vpx/Makefile.am
+++ b/ext/vpx/Makefile.am
@@ -21,7 +21,6 @@ libgstvpx_la_LIBADD = \
 	$(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ -lgstvideo-@GST_API_VERSION@ \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(VPX_LIBS)
 libgstvpx_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvpx_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = \
     gstvpxdec.h \
diff --git a/ext/vpx/Makefile.in b/ext/vpx/Makefile.in
index 0e5a887fa..2f4ea1627 100644
--- a/ext/vpx/Makefile.in
+++ b/ext/vpx/Makefile.in
@@ -177,10 +177,9 @@ 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 $@
+libgstvpx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -298,6 +297,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -321,6 +321,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -336,6 +338,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -358,10 +362,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -376,6 +387,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -393,6 +405,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -405,6 +419,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -423,6 +439,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -466,9 +485,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -482,11 +512,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -602,7 +637,6 @@ libgstvpx_la_LIBADD = \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(VPX_LIBS)
 
 libgstvpx_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvpx_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
     gstvpxdec.h \
     gstvpxenc.h \
@@ -727,60 +761,60 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstvpx_la-gstvpxdec.lo: gstvpxdec.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-gstvpxdec.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvpxdec.Tpo -c -o libgstvpx_la-gstvpxdec.lo `test -f 'gstvpxdec.c' || echo '$(srcdir)/'`gstvpxdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -MT libgstvpx_la-gstvpxdec.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvpxdec.Tpo -c -o libgstvpx_la-gstvpxdec.lo `test -f 'gstvpxdec.c' || echo '$(srcdir)/'`gstvpxdec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvpx_la-gstvpxdec.Tpo $(DEPDIR)/libgstvpx_la-gstvpxdec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvpxdec.c' object='libgstvpx_la-gstvpxdec.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-gstvpxdec.lo `test -f 'gstvpxdec.c' || echo '$(srcdir)/'`gstvpxdec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -c -o libgstvpx_la-gstvpxdec.lo `test -f 'gstvpxdec.c' || echo '$(srcdir)/'`gstvpxdec.c
 
 libgstvpx_la-gstvpxenc.lo: gstvpxenc.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-gstvpxenc.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvpxenc.Tpo -c -o libgstvpx_la-gstvpxenc.lo `test -f 'gstvpxenc.c' || echo '$(srcdir)/'`gstvpxenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -MT libgstvpx_la-gstvpxenc.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvpxenc.Tpo -c -o libgstvpx_la-gstvpxenc.lo `test -f 'gstvpxenc.c' || echo '$(srcdir)/'`gstvpxenc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvpx_la-gstvpxenc.Tpo $(DEPDIR)/libgstvpx_la-gstvpxenc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvpxenc.c' object='libgstvpx_la-gstvpxenc.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-gstvpxenc.lo `test -f 'gstvpxenc.c' || echo '$(srcdir)/'`gstvpxenc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -c -o libgstvpx_la-gstvpxenc.lo `test -f 'gstvpxenc.c' || echo '$(srcdir)/'`gstvpxenc.c
 
 libgstvpx_la-gstvp8dec.lo: gstvp8dec.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-gstvp8dec.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvp8dec.Tpo -c -o libgstvpx_la-gstvp8dec.lo `test -f 'gstvp8dec.c' || echo '$(srcdir)/'`gstvp8dec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -MT libgstvpx_la-gstvp8dec.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvp8dec.Tpo -c -o libgstvpx_la-gstvp8dec.lo `test -f 'gstvp8dec.c' || echo '$(srcdir)/'`gstvp8dec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvpx_la-gstvp8dec.Tpo $(DEPDIR)/libgstvpx_la-gstvp8dec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvp8dec.c' object='libgstvpx_la-gstvp8dec.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-gstvp8dec.lo `test -f 'gstvp8dec.c' || echo '$(srcdir)/'`gstvp8dec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -c -o libgstvpx_la-gstvp8dec.lo `test -f 'gstvp8dec.c' || echo '$(srcdir)/'`gstvp8dec.c
 
 libgstvpx_la-gstvp8enc.lo: gstvp8enc.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-gstvp8enc.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvp8enc.Tpo -c -o libgstvpx_la-gstvp8enc.lo `test -f 'gstvp8enc.c' || echo '$(srcdir)/'`gstvp8enc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -MT libgstvpx_la-gstvp8enc.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvp8enc.Tpo -c -o libgstvpx_la-gstvp8enc.lo `test -f 'gstvp8enc.c' || echo '$(srcdir)/'`gstvp8enc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvpx_la-gstvp8enc.Tpo $(DEPDIR)/libgstvpx_la-gstvp8enc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvp8enc.c' object='libgstvpx_la-gstvp8enc.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-gstvp8enc.lo `test -f 'gstvp8enc.c' || echo '$(srcdir)/'`gstvp8enc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -c -o libgstvpx_la-gstvp8enc.lo `test -f 'gstvp8enc.c' || echo '$(srcdir)/'`gstvp8enc.c
 
 libgstvpx_la-gstvp8utils.lo: gstvp8utils.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-gstvp8utils.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvp8utils.Tpo -c -o libgstvpx_la-gstvp8utils.lo `test -f 'gstvp8utils.c' || echo '$(srcdir)/'`gstvp8utils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -MT libgstvpx_la-gstvp8utils.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvp8utils.Tpo -c -o libgstvpx_la-gstvp8utils.lo `test -f 'gstvp8utils.c' || echo '$(srcdir)/'`gstvp8utils.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvpx_la-gstvp8utils.Tpo $(DEPDIR)/libgstvpx_la-gstvp8utils.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvp8utils.c' object='libgstvpx_la-gstvp8utils.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-gstvp8utils.lo `test -f 'gstvp8utils.c' || echo '$(srcdir)/'`gstvp8utils.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='plugin.c' object='libgstvpx_la-plugin.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-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -c -o libgstvpx_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/ext/vpx/gstvpxdec.c b/ext/vpx/gstvpxdec.c
index 92c637746..c3f0f625f 100644
--- a/ext/vpx/gstvpxdec.c
+++ b/ext/vpx/gstvpxdec.c
@@ -62,6 +62,18 @@ gst_vpx_dec_post_processing_flags_get_type (void)
     {C_FLAGS (VP8_DEBLOCK), "Deblock", "deblock"},
     {C_FLAGS (VP8_DEMACROBLOCK), "Demacroblock", "demacroblock"},
     {C_FLAGS (VP8_ADDNOISE), "Add noise", "addnoise"},
+    {C_FLAGS (VP8_DEBUG_TXT_FRAME_INFO),
+          "Print frame information",
+        "visualize-frame-info"},
+    {C_FLAGS (VP8_DEBUG_TXT_MBLK_MODES),
+          "Show macroblock mode selection overlaid on image",
+        "visualize-macroblock-modes"},
+    {C_FLAGS (VP8_DEBUG_TXT_DC_DIFF),
+          "Show dc diff for each macro block overlaid on image",
+        "visualize-dc-diff"},
+    {C_FLAGS (VP8_DEBUG_TXT_RATE_INFO),
+          "Print video rate info",
+        "visualize-rate-info"},
     {C_FLAGS (VP8_MFQE), "Multi-frame quality enhancement", "mfqe"},
     {0, NULL, NULL}
   };
diff --git a/ext/wavpack/Makefile.am b/ext/wavpack/Makefile.am
index 83163fcd0..e6ed6d48f 100644
--- a/ext/wavpack/Makefile.am
+++ b/ext/wavpack/Makefile.am
@@ -12,7 +12,6 @@ libgstwavpack_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
 libgstwavpack_la_LIBADD =  $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
 				$(GST_BASE_LIBS) $(GST_LIBS) $(WAVPACK_LIBS)
 libgstwavpack_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstwavpack_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = \
 		gstwavpackdec.h \
diff --git a/ext/wavpack/Makefile.in b/ext/wavpack/Makefile.in
index f29fb0e62..6ce628fb1 100644
--- a/ext/wavpack/Makefile.in
+++ b/ext/wavpack/Makefile.in
@@ -177,8 +177,8 @@ 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) \
+	$(AM_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@)
@@ -296,6 +296,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -319,6 +320,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -334,6 +337,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -356,10 +361,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -374,6 +386,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -391,6 +404,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -403,6 +418,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -421,6 +438,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -464,9 +484,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -480,11 +511,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -590,7 +626,6 @@ libgstwavpack_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION)
 				$(GST_BASE_LIBS) $(GST_LIBS) $(WAVPACK_LIBS)
 
 libgstwavpack_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstwavpack_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
 		gstwavpackdec.h \
 		gstwavpackenc.h \
@@ -706,39 +741,39 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstwavpack_la-gstwavpack.lo: gstwavpack.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpack.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpack.Tpo -c -o libgstwavpack_la-gstwavpack.lo `test -f 'gstwavpack.c' || echo '$(srcdir)/'`gstwavpack.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpack.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpack.Tpo -c -o libgstwavpack_la-gstwavpack.lo `test -f 'gstwavpack.c' || echo '$(srcdir)/'`gstwavpack.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavpack_la-gstwavpack.Tpo $(DEPDIR)/libgstwavpack_la-gstwavpack.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwavpack.c' object='libgstwavpack_la-gstwavpack.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 $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpack.lo `test -f 'gstwavpack.c' || echo '$(srcdir)/'`gstwavpack.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpack.lo `test -f 'gstwavpack.c' || echo '$(srcdir)/'`gstwavpack.c
 
 libgstwavpack_la-gstwavpackcommon.lo: gstwavpackcommon.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackcommon.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackcommon.Tpo -c -o libgstwavpack_la-gstwavpackcommon.lo `test -f 'gstwavpackcommon.c' || echo '$(srcdir)/'`gstwavpackcommon.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackcommon.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackcommon.Tpo -c -o libgstwavpack_la-gstwavpackcommon.lo `test -f 'gstwavpackcommon.c' || echo '$(srcdir)/'`gstwavpackcommon.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavpack_la-gstwavpackcommon.Tpo $(DEPDIR)/libgstwavpack_la-gstwavpackcommon.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwavpackcommon.c' object='libgstwavpack_la-gstwavpackcommon.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 $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackcommon.lo `test -f 'gstwavpackcommon.c' || echo '$(srcdir)/'`gstwavpackcommon.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackcommon.lo `test -f 'gstwavpackcommon.c' || echo '$(srcdir)/'`gstwavpackcommon.c
 
 libgstwavpack_la-gstwavpackdec.lo: gstwavpackdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackdec.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackdec.Tpo -c -o libgstwavpack_la-gstwavpackdec.lo `test -f 'gstwavpackdec.c' || echo '$(srcdir)/'`gstwavpackdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackdec.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackdec.Tpo -c -o libgstwavpack_la-gstwavpackdec.lo `test -f 'gstwavpackdec.c' || echo '$(srcdir)/'`gstwavpackdec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavpack_la-gstwavpackdec.Tpo $(DEPDIR)/libgstwavpack_la-gstwavpackdec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwavpackdec.c' object='libgstwavpack_la-gstwavpackdec.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 $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackdec.lo `test -f 'gstwavpackdec.c' || echo '$(srcdir)/'`gstwavpackdec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackdec.lo `test -f 'gstwavpackdec.c' || echo '$(srcdir)/'`gstwavpackdec.c
 
 libgstwavpack_la-gstwavpackenc.lo: gstwavpackenc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackenc.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackenc.Tpo -c -o libgstwavpack_la-gstwavpackenc.lo `test -f 'gstwavpackenc.c' || echo '$(srcdir)/'`gstwavpackenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackenc.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackenc.Tpo -c -o libgstwavpack_la-gstwavpackenc.lo `test -f 'gstwavpackenc.c' || echo '$(srcdir)/'`gstwavpackenc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavpack_la-gstwavpackenc.Tpo $(DEPDIR)/libgstwavpack_la-gstwavpackenc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwavpackenc.c' object='libgstwavpack_la-gstwavpackenc.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 $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackenc.lo `test -f 'gstwavpackenc.c' || echo '$(srcdir)/'`gstwavpackenc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackenc.lo `test -f 'gstwavpackenc.c' || echo '$(srcdir)/'`gstwavpackenc.c
 
 libgstwavpack_la-gstwavpackstreamreader.lo: gstwavpackstreamreader.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackstreamreader.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackstreamreader.Tpo -c -o libgstwavpack_la-gstwavpackstreamreader.lo `test -f 'gstwavpackstreamreader.c' || echo '$(srcdir)/'`gstwavpackstreamreader.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackstreamreader.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackstreamreader.Tpo -c -o libgstwavpack_la-gstwavpackstreamreader.lo `test -f 'gstwavpackstreamreader.c' || echo '$(srcdir)/'`gstwavpackstreamreader.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavpack_la-gstwavpackstreamreader.Tpo $(DEPDIR)/libgstwavpack_la-gstwavpackstreamreader.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwavpackstreamreader.c' object='libgstwavpack_la-gstwavpackstreamreader.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 $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackstreamreader.lo `test -f 'gstwavpackstreamreader.c' || echo '$(srcdir)/'`gstwavpackstreamreader.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackstreamreader.lo `test -f 'gstwavpackstreamreader.c' || echo '$(srcdir)/'`gstwavpackstreamreader.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst-plugins-good.doap b/gst-plugins-good.doap
index 75803d821..ce4bba851 100644
--- a/gst-plugins-good.doap
+++ b/gst-plugins-good.doap
@@ -32,6 +32,16 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library).
    </GitRepository>
  </repository> 
 
+ <release>
+  <Version>
+   <revision>1.13.1</revision>
+   <branch>master</branch>
+   <name></name>
+   <created>2018-02-15</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.13.1.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.12.4</revision>
diff --git a/gst/Makefile.in b/gst/Makefile.in
index 5efaba323..27cd7fe70 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -270,6 +270,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -293,6 +294,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -308,6 +311,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -330,10 +335,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -348,6 +360,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -365,6 +378,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -377,6 +392,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -395,6 +412,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -438,9 +458,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -454,11 +485,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/gst/alpha/Makefile.am b/gst/alpha/Makefile.am
index abadffe59..73123dd31 100644
--- a/gst/alpha/Makefile.am
+++ b/gst/alpha/Makefile.am
@@ -6,7 +6,6 @@ libgstalpha_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
 libgstalpha_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 libgstalpha_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstalpha_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 libgstalphacolor_la_SOURCES = gstalphacolor.c
 libgstalphacolor_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
@@ -14,6 +13,5 @@ libgstalphacolor_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
 libgstalphacolor_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS)
 libgstalphacolor_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstalphacolor_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstalpha.h gstalphacolor.h
diff --git a/gst/alpha/Makefile.in b/gst/alpha/Makefile.in
index d76c2e8d8..1fc339003 100644
--- a/gst/alpha/Makefile.in
+++ b/gst/alpha/Makefile.in
@@ -173,16 +173,16 @@ 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) \
-	$(libgstalpha_la_LDFLAGS) $(LDFLAGS) -o $@
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libgstalpha_la_CFLAGS) $(CFLAGS) $(libgstalpha_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
 libgstalphacolor_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstalphacolor_la_OBJECTS = libgstalphacolor_la-gstalphacolor.lo
 libgstalphacolor_la_OBJECTS = $(am_libgstalphacolor_la_OBJECTS)
 libgstalphacolor_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-	$(libgstalphacolor_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(libgstalphacolor_la_CFLAGS) $(CFLAGS) \
+	$(AM_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@)
@@ -301,6 +301,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -324,6 +325,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -339,6 +342,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -361,10 +366,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -379,6 +391,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -396,6 +409,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -408,6 +423,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -426,6 +443,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -469,9 +489,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -485,11 +516,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -589,7 +625,6 @@ libgstalpha_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 
 libgstalpha_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstalpha_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 libgstalphacolor_la_SOURCES = gstalphacolor.c
 libgstalphacolor_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) $(GST_CFLAGS)
@@ -598,7 +633,6 @@ libgstalphacolor_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSI
 	$(GST_BASE_LIBS) $(GST_LIBS)
 
 libgstalphacolor_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstalphacolor_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstalpha.h gstalphacolor.h
 all: all-am
 
@@ -709,18 +743,18 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstalpha_la-gstalpha.lo: gstalpha.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalpha_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalpha_la_CFLAGS) $(CFLAGS) -MT libgstalpha_la-gstalpha.lo -MD -MP -MF $(DEPDIR)/libgstalpha_la-gstalpha.Tpo -c -o libgstalpha_la-gstalpha.lo `test -f 'gstalpha.c' || echo '$(srcdir)/'`gstalpha.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalpha_la_CFLAGS) $(CFLAGS) -MT libgstalpha_la-gstalpha.lo -MD -MP -MF $(DEPDIR)/libgstalpha_la-gstalpha.Tpo -c -o libgstalpha_la-gstalpha.lo `test -f 'gstalpha.c' || echo '$(srcdir)/'`gstalpha.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstalpha_la-gstalpha.Tpo $(DEPDIR)/libgstalpha_la-gstalpha.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstalpha.c' object='libgstalpha_la-gstalpha.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 $(libgstalpha_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalpha_la_CFLAGS) $(CFLAGS) -c -o libgstalpha_la-gstalpha.lo `test -f 'gstalpha.c' || echo '$(srcdir)/'`gstalpha.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalpha_la_CFLAGS) $(CFLAGS) -c -o libgstalpha_la-gstalpha.lo `test -f 'gstalpha.c' || echo '$(srcdir)/'`gstalpha.c
 
 libgstalphacolor_la-gstalphacolor.lo: gstalphacolor.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalphacolor_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalphacolor_la_CFLAGS) $(CFLAGS) -MT libgstalphacolor_la-gstalphacolor.lo -MD -MP -MF $(DEPDIR)/libgstalphacolor_la-gstalphacolor.Tpo -c -o libgstalphacolor_la-gstalphacolor.lo `test -f 'gstalphacolor.c' || echo '$(srcdir)/'`gstalphacolor.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalphacolor_la_CFLAGS) $(CFLAGS) -MT libgstalphacolor_la-gstalphacolor.lo -MD -MP -MF $(DEPDIR)/libgstalphacolor_la-gstalphacolor.Tpo -c -o libgstalphacolor_la-gstalphacolor.lo `test -f 'gstalphacolor.c' || echo '$(srcdir)/'`gstalphacolor.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstalphacolor_la-gstalphacolor.Tpo $(DEPDIR)/libgstalphacolor_la-gstalphacolor.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstalphacolor.c' object='libgstalphacolor_la-gstalphacolor.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 $(libgstalphacolor_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalphacolor_la_CFLAGS) $(CFLAGS) -c -o libgstalphacolor_la-gstalphacolor.lo `test -f 'gstalphacolor.c' || echo '$(srcdir)/'`gstalphacolor.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalphacolor_la_CFLAGS) $(CFLAGS) -c -o libgstalphacolor_la-gstalphacolor.lo `test -f 'gstalphacolor.c' || echo '$(srcdir)/'`gstalphacolor.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/apetag/Makefile.am b/gst/apetag/Makefile.am
index bb067717e..64aecf536 100644
--- a/gst/apetag/Makefile.am
+++ b/gst/apetag/Makefile.am
@@ -11,6 +11,5 @@ libgstapetag_la_LIBADD = \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS)
 libgstapetag_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstapetag_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstapedemux.h
diff --git a/gst/apetag/Makefile.in b/gst/apetag/Makefile.in
index f3580ec65..62668476f 100644
--- a/gst/apetag/Makefile.in
+++ b/gst/apetag/Makefile.in
@@ -172,9 +172,9 @@ 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_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
@@ -291,6 +291,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -314,6 +315,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -329,6 +332,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -351,10 +356,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -369,6 +381,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -386,6 +399,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -398,6 +413,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -416,6 +433,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -459,9 +479,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -475,11 +506,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -584,7 +620,6 @@ libgstapetag_la_LIBADD = \
 	$(GST_LIBS)
 
 libgstapetag_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstapetag_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstapedemux.h
 all: all-am
 
@@ -691,11 +726,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstapetag_la-gstapedemux.lo: gstapedemux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapetag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapetag_la_CFLAGS) $(CFLAGS) -MT libgstapetag_la-gstapedemux.lo -MD -MP -MF $(DEPDIR)/libgstapetag_la-gstapedemux.Tpo -c -o libgstapetag_la-gstapedemux.lo `test -f 'gstapedemux.c' || echo '$(srcdir)/'`gstapedemux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapetag_la_CFLAGS) $(CFLAGS) -MT libgstapetag_la-gstapedemux.lo -MD -MP -MF $(DEPDIR)/libgstapetag_la-gstapedemux.Tpo -c -o libgstapetag_la-gstapedemux.lo `test -f 'gstapedemux.c' || echo '$(srcdir)/'`gstapedemux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstapetag_la-gstapedemux.Tpo $(DEPDIR)/libgstapetag_la-gstapedemux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstapedemux.c' object='libgstapetag_la-gstapedemux.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 $(libgstapetag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapetag_la_CFLAGS) $(CFLAGS) -c -o libgstapetag_la-gstapedemux.lo `test -f 'gstapedemux.c' || echo '$(srcdir)/'`gstapedemux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapetag_la_CFLAGS) $(CFLAGS) -c -o libgstapetag_la-gstapedemux.lo `test -f 'gstapedemux.c' || echo '$(srcdir)/'`gstapedemux.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/audiofx/Makefile.am b/gst/audiofx/Makefile.am
index a3dd1743f..13ee7d978 100644
--- a/gst/audiofx/Makefile.am
+++ b/gst/audiofx/Makefile.am
@@ -40,7 +40,6 @@ libgstaudiofx_la_LIBADD = $(GST_LIBS) \
 	$(ORC_LIBS) \
 	$(LIBM)
 libgstaudiofx_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstaudiofx_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 # headers we need but don't want installed
 noinst_HEADERS = audiopanorama.h \
diff --git a/gst/audiofx/Makefile.in b/gst/audiofx/Makefile.in
index 5a4e17712..ca8d6811e 100644
--- a/gst/audiofx/Makefile.in
+++ b/gst/audiofx/Makefile.in
@@ -215,8 +215,8 @@ 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) \
+	$(AM_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@)
@@ -338,6 +338,7 @@ ERROR_CFLAGS =
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -361,6 +362,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -376,6 +379,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -398,10 +403,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -416,6 +428,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -433,6 +446,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -445,6 +460,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -463,6 +480,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -506,9 +526,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -522,11 +553,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -664,7 +700,6 @@ libgstaudiofx_la_LIBADD = $(GST_LIBS) \
 	$(LIBM)
 
 libgstaudiofx_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstaudiofx_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 # headers we need but don't want installed
 noinst_HEADERS = audiopanorama.h \
@@ -807,123 +842,123 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstaudiofx_la-audiofx.lo: audiofx.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-audiofx.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiofx.Tpo -c -o libgstaudiofx_la-audiofx.lo `test -f 'audiofx.c' || echo '$(srcdir)/'`audiofx.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiofx.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiofx.Tpo -c -o libgstaudiofx_la-audiofx.lo `test -f 'audiofx.c' || echo '$(srcdir)/'`audiofx.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiofx.Tpo $(DEPDIR)/libgstaudiofx_la-audiofx.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audiofx.c' object='libgstaudiofx_la-audiofx.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-audiofx.lo `test -f 'audiofx.c' || echo '$(srcdir)/'`audiofx.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiofx.lo `test -f 'audiofx.c' || echo '$(srcdir)/'`audiofx.c
 
 libgstaudiofx_la-audiopanorama.lo: audiopanorama.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-audiopanorama.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiopanorama.Tpo -c -o libgstaudiofx_la-audiopanorama.lo `test -f 'audiopanorama.c' || echo '$(srcdir)/'`audiopanorama.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiopanorama.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiopanorama.Tpo -c -o libgstaudiofx_la-audiopanorama.lo `test -f 'audiopanorama.c' || echo '$(srcdir)/'`audiopanorama.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiopanorama.Tpo $(DEPDIR)/libgstaudiofx_la-audiopanorama.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audiopanorama.c' object='libgstaudiofx_la-audiopanorama.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-audiopanorama.lo `test -f 'audiopanorama.c' || echo '$(srcdir)/'`audiopanorama.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiopanorama.lo `test -f 'audiopanorama.c' || echo '$(srcdir)/'`audiopanorama.c
 
 libgstaudiofx_la-audioinvert.lo: audioinvert.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-audioinvert.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audioinvert.Tpo -c -o libgstaudiofx_la-audioinvert.lo `test -f 'audioinvert.c' || echo '$(srcdir)/'`audioinvert.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audioinvert.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audioinvert.Tpo -c -o libgstaudiofx_la-audioinvert.lo `test -f 'audioinvert.c' || echo '$(srcdir)/'`audioinvert.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audioinvert.Tpo $(DEPDIR)/libgstaudiofx_la-audioinvert.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audioinvert.c' object='libgstaudiofx_la-audioinvert.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-audioinvert.lo `test -f 'audioinvert.c' || echo '$(srcdir)/'`audioinvert.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioinvert.lo `test -f 'audioinvert.c' || echo '$(srcdir)/'`audioinvert.c
 
 libgstaudiofx_la-audioamplify.lo: audioamplify.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-audioamplify.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audioamplify.Tpo -c -o libgstaudiofx_la-audioamplify.lo `test -f 'audioamplify.c' || echo '$(srcdir)/'`audioamplify.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audioamplify.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audioamplify.Tpo -c -o libgstaudiofx_la-audioamplify.lo `test -f 'audioamplify.c' || echo '$(srcdir)/'`audioamplify.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audioamplify.Tpo $(DEPDIR)/libgstaudiofx_la-audioamplify.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audioamplify.c' object='libgstaudiofx_la-audioamplify.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-audioamplify.lo `test -f 'audioamplify.c' || echo '$(srcdir)/'`audioamplify.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioamplify.lo `test -f 'audioamplify.c' || echo '$(srcdir)/'`audioamplify.c
 
 libgstaudiofx_la-audiodynamic.lo: audiodynamic.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-audiodynamic.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiodynamic.Tpo -c -o libgstaudiofx_la-audiodynamic.lo `test -f 'audiodynamic.c' || echo '$(srcdir)/'`audiodynamic.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiodynamic.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiodynamic.Tpo -c -o libgstaudiofx_la-audiodynamic.lo `test -f 'audiodynamic.c' || echo '$(srcdir)/'`audiodynamic.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiodynamic.Tpo $(DEPDIR)/libgstaudiofx_la-audiodynamic.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audiodynamic.c' object='libgstaudiofx_la-audiodynamic.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-audiodynamic.lo `test -f 'audiodynamic.c' || echo '$(srcdir)/'`audiodynamic.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiodynamic.lo `test -f 'audiodynamic.c' || echo '$(srcdir)/'`audiodynamic.c
 
 libgstaudiofx_la-audiokaraoke.lo: audiokaraoke.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-audiokaraoke.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiokaraoke.Tpo -c -o libgstaudiofx_la-audiokaraoke.lo `test -f 'audiokaraoke.c' || echo '$(srcdir)/'`audiokaraoke.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiokaraoke.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiokaraoke.Tpo -c -o libgstaudiofx_la-audiokaraoke.lo `test -f 'audiokaraoke.c' || echo '$(srcdir)/'`audiokaraoke.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiokaraoke.Tpo $(DEPDIR)/libgstaudiofx_la-audiokaraoke.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audiokaraoke.c' object='libgstaudiofx_la-audiokaraoke.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-audiokaraoke.lo `test -f 'audiokaraoke.c' || echo '$(srcdir)/'`audiokaraoke.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiokaraoke.lo `test -f 'audiokaraoke.c' || echo '$(srcdir)/'`audiokaraoke.c
 
 libgstaudiofx_la-audiofxbaseiirfilter.lo: audiofxbaseiirfilter.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-audiofxbaseiirfilter.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiofxbaseiirfilter.Tpo -c -o libgstaudiofx_la-audiofxbaseiirfilter.lo `test -f 'audiofxbaseiirfilter.c' || echo '$(srcdir)/'`audiofxbaseiirfilter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiofxbaseiirfilter.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiofxbaseiirfilter.Tpo -c -o libgstaudiofx_la-audiofxbaseiirfilter.lo `test -f 'audiofxbaseiirfilter.c' || echo '$(srcdir)/'`audiofxbaseiirfilter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiofxbaseiirfilter.Tpo $(DEPDIR)/libgstaudiofx_la-audiofxbaseiirfilter.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audiofxbaseiirfilter.c' object='libgstaudiofx_la-audiofxbaseiirfilter.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-audiofxbaseiirfilter.lo `test -f 'audiofxbaseiirfilter.c' || echo '$(srcdir)/'`audiofxbaseiirfilter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiofxbaseiirfilter.lo `test -f 'audiofxbaseiirfilter.c' || echo '$(srcdir)/'`audiofxbaseiirfilter.c
 
 libgstaudiofx_la-audiocheblimit.lo: audiocheblimit.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-audiocheblimit.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiocheblimit.Tpo -c -o libgstaudiofx_la-audiocheblimit.lo `test -f 'audiocheblimit.c' || echo '$(srcdir)/'`audiocheblimit.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiocheblimit.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiocheblimit.Tpo -c -o libgstaudiofx_la-audiocheblimit.lo `test -f 'audiocheblimit.c' || echo '$(srcdir)/'`audiocheblimit.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiocheblimit.Tpo $(DEPDIR)/libgstaudiofx_la-audiocheblimit.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audiocheblimit.c' object='libgstaudiofx_la-audiocheblimit.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-audiocheblimit.lo `test -f 'audiocheblimit.c' || echo '$(srcdir)/'`audiocheblimit.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiocheblimit.lo `test -f 'audiocheblimit.c' || echo '$(srcdir)/'`audiocheblimit.c
 
 libgstaudiofx_la-audiochebband.lo: audiochebband.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-audiochebband.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiochebband.Tpo -c -o libgstaudiofx_la-audiochebband.lo `test -f 'audiochebband.c' || echo '$(srcdir)/'`audiochebband.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiochebband.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiochebband.Tpo -c -o libgstaudiofx_la-audiochebband.lo `test -f 'audiochebband.c' || echo '$(srcdir)/'`audiochebband.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiochebband.Tpo $(DEPDIR)/libgstaudiofx_la-audiochebband.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audiochebband.c' object='libgstaudiofx_la-audiochebband.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-audiochebband.lo `test -f 'audiochebband.c' || echo '$(srcdir)/'`audiochebband.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiochebband.lo `test -f 'audiochebband.c' || echo '$(srcdir)/'`audiochebband.c
 
 libgstaudiofx_la-audioiirfilter.lo: audioiirfilter.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-audioiirfilter.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audioiirfilter.Tpo -c -o libgstaudiofx_la-audioiirfilter.lo `test -f 'audioiirfilter.c' || echo '$(srcdir)/'`audioiirfilter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audioiirfilter.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audioiirfilter.Tpo -c -o libgstaudiofx_la-audioiirfilter.lo `test -f 'audioiirfilter.c' || echo '$(srcdir)/'`audioiirfilter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audioiirfilter.Tpo $(DEPDIR)/libgstaudiofx_la-audioiirfilter.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audioiirfilter.c' object='libgstaudiofx_la-audioiirfilter.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-audioiirfilter.lo `test -f 'audioiirfilter.c' || echo '$(srcdir)/'`audioiirfilter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioiirfilter.lo `test -f 'audioiirfilter.c' || echo '$(srcdir)/'`audioiirfilter.c
 
 libgstaudiofx_la-audiofxbasefirfilter.lo: audiofxbasefirfilter.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-audiofxbasefirfilter.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiofxbasefirfilter.Tpo -c -o libgstaudiofx_la-audiofxbasefirfilter.lo `test -f 'audiofxbasefirfilter.c' || echo '$(srcdir)/'`audiofxbasefirfilter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiofxbasefirfilter.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiofxbasefirfilter.Tpo -c -o libgstaudiofx_la-audiofxbasefirfilter.lo `test -f 'audiofxbasefirfilter.c' || echo '$(srcdir)/'`audiofxbasefirfilter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiofxbasefirfilter.Tpo $(DEPDIR)/libgstaudiofx_la-audiofxbasefirfilter.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audiofxbasefirfilter.c' object='libgstaudiofx_la-audiofxbasefirfilter.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-audiofxbasefirfilter.lo `test -f 'audiofxbasefirfilter.c' || echo '$(srcdir)/'`audiofxbasefirfilter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiofxbasefirfilter.lo `test -f 'audiofxbasefirfilter.c' || echo '$(srcdir)/'`audiofxbasefirfilter.c
 
 libgstaudiofx_la-audiowsincband.lo: audiowsincband.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-audiowsincband.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiowsincband.Tpo -c -o libgstaudiofx_la-audiowsincband.lo `test -f 'audiowsincband.c' || echo '$(srcdir)/'`audiowsincband.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiowsincband.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiowsincband.Tpo -c -o libgstaudiofx_la-audiowsincband.lo `test -f 'audiowsincband.c' || echo '$(srcdir)/'`audiowsincband.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiowsincband.Tpo $(DEPDIR)/libgstaudiofx_la-audiowsincband.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audiowsincband.c' object='libgstaudiofx_la-audiowsincband.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-audiowsincband.lo `test -f 'audiowsincband.c' || echo '$(srcdir)/'`audiowsincband.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiowsincband.lo `test -f 'audiowsincband.c' || echo '$(srcdir)/'`audiowsincband.c
 
 libgstaudiofx_la-audiowsinclimit.lo: audiowsinclimit.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-audiowsinclimit.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiowsinclimit.Tpo -c -o libgstaudiofx_la-audiowsinclimit.lo `test -f 'audiowsinclimit.c' || echo '$(srcdir)/'`audiowsinclimit.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiowsinclimit.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiowsinclimit.Tpo -c -o libgstaudiofx_la-audiowsinclimit.lo `test -f 'audiowsinclimit.c' || echo '$(srcdir)/'`audiowsinclimit.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiowsinclimit.Tpo $(DEPDIR)/libgstaudiofx_la-audiowsinclimit.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audiowsinclimit.c' object='libgstaudiofx_la-audiowsinclimit.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-audiowsinclimit.lo `test -f 'audiowsinclimit.c' || echo '$(srcdir)/'`audiowsinclimit.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiowsinclimit.lo `test -f 'audiowsinclimit.c' || echo '$(srcdir)/'`audiowsinclimit.c
 
 libgstaudiofx_la-audiofirfilter.lo: audiofirfilter.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-audiofirfilter.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiofirfilter.Tpo -c -o libgstaudiofx_la-audiofirfilter.lo `test -f 'audiofirfilter.c' || echo '$(srcdir)/'`audiofirfilter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiofirfilter.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiofirfilter.Tpo -c -o libgstaudiofx_la-audiofirfilter.lo `test -f 'audiofirfilter.c' || echo '$(srcdir)/'`audiofirfilter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiofirfilter.Tpo $(DEPDIR)/libgstaudiofx_la-audiofirfilter.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audiofirfilter.c' object='libgstaudiofx_la-audiofirfilter.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-audiofirfilter.lo `test -f 'audiofirfilter.c' || echo '$(srcdir)/'`audiofirfilter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiofirfilter.lo `test -f 'audiofirfilter.c' || echo '$(srcdir)/'`audiofirfilter.c
 
 libgstaudiofx_la-audioecho.lo: audioecho.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-audioecho.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audioecho.Tpo -c -o libgstaudiofx_la-audioecho.lo `test -f 'audioecho.c' || echo '$(srcdir)/'`audioecho.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audioecho.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audioecho.Tpo -c -o libgstaudiofx_la-audioecho.lo `test -f 'audioecho.c' || echo '$(srcdir)/'`audioecho.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audioecho.Tpo $(DEPDIR)/libgstaudiofx_la-audioecho.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audioecho.c' object='libgstaudiofx_la-audioecho.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-audioecho.lo `test -f 'audioecho.c' || echo '$(srcdir)/'`audioecho.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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
diff --git a/gst/audiofx/audioecho.c b/gst/audiofx/audioecho.c
index 01fd476c9..c65bef1b7 100644
--- a/gst/audiofx/audioecho.c
+++ b/gst/audiofx/audioecho.c
@@ -383,47 +383,68 @@ gst_audio_echo_transform_##name (GstAudioEcho * self, \
 { \
   type *buffer = (type *) self->buffer; \
   guint channels = GST_AUDIO_FILTER_CHANNELS (self); \
-  guint rate = GST_AUDIO_FILTER_RATE (self); \
   guint i, j; \
-  guint echo_index = self->buffer_size_frames - self->delay_frames; \
-  gdouble echo_off = ((((gdouble) self->delay) * rate) / GST_SECOND) - self->delay_frames; \
+  guint echo_offset = self->buffer_size_frames - self->delay_frames; \
+  gdouble intensity = self->intensity; \
+  gdouble feedback = self->feedback; \
+  guint buffer_pos = self->buffer_pos; \
+  guint buffer_size_frames = self->buffer_size_frames; \
   \
-  if (echo_off < 0.0) \
-    echo_off = 0.0; \
-  \
-  num_samples /= channels; \
-  \
-  for (i = 0; i < num_samples; i++) { \
-    guint echo0_index = ((echo_index + self->buffer_pos) % self->buffer_size_frames) * channels; \
-    guint echo1_index = ((echo_index + self->buffer_pos +1) % self->buffer_size_frames) * channels; \
-    guint rbout_index = (self->buffer_pos % self->buffer_size_frames) * channels; \
-    guint64 channel_mask = 1; \
-    for (j = 0; j < channels; j++) { \
-      if (self->surdelay == FALSE) { \
-        gdouble in = data[i*channels + j]; \
-        gdouble echo0 = buffer[echo0_index + j]; \
-        gdouble echo1 = buffer[echo1_index + j]; \
-        gdouble echo = echo0 + (echo1-echo0)*echo_off; \
-        type out = in + self->intensity * echo; \
-        \
-        GST_DEBUG ( "not adding delay on Surround Channel %d", j); \
-        data[i*channels + j] = out; \
-        \
-        buffer[rbout_index + j] = in + self->feedback * echo; \
-      } else if (channel_mask & self->surround_mask) { \
-        gdouble in = data[i*channels + j]; \
-        gdouble echo0 = buffer[echo0_index + j]; \
-        type out = echo0; \
-        GST_DEBUG ( "Adding delay on Surround Channel %d", j); \
-        \
-        data[i*channels + j] = out; \
-        \
-        buffer[rbout_index + j] = in; \
+  if (self->surdelay == FALSE) { \
+    guint read_pos = ((echo_offset + buffer_pos) % buffer_size_frames) * channels; \
+    guint write_pos = (buffer_pos % buffer_size_frames) * channels; \
+    guint buffer_size = buffer_size_frames * channels; \
+    for (i = 0; i < num_samples; i++) { \
+      gdouble in = *data; \
+      gdouble echo = buffer[read_pos]; \
+      type out = in + intensity * echo; \
+      \
+      *data = out; \
+      \
+      buffer[write_pos] = in + feedback * echo; \
+      read_pos = (read_pos + 1) % buffer_size; \
+      write_pos = (write_pos + 1) % buffer_size; \
+      data++; \
+    } \
+    buffer_pos = write_pos / channels; \
+  } else { \
+    guint64 surround_mask = self->surround_mask; \
+    guint read_pos = ((echo_offset + buffer_pos) % buffer_size_frames) * channels; \
+    guint write_pos = (buffer_pos % buffer_size_frames) * channels; \
+    guint buffer_size = buffer_size_frames * channels; \
+    \
+    num_samples /= channels; \
+    \
+    for (i = 0; i < num_samples; i++) { \
+      guint64 channel_mask = 1; \
+      \
+      for (j = 0; j < channels; j++) { \
+        if (channel_mask & surround_mask) { \
+          gdouble in = data[j]; \
+          gdouble echo = buffer[read_pos + j]; \
+          type out = echo; \
+          \
+          data[j] = out; \
+          \
+          buffer[write_pos + j] = in; \
+        } else { \
+          gdouble in = data[j]; \
+          gdouble echo = buffer[read_pos + j]; \
+          type out = in + intensity * echo; \
+          \
+          data[j] = out; \
+          \
+          buffer[write_pos + j] = in + feedback * echo; \
+        } \
+        channel_mask <<= 1; \
       } \
-      channel_mask <<= 1; \
+      read_pos = (read_pos + channels) % buffer_size; \
+      write_pos = (write_pos + channels) % buffer_size; \
+      data += channels; \
     } \
-    self->buffer_pos = (self->buffer_pos + 1) % self->buffer_size_frames; \
+    buffer_pos = write_pos / channels; \
   } \
+  self->buffer_pos = buffer_pos; \
 }
 
 TRANSFORM_FUNC (float, gfloat);
diff --git a/gst/audiofx/audiopanoramaorc-dist.c b/gst/audiofx/audiopanoramaorc-dist.c
index 0e44eb9a3..12d6aa0e8 100644
--- a/gst/audiofx/audiopanoramaorc-dist.c
+++ b/gst/audiofx/audiopanoramaorc-dist.c
@@ -140,11 +140,11 @@ void audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1,
 #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 (orc_uint8) 255
+#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 (orc_uint16)65535
+#define ORC_UW_MAX 65535
 #define ORC_UW_MIN 0
 #define ORC_SL_MAX 2147483647
 #define ORC_SL_MIN (-1-ORC_SL_MAX)
diff --git a/gst/audioparsers/Makefile.am b/gst/audioparsers/Makefile.am
index b2b2a4d1f..6727688c3 100644
--- a/gst/audioparsers/Makefile.am
+++ b/gst/audioparsers/Makefile.am
@@ -13,7 +13,6 @@ libgstaudioparsers_la_LIBADD = \
 	-lgstaudio-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS)
 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 gstsbcparse.h \
diff --git a/gst/audioparsers/Makefile.in b/gst/audioparsers/Makefile.in
index 0ebc5e536..3872a3b0a 100644
--- a/gst/audioparsers/Makefile.in
+++ b/gst/audioparsers/Makefile.in
@@ -181,8 +181,8 @@ 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) \
+	$(AM_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@)
@@ -300,6 +300,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -323,6 +324,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -338,6 +341,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -360,10 +365,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -378,6 +390,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -395,6 +408,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -407,6 +422,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -425,6 +442,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -468,9 +488,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -484,11 +515,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -595,7 +631,6 @@ libgstaudioparsers_la_LIBADD = \
 	$(GST_BASE_LIBS) $(GST_LIBS)
 
 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 gstsbcparse.h \
 	gstwavpackparse.h
@@ -713,67 +748,67 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstaudioparsers_la-gstaacparse.lo: gstaacparse.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-gstaacparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstaacparse.Tpo -c -o libgstaudioparsers_la-gstaacparse.lo `test -f 'gstaacparse.c' || echo '$(srcdir)/'`gstaacparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstaacparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstaacparse.Tpo -c -o libgstaudioparsers_la-gstaacparse.lo `test -f 'gstaacparse.c' || echo '$(srcdir)/'`gstaacparse.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstaacparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstaacparse.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstaacparse.c' object='libgstaudioparsers_la-gstaacparse.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-gstaacparse.lo `test -f 'gstaacparse.c' || echo '$(srcdir)/'`gstaacparse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstaacparse.lo `test -f 'gstaacparse.c' || echo '$(srcdir)/'`gstaacparse.c
 
 libgstaudioparsers_la-gstamrparse.lo: gstamrparse.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-gstamrparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstamrparse.Tpo -c -o libgstaudioparsers_la-gstamrparse.lo `test -f 'gstamrparse.c' || echo '$(srcdir)/'`gstamrparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstamrparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstamrparse.Tpo -c -o libgstaudioparsers_la-gstamrparse.lo `test -f 'gstamrparse.c' || echo '$(srcdir)/'`gstamrparse.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstamrparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstamrparse.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstamrparse.c' object='libgstaudioparsers_la-gstamrparse.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-gstamrparse.lo `test -f 'gstamrparse.c' || echo '$(srcdir)/'`gstamrparse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstamrparse.lo `test -f 'gstamrparse.c' || echo '$(srcdir)/'`gstamrparse.c
 
 libgstaudioparsers_la-gstac3parse.lo: gstac3parse.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-gstac3parse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstac3parse.Tpo -c -o libgstaudioparsers_la-gstac3parse.lo `test -f 'gstac3parse.c' || echo '$(srcdir)/'`gstac3parse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstac3parse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstac3parse.Tpo -c -o libgstaudioparsers_la-gstac3parse.lo `test -f 'gstac3parse.c' || echo '$(srcdir)/'`gstac3parse.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstac3parse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstac3parse.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstac3parse.c' object='libgstaudioparsers_la-gstac3parse.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-gstac3parse.lo `test -f 'gstac3parse.c' || echo '$(srcdir)/'`gstac3parse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstac3parse.lo `test -f 'gstac3parse.c' || echo '$(srcdir)/'`gstac3parse.c
 
 libgstaudioparsers_la-gstdcaparse.lo: gstdcaparse.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-gstdcaparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstdcaparse.Tpo -c -o libgstaudioparsers_la-gstdcaparse.lo `test -f 'gstdcaparse.c' || echo '$(srcdir)/'`gstdcaparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstdcaparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstdcaparse.Tpo -c -o libgstaudioparsers_la-gstdcaparse.lo `test -f 'gstdcaparse.c' || echo '$(srcdir)/'`gstdcaparse.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstdcaparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstdcaparse.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdcaparse.c' object='libgstaudioparsers_la-gstdcaparse.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-gstdcaparse.lo `test -f 'gstdcaparse.c' || echo '$(srcdir)/'`gstdcaparse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstdcaparse.lo `test -f 'gstdcaparse.c' || echo '$(srcdir)/'`gstdcaparse.c
 
 libgstaudioparsers_la-gstflacparse.lo: gstflacparse.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-gstflacparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstflacparse.Tpo -c -o libgstaudioparsers_la-gstflacparse.lo `test -f 'gstflacparse.c' || echo '$(srcdir)/'`gstflacparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstflacparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstflacparse.Tpo -c -o libgstaudioparsers_la-gstflacparse.lo `test -f 'gstflacparse.c' || echo '$(srcdir)/'`gstflacparse.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstflacparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstflacparse.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstflacparse.c' object='libgstaudioparsers_la-gstflacparse.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-gstflacparse.lo `test -f 'gstflacparse.c' || echo '$(srcdir)/'`gstflacparse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstflacparse.lo `test -f 'gstflacparse.c' || echo '$(srcdir)/'`gstflacparse.c
 
 libgstaudioparsers_la-gstmpegaudioparse.lo: gstmpegaudioparse.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-gstmpegaudioparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstmpegaudioparse.Tpo -c -o libgstaudioparsers_la-gstmpegaudioparse.lo `test -f 'gstmpegaudioparse.c' || echo '$(srcdir)/'`gstmpegaudioparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstmpegaudioparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstmpegaudioparse.Tpo -c -o libgstaudioparsers_la-gstmpegaudioparse.lo `test -f 'gstmpegaudioparse.c' || echo '$(srcdir)/'`gstmpegaudioparse.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstmpegaudioparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstmpegaudioparse.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmpegaudioparse.c' object='libgstaudioparsers_la-gstmpegaudioparse.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-gstmpegaudioparse.lo `test -f 'gstmpegaudioparse.c' || echo '$(srcdir)/'`gstmpegaudioparse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwavpackparse.c' object='libgstaudioparsers_la-gstwavpackparse.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-gstwavpackparse.lo `test -f 'gstwavpackparse.c' || echo '$(srcdir)/'`gstwavpackparse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstwavpackparse.lo `test -f 'gstwavpackparse.c' || echo '$(srcdir)/'`gstwavpackparse.c
 
 libgstaudioparsers_la-plugin.lo: plugin.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-plugin.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-plugin.Tpo -c -o libgstaudioparsers_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-plugin.Tpo -c -o libgstaudioparsers_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-plugin.Tpo $(DEPDIR)/libgstaudioparsers_la-plugin.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='plugin.c' object='libgstaudioparsers_la-plugin.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-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/audioparsers/gstaacparse.c b/gst/audioparsers/gstaacparse.c
index c9ce30443..3c7c7165c 100644
--- a/gst/audioparsers/gstaacparse.c
+++ b/gst/audioparsers/gstaacparse.c
@@ -68,6 +68,7 @@ GST_DEBUG_CATEGORY_STATIC (aacparse_debug);
 #define ADIF_MAX_SIZE 40        /* Should be enough */
 #define ADTS_MAX_SIZE 10        /* Should be enough */
 #define LOAS_MAX_SIZE 3         /* Should be enough */
+#define RAW_MAX_SIZE  1         /* Correct framing is required */
 
 #define ADTS_HEADERS_LENGTH 7UL /* Total byte-length of fixed and variable
                                    headers prepended during raw to ADTS
@@ -334,6 +335,9 @@ gst_aac_parse_sink_setcaps (GstBaseParse * parse, GstCaps * caps)
       gst_aac_parse_set_src_caps (aacparse, caps);
       if (aacparse->header_type == aacparse->output_header_type)
         gst_base_parse_set_passthrough (parse, TRUE);
+
+      /* input is already correctly framed */
+      gst_base_parse_set_min_frame_size (parse, RAW_MAX_SIZE);
     } else {
       return FALSE;
     }
diff --git a/gst/audioparsers/gstdcaparse.c b/gst/audioparsers/gstdcaparse.c
index dfa562161..1ea40acda 100644
--- a/gst/audioparsers/gstdcaparse.c
+++ b/gst/audioparsers/gstdcaparse.c
@@ -328,6 +328,7 @@ gst_dca_parse_handle_frame (GstBaseParse * parse,
   gint off = -1;
   GstMapInfo map;
   GstFlowReturn ret = GST_FLOW_EOS;
+  gsize extra_size = 0;
 
   gst_buffer_map (buf, &map, GST_MAP_READ);
 
@@ -446,12 +447,37 @@ gst_dca_parse_handle_frame (GstBaseParse * parse,
   }
 
 cleanup:
-  gst_buffer_unmap (buf, &map);
-
-  if (ret == GST_FLOW_OK && size <= map.size) {
-    ret = gst_base_parse_finish_frame (parse, frame, size);
+  /* it is possible that DTS HD substream after DTS core */
+  if (parse->flags & GST_BASE_PARSE_FLAG_DRAINING || map.size >= size + 9) {
+    extra_size = 0;
+    if (map.size >= size + 9) {
+      const guint8 *next = map.data + size;
+      /* Check for DTS_SYNCWORD_SUBSTREAM */
+      if (next[0] == 0x64 && next[1] == 0x58 && next[2] == 0x20
+          && next[3] == 0x25) {
+        /* 7.4.1 Extension Substream Header */
+        GstBitReader reader;
+        gst_bit_reader_init (&reader, next + 4, 5);
+        gst_bit_reader_skip (&reader, 8 + 2);   /* skip UserDefinedBits and nExtSSIndex) */
+        if (gst_bit_reader_get_bits_uint8_unchecked (&reader, 1) == 0) {
+          gst_bit_reader_skip (&reader, 8);
+          extra_size =
+              gst_bit_reader_get_bits_uint32_unchecked (&reader, 16) + 1;
+        } else {
+          gst_bit_reader_skip (&reader, 12);
+          extra_size =
+              gst_bit_reader_get_bits_uint32_unchecked (&reader, 20) + 1;
+        }
+      }
+    }
+    gst_buffer_unmap (buf, &map);
+    if (ret == GST_FLOW_OK && size + extra_size <= map.size) {
+      ret = gst_base_parse_finish_frame (parse, frame, size + extra_size);
+    } else {
+      ret = GST_FLOW_OK;
+    }
   } else {
-    ret = GST_FLOW_OK;
+    gst_buffer_unmap (buf, &map);
   }
 
   return ret;
diff --git a/gst/auparse/Makefile.am b/gst/auparse/Makefile.am
index 643aa8ab9..013d0f22c 100644
--- a/gst/auparse/Makefile.am
+++ b/gst/auparse/Makefile.am
@@ -4,6 +4,5 @@ libgstauparse_la_SOURCES = gstauparse.c
 libgstauparse_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstauparse_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(GST_LIBS) $(GST_BASE_LIBS)
 libgstauparse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstauparse_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstauparse.h
diff --git a/gst/auparse/Makefile.in b/gst/auparse/Makefile.in
index 45e979cf3..6be70ebf5 100644
--- a/gst/auparse/Makefile.in
+++ b/gst/auparse/Makefile.in
@@ -172,8 +172,8 @@ 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) \
+	$(AM_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@)
@@ -291,6 +291,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -314,6 +315,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -329,6 +332,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -351,10 +356,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -369,6 +381,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -386,6 +399,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -398,6 +413,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -416,6 +433,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -459,9 +479,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -475,11 +506,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -575,7 +611,6 @@ libgstauparse_la_SOURCES = gstauparse.c
 libgstauparse_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstauparse_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(GST_LIBS) $(GST_BASE_LIBS)
 libgstauparse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstauparse_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstauparse.h
 all: all-am
 
@@ -682,11 +717,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstauparse_la-gstauparse.lo: gstauparse.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstauparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstauparse_la_CFLAGS) $(CFLAGS) -MT libgstauparse_la-gstauparse.lo -MD -MP -MF $(DEPDIR)/libgstauparse_la-gstauparse.Tpo -c -o libgstauparse_la-gstauparse.lo `test -f 'gstauparse.c' || echo '$(srcdir)/'`gstauparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstauparse_la_CFLAGS) $(CFLAGS) -MT libgstauparse_la-gstauparse.lo -MD -MP -MF $(DEPDIR)/libgstauparse_la-gstauparse.Tpo -c -o libgstauparse_la-gstauparse.lo `test -f 'gstauparse.c' || echo '$(srcdir)/'`gstauparse.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstauparse_la-gstauparse.Tpo $(DEPDIR)/libgstauparse_la-gstauparse.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstauparse.c' object='libgstauparse_la-gstauparse.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 $(libgstauparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstauparse_la_CFLAGS) $(CFLAGS) -c -o libgstauparse_la-gstauparse.lo `test -f 'gstauparse.c' || echo '$(srcdir)/'`gstauparse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstauparse_la_CFLAGS) $(CFLAGS) -c -o libgstauparse_la-gstauparse.lo `test -f 'gstauparse.c' || echo '$(srcdir)/'`gstauparse.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/autodetect/Makefile.am b/gst/autodetect/Makefile.am
index 6815c4b9e..42928a510 100644
--- a/gst/autodetect/Makefile.am
+++ b/gst/autodetect/Makefile.am
@@ -9,7 +9,6 @@ libgstautodetect_la_SOURCES = \
 libgstautodetect_la_CFLAGS = $(GST_CFLAGS)
 libgstautodetect_la_LIBADD = $(GST_LIBS)
 libgstautodetect_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstautodetect_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = \
 	gstautoaudiosink.h \
diff --git a/gst/autodetect/Makefile.in b/gst/autodetect/Makefile.in
index 4f3b3b411..bc7149650 100644
--- a/gst/autodetect/Makefile.in
+++ b/gst/autodetect/Makefile.in
@@ -176,8 +176,8 @@ 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) \
+	$(AM_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@)
@@ -295,6 +295,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -318,6 +319,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -333,6 +336,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -355,10 +360,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -373,6 +385,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -390,6 +403,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -402,6 +417,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -420,6 +437,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -463,9 +483,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -479,11 +510,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -585,7 +621,6 @@ libgstautodetect_la_SOURCES = \
 libgstautodetect_la_CFLAGS = $(GST_CFLAGS)
 libgstautodetect_la_LIBADD = $(GST_LIBS)
 libgstautodetect_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstautodetect_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
 	gstautoaudiosink.h \
 	gstautoaudiosrc.h \
@@ -702,39 +737,39 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstautodetect_la-gstautoaudiosink.lo: gstautoaudiosink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautoaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautoaudiosink.Tpo -c -o libgstautodetect_la-gstautoaudiosink.lo `test -f 'gstautoaudiosink.c' || echo '$(srcdir)/'`gstautoaudiosink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautoaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautoaudiosink.Tpo -c -o libgstautodetect_la-gstautoaudiosink.lo `test -f 'gstautoaudiosink.c' || echo '$(srcdir)/'`gstautoaudiosink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstautodetect_la-gstautoaudiosink.Tpo $(DEPDIR)/libgstautodetect_la-gstautoaudiosink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstautoaudiosink.c' object='libgstautodetect_la-gstautoaudiosink.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 $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautoaudiosink.lo `test -f 'gstautoaudiosink.c' || echo '$(srcdir)/'`gstautoaudiosink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautoaudiosink.lo `test -f 'gstautoaudiosink.c' || echo '$(srcdir)/'`gstautoaudiosink.c
 
 libgstautodetect_la-gstautoaudiosrc.lo: gstautoaudiosrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautoaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautoaudiosrc.Tpo -c -o libgstautodetect_la-gstautoaudiosrc.lo `test -f 'gstautoaudiosrc.c' || echo '$(srcdir)/'`gstautoaudiosrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautoaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautoaudiosrc.Tpo -c -o libgstautodetect_la-gstautoaudiosrc.lo `test -f 'gstautoaudiosrc.c' || echo '$(srcdir)/'`gstautoaudiosrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstautodetect_la-gstautoaudiosrc.Tpo $(DEPDIR)/libgstautodetect_la-gstautoaudiosrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstautoaudiosrc.c' object='libgstautodetect_la-gstautoaudiosrc.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 $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautoaudiosrc.lo `test -f 'gstautoaudiosrc.c' || echo '$(srcdir)/'`gstautoaudiosrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautoaudiosrc.lo `test -f 'gstautoaudiosrc.c' || echo '$(srcdir)/'`gstautoaudiosrc.c
 
 libgstautodetect_la-gstautodetect.lo: gstautodetect.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautodetect.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautodetect.Tpo -c -o libgstautodetect_la-gstautodetect.lo `test -f 'gstautodetect.c' || echo '$(srcdir)/'`gstautodetect.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautodetect.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautodetect.Tpo -c -o libgstautodetect_la-gstautodetect.lo `test -f 'gstautodetect.c' || echo '$(srcdir)/'`gstautodetect.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstautodetect_la-gstautodetect.Tpo $(DEPDIR)/libgstautodetect_la-gstautodetect.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstautodetect.c' object='libgstautodetect_la-gstautodetect.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 $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautodetect.lo `test -f 'gstautodetect.c' || echo '$(srcdir)/'`gstautodetect.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautodetect.lo `test -f 'gstautodetect.c' || echo '$(srcdir)/'`gstautodetect.c
 
 libgstautodetect_la-gstautovideosink.lo: gstautovideosink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautovideosink.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautovideosink.Tpo -c -o libgstautodetect_la-gstautovideosink.lo `test -f 'gstautovideosink.c' || echo '$(srcdir)/'`gstautovideosink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautovideosink.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautovideosink.Tpo -c -o libgstautodetect_la-gstautovideosink.lo `test -f 'gstautovideosink.c' || echo '$(srcdir)/'`gstautovideosink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstautodetect_la-gstautovideosink.Tpo $(DEPDIR)/libgstautodetect_la-gstautovideosink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstautovideosink.c' object='libgstautodetect_la-gstautovideosink.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 $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautovideosink.lo `test -f 'gstautovideosink.c' || echo '$(srcdir)/'`gstautovideosink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautovideosink.lo `test -f 'gstautovideosink.c' || echo '$(srcdir)/'`gstautovideosink.c
 
 libgstautodetect_la-gstautovideosrc.lo: gstautovideosrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautovideosrc.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautovideosrc.Tpo -c -o libgstautodetect_la-gstautovideosrc.lo `test -f 'gstautovideosrc.c' || echo '$(srcdir)/'`gstautovideosrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautovideosrc.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautovideosrc.Tpo -c -o libgstautodetect_la-gstautovideosrc.lo `test -f 'gstautovideosrc.c' || echo '$(srcdir)/'`gstautovideosrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstautodetect_la-gstautovideosrc.Tpo $(DEPDIR)/libgstautodetect_la-gstautovideosrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstautovideosrc.c' object='libgstautodetect_la-gstautovideosrc.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 $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautovideosrc.lo `test -f 'gstautovideosrc.c' || echo '$(srcdir)/'`gstautovideosrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautovideosrc.lo `test -f 'gstautovideosrc.c' || echo '$(srcdir)/'`gstautovideosrc.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/avi/Makefile.am b/gst/avi/Makefile.am
index 926df2765..276a3275b 100644
--- a/gst/avi/Makefile.am
+++ b/gst/avi/Makefile.am
@@ -23,6 +23,5 @@ libgstavi_la_LIBADD = \
 	-lgstvideo-@GST_API_VERSION@
 
 libgstavi_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstavi_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 EXTRA_DIST = README
diff --git a/gst/avi/Makefile.in b/gst/avi/Makefile.in
index 84fb9f8f1..347962719 100644
--- a/gst/avi/Makefile.in
+++ b/gst/avi/Makefile.in
@@ -173,10 +173,9 @@ 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 $@
+libgstavi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -293,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -316,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -331,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -353,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -371,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -388,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -400,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -418,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -461,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -477,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -596,7 +631,6 @@ libgstavi_la_LIBADD = \
 	-lgstvideo-@GST_API_VERSION@
 
 libgstavi_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstavi_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 EXTRA_DIST = README
 all: all-am
 
@@ -706,32 +740,32 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstavi_la-gstavi.lo: gstavi.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -MT libgstavi_la-gstavi.lo -MD -MP -MF $(DEPDIR)/libgstavi_la-gstavi.Tpo -c -o libgstavi_la-gstavi.lo `test -f 'gstavi.c' || echo '$(srcdir)/'`gstavi.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -MT libgstavi_la-gstavi.lo -MD -MP -MF $(DEPDIR)/libgstavi_la-gstavi.Tpo -c -o libgstavi_la-gstavi.lo `test -f 'gstavi.c' || echo '$(srcdir)/'`gstavi.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstavi_la-gstavi.Tpo $(DEPDIR)/libgstavi_la-gstavi.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstavi.c' object='libgstavi_la-gstavi.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 $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavi.lo `test -f 'gstavi.c' || echo '$(srcdir)/'`gstavi.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavi.lo `test -f 'gstavi.c' || echo '$(srcdir)/'`gstavi.c
 
 libgstavi_la-gstavimux.lo: gstavimux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -MT libgstavi_la-gstavimux.lo -MD -MP -MF $(DEPDIR)/libgstavi_la-gstavimux.Tpo -c -o libgstavi_la-gstavimux.lo `test -f 'gstavimux.c' || echo '$(srcdir)/'`gstavimux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -MT libgstavi_la-gstavimux.lo -MD -MP -MF $(DEPDIR)/libgstavi_la-gstavimux.Tpo -c -o libgstavi_la-gstavimux.lo `test -f 'gstavimux.c' || echo '$(srcdir)/'`gstavimux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstavi_la-gstavimux.Tpo $(DEPDIR)/libgstavi_la-gstavimux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstavimux.c' object='libgstavi_la-gstavimux.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 $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavimux.lo `test -f 'gstavimux.c' || echo '$(srcdir)/'`gstavimux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavimux.lo `test -f 'gstavimux.c' || echo '$(srcdir)/'`gstavimux.c
 
 libgstavi_la-gstavidemux.lo: gstavidemux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -MT libgstavi_la-gstavidemux.lo -MD -MP -MF $(DEPDIR)/libgstavi_la-gstavidemux.Tpo -c -o libgstavi_la-gstavidemux.lo `test -f 'gstavidemux.c' || echo '$(srcdir)/'`gstavidemux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -MT libgstavi_la-gstavidemux.lo -MD -MP -MF $(DEPDIR)/libgstavi_la-gstavidemux.Tpo -c -o libgstavi_la-gstavidemux.lo `test -f 'gstavidemux.c' || echo '$(srcdir)/'`gstavidemux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstavi_la-gstavidemux.Tpo $(DEPDIR)/libgstavi_la-gstavidemux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstavidemux.c' object='libgstavi_la-gstavidemux.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 $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavidemux.lo `test -f 'gstavidemux.c' || echo '$(srcdir)/'`gstavidemux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavidemux.lo `test -f 'gstavidemux.c' || echo '$(srcdir)/'`gstavidemux.c
 
 libgstavi_la-gstavisubtitle.lo: gstavisubtitle.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -MT libgstavi_la-gstavisubtitle.lo -MD -MP -MF $(DEPDIR)/libgstavi_la-gstavisubtitle.Tpo -c -o libgstavi_la-gstavisubtitle.lo `test -f 'gstavisubtitle.c' || echo '$(srcdir)/'`gstavisubtitle.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -MT libgstavi_la-gstavisubtitle.lo -MD -MP -MF $(DEPDIR)/libgstavi_la-gstavisubtitle.Tpo -c -o libgstavi_la-gstavisubtitle.lo `test -f 'gstavisubtitle.c' || echo '$(srcdir)/'`gstavisubtitle.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstavi_la-gstavisubtitle.Tpo $(DEPDIR)/libgstavi_la-gstavisubtitle.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstavisubtitle.c' object='libgstavi_la-gstavisubtitle.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 $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavisubtitle.lo `test -f 'gstavisubtitle.c' || echo '$(srcdir)/'`gstavisubtitle.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavisubtitle.lo `test -f 'gstavisubtitle.c' || echo '$(srcdir)/'`gstavisubtitle.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index 837dbb5e9..c02ee896c 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -1479,6 +1479,16 @@ gst_avi_demux_do_index_stats (GstAviDemux * avi)
         stream->n_keyframes, (guint) sizeof (GstAviIndexEntry),
         (guint) (stream->idx_n * sizeof (GstAviIndexEntry)),
         (guint) (stream->idx_max * sizeof (GstAviIndexEntry)));
+
+    /* knowing all that we do, that also includes avg bitrate */
+    if (!stream->taglist) {
+      stream->taglist = gst_tag_list_new_empty ();
+    }
+    if (stream->total_bytes && stream->idx_duration)
+      gst_tag_list_add (stream->taglist, GST_TAG_MERGE_REPLACE,
+          GST_TAG_BITRATE,
+          (guint) gst_util_uint64_scale (stream->total_bytes * 8,
+              GST_SECOND, stream->idx_duration), NULL);
   }
   total_idx *= sizeof (GstAviIndexEntry);
 #ifndef GST_DISABLE_GST_DEBUG
diff --git a/gst/cutter/Makefile.am b/gst/cutter/Makefile.am
index a285fabf1..3d5677ea9 100644
--- a/gst/cutter/Makefile.am
+++ b/gst/cutter/Makefile.am
@@ -4,7 +4,6 @@ libgstcutter_la_SOURCES = gstcutter.c
 libgstcutter_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstcutter_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LIBM)
 libgstcutter_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstcutter_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstcutter.h filter.func
 
diff --git a/gst/cutter/Makefile.in b/gst/cutter/Makefile.in
index 7ce2eea78..5697cadde 100644
--- a/gst/cutter/Makefile.in
+++ b/gst/cutter/Makefile.in
@@ -172,9 +172,9 @@ 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_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
@@ -291,6 +291,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -314,6 +315,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -329,6 +332,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -351,10 +356,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -369,6 +381,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -386,6 +399,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -398,6 +413,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -416,6 +433,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -459,9 +479,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -475,11 +506,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -575,7 +611,6 @@ libgstcutter_la_SOURCES = gstcutter.c
 libgstcutter_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstcutter_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LIBM)
 libgstcutter_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstcutter_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstcutter.h filter.func
 EXTRA_DIST = README
 all: all-am
@@ -683,11 +718,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstcutter_la-gstcutter.lo: gstcutter.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcutter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcutter_la_CFLAGS) $(CFLAGS) -MT libgstcutter_la-gstcutter.lo -MD -MP -MF $(DEPDIR)/libgstcutter_la-gstcutter.Tpo -c -o libgstcutter_la-gstcutter.lo `test -f 'gstcutter.c' || echo '$(srcdir)/'`gstcutter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcutter_la_CFLAGS) $(CFLAGS) -MT libgstcutter_la-gstcutter.lo -MD -MP -MF $(DEPDIR)/libgstcutter_la-gstcutter.Tpo -c -o libgstcutter_la-gstcutter.lo `test -f 'gstcutter.c' || echo '$(srcdir)/'`gstcutter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcutter_la-gstcutter.Tpo $(DEPDIR)/libgstcutter_la-gstcutter.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcutter.c' object='libgstcutter_la-gstcutter.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 $(libgstcutter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcutter_la_CFLAGS) $(CFLAGS) -c -o libgstcutter_la-gstcutter.lo `test -f 'gstcutter.c' || echo '$(srcdir)/'`gstcutter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcutter_la_CFLAGS) $(CFLAGS) -c -o libgstcutter_la-gstcutter.lo `test -f 'gstcutter.c' || echo '$(srcdir)/'`gstcutter.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/debugutils/Makefile.am b/gst/debugutils/Makefile.am
index 105be36fa..31e9c8ce2 100644
--- a/gst/debugutils/Makefile.am
+++ b/gst/debugutils/Makefile.am
@@ -18,7 +18,6 @@ libgstnavigationtest_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
 libgstnavigationtest_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) \
 	$(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_API_VERSION@ $(LIBM)
 libgstnavigationtest_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstnavigationtest_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 libgstdebug_la_SOURCES = \
 	gstdebug.c \
@@ -38,4 +37,3 @@ libgstdebug_la_SOURCES = \
 libgstdebug_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS)
 libgstdebug_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
 libgstdebug_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstdebug_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
diff --git a/gst/debugutils/Makefile.in b/gst/debugutils/Makefile.in
index 050333a6d..7d7141af5 100644
--- a/gst/debugutils/Makefile.in
+++ b/gst/debugutils/Makefile.in
@@ -177,9 +177,9 @@ 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) \
-	$(libgstdebug_la_LDFLAGS) $(LDFLAGS) -o $@
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libgstdebug_la_CFLAGS) $(CFLAGS) $(libgstdebug_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
 libgstnavigationtest_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
@@ -188,9 +188,9 @@ am_libgstnavigationtest_la_OBJECTS =  \
 libgstnavigationtest_la_OBJECTS =  \
 	$(am_libgstnavigationtest_la_OBJECTS)
 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_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
@@ -308,6 +308,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -331,6 +332,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -346,6 +349,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -368,10 +373,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -386,6 +398,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -403,6 +416,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -415,6 +430,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -433,6 +450,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -476,9 +496,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -492,11 +523,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -607,7 +643,6 @@ libgstnavigationtest_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) \
 	$(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_API_VERSION@ $(LIBM)
 
 libgstnavigationtest_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstnavigationtest_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 libgstdebug_la_SOURCES = \
 	gstdebug.c \
 	breakmydata.c \
@@ -626,7 +661,6 @@ libgstdebug_la_SOURCES = \
 libgstdebug_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS)
 libgstdebug_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
 libgstdebug_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstdebug_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 all: all-am
 
 .SUFFIXES:
@@ -746,88 +780,88 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstdebug_la-gstdebug.lo: gstdebug.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstdebug.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstdebug.Tpo -c -o libgstdebug_la-gstdebug.lo `test -f 'gstdebug.c' || echo '$(srcdir)/'`gstdebug.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstdebug.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstdebug.Tpo -c -o libgstdebug_la-gstdebug.lo `test -f 'gstdebug.c' || echo '$(srcdir)/'`gstdebug.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-gstdebug.Tpo $(DEPDIR)/libgstdebug_la-gstdebug.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdebug.c' object='libgstdebug_la-gstdebug.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 $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstdebug.lo `test -f 'gstdebug.c' || echo '$(srcdir)/'`gstdebug.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstdebug.lo `test -f 'gstdebug.c' || echo '$(srcdir)/'`gstdebug.c
 
 libgstdebug_la-breakmydata.lo: breakmydata.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-breakmydata.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-breakmydata.Tpo -c -o libgstdebug_la-breakmydata.lo `test -f 'breakmydata.c' || echo '$(srcdir)/'`breakmydata.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-breakmydata.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-breakmydata.Tpo -c -o libgstdebug_la-breakmydata.lo `test -f 'breakmydata.c' || echo '$(srcdir)/'`breakmydata.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-breakmydata.Tpo $(DEPDIR)/libgstdebug_la-breakmydata.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='breakmydata.c' object='libgstdebug_la-breakmydata.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 $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-breakmydata.lo `test -f 'breakmydata.c' || echo '$(srcdir)/'`breakmydata.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-breakmydata.lo `test -f 'breakmydata.c' || echo '$(srcdir)/'`breakmydata.c
 
 libgstdebug_la-gstcapssetter.lo: gstcapssetter.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstcapssetter.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstcapssetter.Tpo -c -o libgstdebug_la-gstcapssetter.lo `test -f 'gstcapssetter.c' || echo '$(srcdir)/'`gstcapssetter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstcapssetter.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstcapssetter.Tpo -c -o libgstdebug_la-gstcapssetter.lo `test -f 'gstcapssetter.c' || echo '$(srcdir)/'`gstcapssetter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-gstcapssetter.Tpo $(DEPDIR)/libgstdebug_la-gstcapssetter.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcapssetter.c' object='libgstdebug_la-gstcapssetter.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 $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstcapssetter.lo `test -f 'gstcapssetter.c' || echo '$(srcdir)/'`gstcapssetter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstcapssetter.lo `test -f 'gstcapssetter.c' || echo '$(srcdir)/'`gstcapssetter.c
 
 libgstdebug_la-gstnavseek.lo: gstnavseek.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstnavseek.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstnavseek.Tpo -c -o libgstdebug_la-gstnavseek.lo `test -f 'gstnavseek.c' || echo '$(srcdir)/'`gstnavseek.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstnavseek.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstnavseek.Tpo -c -o libgstdebug_la-gstnavseek.lo `test -f 'gstnavseek.c' || echo '$(srcdir)/'`gstnavseek.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-gstnavseek.Tpo $(DEPDIR)/libgstdebug_la-gstnavseek.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstnavseek.c' object='libgstdebug_la-gstnavseek.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 $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstnavseek.lo `test -f 'gstnavseek.c' || echo '$(srcdir)/'`gstnavseek.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstnavseek.lo `test -f 'gstnavseek.c' || echo '$(srcdir)/'`gstnavseek.c
 
 libgstdebug_la-gstpushfilesrc.lo: gstpushfilesrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstpushfilesrc.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstpushfilesrc.Tpo -c -o libgstdebug_la-gstpushfilesrc.lo `test -f 'gstpushfilesrc.c' || echo '$(srcdir)/'`gstpushfilesrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstpushfilesrc.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstpushfilesrc.Tpo -c -o libgstdebug_la-gstpushfilesrc.lo `test -f 'gstpushfilesrc.c' || echo '$(srcdir)/'`gstpushfilesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-gstpushfilesrc.Tpo $(DEPDIR)/libgstdebug_la-gstpushfilesrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstpushfilesrc.c' object='libgstdebug_la-gstpushfilesrc.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 $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstpushfilesrc.lo `test -f 'gstpushfilesrc.c' || echo '$(srcdir)/'`gstpushfilesrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstpushfilesrc.lo `test -f 'gstpushfilesrc.c' || echo '$(srcdir)/'`gstpushfilesrc.c
 
 libgstdebug_la-gsttaginject.lo: gsttaginject.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gsttaginject.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gsttaginject.Tpo -c -o libgstdebug_la-gsttaginject.lo `test -f 'gsttaginject.c' || echo '$(srcdir)/'`gsttaginject.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gsttaginject.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gsttaginject.Tpo -c -o libgstdebug_la-gsttaginject.lo `test -f 'gsttaginject.c' || echo '$(srcdir)/'`gsttaginject.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-gsttaginject.Tpo $(DEPDIR)/libgstdebug_la-gsttaginject.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttaginject.c' object='libgstdebug_la-gsttaginject.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 $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gsttaginject.lo `test -f 'gsttaginject.c' || echo '$(srcdir)/'`gsttaginject.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gsttaginject.lo `test -f 'gsttaginject.c' || echo '$(srcdir)/'`gsttaginject.c
 
 libgstdebug_la-rndbuffersize.lo: rndbuffersize.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-rndbuffersize.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-rndbuffersize.Tpo -c -o libgstdebug_la-rndbuffersize.lo `test -f 'rndbuffersize.c' || echo '$(srcdir)/'`rndbuffersize.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-rndbuffersize.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-rndbuffersize.Tpo -c -o libgstdebug_la-rndbuffersize.lo `test -f 'rndbuffersize.c' || echo '$(srcdir)/'`rndbuffersize.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-rndbuffersize.Tpo $(DEPDIR)/libgstdebug_la-rndbuffersize.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rndbuffersize.c' object='libgstdebug_la-rndbuffersize.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 $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-rndbuffersize.lo `test -f 'rndbuffersize.c' || echo '$(srcdir)/'`rndbuffersize.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-rndbuffersize.lo `test -f 'rndbuffersize.c' || echo '$(srcdir)/'`rndbuffersize.c
 
 libgstdebug_la-progressreport.lo: progressreport.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-progressreport.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-progressreport.Tpo -c -o libgstdebug_la-progressreport.lo `test -f 'progressreport.c' || echo '$(srcdir)/'`progressreport.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-progressreport.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-progressreport.Tpo -c -o libgstdebug_la-progressreport.lo `test -f 'progressreport.c' || echo '$(srcdir)/'`progressreport.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-progressreport.Tpo $(DEPDIR)/libgstdebug_la-progressreport.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='progressreport.c' object='libgstdebug_la-progressreport.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 $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-progressreport.lo `test -f 'progressreport.c' || echo '$(srcdir)/'`progressreport.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-progressreport.lo `test -f 'progressreport.c' || echo '$(srcdir)/'`progressreport.c
 
 libgstdebug_la-tests.lo: tests.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-tests.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-tests.Tpo -c -o libgstdebug_la-tests.lo `test -f 'tests.c' || echo '$(srcdir)/'`tests.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-tests.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-tests.Tpo -c -o libgstdebug_la-tests.lo `test -f 'tests.c' || echo '$(srcdir)/'`tests.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-tests.Tpo $(DEPDIR)/libgstdebug_la-tests.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tests.c' object='libgstdebug_la-tests.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 $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-tests.lo `test -f 'tests.c' || echo '$(srcdir)/'`tests.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-tests.lo `test -f 'tests.c' || echo '$(srcdir)/'`tests.c
 
 libgstdebug_la-cpureport.lo: cpureport.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-cpureport.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-cpureport.Tpo -c -o libgstdebug_la-cpureport.lo `test -f 'cpureport.c' || echo '$(srcdir)/'`cpureport.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-cpureport.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-cpureport.Tpo -c -o libgstdebug_la-cpureport.lo `test -f 'cpureport.c' || echo '$(srcdir)/'`cpureport.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-cpureport.Tpo $(DEPDIR)/libgstdebug_la-cpureport.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='cpureport.c' object='libgstdebug_la-cpureport.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 $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-cpureport.lo `test -f 'cpureport.c' || echo '$(srcdir)/'`cpureport.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-cpureport.lo `test -f 'cpureport.c' || echo '$(srcdir)/'`cpureport.c
 
 libgstdebug_la-testplugin.lo: testplugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-testplugin.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-testplugin.Tpo -c -o libgstdebug_la-testplugin.lo `test -f 'testplugin.c' || echo '$(srcdir)/'`testplugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-testplugin.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-testplugin.Tpo -c -o libgstdebug_la-testplugin.lo `test -f 'testplugin.c' || echo '$(srcdir)/'`testplugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-testplugin.Tpo $(DEPDIR)/libgstdebug_la-testplugin.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testplugin.c' object='libgstdebug_la-testplugin.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 $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-testplugin.lo `test -f 'testplugin.c' || echo '$(srcdir)/'`testplugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-testplugin.lo `test -f 'testplugin.c' || echo '$(srcdir)/'`testplugin.c
 
 libgstnavigationtest_la-gstnavigationtest.lo: gstnavigationtest.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnavigationtest_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnavigationtest_la_CFLAGS) $(CFLAGS) -MT libgstnavigationtest_la-gstnavigationtest.lo -MD -MP -MF $(DEPDIR)/libgstnavigationtest_la-gstnavigationtest.Tpo -c -o libgstnavigationtest_la-gstnavigationtest.lo `test -f 'gstnavigationtest.c' || echo '$(srcdir)/'`gstnavigationtest.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnavigationtest_la_CFLAGS) $(CFLAGS) -MT libgstnavigationtest_la-gstnavigationtest.lo -MD -MP -MF $(DEPDIR)/libgstnavigationtest_la-gstnavigationtest.Tpo -c -o libgstnavigationtest_la-gstnavigationtest.lo `test -f 'gstnavigationtest.c' || echo '$(srcdir)/'`gstnavigationtest.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstnavigationtest_la-gstnavigationtest.Tpo $(DEPDIR)/libgstnavigationtest_la-gstnavigationtest.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstnavigationtest.c' object='libgstnavigationtest_la-gstnavigationtest.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 $(libgstnavigationtest_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnavigationtest_la_CFLAGS) $(CFLAGS) -c -o libgstnavigationtest_la-gstnavigationtest.lo `test -f 'gstnavigationtest.c' || echo '$(srcdir)/'`gstnavigationtest.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnavigationtest_la_CFLAGS) $(CFLAGS) -c -o libgstnavigationtest_la-gstnavigationtest.lo `test -f 'gstnavigationtest.c' || echo '$(srcdir)/'`gstnavigationtest.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/deinterlace/Makefile.am b/gst/deinterlace/Makefile.am
index c0f4fa9b9..61e7ed926 100644
--- a/gst/deinterlace/Makefile.am
+++ b/gst/deinterlace/Makefile.am
@@ -23,7 +23,6 @@ libgstdeinterlace_la_CFLAGS = \
 libgstdeinterlace_la_LIBADD = \
 	$(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS)
 libgstdeinterlace_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstdeinterlace_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = \
 	gstdeinterlace.h \
diff --git a/gst/deinterlace/Makefile.in b/gst/deinterlace/Makefile.in
index bdba0ee3e..39a68ea0d 100644
--- a/gst/deinterlace/Makefile.in
+++ b/gst/deinterlace/Makefile.in
@@ -211,8 +211,8 @@ 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) \
+	$(AM_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@)
@@ -332,6 +332,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -355,6 +356,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -370,6 +373,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -392,10 +397,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -410,6 +422,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -427,6 +440,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -439,6 +454,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -457,6 +474,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -500,9 +520,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -516,11 +547,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -644,7 +680,6 @@ libgstdeinterlace_la_LIBADD = \
 	$(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS)
 
 libgstdeinterlace_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstdeinterlace_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
 	gstdeinterlace.h \
 	gstdeinterlacemethod.h \
@@ -819,95 +854,95 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstdeinterlace_la-gstdeinterlace.lo: gstdeinterlace.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-gstdeinterlace.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-gstdeinterlace.Tpo -c -o libgstdeinterlace_la-gstdeinterlace.lo `test -f 'gstdeinterlace.c' || echo '$(srcdir)/'`gstdeinterlace.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-gstdeinterlace.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-gstdeinterlace.Tpo -c -o libgstdeinterlace_la-gstdeinterlace.lo `test -f 'gstdeinterlace.c' || echo '$(srcdir)/'`gstdeinterlace.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-gstdeinterlace.Tpo $(DEPDIR)/libgstdeinterlace_la-gstdeinterlace.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdeinterlace.c' object='libgstdeinterlace_la-gstdeinterlace.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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-gstdeinterlace.lo `test -f 'gstdeinterlace.c' || echo '$(srcdir)/'`gstdeinterlace.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-gstdeinterlace.lo `test -f 'gstdeinterlace.c' || echo '$(srcdir)/'`gstdeinterlace.c
 
 libgstdeinterlace_la-gstdeinterlacemethod.lo: gstdeinterlacemethod.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-gstdeinterlacemethod.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-gstdeinterlacemethod.Tpo -c -o libgstdeinterlace_la-gstdeinterlacemethod.lo `test -f 'gstdeinterlacemethod.c' || echo '$(srcdir)/'`gstdeinterlacemethod.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-gstdeinterlacemethod.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-gstdeinterlacemethod.Tpo -c -o libgstdeinterlace_la-gstdeinterlacemethod.lo `test -f 'gstdeinterlacemethod.c' || echo '$(srcdir)/'`gstdeinterlacemethod.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-gstdeinterlacemethod.Tpo $(DEPDIR)/libgstdeinterlace_la-gstdeinterlacemethod.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdeinterlacemethod.c' object='libgstdeinterlace_la-gstdeinterlacemethod.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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-gstdeinterlacemethod.lo `test -f 'gstdeinterlacemethod.c' || echo '$(srcdir)/'`gstdeinterlacemethod.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-gstdeinterlacemethod.lo `test -f 'gstdeinterlacemethod.c' || echo '$(srcdir)/'`gstdeinterlacemethod.c
 
 tvtime/libgstdeinterlace_la-tomsmocomp.lo: tvtime/tomsmocomp.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-tomsmocomp.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-tomsmocomp.Tpo -c -o tvtime/libgstdeinterlace_la-tomsmocomp.lo `test -f 'tvtime/tomsmocomp.c' || echo '$(srcdir)/'`tvtime/tomsmocomp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-tomsmocomp.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-tomsmocomp.Tpo -c -o tvtime/libgstdeinterlace_la-tomsmocomp.lo `test -f 'tvtime/tomsmocomp.c' || echo '$(srcdir)/'`tvtime/tomsmocomp.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) tvtime/$(DEPDIR)/libgstdeinterlace_la-tomsmocomp.Tpo tvtime/$(DEPDIR)/libgstdeinterlace_la-tomsmocomp.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tvtime/tomsmocomp.c' object='tvtime/libgstdeinterlace_la-tomsmocomp.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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-tomsmocomp.lo `test -f 'tvtime/tomsmocomp.c' || echo '$(srcdir)/'`tvtime/tomsmocomp.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-tomsmocomp.lo `test -f 'tvtime/tomsmocomp.c' || echo '$(srcdir)/'`tvtime/tomsmocomp.c
 
 tvtime/libgstdeinterlace_la-greedy.lo: tvtime/greedy.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-greedy.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-greedy.Tpo -c -o tvtime/libgstdeinterlace_la-greedy.lo `test -f 'tvtime/greedy.c' || echo '$(srcdir)/'`tvtime/greedy.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-greedy.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-greedy.Tpo -c -o tvtime/libgstdeinterlace_la-greedy.lo `test -f 'tvtime/greedy.c' || echo '$(srcdir)/'`tvtime/greedy.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) tvtime/$(DEPDIR)/libgstdeinterlace_la-greedy.Tpo tvtime/$(DEPDIR)/libgstdeinterlace_la-greedy.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tvtime/greedy.c' object='tvtime/libgstdeinterlace_la-greedy.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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-greedy.lo `test -f 'tvtime/greedy.c' || echo '$(srcdir)/'`tvtime/greedy.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-greedy.lo `test -f 'tvtime/greedy.c' || echo '$(srcdir)/'`tvtime/greedy.c
 
 tvtime/libgstdeinterlace_la-greedyh.lo: tvtime/greedyh.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-greedyh.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-greedyh.Tpo -c -o tvtime/libgstdeinterlace_la-greedyh.lo `test -f 'tvtime/greedyh.c' || echo '$(srcdir)/'`tvtime/greedyh.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-greedyh.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-greedyh.Tpo -c -o tvtime/libgstdeinterlace_la-greedyh.lo `test -f 'tvtime/greedyh.c' || echo '$(srcdir)/'`tvtime/greedyh.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) tvtime/$(DEPDIR)/libgstdeinterlace_la-greedyh.Tpo tvtime/$(DEPDIR)/libgstdeinterlace_la-greedyh.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tvtime/greedyh.c' object='tvtime/libgstdeinterlace_la-greedyh.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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-greedyh.lo `test -f 'tvtime/greedyh.c' || echo '$(srcdir)/'`tvtime/greedyh.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-greedyh.lo `test -f 'tvtime/greedyh.c' || echo '$(srcdir)/'`tvtime/greedyh.c
 
 tvtime/libgstdeinterlace_la-vfir.lo: tvtime/vfir.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-vfir.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-vfir.Tpo -c -o tvtime/libgstdeinterlace_la-vfir.lo `test -f 'tvtime/vfir.c' || echo '$(srcdir)/'`tvtime/vfir.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-vfir.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-vfir.Tpo -c -o tvtime/libgstdeinterlace_la-vfir.lo `test -f 'tvtime/vfir.c' || echo '$(srcdir)/'`tvtime/vfir.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) tvtime/$(DEPDIR)/libgstdeinterlace_la-vfir.Tpo tvtime/$(DEPDIR)/libgstdeinterlace_la-vfir.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tvtime/vfir.c' object='tvtime/libgstdeinterlace_la-vfir.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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-vfir.lo `test -f 'tvtime/vfir.c' || echo '$(srcdir)/'`tvtime/vfir.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-vfir.lo `test -f 'tvtime/vfir.c' || echo '$(srcdir)/'`tvtime/vfir.c
 
 tvtime/libgstdeinterlace_la-weavetff.lo: tvtime/weavetff.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-weavetff.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-weavetff.Tpo -c -o tvtime/libgstdeinterlace_la-weavetff.lo `test -f 'tvtime/weavetff.c' || echo '$(srcdir)/'`tvtime/weavetff.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-weavetff.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-weavetff.Tpo -c -o tvtime/libgstdeinterlace_la-weavetff.lo `test -f 'tvtime/weavetff.c' || echo '$(srcdir)/'`tvtime/weavetff.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) tvtime/$(DEPDIR)/libgstdeinterlace_la-weavetff.Tpo tvtime/$(DEPDIR)/libgstdeinterlace_la-weavetff.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tvtime/weavetff.c' object='tvtime/libgstdeinterlace_la-weavetff.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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-weavetff.lo `test -f 'tvtime/weavetff.c' || echo '$(srcdir)/'`tvtime/weavetff.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-weavetff.lo `test -f 'tvtime/weavetff.c' || echo '$(srcdir)/'`tvtime/weavetff.c
 
 tvtime/libgstdeinterlace_la-weavebff.lo: tvtime/weavebff.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-weavebff.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-weavebff.Tpo -c -o tvtime/libgstdeinterlace_la-weavebff.lo `test -f 'tvtime/weavebff.c' || echo '$(srcdir)/'`tvtime/weavebff.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-weavebff.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-weavebff.Tpo -c -o tvtime/libgstdeinterlace_la-weavebff.lo `test -f 'tvtime/weavebff.c' || echo '$(srcdir)/'`tvtime/weavebff.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) tvtime/$(DEPDIR)/libgstdeinterlace_la-weavebff.Tpo tvtime/$(DEPDIR)/libgstdeinterlace_la-weavebff.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tvtime/weavebff.c' object='tvtime/libgstdeinterlace_la-weavebff.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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-weavebff.lo `test -f 'tvtime/weavebff.c' || echo '$(srcdir)/'`tvtime/weavebff.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-weavebff.lo `test -f 'tvtime/weavebff.c' || echo '$(srcdir)/'`tvtime/weavebff.c
 
 tvtime/libgstdeinterlace_la-weave.lo: tvtime/weave.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-weave.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-weave.Tpo -c -o tvtime/libgstdeinterlace_la-weave.lo `test -f 'tvtime/weave.c' || echo '$(srcdir)/'`tvtime/weave.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-weave.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-weave.Tpo -c -o tvtime/libgstdeinterlace_la-weave.lo `test -f 'tvtime/weave.c' || echo '$(srcdir)/'`tvtime/weave.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) tvtime/$(DEPDIR)/libgstdeinterlace_la-weave.Tpo tvtime/$(DEPDIR)/libgstdeinterlace_la-weave.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tvtime/weave.c' object='tvtime/libgstdeinterlace_la-weave.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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-weave.lo `test -f 'tvtime/weave.c' || echo '$(srcdir)/'`tvtime/weave.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-weave.lo `test -f 'tvtime/weave.c' || echo '$(srcdir)/'`tvtime/weave.c
 
 tvtime/libgstdeinterlace_la-linear.lo: tvtime/linear.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-linear.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-linear.Tpo -c -o tvtime/libgstdeinterlace_la-linear.lo `test -f 'tvtime/linear.c' || echo '$(srcdir)/'`tvtime/linear.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-linear.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-linear.Tpo -c -o tvtime/libgstdeinterlace_la-linear.lo `test -f 'tvtime/linear.c' || echo '$(srcdir)/'`tvtime/linear.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) tvtime/$(DEPDIR)/libgstdeinterlace_la-linear.Tpo tvtime/$(DEPDIR)/libgstdeinterlace_la-linear.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tvtime/linear.c' object='tvtime/libgstdeinterlace_la-linear.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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-linear.lo `test -f 'tvtime/linear.c' || echo '$(srcdir)/'`tvtime/linear.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-linear.lo `test -f 'tvtime/linear.c' || echo '$(srcdir)/'`tvtime/linear.c
 
 tvtime/libgstdeinterlace_la-linearblend.lo: tvtime/linearblend.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-linearblend.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-linearblend.Tpo -c -o tvtime/libgstdeinterlace_la-linearblend.lo `test -f 'tvtime/linearblend.c' || echo '$(srcdir)/'`tvtime/linearblend.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-linearblend.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-linearblend.Tpo -c -o tvtime/libgstdeinterlace_la-linearblend.lo `test -f 'tvtime/linearblend.c' || echo '$(srcdir)/'`tvtime/linearblend.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) tvtime/$(DEPDIR)/libgstdeinterlace_la-linearblend.Tpo tvtime/$(DEPDIR)/libgstdeinterlace_la-linearblend.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tvtime/linearblend.c' object='tvtime/libgstdeinterlace_la-linearblend.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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-linearblend.lo `test -f 'tvtime/linearblend.c' || echo '$(srcdir)/'`tvtime/linearblend.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-linearblend.lo `test -f 'tvtime/linearblend.c' || echo '$(srcdir)/'`tvtime/linearblend.c
 
 tvtime/libgstdeinterlace_la-scalerbob.lo: tvtime/scalerbob.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-scalerbob.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-scalerbob.Tpo -c -o tvtime/libgstdeinterlace_la-scalerbob.lo `test -f 'tvtime/scalerbob.c' || echo '$(srcdir)/'`tvtime/scalerbob.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT tvtime/libgstdeinterlace_la-scalerbob.lo -MD -MP -MF tvtime/$(DEPDIR)/libgstdeinterlace_la-scalerbob.Tpo -c -o tvtime/libgstdeinterlace_la-scalerbob.lo `test -f 'tvtime/scalerbob.c' || echo '$(srcdir)/'`tvtime/scalerbob.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) tvtime/$(DEPDIR)/libgstdeinterlace_la-scalerbob.Tpo tvtime/$(DEPDIR)/libgstdeinterlace_la-scalerbob.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tvtime/scalerbob.c' object='tvtime/libgstdeinterlace_la-scalerbob.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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-scalerbob.lo `test -f 'tvtime/scalerbob.c' || echo '$(srcdir)/'`tvtime/scalerbob.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o tvtime/libgstdeinterlace_la-scalerbob.lo `test -f 'tvtime/scalerbob.c' || echo '$(srcdir)/'`tvtime/scalerbob.c
 
 libgstdeinterlace_la-tmp-orc.lo: tmp-orc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-tmp-orc.Tpo -c -o libgstdeinterlace_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-tmp-orc.Tpo -c -o libgstdeinterlace_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-tmp-orc.Tpo $(DEPDIR)/libgstdeinterlace_la-tmp-orc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tmp-orc.c' object='libgstdeinterlace_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 $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c
index 42b549f2c..662a1c4d2 100644
--- a/gst/deinterlace/gstdeinterlace.c
+++ b/gst/deinterlace/gstdeinterlace.c
@@ -2801,16 +2801,16 @@ set_caps_failed:
     GST_ERROR_OBJECT (pad, "Failed to set caps: %" GST_PTR_FORMAT, srccaps);
     if (peercaps)
       gst_caps_unref (peercaps);
-    if (srccaps)
-      gst_caps_unref (srccaps);
+    gst_caps_unref (srccaps);
     gst_pad_mark_reconfigure (self->srcpad);
     return FALSE;
   }
 no_bufferpool:
   {
     GST_ERROR_OBJECT (pad, "could not negotiate bufferpool");
-    if (srccaps)
-      gst_caps_unref (srccaps);
+    if (peercaps)
+      gst_caps_unref (peercaps);
+    gst_caps_unref (srccaps);
     gst_pad_mark_reconfigure (self->srcpad);
     return FALSE;
   }
diff --git a/gst/deinterlace/tvtime-dist.c b/gst/deinterlace/tvtime-dist.c
index 2e22e445f..d92ce306f 100644
--- a/gst/deinterlace/tvtime-dist.c
+++ b/gst/deinterlace/tvtime-dist.c
@@ -117,11 +117,11 @@ void deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1,
 #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 (orc_uint8) 255
+#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 (orc_uint16)65535
+#define ORC_UW_MAX 65535
 #define ORC_UW_MIN 0
 #define ORC_SL_MAX 2147483647
 #define ORC_SL_MIN (-1-ORC_SL_MAX)
@@ -201,7 +201,7 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   ptr8 = (orc_int8 *) s5;
 
   /* 16: loadpw */
-  var40.i = 0x00000004;         /* 4 or 1.97626e-323f */
+  var40.i = (int) 0x00000004;   /* 4 or 1.97626e-323f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
@@ -293,7 +293,7 @@ _backup_deinterlace_line_vfir (OrcExecutor * ORC_RESTRICT ex)
   ptr8 = (orc_int8 *) ex->arrays[8];
 
   /* 16: loadpw */
-  var40.i = 0x00000004;         /* 4 or 1.97626e-323f */
+  var40.i = (int) 0x00000004;   /* 4 or 1.97626e-323f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
@@ -594,7 +594,7 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1,
   ptr6 = (orc_int8 *) s3;
 
   /* 9: loadpw */
-  var38.i = 0x00000002;         /* 2 or 9.88131e-324f */
+  var38.i = (int) 0x00000002;   /* 2 or 9.88131e-324f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
@@ -661,7 +661,7 @@ _backup_deinterlace_line_linear_blend (OrcExecutor * ORC_RESTRICT ex)
   ptr6 = (orc_int8 *) ex->arrays[6];
 
   /* 9: loadpw */
-  var38.i = 0x00000002;         /* 2 or 9.88131e-324f */
+  var38.i = (int) 0x00000002;   /* 2 or 9.88131e-324f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
@@ -829,7 +829,7 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1,
   ptr7 = (orc_int8 *) s4;
 
   /* 11: loadpb */
-  var44 = 0x00000080;           /* 128 or 6.32404e-322f */
+  var44 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
   /* 20: loadpb */
   var45 = p1;
 
@@ -934,7 +934,7 @@ _backup_deinterlace_line_greedy (OrcExecutor * ORC_RESTRICT ex)
   ptr7 = (orc_int8 *) ex->arrays[7];
 
   /* 11: loadpb */
-  var44 = 0x00000080;           /* 128 or 6.32404e-322f */
+  var44 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
   /* 20: loadpb */
   var45 = ex->params[24];
 
diff --git a/gst/dtmf/Makefile.am b/gst/dtmf/Makefile.am
index 464b90c25..68f8ce821 100644
--- a/gst/dtmf/Makefile.am
+++ b/gst/dtmf/Makefile.am
@@ -14,4 +14,3 @@ 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)
diff --git a/gst/dtmf/Makefile.in b/gst/dtmf/Makefile.in
index ce7616067..5cc3ee76d 100644
--- a/gst/dtmf/Makefile.in
+++ b/gst/dtmf/Makefile.in
@@ -174,10 +174,9 @@ 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 $@
+libgstdtmf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -294,6 +293,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -317,6 +317,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -332,6 +334,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -354,10 +358,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -372,6 +383,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -389,6 +401,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -401,6 +415,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -419,6 +435,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -462,9 +481,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -478,11 +508,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -589,7 +624,6 @@ 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:
@@ -698,32 +732,32 @@ distclean-compile:
 @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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstdtmf.lo `test -f 'gstdtmf.c' || echo '$(srcdir)/'`gstdtmf.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/effectv/Makefile.am b/gst/effectv/Makefile.am
index 14dff1d0b..6bc7076b5 100644
--- a/gst/effectv/Makefile.am
+++ b/gst/effectv/Makefile.am
@@ -15,7 +15,6 @@ libgsteffectv_la_LIBADD = \
 	$(GST_LIBS) \
 	$(LIBM)
 libgsteffectv_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgsteffectv_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gsteffectv.h gstaging.h gstdice.h gstedge.h \
         gstquark.h gstrev.h gstshagadelic.h gstvertigo.h gstwarp.h gstop.h \
diff --git a/gst/effectv/Makefile.in b/gst/effectv/Makefile.in
index 7030c9453..0f03cdbea 100644
--- a/gst/effectv/Makefile.in
+++ b/gst/effectv/Makefile.in
@@ -180,8 +180,8 @@ 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) \
+	$(AM_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@)
@@ -299,6 +299,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -322,6 +323,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -337,6 +340,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -359,10 +364,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -377,6 +389,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -394,6 +407,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -406,6 +421,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -424,6 +441,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -467,9 +487,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -483,11 +514,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -597,7 +633,6 @@ libgsteffectv_la_LIBADD = \
 	$(LIBM)
 
 libgsteffectv_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgsteffectv_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gsteffectv.h gstaging.h gstdice.h gstedge.h \
         gstquark.h gstrev.h gstshagadelic.h gstvertigo.h gstwarp.h gstop.h \
 	gstradioac.h gststreak.h gstripple.h
@@ -719,95 +754,95 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgsteffectv_la-gsteffectv.lo: gsteffectv.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gsteffectv.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gsteffectv.Tpo -c -o libgsteffectv_la-gsteffectv.lo `test -f 'gsteffectv.c' || echo '$(srcdir)/'`gsteffectv.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gsteffectv.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gsteffectv.Tpo -c -o libgsteffectv_la-gsteffectv.lo `test -f 'gsteffectv.c' || echo '$(srcdir)/'`gsteffectv.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gsteffectv.Tpo $(DEPDIR)/libgsteffectv_la-gsteffectv.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsteffectv.c' object='libgsteffectv_la-gsteffectv.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gsteffectv.lo `test -f 'gsteffectv.c' || echo '$(srcdir)/'`gsteffectv.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gsteffectv.lo `test -f 'gsteffectv.c' || echo '$(srcdir)/'`gsteffectv.c
 
 libgsteffectv_la-gstedge.lo: gstedge.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstedge.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstedge.Tpo -c -o libgsteffectv_la-gstedge.lo `test -f 'gstedge.c' || echo '$(srcdir)/'`gstedge.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstedge.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstedge.Tpo -c -o libgsteffectv_la-gstedge.lo `test -f 'gstedge.c' || echo '$(srcdir)/'`gstedge.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstedge.Tpo $(DEPDIR)/libgsteffectv_la-gstedge.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstedge.c' object='libgsteffectv_la-gstedge.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstedge.lo `test -f 'gstedge.c' || echo '$(srcdir)/'`gstedge.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstedge.lo `test -f 'gstedge.c' || echo '$(srcdir)/'`gstedge.c
 
 libgsteffectv_la-gstaging.lo: gstaging.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstaging.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstaging.Tpo -c -o libgsteffectv_la-gstaging.lo `test -f 'gstaging.c' || echo '$(srcdir)/'`gstaging.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstaging.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstaging.Tpo -c -o libgsteffectv_la-gstaging.lo `test -f 'gstaging.c' || echo '$(srcdir)/'`gstaging.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstaging.Tpo $(DEPDIR)/libgsteffectv_la-gstaging.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstaging.c' object='libgsteffectv_la-gstaging.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstaging.lo `test -f 'gstaging.c' || echo '$(srcdir)/'`gstaging.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstaging.lo `test -f 'gstaging.c' || echo '$(srcdir)/'`gstaging.c
 
 libgsteffectv_la-gstdice.lo: gstdice.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstdice.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstdice.Tpo -c -o libgsteffectv_la-gstdice.lo `test -f 'gstdice.c' || echo '$(srcdir)/'`gstdice.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstdice.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstdice.Tpo -c -o libgsteffectv_la-gstdice.lo `test -f 'gstdice.c' || echo '$(srcdir)/'`gstdice.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstdice.Tpo $(DEPDIR)/libgsteffectv_la-gstdice.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdice.c' object='libgsteffectv_la-gstdice.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstdice.lo `test -f 'gstdice.c' || echo '$(srcdir)/'`gstdice.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstdice.lo `test -f 'gstdice.c' || echo '$(srcdir)/'`gstdice.c
 
 libgsteffectv_la-gstwarp.lo: gstwarp.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstwarp.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstwarp.Tpo -c -o libgsteffectv_la-gstwarp.lo `test -f 'gstwarp.c' || echo '$(srcdir)/'`gstwarp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstwarp.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstwarp.Tpo -c -o libgsteffectv_la-gstwarp.lo `test -f 'gstwarp.c' || echo '$(srcdir)/'`gstwarp.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstwarp.Tpo $(DEPDIR)/libgsteffectv_la-gstwarp.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwarp.c' object='libgsteffectv_la-gstwarp.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstwarp.lo `test -f 'gstwarp.c' || echo '$(srcdir)/'`gstwarp.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstwarp.lo `test -f 'gstwarp.c' || echo '$(srcdir)/'`gstwarp.c
 
 libgsteffectv_la-gstshagadelic.lo: gstshagadelic.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstshagadelic.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstshagadelic.Tpo -c -o libgsteffectv_la-gstshagadelic.lo `test -f 'gstshagadelic.c' || echo '$(srcdir)/'`gstshagadelic.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstshagadelic.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstshagadelic.Tpo -c -o libgsteffectv_la-gstshagadelic.lo `test -f 'gstshagadelic.c' || echo '$(srcdir)/'`gstshagadelic.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstshagadelic.Tpo $(DEPDIR)/libgsteffectv_la-gstshagadelic.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstshagadelic.c' object='libgsteffectv_la-gstshagadelic.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstshagadelic.lo `test -f 'gstshagadelic.c' || echo '$(srcdir)/'`gstshagadelic.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstshagadelic.lo `test -f 'gstshagadelic.c' || echo '$(srcdir)/'`gstshagadelic.c
 
 libgsteffectv_la-gstvertigo.lo: gstvertigo.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstvertigo.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstvertigo.Tpo -c -o libgsteffectv_la-gstvertigo.lo `test -f 'gstvertigo.c' || echo '$(srcdir)/'`gstvertigo.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstvertigo.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstvertigo.Tpo -c -o libgsteffectv_la-gstvertigo.lo `test -f 'gstvertigo.c' || echo '$(srcdir)/'`gstvertigo.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstvertigo.Tpo $(DEPDIR)/libgsteffectv_la-gstvertigo.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvertigo.c' object='libgsteffectv_la-gstvertigo.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstvertigo.lo `test -f 'gstvertigo.c' || echo '$(srcdir)/'`gstvertigo.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstvertigo.lo `test -f 'gstvertigo.c' || echo '$(srcdir)/'`gstvertigo.c
 
 libgsteffectv_la-gstrev.lo: gstrev.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstrev.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstrev.Tpo -c -o libgsteffectv_la-gstrev.lo `test -f 'gstrev.c' || echo '$(srcdir)/'`gstrev.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstrev.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstrev.Tpo -c -o libgsteffectv_la-gstrev.lo `test -f 'gstrev.c' || echo '$(srcdir)/'`gstrev.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstrev.Tpo $(DEPDIR)/libgsteffectv_la-gstrev.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrev.c' object='libgsteffectv_la-gstrev.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstrev.lo `test -f 'gstrev.c' || echo '$(srcdir)/'`gstrev.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstrev.lo `test -f 'gstrev.c' || echo '$(srcdir)/'`gstrev.c
 
 libgsteffectv_la-gstquark.lo: gstquark.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstquark.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstquark.Tpo -c -o libgsteffectv_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstquark.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstquark.Tpo -c -o libgsteffectv_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstquark.Tpo $(DEPDIR)/libgsteffectv_la-gstquark.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstquark.c' object='libgsteffectv_la-gstquark.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c
 
 libgsteffectv_la-gstop.lo: gstop.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstop.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstop.Tpo -c -o libgsteffectv_la-gstop.lo `test -f 'gstop.c' || echo '$(srcdir)/'`gstop.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstop.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstop.Tpo -c -o libgsteffectv_la-gstop.lo `test -f 'gstop.c' || echo '$(srcdir)/'`gstop.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstop.Tpo $(DEPDIR)/libgsteffectv_la-gstop.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstop.c' object='libgsteffectv_la-gstop.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstop.lo `test -f 'gstop.c' || echo '$(srcdir)/'`gstop.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstop.lo `test -f 'gstop.c' || echo '$(srcdir)/'`gstop.c
 
 libgsteffectv_la-gstradioac.lo: gstradioac.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstradioac.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstradioac.Tpo -c -o libgsteffectv_la-gstradioac.lo `test -f 'gstradioac.c' || echo '$(srcdir)/'`gstradioac.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstradioac.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstradioac.Tpo -c -o libgsteffectv_la-gstradioac.lo `test -f 'gstradioac.c' || echo '$(srcdir)/'`gstradioac.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstradioac.Tpo $(DEPDIR)/libgsteffectv_la-gstradioac.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstradioac.c' object='libgsteffectv_la-gstradioac.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstradioac.lo `test -f 'gstradioac.c' || echo '$(srcdir)/'`gstradioac.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstradioac.lo `test -f 'gstradioac.c' || echo '$(srcdir)/'`gstradioac.c
 
 libgsteffectv_la-gststreak.lo: gststreak.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gststreak.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gststreak.Tpo -c -o libgsteffectv_la-gststreak.lo `test -f 'gststreak.c' || echo '$(srcdir)/'`gststreak.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gststreak.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gststreak.Tpo -c -o libgsteffectv_la-gststreak.lo `test -f 'gststreak.c' || echo '$(srcdir)/'`gststreak.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gststreak.Tpo $(DEPDIR)/libgsteffectv_la-gststreak.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gststreak.c' object='libgsteffectv_la-gststreak.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gststreak.lo `test -f 'gststreak.c' || echo '$(srcdir)/'`gststreak.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gststreak.lo `test -f 'gststreak.c' || echo '$(srcdir)/'`gststreak.c
 
 libgsteffectv_la-gstripple.lo: gstripple.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstripple.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstripple.Tpo -c -o libgsteffectv_la-gstripple.lo `test -f 'gstripple.c' || echo '$(srcdir)/'`gstripple.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstripple.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstripple.Tpo -c -o libgsteffectv_la-gstripple.lo `test -f 'gstripple.c' || echo '$(srcdir)/'`gstripple.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstripple.Tpo $(DEPDIR)/libgsteffectv_la-gstripple.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstripple.c' object='libgsteffectv_la-gstripple.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 $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstripple.lo `test -f 'gstripple.c' || echo '$(srcdir)/'`gstripple.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstripple.lo `test -f 'gstripple.c' || echo '$(srcdir)/'`gstripple.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/equalizer/Makefile.am b/gst/equalizer/Makefile.am
index 8ce4b788a..e559f74ba 100644
--- a/gst/equalizer/Makefile.am
+++ b/gst/equalizer/Makefile.am
@@ -12,7 +12,6 @@ libgstequalizer_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 	-lgstaudio-$(GST_API_VERSION) $(GST_BASE_LIBS) \
 	$(GST_LIBS) $(LIBM)
 libgstequalizer_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstequalizer_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstiirequalizer.h
 
diff --git a/gst/equalizer/Makefile.in b/gst/equalizer/Makefile.in
index 877be0135..4a02cb738 100644
--- a/gst/equalizer/Makefile.in
+++ b/gst/equalizer/Makefile.in
@@ -177,8 +177,8 @@ 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) \
+	$(AM_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@)
@@ -297,6 +297,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -320,6 +321,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -335,6 +338,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -357,10 +362,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -375,6 +387,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -392,6 +405,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -404,6 +419,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -422,6 +439,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -465,9 +485,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -481,11 +512,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -591,7 +627,6 @@ libgstequalizer_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 	$(GST_LIBS) $(LIBM)
 
 libgstequalizer_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstequalizer_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstiirequalizer.h
 presetdir = $(datadir)/gstreamer-$(GST_API_VERSION)/presets
 preset_DATA = GstIirEqualizer3Bands.prs GstIirEqualizer10Bands.prs
@@ -704,32 +739,32 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstequalizer_la-gstiirequalizer.lo: gstiirequalizer.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -MT libgstequalizer_la-gstiirequalizer.lo -MD -MP -MF $(DEPDIR)/libgstequalizer_la-gstiirequalizer.Tpo -c -o libgstequalizer_la-gstiirequalizer.lo `test -f 'gstiirequalizer.c' || echo '$(srcdir)/'`gstiirequalizer.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -MT libgstequalizer_la-gstiirequalizer.lo -MD -MP -MF $(DEPDIR)/libgstequalizer_la-gstiirequalizer.Tpo -c -o libgstequalizer_la-gstiirequalizer.lo `test -f 'gstiirequalizer.c' || echo '$(srcdir)/'`gstiirequalizer.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstequalizer_la-gstiirequalizer.Tpo $(DEPDIR)/libgstequalizer_la-gstiirequalizer.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstiirequalizer.c' object='libgstequalizer_la-gstiirequalizer.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 $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizer.lo `test -f 'gstiirequalizer.c' || echo '$(srcdir)/'`gstiirequalizer.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizer.lo `test -f 'gstiirequalizer.c' || echo '$(srcdir)/'`gstiirequalizer.c
 
 libgstequalizer_la-gstiirequalizernbands.lo: gstiirequalizernbands.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -MT libgstequalizer_la-gstiirequalizernbands.lo -MD -MP -MF $(DEPDIR)/libgstequalizer_la-gstiirequalizernbands.Tpo -c -o libgstequalizer_la-gstiirequalizernbands.lo `test -f 'gstiirequalizernbands.c' || echo '$(srcdir)/'`gstiirequalizernbands.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -MT libgstequalizer_la-gstiirequalizernbands.lo -MD -MP -MF $(DEPDIR)/libgstequalizer_la-gstiirequalizernbands.Tpo -c -o libgstequalizer_la-gstiirequalizernbands.lo `test -f 'gstiirequalizernbands.c' || echo '$(srcdir)/'`gstiirequalizernbands.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstequalizer_la-gstiirequalizernbands.Tpo $(DEPDIR)/libgstequalizer_la-gstiirequalizernbands.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstiirequalizernbands.c' object='libgstequalizer_la-gstiirequalizernbands.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 $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizernbands.lo `test -f 'gstiirequalizernbands.c' || echo '$(srcdir)/'`gstiirequalizernbands.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizernbands.lo `test -f 'gstiirequalizernbands.c' || echo '$(srcdir)/'`gstiirequalizernbands.c
 
 libgstequalizer_la-gstiirequalizer3bands.lo: gstiirequalizer3bands.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -MT libgstequalizer_la-gstiirequalizer3bands.lo -MD -MP -MF $(DEPDIR)/libgstequalizer_la-gstiirequalizer3bands.Tpo -c -o libgstequalizer_la-gstiirequalizer3bands.lo `test -f 'gstiirequalizer3bands.c' || echo '$(srcdir)/'`gstiirequalizer3bands.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -MT libgstequalizer_la-gstiirequalizer3bands.lo -MD -MP -MF $(DEPDIR)/libgstequalizer_la-gstiirequalizer3bands.Tpo -c -o libgstequalizer_la-gstiirequalizer3bands.lo `test -f 'gstiirequalizer3bands.c' || echo '$(srcdir)/'`gstiirequalizer3bands.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstequalizer_la-gstiirequalizer3bands.Tpo $(DEPDIR)/libgstequalizer_la-gstiirequalizer3bands.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstiirequalizer3bands.c' object='libgstequalizer_la-gstiirequalizer3bands.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 $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizer3bands.lo `test -f 'gstiirequalizer3bands.c' || echo '$(srcdir)/'`gstiirequalizer3bands.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizer3bands.lo `test -f 'gstiirequalizer3bands.c' || echo '$(srcdir)/'`gstiirequalizer3bands.c
 
 libgstequalizer_la-gstiirequalizer10bands.lo: gstiirequalizer10bands.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -MT libgstequalizer_la-gstiirequalizer10bands.lo -MD -MP -MF $(DEPDIR)/libgstequalizer_la-gstiirequalizer10bands.Tpo -c -o libgstequalizer_la-gstiirequalizer10bands.lo `test -f 'gstiirequalizer10bands.c' || echo '$(srcdir)/'`gstiirequalizer10bands.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -MT libgstequalizer_la-gstiirequalizer10bands.lo -MD -MP -MF $(DEPDIR)/libgstequalizer_la-gstiirequalizer10bands.Tpo -c -o libgstequalizer_la-gstiirequalizer10bands.lo `test -f 'gstiirequalizer10bands.c' || echo '$(srcdir)/'`gstiirequalizer10bands.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstequalizer_la-gstiirequalizer10bands.Tpo $(DEPDIR)/libgstequalizer_la-gstiirequalizer10bands.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstiirequalizer10bands.c' object='libgstequalizer_la-gstiirequalizer10bands.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 $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizer10bands.lo `test -f 'gstiirequalizer10bands.c' || echo '$(srcdir)/'`gstiirequalizer10bands.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizer10bands.lo `test -f 'gstiirequalizer10bands.c' || echo '$(srcdir)/'`gstiirequalizer10bands.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/equalizer/gstiirequalizer.c b/gst/equalizer/gstiirequalizer.c
index eb23d21f3..210296b73 100644
--- a/gst/equalizer/gstiirequalizer.c
+++ b/gst/equalizer/gstiirequalizer.c
@@ -323,7 +323,7 @@ gst_iir_equalizer_child_proxy_get_child_by_index (GstChildProxy * child_proxy,
     g_return_val_if_fail (index < equ->freq_band_count, NULL);
   }
 
-  ret = g_object_ref (equ->bands[index]);
+  ret = g_object_ref (G_OBJECT (equ->bands[index]));
   BANDS_UNLOCK (equ);
 
   GST_LOG_OBJECT (equ, "return child[%d] %" GST_PTR_FORMAT, index, ret);
diff --git a/gst/flv/Makefile.am b/gst/flv/Makefile.am
index b205999a0..60a10159b 100644
--- a/gst/flv/Makefile.am
+++ b/gst/flv/Makefile.am
@@ -6,7 +6,6 @@ libgstflv_la_LIBADD = -lgstpbutils-@GST_API_VERSION@ -lgstaudio-@GST_API_VERSION
 	$(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS)
 libgstflv_la_LDFLAGS = ${GST_PLUGIN_LDFLAGS}
 libgstflv_la_SOURCES = gstflvdemux.c gstflvmux.c
-libgstflv_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstflvdemux.h gstflvmux.h amfdefs.h gstindex.h
 
diff --git a/gst/flv/Makefile.in b/gst/flv/Makefile.in
index e545ba60d..7213d7631 100644
--- a/gst/flv/Makefile.in
+++ b/gst/flv/Makefile.in
@@ -172,10 +172,9 @@ 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 $@
+libgstflv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -292,6 +291,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -315,6 +315,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -330,6 +332,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -352,10 +356,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -370,6 +381,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -387,6 +399,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -399,6 +413,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -417,6 +433,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -460,9 +479,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -476,11 +506,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -579,7 +614,6 @@ libgstflv_la_LIBADD = -lgstpbutils-@GST_API_VERSION@ -lgstaudio-@GST_API_VERSION
 
 libgstflv_la_LDFLAGS = ${GST_PLUGIN_LDFLAGS}
 libgstflv_la_SOURCES = gstflvdemux.c gstflvmux.c
-libgstflv_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstflvdemux.h gstflvmux.h amfdefs.h gstindex.h
 EXTRA_DIST = gstindex.c gstmemindex.c
 all: all-am
@@ -688,18 +722,18 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstflv_la-gstflvdemux.lo: gstflvdemux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -MT libgstflv_la-gstflvdemux.lo -MD -MP -MF $(DEPDIR)/libgstflv_la-gstflvdemux.Tpo -c -o libgstflv_la-gstflvdemux.lo `test -f 'gstflvdemux.c' || echo '$(srcdir)/'`gstflvdemux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -MT libgstflv_la-gstflvdemux.lo -MD -MP -MF $(DEPDIR)/libgstflv_la-gstflvdemux.Tpo -c -o libgstflv_la-gstflvdemux.lo `test -f 'gstflvdemux.c' || echo '$(srcdir)/'`gstflvdemux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstflv_la-gstflvdemux.Tpo $(DEPDIR)/libgstflv_la-gstflvdemux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstflvdemux.c' object='libgstflv_la-gstflvdemux.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 $(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -c -o libgstflv_la-gstflvdemux.lo `test -f 'gstflvdemux.c' || echo '$(srcdir)/'`gstflvdemux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -c -o libgstflv_la-gstflvdemux.lo `test -f 'gstflvdemux.c' || echo '$(srcdir)/'`gstflvdemux.c
 
 libgstflv_la-gstflvmux.lo: gstflvmux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -MT libgstflv_la-gstflvmux.lo -MD -MP -MF $(DEPDIR)/libgstflv_la-gstflvmux.Tpo -c -o libgstflv_la-gstflvmux.lo `test -f 'gstflvmux.c' || echo '$(srcdir)/'`gstflvmux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -MT libgstflv_la-gstflvmux.lo -MD -MP -MF $(DEPDIR)/libgstflv_la-gstflvmux.Tpo -c -o libgstflv_la-gstflvmux.lo `test -f 'gstflvmux.c' || echo '$(srcdir)/'`gstflvmux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstflv_la-gstflvmux.Tpo $(DEPDIR)/libgstflv_la-gstflvmux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstflvmux.c' object='libgstflv_la-gstflvmux.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 $(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -c -o libgstflv_la-gstflvmux.lo `test -f 'gstflvmux.c' || echo '$(srcdir)/'`gstflvmux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -c -o libgstflv_la-gstflvmux.lo `test -f 'gstflvmux.c' || echo '$(srcdir)/'`gstflvmux.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/flv/gstflvmux.c b/gst/flv/gstflvmux.c
index 89ae86d0f..ac907e077 100644
--- a/gst/flv/gstflvmux.c
+++ b/gst/flv/gstflvmux.c
@@ -1,6 +1,9 @@
 /* GStreamer
  *
  * Copyright (c) 2008,2009 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (c) 2008-2017 Collabora Ltd
+ *  @author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *  @author: Vincent Penquerc'h <vincent.penquerch@collabora.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -86,38 +89,75 @@ static GstStaticPadTemplate audiosink_templ = GST_STATIC_PAD_TEMPLATE ("audio",
         "audio/x-speex, channels = (int) 1, rate = (int) 16000;")
     );
 
+G_DEFINE_TYPE (GstFlvMuxPad, gst_flv_mux_pad, GST_TYPE_AGGREGATOR_PAD);
+
 #define gst_flv_mux_parent_class parent_class
-G_DEFINE_TYPE_WITH_CODE (GstFlvMux, gst_flv_mux, GST_TYPE_ELEMENT,
+G_DEFINE_TYPE_WITH_CODE (GstFlvMux, gst_flv_mux, GST_TYPE_AGGREGATOR,
     G_IMPLEMENT_INTERFACE (GST_TYPE_TAG_SETTER, NULL));
 
-static void gst_flv_mux_finalize (GObject * object);
 static GstFlowReturn
-gst_flv_mux_handle_buffer (GstCollectPads * pads, GstCollectData * cdata,
-    GstBuffer * buf, gpointer user_data);
+gst_flv_mux_aggregate (GstAggregator * aggregator, gboolean timeout);
 static gboolean
-gst_flv_mux_handle_sink_event (GstCollectPads * pads, GstCollectData * data,
-    GstEvent * event, gpointer user_data);
-
-static gboolean gst_flv_mux_handle_src_event (GstPad * pad, GstObject * parent,
+gst_flv_mux_sink_event (GstAggregator * aggregator, GstAggregatorPad * pad,
     GstEvent * event);
-static GstPad *gst_flv_mux_request_new_pad (GstElement * element,
+
+static GstAggregatorPad *gst_flv_mux_create_new_pad (GstAggregator * agg,
     GstPadTemplate * templ, const gchar * req_name, const GstCaps * caps);
 static void gst_flv_mux_release_pad (GstElement * element, GstPad * pad);
 
-static gboolean gst_flv_mux_video_pad_setcaps (GstPad * pad, GstCaps * caps);
-static gboolean gst_flv_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps);
+static gboolean gst_flv_mux_video_pad_setcaps (GstFlvMuxPad * pad,
+    GstCaps * caps);
+static gboolean gst_flv_mux_audio_pad_setcaps (GstFlvMuxPad * pad,
+    GstCaps * caps);
 
 static void gst_flv_mux_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 static void gst_flv_mux_set_property (GObject * object,
     guint prop_id, const GValue * value, GParamSpec * pspec);
-
-static GstStateChangeReturn
-gst_flv_mux_change_state (GstElement * element, GstStateChange transition);
+static void gst_flv_mux_finalize (GObject * object);
 
 static void gst_flv_mux_reset (GstElement * element);
-static void gst_flv_mux_reset_pad (GstFlvMux * mux, GstFlvPad * pad,
-    gboolean video);
+static void gst_flv_mux_reset_pad (GstFlvMuxPad * pad);
+
+static void gst_flv_mux_pad_finalize (GObject * object);
+
+static gboolean gst_flv_mux_start (GstAggregator * aggregator);
+static GstFlowReturn gst_flv_mux_flush (GstAggregator * aggregator);
+static GstClockTime gst_flv_mux_get_next_time (GstAggregator * aggregator);
+static GstFlowReturn gst_flv_mux_write_eos (GstFlvMux * mux);
+static GstFlowReturn gst_flv_mux_write_header (GstFlvMux * mux);
+static GstFlowReturn gst_flv_mux_rewrite_header (GstFlvMux * mux);
+static gboolean gst_flv_mux_are_all_pads_eos (GstFlvMux * mux);
+
+
+static GstFlowReturn
+gst_flv_mux_pad_flush (GstAggregatorPad * pad, GstAggregator * aggregator)
+{
+  GstFlvMuxPad *flvpad = GST_FLV_MUX_PAD (pad);
+
+  flvpad->last_timestamp = 0;
+  flvpad->pts = GST_CLOCK_STIME_NONE;
+  flvpad->dts = GST_CLOCK_STIME_NONE;
+
+  return GST_FLOW_OK;
+}
+
+static void
+gst_flv_mux_pad_class_init (GstFlvMuxPadClass * klass)
+{
+  GstAggregatorPadClass *aggregatorpad_class = (GstAggregatorPadClass *) klass;
+  GObjectClass *gobject_class = (GObjectClass *) klass;
+
+  gobject_class->finalize = gst_flv_mux_pad_finalize;
+
+  aggregatorpad_class->flush = GST_DEBUG_FUNCPTR (gst_flv_mux_pad_flush);
+}
+
+static void
+gst_flv_mux_pad_init (GstFlvMuxPad * pad)
+{
+  gst_flv_mux_reset_pad (pad);
+}
 
 typedef struct
 {
@@ -154,30 +194,18 @@ _gst_buffer_new_and_alloc (gsize size, GstBuffer ** buffer, guint8 ** data)
   *buffer = _gst_buffer_new_wrapped (*data, size, g_free);
 }
 
-static GstFlowReturn
-gst_flv_mux_clip_running_time (GstCollectPads * pads,
-    GstCollectData * cdata, GstBuffer * buf, GstBuffer ** outbuf,
-    gpointer user_data)
-{
-  buf = gst_buffer_make_writable (buf);
-
-  if (!GST_CLOCK_TIME_IS_VALID (GST_BUFFER_PTS (buf)))
-    GST_BUFFER_PTS (buf) = GST_BUFFER_DTS (buf);
-
-  return gst_collect_pads_clip_running_time (pads, cdata, buf, outbuf,
-      user_data);
-}
-
 static void
 gst_flv_mux_class_init (GstFlvMuxClass * klass)
 {
   GObjectClass *gobject_class;
   GstElementClass *gstelement_class;
+  GstAggregatorClass *gstaggregator_class;
 
   GST_DEBUG_CATEGORY_INIT (flvmux_debug, "flvmux", 0, "FLV muxer");
 
   gobject_class = (GObjectClass *) klass;
   gstelement_class = (GstElementClass *) klass;
+  gstaggregator_class = (GstAggregatorClass *) klass;
 
   gobject_class->get_property = gst_flv_mux_get_property;
   gobject_class->set_property = gst_flv_mux_set_property;
@@ -201,15 +229,21 @@ gst_flv_mux_class_init (GstFlvMuxClass * klass)
           "The value of metadatacreator in the meta packet.",
           NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_flv_mux_change_state);
-  gstelement_class->request_new_pad =
-      GST_DEBUG_FUNCPTR (gst_flv_mux_request_new_pad);
+  gstaggregator_class->create_new_pad =
+      GST_DEBUG_FUNCPTR (gst_flv_mux_create_new_pad);
   gstelement_class->release_pad = GST_DEBUG_FUNCPTR (gst_flv_mux_release_pad);
 
-  gst_element_class_add_static_pad_template (gstelement_class,
-      &videosink_templ);
-  gst_element_class_add_static_pad_template (gstelement_class,
-      &audiosink_templ);
+  gstaggregator_class->start = GST_DEBUG_FUNCPTR (gst_flv_mux_start);
+  gstaggregator_class->aggregate = GST_DEBUG_FUNCPTR (gst_flv_mux_aggregate);
+  gstaggregator_class->sink_event = GST_DEBUG_FUNCPTR (gst_flv_mux_sink_event);
+  gstaggregator_class->flush = GST_DEBUG_FUNCPTR (gst_flv_mux_flush);
+  gstaggregator_class->get_next_time =
+      GST_DEBUG_FUNCPTR (gst_flv_mux_get_next_time);
+
+  gst_element_class_add_static_pad_template_with_gtype (gstelement_class,
+      &videosink_templ, GST_TYPE_FLV_MUX_PAD);
+  gst_element_class_add_static_pad_template_with_gtype (gstelement_class,
+      &audiosink_templ, GST_TYPE_FLV_MUX_PAD);
   gst_element_class_add_static_pad_template (gstelement_class, &src_templ);
   gst_element_class_set_static_metadata (gstelement_class, "FLV muxer",
       "Codec/Muxer",
@@ -222,9 +256,7 @@ gst_flv_mux_class_init (GstFlvMuxClass * klass)
 static void
 gst_flv_mux_init (GstFlvMux * mux)
 {
-  mux->srcpad = gst_pad_new_from_static_template (&src_templ, "src");
-  gst_pad_set_event_function (mux->srcpad, gst_flv_mux_handle_src_event);
-  gst_element_add_pad (GST_ELEMENT (mux), mux->srcpad);
+  mux->srcpad = GST_AGGREGATOR_CAST (mux)->srcpad;
 
   /* property */
   mux->streamable = DEFAULT_STREAMABLE;
@@ -232,14 +264,6 @@ gst_flv_mux_init (GstFlvMux * mux)
 
   mux->new_tags = FALSE;
 
-  mux->collect = gst_collect_pads_new ();
-  gst_collect_pads_set_buffer_function (mux->collect,
-      GST_DEBUG_FUNCPTR (gst_flv_mux_handle_buffer), mux);
-  gst_collect_pads_set_event_function (mux->collect,
-      GST_DEBUG_FUNCPTR (gst_flv_mux_handle_sink_event), mux);
-  gst_collect_pads_set_clip_function (mux->collect,
-      GST_DEBUG_FUNCPTR (gst_flv_mux_clip_running_time), mux);
-
   gst_flv_mux_reset (GST_ELEMENT (mux));
 }
 
@@ -248,30 +272,49 @@ gst_flv_mux_finalize (GObject * object)
 {
   GstFlvMux *mux = GST_FLV_MUX (object);
 
-  gst_object_unref (mux->collect);
+  gst_flv_mux_reset (GST_ELEMENT (object));
   g_free (mux->metadatacreator);
 
-  G_OBJECT_CLASS (parent_class)->finalize (object);
+  G_OBJECT_CLASS (gst_flv_mux_parent_class)->finalize (object);
 }
 
 static void
-gst_flv_mux_reset (GstElement * element)
+gst_flv_mux_pad_finalize (GObject * object)
 {
-  GstFlvMux *mux = GST_FLV_MUX (element);
-  GSList *sl;
+  GstFlvMuxPad *pad = GST_FLV_MUX_PAD (object);
 
-  for (sl = mux->collect->data; sl != NULL; sl = g_slist_next (sl)) {
-    GstFlvPad *cpad = (GstFlvPad *) sl->data;
+  gst_flv_mux_reset_pad (pad);
 
-    gst_flv_mux_reset_pad (mux, cpad, cpad->video);
-  }
+  G_OBJECT_CLASS (gst_flv_mux_pad_parent_class)->finalize (object);
+}
+
+static GstFlowReturn
+gst_flv_mux_flush (GstAggregator * aggregator)
+{
+  /* TODO: What is the right behaviour on flush? Should we just ignore it ?
+   * This still needs to be defined. */
+
+  gst_flv_mux_reset (GST_ELEMENT (aggregator));
+  return GST_FLOW_OK;
+}
+
+static gboolean
+gst_flv_mux_start (GstAggregator * aggregator)
+{
+  gst_flv_mux_reset (GST_ELEMENT (aggregator));
+  return TRUE;
+}
+
+static void
+gst_flv_mux_reset (GstElement * element)
+{
+  GstFlvMux *mux = GST_FLV_MUX (element);
 
   g_list_foreach (mux->index, (GFunc) gst_flv_mux_index_entry_free, NULL);
   g_list_free (mux->index);
   mux->index = NULL;
   mux->byte_count = 0;
 
-  mux->have_audio = mux->have_video = FALSE;
   mux->duration = GST_CLOCK_TIME_NONE;
   mux->new_tags = FALSE;
   mux->first_timestamp = GST_CLOCK_STIME_NONE;
@@ -282,46 +325,27 @@ gst_flv_mux_reset (GstElement * element)
   gst_tag_setter_reset_tags (GST_TAG_SETTER (mux));
 }
 
-static gboolean
-gst_flv_mux_handle_src_event (GstPad * pad, GstObject * parent,
-    GstEvent * event)
-{
-  GstEventType type;
-
-  type = event ? GST_EVENT_TYPE (event) : GST_EVENT_UNKNOWN;
-
-  switch (type) {
-    case GST_EVENT_SEEK:
-      /* disable seeking for now */
-      return FALSE;
-    default:
-      break;
-  }
-
-  return gst_pad_event_default (pad, parent, event);
-}
-
 /* Extract per-codec relevant tags for
  * insertion into the metadata later - ie bitrate,
  * but maybe others in the future */
 static void
 gst_flv_mux_store_codec_tags (GstFlvMux * mux,
-    GstFlvPad * flvpad, GstTagList * list)
+    GstFlvMuxPad * flvpad, GstTagList * list)
 {
   /* Look for a bitrate as either nominal or actual bitrate tag */
-  if (gst_tag_list_get_uint (list, GST_TAG_NOMINAL_BITRATE, &flvpad->bitrate) ||
-      gst_tag_list_get_uint (list, GST_TAG_BITRATE, &flvpad->bitrate)) {
+  if (gst_tag_list_get_uint (list, GST_TAG_NOMINAL_BITRATE, &flvpad->bitrate)
+      || gst_tag_list_get_uint (list, GST_TAG_BITRATE, &flvpad->bitrate)) {
     GST_DEBUG_OBJECT (mux, "Stored bitrate for pad %" GST_PTR_FORMAT " = %u",
         flvpad, flvpad->bitrate);
   }
 }
 
 static gboolean
-gst_flv_mux_handle_sink_event (GstCollectPads * pads, GstCollectData * data,
-    GstEvent * event, gpointer user_data)
+gst_flv_mux_sink_event (GstAggregator * aggregator, GstAggregatorPad * pad,
+    GstEvent * event)
 {
-  GstFlvMux *mux = GST_FLV_MUX (user_data);
-  GstFlvPad *flvpad = (GstFlvPad *) data;
+  GstFlvMux *mux = GST_FLV_MUX (aggregator);
+  GstFlvMuxPad *flvpad = (GstFlvMuxPad *) pad;
   gboolean ret = TRUE;
 
   switch (GST_EVENT_TYPE (event)) {
@@ -331,17 +355,13 @@ gst_flv_mux_handle_sink_event (GstCollectPads * pads, GstCollectData * data,
 
       gst_event_parse_caps (event, &caps);
 
-      /* find stream data */
-      g_assert (flvpad);
-
-      if (flvpad->video) {
-        ret = gst_flv_mux_video_pad_setcaps (data->pad, caps);
+      if (mux->video_pad == flvpad) {
+        ret = gst_flv_mux_video_pad_setcaps (flvpad, caps);
+      } else if (mux->audio_pad == flvpad) {
+        ret = gst_flv_mux_audio_pad_setcaps (flvpad, caps);
       } else {
-        ret = gst_flv_mux_audio_pad_setcaps (data->pad, caps);
+        g_assert_not_reached ();
       }
-      /* and eat */
-      gst_event_unref (event);
-      event = NULL;
       break;
     }
     case GST_EVENT_TAG:{
@@ -354,40 +374,38 @@ gst_flv_mux_handle_sink_event (GstCollectPads * pads, GstCollectData * data,
       gst_flv_mux_store_codec_tags (mux, flvpad, list);
       mux->new_tags = TRUE;
       ret = TRUE;
-      gst_event_unref (event);
-      event = NULL;
       break;
     }
     default:
       break;
   }
 
-  if (event != NULL)
-    return gst_collect_pads_event_default (pads, data, event, FALSE);
+  if (!ret)
+    return FALSE;
 
-  return ret;
+  return GST_AGGREGATOR_CLASS (parent_class)->sink_event (aggregator, pad,
+      event);;
 }
 
 static gboolean
-gst_flv_mux_video_pad_setcaps (GstPad * pad, GstCaps * caps)
+gst_flv_mux_video_pad_setcaps (GstFlvMuxPad * pad, GstCaps * caps)
 {
   GstFlvMux *mux = GST_FLV_MUX (gst_pad_get_parent (pad));
-  GstFlvPad *cpad = (GstFlvPad *) gst_pad_get_element_private (pad);
   gboolean ret = TRUE;
   GstStructure *s;
 
   s = gst_caps_get_structure (caps, 0);
 
   if (strcmp (gst_structure_get_name (s), "video/x-flash-video") == 0) {
-    cpad->video_codec = 2;
+    pad->codec = 2;
   } else if (strcmp (gst_structure_get_name (s), "video/x-flash-screen") == 0) {
-    cpad->video_codec = 3;
+    pad->codec = 3;
   } else if (strcmp (gst_structure_get_name (s), "video/x-vp6-flash") == 0) {
-    cpad->video_codec = 4;
+    pad->codec = 4;
   } else if (strcmp (gst_structure_get_name (s), "video/x-vp6-alpha") == 0) {
-    cpad->video_codec = 5;
+    pad->codec = 5;
   } else if (strcmp (gst_structure_get_name (s), "video/x-h264") == 0) {
-    cpad->video_codec = 7;
+    pad->codec = 7;
   } else {
     ret = FALSE;
   }
@@ -396,7 +414,7 @@ gst_flv_mux_video_pad_setcaps (GstPad * pad, GstCaps * caps)
     const GValue *val = gst_structure_get_value (s, "codec_data");
 
     if (val)
-      cpad->video_codec_data = gst_buffer_ref (gst_value_get_buffer (val));
+      pad->codec_data = gst_buffer_ref (gst_value_get_buffer (val));
   }
 
   gst_object_unref (mux);
@@ -405,10 +423,9 @@ gst_flv_mux_video_pad_setcaps (GstPad * pad, GstCaps * caps)
 }
 
 static gboolean
-gst_flv_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps)
+gst_flv_mux_audio_pad_setcaps (GstFlvMuxPad * pad, GstCaps * caps)
 {
   GstFlvMux *mux = GST_FLV_MUX (gst_pad_get_parent (pad));
-  GstFlvPad *cpad = (GstFlvPad *) gst_pad_get_element_private (pad);
   gboolean ret = TRUE;
   GstStructure *s;
 
@@ -417,7 +434,7 @@ gst_flv_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps)
   if (strcmp (gst_structure_get_name (s), "audio/x-adpcm") == 0) {
     const gchar *layout = gst_structure_get_string (s, "layout");
     if (layout && strcmp (layout, "swf") == 0) {
-      cpad->audio_codec = 1;
+      pad->codec = 1;
     } else {
       ret = FALSE;
     }
@@ -432,14 +449,14 @@ gst_flv_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps)
           gint rate;
 
           if (gst_structure_get_int (s, "rate", &rate) && rate == 8000)
-            cpad->audio_codec = 14;
+            pad->codec = 14;
           else
-            cpad->audio_codec = 2;
+            pad->codec = 2;
         } else {
           ret = FALSE;
         }
       } else if (mpegversion == 4 || mpegversion == 2) {
-        cpad->audio_codec = 10;
+        pad->codec = 10;
       } else {
         ret = FALSE;
       }
@@ -452,34 +469,34 @@ gst_flv_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps)
     if (gst_structure_get_int (s, "rate", &rate)
         && gst_structure_get_int (s, "channels", &channels)) {
       if (channels == 1 && rate == 16000)
-        cpad->audio_codec = 4;
+        pad->codec = 4;
       else if (channels == 1 && rate == 8000)
-        cpad->audio_codec = 5;
+        pad->codec = 5;
       else
-        cpad->audio_codec = 6;
+        pad->codec = 6;
     } else {
-      cpad->audio_codec = 6;
+      pad->codec = 6;
     }
   } else if (strcmp (gst_structure_get_name (s), "audio/x-raw") == 0) {
     GstAudioInfo info;
 
     if (gst_audio_info_from_caps (&info, caps)) {
-      cpad->audio_codec = 3;
+      pad->codec = 3;
 
       if (GST_AUDIO_INFO_WIDTH (&info) == 8)
-        cpad->width = 0;
+        pad->width = 0;
       else if (GST_AUDIO_INFO_WIDTH (&info) == 16)
-        cpad->width = 1;
+        pad->width = 1;
       else
         ret = FALSE;
     } else
       ret = FALSE;
   } else if (strcmp (gst_structure_get_name (s), "audio/x-alaw") == 0) {
-    cpad->audio_codec = 7;
+    pad->codec = 7;
   } else if (strcmp (gst_structure_get_name (s), "audio/x-mulaw") == 0) {
-    cpad->audio_codec = 8;
+    pad->codec = 8;
   } else if (strcmp (gst_structure_get_name (s), "audio/x-speex") == 0) {
-    cpad->audio_codec = 11;
+    pad->codec = 11;
   } else {
     ret = FALSE;
   }
@@ -488,60 +505,57 @@ gst_flv_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps)
     gint rate, channels;
 
     if (gst_structure_get_int (s, "rate", &rate)) {
-      if (cpad->audio_codec == 10)
-        cpad->rate = 3;
+      if (pad->codec == 10)
+        pad->rate = 3;
       else if (rate == 5512)
-        cpad->rate = 0;
+        pad->rate = 0;
       else if (rate == 11025)
-        cpad->rate = 1;
+        pad->rate = 1;
       else if (rate == 22050)
-        cpad->rate = 2;
+        pad->rate = 2;
       else if (rate == 44100)
-        cpad->rate = 3;
-      else if (rate == 8000 && (cpad->audio_codec == 5
-              || cpad->audio_codec == 14))
-        cpad->rate = 0;
-      else if (rate == 16000 && (cpad->audio_codec == 4
-              || cpad->audio_codec == 11))
-        cpad->rate = 0;
+        pad->rate = 3;
+      else if (rate == 8000 && (pad->codec == 5 || pad->codec == 14))
+        pad->rate = 0;
+      else if (rate == 16000 && (pad->codec == 4 || pad->codec == 11))
+        pad->rate = 0;
       else
         ret = FALSE;
-    } else if (cpad->audio_codec == 10) {
-      cpad->rate = 3;
+    } else if (pad->codec == 10) {
+      pad->rate = 3;
     } else {
       ret = FALSE;
     }
 
     if (gst_structure_get_int (s, "channels", &channels)) {
-      if (cpad->audio_codec == 4 || cpad->audio_codec == 5
-          || cpad->audio_codec == 6 || cpad->audio_codec == 11)
-        cpad->channels = 0;
-      else if (cpad->audio_codec == 10)
-        cpad->channels = 1;
+      if (pad->codec == 4 || pad->codec == 5
+          || pad->codec == 6 || pad->codec == 11)
+        pad->channels = 0;
+      else if (pad->codec == 10)
+        pad->channels = 1;
       else if (channels == 1)
-        cpad->channels = 0;
+        pad->channels = 0;
       else if (channels == 2)
-        cpad->channels = 1;
+        pad->channels = 1;
       else
         ret = FALSE;
-    } else if (cpad->audio_codec == 4 || cpad->audio_codec == 5
-        || cpad->audio_codec == 6) {
-      cpad->channels = 0;
-    } else if (cpad->audio_codec == 10) {
-      cpad->channels = 1;
+    } else if (pad->codec == 4 || pad->codec == 5 || pad->codec == 6) {
+      pad->channels = 0;
+    } else if (pad->codec == 10) {
+      pad->channels = 1;
     } else {
       ret = FALSE;
     }
 
-    if (cpad->audio_codec != 3)
-      cpad->width = 1;
+    if (pad->codec != 3)
+      pad->width = 1;
   }
 
   if (ret && gst_structure_has_field (s, "codec_data")) {
     const GValue *val = gst_structure_get_value (s, "codec_data");
 
     if (val)
-      cpad->audio_codec_data = gst_buffer_ref (gst_value_get_buffer (val));
+      pad->codec_data = gst_buffer_ref (gst_value_get_buffer (val));
   }
 
   gst_object_unref (mux);
@@ -550,35 +564,29 @@ gst_flv_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps)
 }
 
 static void
-gst_flv_mux_reset_pad (GstFlvMux * mux, GstFlvPad * cpad, gboolean video)
+gst_flv_mux_reset_pad (GstFlvMuxPad * pad)
 {
-  cpad->video = video;
-
-  if (cpad->audio_codec_data)
-    gst_buffer_unref (cpad->audio_codec_data);
-  cpad->audio_codec_data = NULL;
-  cpad->audio_codec = G_MAXUINT;
-  cpad->rate = G_MAXUINT;
-  cpad->width = G_MAXUINT;
-  cpad->channels = G_MAXUINT;
-
-  if (cpad->video_codec_data)
-    gst_buffer_unref (cpad->video_codec_data);
-  cpad->video_codec_data = NULL;
-  cpad->video_codec = G_MAXUINT;
-  cpad->last_timestamp = 0;
-  cpad->pts = GST_CLOCK_STIME_NONE;
-  cpad->dts = GST_CLOCK_STIME_NONE;
+  GST_DEBUG_OBJECT (pad, "resetting pad");
+
+  if (pad->codec_data)
+    gst_buffer_unref (pad->codec_data);
+  pad->codec_data = NULL;
+  pad->codec = G_MAXUINT;
+  pad->rate = G_MAXUINT;
+  pad->width = G_MAXUINT;
+  pad->channels = G_MAXUINT;
+
+  gst_flv_mux_pad_flush (GST_AGGREGATOR_PAD_CAST (pad), NULL);
 }
 
-static GstPad *
-gst_flv_mux_request_new_pad (GstElement * element,
+static GstAggregatorPad *
+gst_flv_mux_create_new_pad (GstAggregator * agg,
     GstPadTemplate * templ, const gchar * req_name, const GstCaps * caps)
 {
-  GstElementClass *klass = GST_ELEMENT_GET_CLASS (element);
-  GstFlvMux *mux = GST_FLV_MUX (element);
-  GstFlvPad *cpad;
-  GstPad *pad = NULL;
+  GstElementClass *klass = GST_ELEMENT_GET_CLASS (agg);
+  GstAggregatorPad *aggpad;
+  GstFlvMux *mux = GST_FLV_MUX (agg);
+  GstFlvMuxPad *pad = NULL;
   const gchar *name = NULL;
   gboolean video;
 
@@ -588,19 +596,17 @@ gst_flv_mux_request_new_pad (GstElement * element,
   }
 
   if (templ == gst_element_class_get_pad_template (klass, "audio")) {
-    if (mux->have_audio) {
+    if (mux->audio_pad) {
       GST_WARNING_OBJECT (mux, "Already have an audio pad");
       return NULL;
     }
-    mux->have_audio = TRUE;
     name = "audio";
     video = FALSE;
   } else if (templ == gst_element_class_get_pad_template (klass, "video")) {
-    if (mux->have_video) {
+    if (mux->video_pad) {
       GST_WARNING_OBJECT (mux, "Already have a video pad");
       return NULL;
     }
-    mux->have_video = TRUE;
     name = "video";
     video = TRUE;
   } else {
@@ -608,28 +614,41 @@ gst_flv_mux_request_new_pad (GstElement * element,
     return NULL;
   }
 
-  pad = gst_pad_new_from_template (templ, name);
-  cpad = (GstFlvPad *) gst_collect_pads_add_pad (mux->collect, pad,
-      sizeof (GstFlvPad), NULL, TRUE);
+  aggpad =
+      GST_AGGREGATOR_CLASS (gst_flv_mux_parent_class)->create_new_pad (agg,
+      templ, name, caps);
+  if (aggpad == NULL)
+    return NULL;
 
-  cpad->audio_codec_data = NULL;
-  cpad->video_codec_data = NULL;
-  gst_flv_mux_reset_pad (mux, cpad, video);
+  pad = GST_FLV_MUX_PAD (aggpad);
 
-  gst_pad_set_active (pad, TRUE);
-  gst_element_add_pad (element, pad);
+  gst_flv_mux_reset_pad (pad);
 
-  return pad;
+  if (video)
+    mux->video_pad = pad;
+  else
+    mux->audio_pad = pad;
+
+  return aggpad;
 }
 
 static void
 gst_flv_mux_release_pad (GstElement * element, GstPad * pad)
 {
-  GstFlvMux *mux = GST_FLV_MUX (GST_PAD_PARENT (pad));
-  GstFlvPad *cpad = (GstFlvPad *) gst_pad_get_element_private (pad);
+  GstFlvMux *mux = GST_FLV_MUX (element);
+  GstFlvMuxPad *flvpad = GST_FLV_MUX_PAD (pad);
+
+  gst_pad_set_active (pad, FALSE);
+  gst_flv_mux_reset_pad (flvpad);
+
+  if (flvpad == mux->video_pad) {
+    mux->video_pad = NULL;
+  } else if (flvpad == mux->audio_pad) {
+    mux->audio_pad = NULL;
+  } else {
+    GST_WARNING_OBJECT (pad, "Pad is not known audio or video pad");
+  }
 
-  gst_flv_mux_reset_pad (mux, cpad, cpad->video);
-  gst_collect_pads_remove_pad (mux->collect, pad);
   gst_element_remove_pad (element, pad);
 }
 
@@ -640,7 +659,7 @@ gst_flv_mux_push (GstFlvMux * mux, GstBuffer * buffer)
    * total output size in bytes, but it doesn't matter at that point */
   mux->byte_count += gst_buffer_get_size (buffer);
 
-  return gst_pad_push (mux->srcpad, buffer);
+  return gst_aggregator_finish_buffer (GST_AGGREGATOR_CAST (mux), buffer);
 }
 
 static GstBuffer *
@@ -648,6 +667,8 @@ gst_flv_mux_create_header (GstFlvMux * mux)
 {
   GstBuffer *header;
   guint8 *data;
+  gboolean have_audio;
+  gboolean have_video;
 
   _gst_buffer_new_and_alloc (9 + 4, &header, &data);
 
@@ -656,7 +677,10 @@ gst_flv_mux_create_header (GstFlvMux * mux)
   data[2] = 'V';
   data[3] = 0x01;               /* Version */
 
-  data[4] = (mux->have_audio << 2) | mux->have_video;   /* flags */
+  have_audio = (mux->audio_pad && mux->audio_pad->codec != G_MAXUINT);
+  have_video = (mux->video_pad && mux->video_pad->codec != G_MAXUINT);
+
+  data[4] = (have_audio << 2) | have_video;     /* flags */
   GST_WRITE_UINT32_BE (data + 5, 9);    /* data offset */
   GST_WRITE_UINT32_BE (data + 9, 0);    /* previous tag size */
 
@@ -820,13 +844,13 @@ tags:
     goto end;
 
   if (mux->duration == GST_CLOCK_TIME_NONE) {
-    GSList *l;
+    GList *l;
     guint64 dur;
 
-    for (l = mux->collect->data; l; l = l->next) {
-      GstCollectData *cdata = l->data;
+    for (l = GST_ELEMENT_CAST (mux)->sinkpads; l; l = l->next) {
+      GstFlvMuxPad *pad = GST_FLV_MUX_PAD (l->data);
 
-      if (gst_pad_peer_query_duration (cdata->pad, GST_FORMAT_TIME,
+      if (gst_pad_peer_query_duration (GST_PAD (pad), GST_FORMAT_TIME,
               (gint64 *) & dur) && dur != GST_CLOCK_TIME_NONE) {
         if (mux->duration == GST_CLOCK_TIME_NONE)
           mux->duration = dur;
@@ -849,23 +873,11 @@ tags:
     gst_buffer_unmap (script_tag, &map);
   }
 
-  if (mux->have_video) {
-    GstPad *video_pad = NULL;
+  if (mux->video_pad && mux->video_pad->codec != G_MAXUINT) {
     GstCaps *caps = NULL;
-    GstFlvPad *cpad;
-    GSList *l = mux->collect->data;
-
-    for (; l; l = l->next) {
-      cpad = l->data;
-      if (cpad && cpad->video) {
-        video_pad = cpad->collect.pad;
-        break;
-      }
-    }
 
-    if (video_pad) {
-      caps = gst_pad_get_current_caps (video_pad);
-    }
+    if (mux->video_pad)
+      caps = gst_pad_get_current_caps (GST_PAD (mux->video_pad));
 
     if (caps != NULL) {
       GstStructure *s;
@@ -873,10 +885,10 @@ tags:
       gint num, den;
 
       GST_DEBUG_OBJECT (mux, "putting videocodecid %d in the metadata",
-          cpad->video_codec);
+          mux->video_pad->codec);
 
       tmp = gst_flv_mux_create_number_script_value ("videocodecid",
-          cpad->video_codec);
+          mux->video_pad->codec);
       script_tag = gst_buffer_append (script_tag, tmp);
       tags_written++;
 
@@ -929,43 +941,29 @@ tags:
       }
 
       GST_DEBUG_OBJECT (mux, "putting videodatarate %u KB/s in the metadata",
-          cpad->bitrate / 1024);
+          mux->video_pad->bitrate / 1024);
       tmp = gst_flv_mux_create_number_script_value ("videodatarate",
-          cpad->bitrate / 1024);
+          mux->video_pad->bitrate / 1024);
       script_tag = gst_buffer_append (script_tag, tmp);
       tags_written++;
     }
   }
 
-  if (mux->have_audio) {
-    GstPad *audio_pad = NULL;
-    GstFlvPad *cpad;
-    GSList *l = mux->collect->data;
-
-    for (; l; l = l->next) {
-      cpad = l->data;
-      if (cpad && !cpad->video) {
-        audio_pad = cpad->collect.pad;
-        break;
-      }
-    }
-
-    if (audio_pad) {
-      GST_DEBUG_OBJECT (mux, "putting audiocodecid %d in the metadata",
-          cpad->audio_codec);
+  if (mux->audio_pad && mux->audio_pad->codec != G_MAXUINT) {
+    GST_DEBUG_OBJECT (mux, "putting audiocodecid %d in the metadata",
+        mux->audio_pad->codec);
 
-      tmp = gst_flv_mux_create_number_script_value ("audiocodecid",
-          cpad->audio_codec);
-      script_tag = gst_buffer_append (script_tag, tmp);
-      tags_written++;
+    tmp = gst_flv_mux_create_number_script_value ("audiocodecid",
+        mux->audio_pad->codec);
+    script_tag = gst_buffer_append (script_tag, tmp);
+    tags_written++;
 
-      GST_DEBUG_OBJECT (mux, "putting audiodatarate %u KB/s in the metadata",
-          cpad->bitrate / 1024);
-      tmp = gst_flv_mux_create_number_script_value ("audiodatarate",
-          cpad->bitrate / 1024);
-      script_tag = gst_buffer_append (script_tag, tmp);
-      tags_written++;
-    }
+    GST_DEBUG_OBJECT (mux, "putting audiodatarate %u KB/s in the metadata",
+        mux->audio_pad->bitrate / 1024);
+    tmp = gst_flv_mux_create_number_script_value ("audiodatarate",
+        mux->audio_pad->bitrate / 1024);
+    script_tag = gst_buffer_append (script_tag, tmp);
+    tags_written++;
   }
 
   _gst_buffer_new_and_alloc (2 + 15 + 1 + 2 + strlen (mux->metadatacreator),
@@ -1049,7 +1047,7 @@ exit:
 
 static GstBuffer *
 gst_flv_mux_buffer_to_tag_internal (GstFlvMux * mux, GstBuffer * buffer,
-    GstFlvPad * cpad, gboolean is_codec_data)
+    GstFlvMuxPad * pad, gboolean is_codec_data)
 {
   GstBuffer *tag;
   GstMapInfo map;
@@ -1058,11 +1056,11 @@ gst_flv_mux_buffer_to_tag_internal (GstFlvMux * mux, GstBuffer * buffer,
   guint8 *data, *bdata = NULL;
   gsize bsize = 0;
 
-  if (!GST_CLOCK_STIME_IS_VALID (cpad->dts)) {
-    pts = dts = cpad->last_timestamp / GST_MSECOND;
+  if (!GST_CLOCK_STIME_IS_VALID (pad->dts)) {
+    pts = dts = pad->last_timestamp / GST_MSECOND;
   } else {
-    pts = cpad->pts / GST_MSECOND;
-    dts = cpad->dts / GST_MSECOND;
+    pts = pad->pts / GST_MSECOND;
+    dts = pad->dts / GST_MSECOND;
   }
 
   /* Be safe in case TS are buggy */
@@ -1077,7 +1075,7 @@ gst_flv_mux_buffer_to_tag_internal (GstFlvMux * mux, GstBuffer * buffer,
     pts = dts + cts;
   }
 
-  GST_LOG_OBJECT (mux, "got pts %i dts %i cts %i\n", pts, dts, cts);
+  GST_LOG_OBJECT (mux, "got pts %i dts %i cts %i", pts, dts, cts);
 
   if (buffer != NULL) {
     gst_buffer_map (buffer, &map, GST_MAP_READ);
@@ -1086,15 +1084,15 @@ gst_flv_mux_buffer_to_tag_internal (GstFlvMux * mux, GstBuffer * buffer,
   }
 
   size = 11;
-  if (cpad->video) {
+  if (mux->video_pad == pad) {
     size += 1;
-    if (cpad->video_codec == 7)
+    if (pad->codec == 7)
       size += 4 + bsize;
     else
       size += bsize;
   } else {
     size += 1;
-    if (cpad->audio_codec == 10)
+    if (pad->codec == 10)
       size += 1 + bsize;
     else
       size += bsize;
@@ -1104,7 +1102,7 @@ gst_flv_mux_buffer_to_tag_internal (GstFlvMux * mux, GstBuffer * buffer,
   _gst_buffer_new_and_alloc (size, &tag, &data);
   memset (data, 0, size);
 
-  data[0] = (cpad->video) ? 9 : 8;
+  data[0] = (mux->video_pad == pad) ? 9 : 8;
 
   data[1] = ((size - 11 - 4) >> 16) & 0xff;
   data[2] = ((size - 11 - 4) >> 8) & 0xff;
@@ -1115,15 +1113,15 @@ gst_flv_mux_buffer_to_tag_internal (GstFlvMux * mux, GstBuffer * buffer,
 
   data[8] = data[9] = data[10] = 0;
 
-  if (cpad->video) {
+  if (mux->video_pad == pad) {
     if (buffer && GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT))
       data[11] |= 2 << 4;
     else
       data[11] |= 1 << 4;
 
-    data[11] |= cpad->video_codec & 0x0f;
+    data[11] |= pad->codec & 0x0f;
 
-    if (cpad->video_codec == 7) {
+    if (pad->codec == 7) {
       if (is_codec_data) {
         data[12] = 0;
         GST_WRITE_UINT24_BE (data + 13, 0);
@@ -1141,16 +1139,16 @@ gst_flv_mux_buffer_to_tag_internal (GstFlvMux * mux, GstBuffer * buffer,
       memcpy (data + 11 + 1, bdata, bsize);
     }
   } else {
-    data[11] |= (cpad->audio_codec << 4) & 0xf0;
-    data[11] |= (cpad->rate << 2) & 0x0c;
-    data[11] |= (cpad->width << 1) & 0x02;
-    data[11] |= (cpad->channels << 0) & 0x01;
+    data[11] |= (pad->codec << 4) & 0xf0;
+    data[11] |= (pad->rate << 2) & 0x0c;
+    data[11] |= (pad->width << 1) & 0x02;
+    data[11] |= (pad->channels << 0) & 0x01;
 
     GST_DEBUG_OBJECT (mux, "Creating byte %02x with "
-        "audio_codec:%d, rate:%d, width:%d, channels:%d",
-        data[11], cpad->audio_codec, cpad->rate, cpad->width, cpad->channels);
+        "codec:%d, rate:%d, width:%d, channels:%d",
+        data[11], pad->codec, pad->rate, pad->width, pad->channels);
 
-    if (cpad->audio_codec == 10) {
+    if (pad->codec == 10) {
       data[12] = is_codec_data ? 0 : 1;
 
       memcpy (data + 11 + 1 + 1, bdata, bsize);
@@ -1182,7 +1180,7 @@ gst_flv_mux_buffer_to_tag_internal (GstFlvMux * mux, GstBuffer * buffer,
 
     /* mark the buffer if it's an audio buffer and there's also video being muxed
      * or it's a video interframe */
-    if ((mux->have_video && !cpad->video) ||
+    if (mux->video_pad == pad &&
         GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT))
       GST_BUFFER_FLAG_SET (tag, GST_BUFFER_FLAG_DELTA_UNIT);
   } else {
@@ -1196,22 +1194,22 @@ gst_flv_mux_buffer_to_tag_internal (GstFlvMux * mux, GstBuffer * buffer,
 
 static inline GstBuffer *
 gst_flv_mux_buffer_to_tag (GstFlvMux * mux, GstBuffer * buffer,
-    GstFlvPad * cpad)
+    GstFlvMuxPad * pad)
 {
-  return gst_flv_mux_buffer_to_tag_internal (mux, buffer, cpad, FALSE);
+  return gst_flv_mux_buffer_to_tag_internal (mux, buffer, pad, FALSE);
 }
 
 static inline GstBuffer *
 gst_flv_mux_codec_data_buffer_to_tag (GstFlvMux * mux, GstBuffer * buffer,
-    GstFlvPad * cpad)
+    GstFlvMuxPad * pad)
 {
-  return gst_flv_mux_buffer_to_tag_internal (mux, buffer, cpad, TRUE);
+  return gst_flv_mux_buffer_to_tag_internal (mux, buffer, pad, TRUE);
 }
 
 static inline GstBuffer *
-gst_flv_mux_eos_to_tag (GstFlvMux * mux, GstFlvPad * cpad)
+gst_flv_mux_eos_to_tag (GstFlvMux * mux, GstFlvMuxPad * pad)
 {
-  return gst_flv_mux_buffer_to_tag_internal (mux, NULL, cpad, FALSE);
+  return gst_flv_mux_buffer_to_tag_internal (mux, NULL, pad, FALSE);
 }
 
 static void
@@ -1237,10 +1235,8 @@ gst_flv_mux_write_header (GstFlvMux * mux)
   GstCaps *caps;
   GstStructure *structure;
   GValue streamheader = { 0 };
-  GSList *l;
+  GList *l;
   GstFlowReturn ret;
-  GstSegment segment;
-  gchar s_id[32];
 
   /* if not streaming, check if downstream is seekable */
   if (!mux->streamable) {
@@ -1271,26 +1267,24 @@ gst_flv_mux_write_header (GstFlvMux * mux)
   video_codec_data = NULL;
   audio_codec_data = NULL;
 
-  for (l = mux->collect->data; l != NULL; l = l->next) {
-    GstFlvPad *cpad = l->data;
+  for (l = GST_ELEMENT_CAST (mux)->sinkpads; l != NULL; l = l->next) {
+    GstFlvMuxPad *pad = l->data;
 
     /* Get H.264 and AAC codec data, if present */
-    if (cpad && cpad->video && cpad->video_codec == 7) {
-      if (cpad->video_codec_data == NULL)
+    if (pad && mux->video_pad == pad && pad->codec == 7) {
+      if (pad->codec_data == NULL)
         GST_WARNING_OBJECT (mux, "Codec data for video stream not found, "
             "output might not be playable");
       else
         video_codec_data =
-            gst_flv_mux_codec_data_buffer_to_tag (mux, cpad->video_codec_data,
-            cpad);
-    } else if (cpad && !cpad->video && cpad->audio_codec == 10) {
-      if (cpad->audio_codec_data == NULL)
+            gst_flv_mux_codec_data_buffer_to_tag (mux, pad->codec_data, pad);
+    } else if (pad && mux->audio_pad == pad && pad->codec == 10) {
+      if (pad->codec_data == NULL)
         GST_WARNING_OBJECT (mux, "Codec data for audio stream not found, "
             "output might not be playable");
       else
         audio_codec_data =
-            gst_flv_mux_codec_data_buffer_to_tag (mux, cpad->audio_codec_data,
-            cpad);
+            gst_flv_mux_codec_data_buffer_to_tag (mux, pad->codec_data, pad);
     }
   }
 
@@ -1316,25 +1310,16 @@ 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);
 
-  gst_pad_set_caps (mux->srcpad, caps);
+  gst_aggregator_set_src_caps (GST_AGGREGATOR_CAST (mux), caps);
 
   gst_caps_unref (caps);
 
-  /* segment */
-  gst_segment_init (&segment,
-      mux->streamable ? GST_FORMAT_TIME : 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)
@@ -1369,47 +1354,63 @@ failure_audio_codec_data:
   return ret;
 }
 
+static GstClockTime
+gst_flv_mux_segment_to_running_time (const GstSegment * segment, GstClockTime t)
+{
+  /* we can get a dts before the segment, if dts < pts and pts is inside
+   * the segment, so we consider early times as 0 */
+  if (t < segment->start)
+    return 0;
+  return gst_segment_to_running_time (segment, GST_FORMAT_TIME, t);
+}
+
 static void
-gst_flv_mux_update_index (GstFlvMux * mux, GstBuffer * buffer, GstFlvPad * cpad)
+gst_flv_mux_update_index (GstFlvMux * mux, GstBuffer * buffer,
+    GstFlvMuxPad * pad)
 {
   /*
    * Add the tag byte offset and to the index if it's a valid seek point, which
    * means it's either a video keyframe or if there is no video pad (in that
    * case every FLV tag is a valid seek point)
    */
-  if (mux->have_video &&
-      (!cpad->video ||
-          GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT)))
+  if (mux->video_pad == pad &&
+      GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT))
     return;
 
   if (GST_BUFFER_PTS_IS_VALID (buffer)) {
     GstFlvMuxIndexEntry *entry = g_slice_new (GstFlvMuxIndexEntry);
+    GstClockTime pts =
+        gst_flv_mux_segment_to_running_time (&GST_AGGREGATOR_PAD
+        (pad)->segment, GST_BUFFER_PTS (buffer));
     entry->position = mux->byte_count;
-    entry->time = gst_guint64_to_gdouble (GST_BUFFER_PTS (buffer)) / GST_SECOND;
+    entry->time = gst_guint64_to_gdouble (pts) / GST_SECOND;
     mux->index = g_list_prepend (mux->index, entry);
   }
 }
 
 static GstFlowReturn
-gst_flv_mux_write_buffer (GstFlvMux * mux, GstFlvPad * cpad, GstBuffer * buffer)
+gst_flv_mux_write_buffer (GstFlvMux * mux, GstFlvMuxPad * pad,
+    GstBuffer * buffer)
 {
   GstBuffer *tag;
   GstFlowReturn ret;
-  GstClockTime dts = GST_BUFFER_DTS (buffer);
+  GstClockTime dts =
+      gst_flv_mux_segment_to_running_time (&GST_AGGREGATOR_PAD (pad)->segment,
+      GST_BUFFER_DTS (buffer));
 
   /* clipping function arranged for running_time */
 
   if (!mux->streamable)
-    gst_flv_mux_update_index (mux, buffer, cpad);
+    gst_flv_mux_update_index (mux, buffer, pad);
 
-  tag = gst_flv_mux_buffer_to_tag (mux, buffer, cpad);
+  tag = gst_flv_mux_buffer_to_tag (mux, buffer, pad);
 
   gst_buffer_unref (buffer);
 
   ret = gst_flv_mux_push (mux, tag);
 
   if (ret == GST_FLOW_OK && GST_CLOCK_TIME_IS_VALID (dts))
-    cpad->last_timestamp = dts;
+    pad->last_timestamp = dts;
 
 
   return ret;
@@ -1418,45 +1419,49 @@ gst_flv_mux_write_buffer (GstFlvMux * mux, GstFlvPad * cpad, GstBuffer * buffer)
 static guint64
 gst_flv_mux_determine_duration (GstFlvMux * mux)
 {
-  GSList *l;
+  GList *l;
   GstClockTime duration = GST_CLOCK_TIME_NONE;
 
   GST_DEBUG_OBJECT (mux, "trying to determine the duration "
       "from pad timestamps");
 
-  for (l = mux->collect->data; l != NULL; l = l->next) {
-    GstFlvPad *cpad = l->data;
+  for (l = GST_ELEMENT_CAST (mux)->sinkpads; l != NULL; l = l->next) {
+    GstFlvMuxPad *pad = GST_FLV_MUX_PAD (l->data);
 
-    if (cpad && (cpad->last_timestamp != GST_CLOCK_TIME_NONE)) {
+    if (pad && (pad->last_timestamp != GST_CLOCK_TIME_NONE)) {
       if (duration == GST_CLOCK_TIME_NONE)
-        duration = cpad->last_timestamp;
+        duration = pad->last_timestamp;
       else
-        duration = MAX (duration, cpad->last_timestamp);
+        duration = MAX (duration, pad->last_timestamp);
     }
   }
 
   return duration;
 }
 
+static gboolean
+gst_flv_mux_are_all_pads_eos (GstFlvMux * mux)
+{
+  GList *l;
+
+  for (l = GST_ELEMENT_CAST (mux)->sinkpads; l; l = l->next) {
+    GstFlvMuxPad *pad = GST_FLV_MUX_PAD (l->data);
+
+    if (!gst_aggregator_pad_is_eos (GST_AGGREGATOR_PAD (pad)))
+      return FALSE;
+  }
+  return TRUE;
+}
+
 static GstFlowReturn
 gst_flv_mux_write_eos (GstFlvMux * mux)
 {
   GstBuffer *tag;
-  GstFlvPad *video_pad = NULL;
-  GSList *l = mux->collect->data;
 
-  if (!mux->have_video)
+  if (mux->video_pad == NULL)
     return GST_FLOW_OK;
 
-  for (; l; l = l->next) {
-    GstFlvPad *cpad = l->data;
-    if (cpad && cpad->video) {
-      video_pad = cpad;
-      break;
-    }
-  }
-
-  tag = gst_flv_mux_eos_to_tag (mux, video_pad);
+  tag = gst_flv_mux_eos_to_tag (mux, mux->video_pad);
 
   return gst_flv_mux_push (mux, tag);
 }
@@ -1599,33 +1604,71 @@ gst_flv_mux_rewrite_header (GstFlvMux * mux)
   return gst_flv_mux_push (mux, rewrite);
 }
 
+static GstFlvMuxPad *
+gst_flv_mux_find_best_pad (GstAggregator * aggregator, GstClockTime * ts)
+{
+  GstAggregatorPad *apad;
+  GstFlvMuxPad *pad, *best = NULL;
+  GList *l;
+  GstBuffer *buffer;
+  GstClockTime best_ts = GST_CLOCK_TIME_NONE;
+
+  for (l = GST_ELEMENT_CAST (aggregator)->sinkpads; l; l = l->next) {
+    apad = GST_AGGREGATOR_PAD (l->data);
+    pad = GST_FLV_MUX_PAD (l->data);
+    buffer = gst_aggregator_pad_peek_buffer (GST_AGGREGATOR_PAD (pad));
+    if (!buffer)
+      continue;
+    if (best_ts == GST_CLOCK_TIME_NONE) {
+      best = pad;
+      best_ts = gst_flv_mux_segment_to_running_time (&apad->segment,
+          GST_BUFFER_DTS_OR_PTS (buffer));
+    } else if (GST_BUFFER_DTS_OR_PTS (buffer) != GST_CLOCK_TIME_NONE) {
+      gint64 t = gst_flv_mux_segment_to_running_time (&apad->segment,
+          GST_BUFFER_DTS_OR_PTS (buffer));
+      if (t < best_ts) {
+        best = pad;
+        best_ts = t;
+      }
+    }
+  }
+  GST_DEBUG_OBJECT (aggregator,
+      "Best pad found with %" GST_TIME_FORMAT ": %" GST_PTR_FORMAT,
+      GST_TIME_ARGS (best_ts), best);
+  if (ts)
+    *ts = best_ts;
+  return best;
+}
+
 static GstFlowReturn
-gst_flv_mux_handle_buffer (GstCollectPads * pads, GstCollectData * cdata,
-    GstBuffer * buffer, gpointer user_data)
+gst_flv_mux_aggregate (GstAggregator * aggregator, gboolean timeout)
 {
-  GstFlvMux *mux = GST_FLV_MUX (user_data);
-  GstFlvPad *best;
+  GstFlvMux *mux = GST_FLV_MUX (aggregator);
+  GstFlvMuxPad *best;
   gint64 best_time = GST_CLOCK_STIME_NONE;
   GstFlowReturn ret;
+  GstClockTime ts;
+  GstBuffer *buffer = NULL;
 
   if (mux->state == GST_FLV_MUX_STATE_HEADER) {
-    if (mux->collect->data == NULL) {
+    if (GST_ELEMENT_CAST (mux)->sinkpads == NULL) {
       GST_ELEMENT_ERROR (mux, STREAM, MUX, (NULL),
           ("No input streams configured"));
       return GST_FLOW_ERROR;
     }
 
     ret = gst_flv_mux_write_header (mux);
-    if (ret != GST_FLOW_OK) {
-      gst_buffer_unref (buffer);
+    if (ret != GST_FLOW_OK)
       return ret;
-    }
     mux->state = GST_FLV_MUX_STATE_DATA;
 
-    if (cdata && GST_COLLECT_PADS_DTS_IS_VALID (cdata))
-      mux->first_timestamp = GST_COLLECT_PADS_DTS (cdata);
+    best = gst_flv_mux_find_best_pad (aggregator, &ts);
+    if (best && GST_CLOCK_STIME_IS_VALID (ts))
+      mux->first_timestamp = ts;
     else
       mux->first_timestamp = 0;
+  } else {
+    best = gst_flv_mux_find_best_pad (aggregator, &ts);
   }
 
   if (mux->new_tags) {
@@ -1635,21 +1678,25 @@ gst_flv_mux_handle_buffer (GstCollectPads * pads, GstCollectData * cdata,
     mux->new_tags = FALSE;
   }
 
-  best = (GstFlvPad *) cdata;
   if (best) {
+    buffer = gst_aggregator_pad_pop_buffer (GST_AGGREGATOR_PAD (best));
     g_assert (buffer);
-    best->dts = GST_COLLECT_PADS_DTS (cdata);
+    best->dts =
+        gst_flv_mux_segment_to_running_time (&GST_AGGREGATOR_PAD
+        (best)->segment, GST_BUFFER_DTS_OR_PTS (buffer));
 
     if (GST_CLOCK_STIME_IS_VALID (best->dts))
       best_time = best->dts - mux->first_timestamp;
 
     if (GST_BUFFER_PTS_IS_VALID (buffer))
-      best->pts = GST_BUFFER_PTS (buffer);
+      best->pts =
+          gst_flv_mux_segment_to_running_time (&GST_AGGREGATOR_PAD
+          (best)->segment, GST_BUFFER_PTS (buffer));
     else
       best->pts = best->dts;
 
-    GST_LOG_OBJECT (mux, "got buffer PTS %" GST_TIME_FORMAT " DTS %"
-        GST_STIME_FORMAT "\n", GST_TIME_ARGS (best->pts),
+    GST_LOG_OBJECT (best, "got buffer PTS %" GST_TIME_FORMAT " DTS %"
+        GST_STIME_FORMAT, GST_TIME_ARGS (best->pts),
         GST_STIME_ARGS (best->dts));
   } else {
     best_time = GST_CLOCK_STIME_NONE;
@@ -1661,19 +1708,22 @@ gst_flv_mux_handle_buffer (GstCollectPads * pads, GstCollectData * cdata,
   if (!mux->streamable && (GST_CLOCK_STIME_IS_VALID (best_time))
       && best_time / GST_MSECOND > G_MAXINT32) {
     GST_WARNING_OBJECT (mux, "Timestamp larger than FLV supports - EOS");
-    gst_buffer_unref (buffer);
-    buffer = NULL;
+    if (buffer) {
+      gst_buffer_unref (buffer);
+      buffer = NULL;
+    }
     best = NULL;
   }
 
   if (best) {
     return gst_flv_mux_write_buffer (mux, best, buffer);
   } else {
-    /* FIXME check return values */
-    gst_flv_mux_write_eos (mux);
-    gst_flv_mux_rewrite_header (mux);
-    gst_pad_push_event (mux->srcpad, gst_event_new_eos ());
-    return GST_FLOW_EOS;
+    if (gst_flv_mux_are_all_pads_eos (mux)) {
+      gst_flv_mux_write_eos (mux);
+      gst_flv_mux_rewrite_header (mux);
+      gst_pad_push_event (mux->srcpad, gst_event_new_eos ());
+    }
+    return GST_FLOW_OK;
   }
 }
 
@@ -1727,40 +1777,32 @@ gst_flv_mux_set_property (GObject * object,
   }
 }
 
-static GstStateChangeReturn
-gst_flv_mux_change_state (GstElement * element, GstStateChange transition)
+static GstClockTime
+gst_flv_mux_get_next_time_for_segment (GstAggregator * aggregator,
+    const GstSegment * segment)
 {
-  GstStateChangeReturn ret;
-  GstFlvMux *mux = GST_FLV_MUX (element);
+  GstClockTime next_time;
 
-  switch (transition) {
-    case GST_STATE_CHANGE_NULL_TO_READY:
-      break;
-    case GST_STATE_CHANGE_READY_TO_PAUSED:
-      gst_collect_pads_start (mux->collect);
-      break;
-    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
-      break;
-    case GST_STATE_CHANGE_PAUSED_TO_READY:
-      gst_collect_pads_stop (mux->collect);
-      break;
-    default:
-      break;
-  }
+  GST_OBJECT_LOCK (aggregator);
+  if (segment->position == -1 || segment->position < segment->start)
+    next_time = segment->start;
+  else
+    next_time = segment->position;
 
-  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (segment->stop != -1 && next_time > segment->stop)
+    next_time = segment->stop;
 
-  switch (transition) {
-    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
-      break;
-    case GST_STATE_CHANGE_PAUSED_TO_READY:
-      gst_flv_mux_reset (GST_ELEMENT (mux));
-      break;
-    case GST_STATE_CHANGE_READY_TO_NULL:
-      break;
-    default:
-      break;
-  }
+  next_time = gst_segment_to_running_time (segment, GST_FORMAT_TIME, next_time);
+  GST_OBJECT_UNLOCK (aggregator);
 
-  return ret;
+  GST_DEBUG_OBJECT (aggregator, "next_time: %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (next_time));
+  return next_time;
+}
+
+static GstClockTime
+gst_flv_mux_get_next_time (GstAggregator * aggregator)
+{
+  return gst_flv_mux_get_next_time_for_segment (aggregator,
+      &aggregator->segment);
 }
diff --git a/gst/flv/gstflvmux.h b/gst/flv/gstflvmux.h
index 2cf459361..4db50938b 100644
--- a/gst/flv/gstflvmux.h
+++ b/gst/flv/gstflvmux.h
@@ -1,6 +1,9 @@
 /* GStreamer
  *
- * Copyright (c) 2008 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (c) 2008,2009 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (c) 2008-2017 Collabora Ltd
+ *  @author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *  @author: Vincent Penquerc'h <vincent.penquerch@collabora.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -22,14 +25,25 @@
 #define __GST_FLV_MUX_H__
 
 #include <gst/gst.h>
-#include <gst/base/gstcollectpads.h>
+#include <gst/base/gstaggregator.h>
 
 G_BEGIN_DECLS
 
+#define GST_TYPE_FLV_MUX_PAD (gst_flv_mux_pad_get_type())
+#define GST_FLV_MUX_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FLV_MUX_PAD, GstFlvMuxPad))
+#define GST_FLV_MUX_PAD_CAST(obj) ((GstFlvMuxPad *)(obj))
+#define GST_FLV_MUX_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FLV_MUX_PAD, GstFlvMuxPad))
+#define GST_IS_FLV_MUX_PAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FLV_MUX_PAD))
+#define GST_IS_FLV_MUX_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FLV_MUX_PAD))
+
+typedef struct _GstFlvMuxPad GstFlvMuxPad;
+typedef struct _GstFlvMuxPadClass GstFlvMuxPadClass;
+
 #define GST_TYPE_FLV_MUX \
   (gst_flv_mux_get_type ())
 #define GST_FLV_MUX(obj) \
   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_FLV_MUX, GstFlvMux))
+#define GST_FLV_MUX_CAST(obj) ((GstFlvMux *)obj)
 #define GST_FLV_MUX_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_FLV_MUX, GstFlvMuxClass))
 #define GST_IS_FLV_MUX(obj) \
@@ -37,27 +51,26 @@ G_BEGIN_DECLS
 #define GST_IS_FLV_MUX_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_FLV_MUX))
 
-typedef struct
+struct _GstFlvMuxPad
 {
-  GstCollectData collect;
-
-  gboolean video;
+  GstAggregatorPad aggregator_pad;
 
-  guint audio_codec;
+  guint codec;
   guint rate;
   guint width;
   guint channels;
-  GstBuffer *audio_codec_data;
-
-  guint video_codec;
-  GstBuffer *video_codec_data;
+  GstBuffer *codec_data;
 
   guint bitrate;
 
   GstClockTime last_timestamp;
   gint64 pts;
   gint64 dts;
-} GstFlvPad;
+};
+
+typedef struct _GstFlvMuxPadClass {
+  GstAggregatorPadClass parent;
+} GstFlvMuxPadClass;
 
 typedef enum
 {
@@ -66,15 +79,14 @@ typedef enum
 } GstFlvMuxState;
 
 typedef struct _GstFlvMux {
-  GstElement     element;
+  GstAggregator   aggregator;
 
   GstPad         *srcpad;
-  GstCollectPads *collect;
 
   /* <private> */
   GstFlvMuxState state;
-  gboolean have_audio;
-  gboolean have_video;
+  GstFlvMuxPad *audio_pad;
+  GstFlvMuxPad *video_pad;
   gboolean streamable;
   gchar *metadatacreator;
 
@@ -87,9 +99,10 @@ typedef struct _GstFlvMux {
 } GstFlvMux;
 
 typedef struct _GstFlvMuxClass {
-  GstElementClass parent;
+  GstAggregatorClass parent;
 } GstFlvMuxClass;
 
+GType    gst_flv_mux_pad_get_type(void);
 GType    gst_flv_mux_get_type    (void);
 
 G_END_DECLS
diff --git a/gst/flv/gstindex.c b/gst/flv/gstindex.c
index 26d7fa3d1..d64a38a45 100644
--- a/gst/flv/gstindex.c
+++ b/gst/flv/gstindex.c
@@ -511,7 +511,6 @@ gst_index_set_resolver (GstIndex * index,
  * Lets the app register a custom function to map index
  * ids to writer descriptions.
  *
- * Since: 0.10.18
  */
 void
 gst_index_set_resolver_full (GstIndex * index, GstIndexResolver resolver,
diff --git a/gst/flx/Makefile.am b/gst/flx/Makefile.am
index aaecaa010..58934ea79 100644
--- a/gst/flx/Makefile.am
+++ b/gst/flx/Makefile.am
@@ -4,6 +4,5 @@ libgstflxdec_la_SOURCES = gstflxdec.c flx_color.c
 libgstflxdec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstflxdec_la_LIBADD = $(GST_BASE_LIBS)  $(GST_LIBS)
 libgstflxdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstflxdec_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = flx_fmt.h flx_color.h gstflxdec.h
diff --git a/gst/flx/Makefile.in b/gst/flx/Makefile.in
index 618a56b6f..c242ecead 100644
--- a/gst/flx/Makefile.in
+++ b/gst/flx/Makefile.in
@@ -173,9 +173,9 @@ 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_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
@@ -292,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -315,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -330,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -352,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -370,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -387,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -399,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -417,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -460,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -476,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -576,7 +612,6 @@ libgstflxdec_la_SOURCES = gstflxdec.c flx_color.c
 libgstflxdec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstflxdec_la_LIBADD = $(GST_BASE_LIBS)  $(GST_LIBS)
 libgstflxdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstflxdec_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = flx_fmt.h flx_color.h gstflxdec.h
 all: all-am
 
@@ -684,18 +719,18 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstflxdec_la-gstflxdec.lo: gstflxdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -MT libgstflxdec_la-gstflxdec.lo -MD -MP -MF $(DEPDIR)/libgstflxdec_la-gstflxdec.Tpo -c -o libgstflxdec_la-gstflxdec.lo `test -f 'gstflxdec.c' || echo '$(srcdir)/'`gstflxdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -MT libgstflxdec_la-gstflxdec.lo -MD -MP -MF $(DEPDIR)/libgstflxdec_la-gstflxdec.Tpo -c -o libgstflxdec_la-gstflxdec.lo `test -f 'gstflxdec.c' || echo '$(srcdir)/'`gstflxdec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstflxdec_la-gstflxdec.Tpo $(DEPDIR)/libgstflxdec_la-gstflxdec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstflxdec.c' object='libgstflxdec_la-gstflxdec.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 $(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -c -o libgstflxdec_la-gstflxdec.lo `test -f 'gstflxdec.c' || echo '$(srcdir)/'`gstflxdec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -c -o libgstflxdec_la-gstflxdec.lo `test -f 'gstflxdec.c' || echo '$(srcdir)/'`gstflxdec.c
 
 libgstflxdec_la-flx_color.lo: flx_color.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -MT libgstflxdec_la-flx_color.lo -MD -MP -MF $(DEPDIR)/libgstflxdec_la-flx_color.Tpo -c -o libgstflxdec_la-flx_color.lo `test -f 'flx_color.c' || echo '$(srcdir)/'`flx_color.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -MT libgstflxdec_la-flx_color.lo -MD -MP -MF $(DEPDIR)/libgstflxdec_la-flx_color.Tpo -c -o libgstflxdec_la-flx_color.lo `test -f 'flx_color.c' || echo '$(srcdir)/'`flx_color.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstflxdec_la-flx_color.Tpo $(DEPDIR)/libgstflxdec_la-flx_color.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='flx_color.c' object='libgstflxdec_la-flx_color.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 $(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -c -o libgstflxdec_la-flx_color.lo `test -f 'flx_color.c' || echo '$(srcdir)/'`flx_color.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -c -o libgstflxdec_la-flx_color.lo `test -f 'flx_color.c' || echo '$(srcdir)/'`flx_color.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/goom/Makefile.am b/gst/goom/Makefile.am
index 178172fa4..7701b107c 100644
--- a/gst/goom/Makefile.am
+++ b/gst/goom/Makefile.am
@@ -40,7 +40,6 @@ libgstgoom_la_SOURCES =						\
 libgstgoom_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS) $(ARCH_CFLAGS) $(ORC_CFLAGS)
 libgstgoom_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstpbutils-$(GST_API_VERSION) $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(ORC_LIBS)
 libgstgoom_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstgoom_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 EXTRA_DIST = $(PPC_FILES) $(MMX_FILES)
 
diff --git a/gst/goom/Makefile.in b/gst/goom/Makefile.in
index 603ee3e13..c7e8fad7d 100644
--- a/gst/goom/Makefile.in
+++ b/gst/goom/Makefile.in
@@ -191,10 +191,9 @@ 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 $@
+libgstgoom_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -310,6 +309,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -333,6 +333,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -348,6 +350,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -370,10 +374,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -388,6 +399,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -405,6 +417,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -417,6 +431,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -435,6 +451,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -478,9 +497,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -494,11 +524,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -622,7 +657,6 @@ libgstgoom_la_SOURCES = \
 libgstgoom_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS) $(ARCH_CFLAGS) $(ORC_CFLAGS)
 libgstgoom_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstpbutils-$(GST_API_VERSION) $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(ORC_LIBS)
 libgstgoom_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstgoom_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 EXTRA_DIST = $(PPC_FILES) $(MMX_FILES)
 all: all-am
 
@@ -747,137 +781,137 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstgoom_la-gstgoom.lo: gstgoom.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-gstgoom.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-gstgoom.Tpo -c -o libgstgoom_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-gstgoom.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-gstgoom.Tpo -c -o libgstgoom_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-gstgoom.Tpo $(DEPDIR)/libgstgoom_la-gstgoom.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgoom.c' object='libgstgoom_la-gstgoom.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c
 
 libgstgoom_la-drawmethods.lo: drawmethods.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-drawmethods.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-drawmethods.Tpo -c -o libgstgoom_la-drawmethods.lo `test -f 'drawmethods.c' || echo '$(srcdir)/'`drawmethods.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-drawmethods.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-drawmethods.Tpo -c -o libgstgoom_la-drawmethods.lo `test -f 'drawmethods.c' || echo '$(srcdir)/'`drawmethods.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-drawmethods.Tpo $(DEPDIR)/libgstgoom_la-drawmethods.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='drawmethods.c' object='libgstgoom_la-drawmethods.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-drawmethods.lo `test -f 'drawmethods.c' || echo '$(srcdir)/'`drawmethods.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-drawmethods.lo `test -f 'drawmethods.c' || echo '$(srcdir)/'`drawmethods.c
 
 libgstgoom_la-sound_tester.lo: sound_tester.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-sound_tester.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-sound_tester.Tpo -c -o libgstgoom_la-sound_tester.lo `test -f 'sound_tester.c' || echo '$(srcdir)/'`sound_tester.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-sound_tester.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-sound_tester.Tpo -c -o libgstgoom_la-sound_tester.lo `test -f 'sound_tester.c' || echo '$(srcdir)/'`sound_tester.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-sound_tester.Tpo $(DEPDIR)/libgstgoom_la-sound_tester.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='sound_tester.c' object='libgstgoom_la-sound_tester.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-sound_tester.lo `test -f 'sound_tester.c' || echo '$(srcdir)/'`sound_tester.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-sound_tester.lo `test -f 'sound_tester.c' || echo '$(srcdir)/'`sound_tester.c
 
 libgstgoom_la-mathtools.lo: mathtools.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-mathtools.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-mathtools.Tpo -c -o libgstgoom_la-mathtools.lo `test -f 'mathtools.c' || echo '$(srcdir)/'`mathtools.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-mathtools.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-mathtools.Tpo -c -o libgstgoom_la-mathtools.lo `test -f 'mathtools.c' || echo '$(srcdir)/'`mathtools.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-mathtools.Tpo $(DEPDIR)/libgstgoom_la-mathtools.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mathtools.c' object='libgstgoom_la-mathtools.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-mathtools.lo `test -f 'mathtools.c' || echo '$(srcdir)/'`mathtools.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-mathtools.lo `test -f 'mathtools.c' || echo '$(srcdir)/'`mathtools.c
 
 libgstgoom_la-lines.lo: lines.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-lines.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-lines.Tpo -c -o libgstgoom_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-lines.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-lines.Tpo -c -o libgstgoom_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-lines.Tpo $(DEPDIR)/libgstgoom_la-lines.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='lines.c' object='libgstgoom_la-lines.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c
 
 libgstgoom_la-ifs.lo: ifs.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-ifs.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-ifs.Tpo -c -o libgstgoom_la-ifs.lo `test -f 'ifs.c' || echo '$(srcdir)/'`ifs.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-ifs.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-ifs.Tpo -c -o libgstgoom_la-ifs.lo `test -f 'ifs.c' || echo '$(srcdir)/'`ifs.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-ifs.Tpo $(DEPDIR)/libgstgoom_la-ifs.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ifs.c' object='libgstgoom_la-ifs.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-ifs.lo `test -f 'ifs.c' || echo '$(srcdir)/'`ifs.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-ifs.lo `test -f 'ifs.c' || echo '$(srcdir)/'`ifs.c
 
 libgstgoom_la-surf3d.lo: surf3d.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-surf3d.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-surf3d.Tpo -c -o libgstgoom_la-surf3d.lo `test -f 'surf3d.c' || echo '$(srcdir)/'`surf3d.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-surf3d.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-surf3d.Tpo -c -o libgstgoom_la-surf3d.lo `test -f 'surf3d.c' || echo '$(srcdir)/'`surf3d.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-surf3d.Tpo $(DEPDIR)/libgstgoom_la-surf3d.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='surf3d.c' object='libgstgoom_la-surf3d.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-surf3d.lo `test -f 'surf3d.c' || echo '$(srcdir)/'`surf3d.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-surf3d.lo `test -f 'surf3d.c' || echo '$(srcdir)/'`surf3d.c
 
 libgstgoom_la-tentacle3d.lo: tentacle3d.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-tentacle3d.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-tentacle3d.Tpo -c -o libgstgoom_la-tentacle3d.lo `test -f 'tentacle3d.c' || echo '$(srcdir)/'`tentacle3d.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-tentacle3d.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-tentacle3d.Tpo -c -o libgstgoom_la-tentacle3d.lo `test -f 'tentacle3d.c' || echo '$(srcdir)/'`tentacle3d.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-tentacle3d.Tpo $(DEPDIR)/libgstgoom_la-tentacle3d.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tentacle3d.c' object='libgstgoom_la-tentacle3d.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-tentacle3d.lo `test -f 'tentacle3d.c' || echo '$(srcdir)/'`tentacle3d.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-tentacle3d.lo `test -f 'tentacle3d.c' || echo '$(srcdir)/'`tentacle3d.c
 
 libgstgoom_la-v3d.lo: v3d.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-v3d.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-v3d.Tpo -c -o libgstgoom_la-v3d.lo `test -f 'v3d.c' || echo '$(srcdir)/'`v3d.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-v3d.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-v3d.Tpo -c -o libgstgoom_la-v3d.lo `test -f 'v3d.c' || echo '$(srcdir)/'`v3d.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-v3d.Tpo $(DEPDIR)/libgstgoom_la-v3d.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='v3d.c' object='libgstgoom_la-v3d.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-v3d.lo `test -f 'v3d.c' || echo '$(srcdir)/'`v3d.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-v3d.lo `test -f 'v3d.c' || echo '$(srcdir)/'`v3d.c
 
 libgstgoom_la-convolve_fx.lo: convolve_fx.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-convolve_fx.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-convolve_fx.Tpo -c -o libgstgoom_la-convolve_fx.lo `test -f 'convolve_fx.c' || echo '$(srcdir)/'`convolve_fx.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-convolve_fx.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-convolve_fx.Tpo -c -o libgstgoom_la-convolve_fx.lo `test -f 'convolve_fx.c' || echo '$(srcdir)/'`convolve_fx.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-convolve_fx.Tpo $(DEPDIR)/libgstgoom_la-convolve_fx.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='convolve_fx.c' object='libgstgoom_la-convolve_fx.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-convolve_fx.lo `test -f 'convolve_fx.c' || echo '$(srcdir)/'`convolve_fx.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-convolve_fx.lo `test -f 'convolve_fx.c' || echo '$(srcdir)/'`convolve_fx.c
 
 libgstgoom_la-flying_stars_fx.lo: flying_stars_fx.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-flying_stars_fx.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-flying_stars_fx.Tpo -c -o libgstgoom_la-flying_stars_fx.lo `test -f 'flying_stars_fx.c' || echo '$(srcdir)/'`flying_stars_fx.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-flying_stars_fx.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-flying_stars_fx.Tpo -c -o libgstgoom_la-flying_stars_fx.lo `test -f 'flying_stars_fx.c' || echo '$(srcdir)/'`flying_stars_fx.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-flying_stars_fx.Tpo $(DEPDIR)/libgstgoom_la-flying_stars_fx.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='flying_stars_fx.c' object='libgstgoom_la-flying_stars_fx.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-flying_stars_fx.lo `test -f 'flying_stars_fx.c' || echo '$(srcdir)/'`flying_stars_fx.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-flying_stars_fx.lo `test -f 'flying_stars_fx.c' || echo '$(srcdir)/'`flying_stars_fx.c
 
 libgstgoom_la-plugin_info.lo: plugin_info.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-plugin_info.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-plugin_info.Tpo -c -o libgstgoom_la-plugin_info.lo `test -f 'plugin_info.c' || echo '$(srcdir)/'`plugin_info.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-plugin_info.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-plugin_info.Tpo -c -o libgstgoom_la-plugin_info.lo `test -f 'plugin_info.c' || echo '$(srcdir)/'`plugin_info.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-plugin_info.Tpo $(DEPDIR)/libgstgoom_la-plugin_info.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='plugin_info.c' object='libgstgoom_la-plugin_info.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-plugin_info.lo `test -f 'plugin_info.c' || echo '$(srcdir)/'`plugin_info.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-plugin_info.lo `test -f 'plugin_info.c' || echo '$(srcdir)/'`plugin_info.c
 
 libgstgoom_la-goom_tools.lo: goom_tools.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-goom_tools.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-goom_tools.Tpo -c -o libgstgoom_la-goom_tools.lo `test -f 'goom_tools.c' || echo '$(srcdir)/'`goom_tools.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-goom_tools.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-goom_tools.Tpo -c -o libgstgoom_la-goom_tools.lo `test -f 'goom_tools.c' || echo '$(srcdir)/'`goom_tools.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-goom_tools.Tpo $(DEPDIR)/libgstgoom_la-goom_tools.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='goom_tools.c' object='libgstgoom_la-goom_tools.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-goom_tools.lo `test -f 'goom_tools.c' || echo '$(srcdir)/'`goom_tools.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-goom_tools.lo `test -f 'goom_tools.c' || echo '$(srcdir)/'`goom_tools.c
 
 libgstgoom_la-config_param.lo: config_param.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-config_param.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-config_param.Tpo -c -o libgstgoom_la-config_param.lo `test -f 'config_param.c' || echo '$(srcdir)/'`config_param.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-config_param.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-config_param.Tpo -c -o libgstgoom_la-config_param.lo `test -f 'config_param.c' || echo '$(srcdir)/'`config_param.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-config_param.Tpo $(DEPDIR)/libgstgoom_la-config_param.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='config_param.c' object='libgstgoom_la-config_param.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-config_param.lo `test -f 'config_param.c' || echo '$(srcdir)/'`config_param.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-config_param.lo `test -f 'config_param.c' || echo '$(srcdir)/'`config_param.c
 
 libgstgoom_la-filters.lo: filters.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-filters.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-filters.Tpo -c -o libgstgoom_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-filters.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-filters.Tpo -c -o libgstgoom_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-filters.Tpo $(DEPDIR)/libgstgoom_la-filters.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='filters.c' object='libgstgoom_la-filters.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c
 
 libgstgoom_la-goom_core.lo: goom_core.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-goom_core.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-goom_core.Tpo -c -o libgstgoom_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-goom_core.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-goom_core.Tpo -c -o libgstgoom_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-goom_core.Tpo $(DEPDIR)/libgstgoom_la-goom_core.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='goom_core.c' object='libgstgoom_la-goom_core.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c
 
 libgstgoom_la-graphic.lo: graphic.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-graphic.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-graphic.Tpo -c -o libgstgoom_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-graphic.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-graphic.Tpo -c -o libgstgoom_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-graphic.Tpo $(DEPDIR)/libgstgoom_la-graphic.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='graphic.c' object='libgstgoom_la-graphic.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c
 
 libgstgoom_la-mmx.lo: mmx.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-mmx.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-mmx.Tpo -c -o libgstgoom_la-mmx.lo `test -f 'mmx.c' || echo '$(srcdir)/'`mmx.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-mmx.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-mmx.Tpo -c -o libgstgoom_la-mmx.lo `test -f 'mmx.c' || echo '$(srcdir)/'`mmx.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-mmx.Tpo $(DEPDIR)/libgstgoom_la-mmx.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mmx.c' object='libgstgoom_la-mmx.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-mmx.lo `test -f 'mmx.c' || echo '$(srcdir)/'`mmx.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-mmx.lo `test -f 'mmx.c' || echo '$(srcdir)/'`mmx.c
 
 libgstgoom_la-xmmx.lo: xmmx.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-xmmx.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-xmmx.Tpo -c -o libgstgoom_la-xmmx.lo `test -f 'xmmx.c' || echo '$(srcdir)/'`xmmx.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-xmmx.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-xmmx.Tpo -c -o libgstgoom_la-xmmx.lo `test -f 'xmmx.c' || echo '$(srcdir)/'`xmmx.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-xmmx.Tpo $(DEPDIR)/libgstgoom_la-xmmx.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='xmmx.c' object='libgstgoom_la-xmmx.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 $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-xmmx.lo `test -f 'xmmx.c' || echo '$(srcdir)/'`xmmx.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-xmmx.lo `test -f 'xmmx.c' || echo '$(srcdir)/'`xmmx.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/goom2k1/Makefile.am b/gst/goom2k1/Makefile.am
index f6eab4af9..e75bb71db 100644
--- a/gst/goom2k1/Makefile.am
+++ b/gst/goom2k1/Makefile.am
@@ -25,6 +25,5 @@ libgstgoom2k1_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CF
 
 libgstgoom2k1_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstpbutils-$(GST_API_VERSION) $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 libgstgoom2k1_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstgoom2k1_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 EXTRA_DIST = filters.c
diff --git a/gst/goom2k1/Makefile.in b/gst/goom2k1/Makefile.in
index ad9fcf6e7..8d9b66404 100644
--- a/gst/goom2k1/Makefile.in
+++ b/gst/goom2k1/Makefile.in
@@ -176,8 +176,8 @@ 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) \
+	$(AM_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@)
@@ -295,6 +295,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -318,6 +319,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -333,6 +336,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -355,10 +360,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -373,6 +385,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -390,6 +403,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -402,6 +417,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -420,6 +437,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -463,9 +483,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -479,11 +510,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -598,7 +634,6 @@ libgstgoom2k1_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CF
 
 libgstgoom2k1_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstpbutils-$(GST_API_VERSION) $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 libgstgoom2k1_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstgoom2k1_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 EXTRA_DIST = filters.c
 all: all-am
 
@@ -709,39 +744,39 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstgoom2k1_la-gstgoom.lo: gstgoom.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-gstgoom.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-gstgoom.Tpo -c -o libgstgoom2k1_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-gstgoom.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-gstgoom.Tpo -c -o libgstgoom2k1_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom2k1_la-gstgoom.Tpo $(DEPDIR)/libgstgoom2k1_la-gstgoom.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgoom.c' object='libgstgoom2k1_la-gstgoom.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 $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c
 
 libgstgoom2k1_la-goom_core.lo: goom_core.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-goom_core.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-goom_core.Tpo -c -o libgstgoom2k1_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-goom_core.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-goom_core.Tpo -c -o libgstgoom2k1_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom2k1_la-goom_core.Tpo $(DEPDIR)/libgstgoom2k1_la-goom_core.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='goom_core.c' object='libgstgoom2k1_la-goom_core.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 $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c
 
 libgstgoom2k1_la-filters.lo: filters.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-filters.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-filters.Tpo -c -o libgstgoom2k1_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-filters.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-filters.Tpo -c -o libgstgoom2k1_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom2k1_la-filters.Tpo $(DEPDIR)/libgstgoom2k1_la-filters.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='filters.c' object='libgstgoom2k1_la-filters.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 $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c
 
 libgstgoom2k1_la-graphic.lo: graphic.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-graphic.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-graphic.Tpo -c -o libgstgoom2k1_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-graphic.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-graphic.Tpo -c -o libgstgoom2k1_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom2k1_la-graphic.Tpo $(DEPDIR)/libgstgoom2k1_la-graphic.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='graphic.c' object='libgstgoom2k1_la-graphic.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 $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c
 
 libgstgoom2k1_la-lines.lo: lines.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-lines.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-lines.Tpo -c -o libgstgoom2k1_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-lines.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-lines.Tpo -c -o libgstgoom2k1_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom2k1_la-lines.Tpo $(DEPDIR)/libgstgoom2k1_la-lines.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='lines.c' object='libgstgoom2k1_la-lines.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 $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/icydemux/Makefile.am b/gst/icydemux/Makefile.am
index c2ed649c3..59c021e9b 100644
--- a/gst/icydemux/Makefile.am
+++ b/gst/icydemux/Makefile.am
@@ -4,6 +4,5 @@ libgsticydemux_la_SOURCES = gsticydemux.c
 libgsticydemux_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgsticydemux_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ $(GST_BASE_LIBS) $(GST_LIBS)
 libgsticydemux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgsticydemux_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gsticydemux.h
diff --git a/gst/icydemux/Makefile.in b/gst/icydemux/Makefile.in
index fcb57a280..6d1793251 100644
--- a/gst/icydemux/Makefile.in
+++ b/gst/icydemux/Makefile.in
@@ -172,8 +172,8 @@ 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) \
+	$(AM_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@)
@@ -291,6 +291,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -314,6 +315,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -329,6 +332,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -351,10 +356,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -369,6 +381,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -386,6 +399,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -398,6 +413,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -416,6 +433,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -459,9 +479,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -475,11 +506,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -575,7 +611,6 @@ libgsticydemux_la_SOURCES = gsticydemux.c
 libgsticydemux_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgsticydemux_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ $(GST_BASE_LIBS) $(GST_LIBS)
 libgsticydemux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgsticydemux_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gsticydemux.h
 all: all-am
 
@@ -682,11 +717,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgsticydemux_la-gsticydemux.lo: gsticydemux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsticydemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsticydemux_la_CFLAGS) $(CFLAGS) -MT libgsticydemux_la-gsticydemux.lo -MD -MP -MF $(DEPDIR)/libgsticydemux_la-gsticydemux.Tpo -c -o libgsticydemux_la-gsticydemux.lo `test -f 'gsticydemux.c' || echo '$(srcdir)/'`gsticydemux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsticydemux_la_CFLAGS) $(CFLAGS) -MT libgsticydemux_la-gsticydemux.lo -MD -MP -MF $(DEPDIR)/libgsticydemux_la-gsticydemux.Tpo -c -o libgsticydemux_la-gsticydemux.lo `test -f 'gsticydemux.c' || echo '$(srcdir)/'`gsticydemux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsticydemux_la-gsticydemux.Tpo $(DEPDIR)/libgsticydemux_la-gsticydemux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsticydemux.c' object='libgsticydemux_la-gsticydemux.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 $(libgsticydemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsticydemux_la_CFLAGS) $(CFLAGS) -c -o libgsticydemux_la-gsticydemux.lo `test -f 'gsticydemux.c' || echo '$(srcdir)/'`gsticydemux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsticydemux_la_CFLAGS) $(CFLAGS) -c -o libgsticydemux_la-gsticydemux.lo `test -f 'gsticydemux.c' || echo '$(srcdir)/'`gsticydemux.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/id3demux/Makefile.am b/gst/id3demux/Makefile.am
index e4794e5dc..a24a1ac82 100644
--- a/gst/id3demux/Makefile.am
+++ b/gst/id3demux/Makefile.am
@@ -5,6 +5,5 @@ libgstid3demux_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_C
 libgstid3demux_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ \
 	-lgstpbutils-@GST_API_VERSION@ $(GST_BASE_LIBS)
 libgstid3demux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstid3demux_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstid3demux.h
diff --git a/gst/id3demux/Makefile.in b/gst/id3demux/Makefile.in
index e526d77c3..443c2171d 100644
--- a/gst/id3demux/Makefile.in
+++ b/gst/id3demux/Makefile.in
@@ -172,8 +172,8 @@ 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) \
+	$(AM_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@)
@@ -291,6 +291,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -314,6 +315,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -329,6 +332,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -351,10 +356,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -369,6 +381,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -386,6 +399,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -398,6 +413,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -416,6 +433,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -459,9 +479,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -475,11 +506,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -577,7 +613,6 @@ libgstid3demux_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ \
 	-lgstpbutils-@GST_API_VERSION@ $(GST_BASE_LIBS)
 
 libgstid3demux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstid3demux_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstid3demux.h
 all: all-am
 
@@ -684,11 +719,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstid3demux_la-gstid3demux.lo: gstid3demux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3demux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3demux_la_CFLAGS) $(CFLAGS) -MT libgstid3demux_la-gstid3demux.lo -MD -MP -MF $(DEPDIR)/libgstid3demux_la-gstid3demux.Tpo -c -o libgstid3demux_la-gstid3demux.lo `test -f 'gstid3demux.c' || echo '$(srcdir)/'`gstid3demux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3demux_la_CFLAGS) $(CFLAGS) -MT libgstid3demux_la-gstid3demux.lo -MD -MP -MF $(DEPDIR)/libgstid3demux_la-gstid3demux.Tpo -c -o libgstid3demux_la-gstid3demux.lo `test -f 'gstid3demux.c' || echo '$(srcdir)/'`gstid3demux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstid3demux_la-gstid3demux.Tpo $(DEPDIR)/libgstid3demux_la-gstid3demux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstid3demux.c' object='libgstid3demux_la-gstid3demux.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 $(libgstid3demux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3demux_la_CFLAGS) $(CFLAGS) -c -o libgstid3demux_la-gstid3demux.lo `test -f 'gstid3demux.c' || echo '$(srcdir)/'`gstid3demux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3demux_la_CFLAGS) $(CFLAGS) -c -o libgstid3demux_la-gstid3demux.lo `test -f 'gstid3demux.c' || echo '$(srcdir)/'`gstid3demux.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/imagefreeze/Makefile.am b/gst/imagefreeze/Makefile.am
index 72615a599..056d0342d 100644
--- a/gst/imagefreeze/Makefile.am
+++ b/gst/imagefreeze/Makefile.am
@@ -5,6 +5,5 @@ libgstimagefreeze_la_SOURCES = gstimagefreeze.c
 libgstimagefreeze_la_CFLAGS = $(GST_CFLAGS)
 libgstimagefreeze_la_LIBADD = $(GST_LIBS)
 libgstimagefreeze_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstimagefreeze_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstimagefreeze.h
diff --git a/gst/imagefreeze/Makefile.in b/gst/imagefreeze/Makefile.in
index 149d334d4..abdb4e575 100644
--- a/gst/imagefreeze/Makefile.in
+++ b/gst/imagefreeze/Makefile.in
@@ -172,8 +172,8 @@ 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) \
+	$(AM_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@)
@@ -291,6 +291,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -314,6 +315,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -329,6 +332,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -351,10 +356,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -369,6 +381,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -386,6 +399,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -398,6 +413,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -416,6 +433,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -459,9 +479,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -475,11 +506,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -575,7 +611,6 @@ libgstimagefreeze_la_SOURCES = gstimagefreeze.c
 libgstimagefreeze_la_CFLAGS = $(GST_CFLAGS)
 libgstimagefreeze_la_LIBADD = $(GST_LIBS)
 libgstimagefreeze_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstimagefreeze_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstimagefreeze.h
 all: all-am
 
@@ -682,11 +717,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstimagefreeze_la-gstimagefreeze.lo: gstimagefreeze.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstimagefreeze_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstimagefreeze_la_CFLAGS) $(CFLAGS) -MT libgstimagefreeze_la-gstimagefreeze.lo -MD -MP -MF $(DEPDIR)/libgstimagefreeze_la-gstimagefreeze.Tpo -c -o libgstimagefreeze_la-gstimagefreeze.lo `test -f 'gstimagefreeze.c' || echo '$(srcdir)/'`gstimagefreeze.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstimagefreeze_la_CFLAGS) $(CFLAGS) -MT libgstimagefreeze_la-gstimagefreeze.lo -MD -MP -MF $(DEPDIR)/libgstimagefreeze_la-gstimagefreeze.Tpo -c -o libgstimagefreeze_la-gstimagefreeze.lo `test -f 'gstimagefreeze.c' || echo '$(srcdir)/'`gstimagefreeze.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstimagefreeze_la-gstimagefreeze.Tpo $(DEPDIR)/libgstimagefreeze_la-gstimagefreeze.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstimagefreeze.c' object='libgstimagefreeze_la-gstimagefreeze.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 $(libgstimagefreeze_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstimagefreeze_la_CFLAGS) $(CFLAGS) -c -o libgstimagefreeze_la-gstimagefreeze.lo `test -f 'gstimagefreeze.c' || echo '$(srcdir)/'`gstimagefreeze.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstimagefreeze_la_CFLAGS) $(CFLAGS) -c -o libgstimagefreeze_la-gstimagefreeze.lo `test -f 'gstimagefreeze.c' || echo '$(srcdir)/'`gstimagefreeze.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/interleave/Makefile.am b/gst/interleave/Makefile.am
index dddaefa9b..2128d3efe 100644
--- a/gst/interleave/Makefile.am
+++ b/gst/interleave/Makefile.am
@@ -5,6 +5,5 @@ libgstinterleave_la_SOURCES = plugin.c interleave.c deinterleave.c
 libgstinterleave_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstinterleave_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(GST_BASE_LIBS) $(GST_LIBS)
 libgstinterleave_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstinterleave_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = plugin.h interleave.h deinterleave.h
diff --git a/gst/interleave/Makefile.in b/gst/interleave/Makefile.in
index 066d7eee9..4d3409e02 100644
--- a/gst/interleave/Makefile.in
+++ b/gst/interleave/Makefile.in
@@ -174,8 +174,8 @@ 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) \
+	$(AM_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@)
@@ -293,6 +293,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -316,6 +317,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -331,6 +334,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -353,10 +358,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -371,6 +383,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -388,6 +401,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -400,6 +415,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -418,6 +435,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -461,9 +481,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -477,11 +508,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -577,7 +613,6 @@ libgstinterleave_la_SOURCES = plugin.c interleave.c deinterleave.c
 libgstinterleave_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstinterleave_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(GST_BASE_LIBS) $(GST_LIBS)
 libgstinterleave_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstinterleave_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = plugin.h interleave.h deinterleave.h
 all: all-am
 
@@ -686,25 +721,25 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstinterleave_la-plugin.lo: plugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -MT libgstinterleave_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstinterleave_la-plugin.Tpo -c -o libgstinterleave_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -MT libgstinterleave_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstinterleave_la-plugin.Tpo -c -o libgstinterleave_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterleave_la-plugin.Tpo $(DEPDIR)/libgstinterleave_la-plugin.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='plugin.c' object='libgstinterleave_la-plugin.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 $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -c -o libgstinterleave_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -c -o libgstinterleave_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 
 libgstinterleave_la-interleave.lo: interleave.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -MT libgstinterleave_la-interleave.lo -MD -MP -MF $(DEPDIR)/libgstinterleave_la-interleave.Tpo -c -o libgstinterleave_la-interleave.lo `test -f 'interleave.c' || echo '$(srcdir)/'`interleave.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -MT libgstinterleave_la-interleave.lo -MD -MP -MF $(DEPDIR)/libgstinterleave_la-interleave.Tpo -c -o libgstinterleave_la-interleave.lo `test -f 'interleave.c' || echo '$(srcdir)/'`interleave.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterleave_la-interleave.Tpo $(DEPDIR)/libgstinterleave_la-interleave.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='interleave.c' object='libgstinterleave_la-interleave.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 $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -c -o libgstinterleave_la-interleave.lo `test -f 'interleave.c' || echo '$(srcdir)/'`interleave.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -c -o libgstinterleave_la-interleave.lo `test -f 'interleave.c' || echo '$(srcdir)/'`interleave.c
 
 libgstinterleave_la-deinterleave.lo: deinterleave.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -MT libgstinterleave_la-deinterleave.lo -MD -MP -MF $(DEPDIR)/libgstinterleave_la-deinterleave.Tpo -c -o libgstinterleave_la-deinterleave.lo `test -f 'deinterleave.c' || echo '$(srcdir)/'`deinterleave.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -MT libgstinterleave_la-deinterleave.lo -MD -MP -MF $(DEPDIR)/libgstinterleave_la-deinterleave.Tpo -c -o libgstinterleave_la-deinterleave.lo `test -f 'deinterleave.c' || echo '$(srcdir)/'`deinterleave.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterleave_la-deinterleave.Tpo $(DEPDIR)/libgstinterleave_la-deinterleave.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='deinterleave.c' object='libgstinterleave_la-deinterleave.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 $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -c -o libgstinterleave_la-deinterleave.lo `test -f 'deinterleave.c' || echo '$(srcdir)/'`deinterleave.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -c -o libgstinterleave_la-deinterleave.lo `test -f 'deinterleave.c' || echo '$(srcdir)/'`deinterleave.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/interleave/interleave.c b/gst/interleave/interleave.c
index 76b7945bd..808d0ff31 100644
--- a/gst/interleave/interleave.c
+++ b/gst/interleave/interleave.c
@@ -1221,7 +1221,6 @@ gst_interleave_collected (GstCollectPads * pads, GstInterleave * self)
       goto next;
     }
     ncollected++;
-    gst_buffer_map (inbuf, &input_info, GST_MAP_READ);
 
     if (timestamp == -1)
       timestamp = GST_BUFFER_TIMESTAMP (inbuf);
@@ -1236,6 +1235,7 @@ gst_interleave_collected (GstCollectPads * pads, GstInterleave * self)
     }
     outdata = write_info.data + width * channel;
 
+    gst_buffer_map (inbuf, &input_info, GST_MAP_READ);
     self->func (outdata, input_info.data, self->channels, nsamples);
     gst_buffer_unmap (inbuf, &input_info);
 
diff --git a/gst/isomp4/Makefile.am b/gst/isomp4/Makefile.am
index 2e560a2d5..d76cb421c 100644
--- a/gst/isomp4/Makefile.am
+++ b/gst/isomp4/Makefile.am
@@ -16,7 +16,6 @@ libgstisomp4_la_SOURCES = isomp4-plugin.c gstrtpxqtdepay.c \
 	qtdemux.c qtdemux_types.c qtdemux_dump.c qtdemux_lang.c \
 	gstqtmux.c gstqtmoovrecover.c atoms.c atomsrecovery.c descriptors.c \
 	properties.c gstqtmuxmap.c gstisoff.c
-libgstisomp4_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 presetdir = $(datadir)/gstreamer-$(GST_API_VERSION)/presets
 preset_DATA = GstQTMux.prs
@@ -25,6 +24,7 @@ noinst_HEADERS = \
 	qtatomparser.h   \
 	qtdemux.h        \
 	qtdemux_types.h  \
+	qtdemux_debug.h  \
 	qtdemux_dump.h   \
 	qtdemux_lang.h   \
 	qtpalette.h      \
diff --git a/gst/isomp4/Makefile.in b/gst/isomp4/Makefile.in
index 85ef7a0ef..3d6f942fc 100644
--- a/gst/isomp4/Makefile.in
+++ b/gst/isomp4/Makefile.in
@@ -182,9 +182,9 @@ 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_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
@@ -302,6 +302,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -325,6 +326,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -340,6 +343,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -362,10 +367,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -380,6 +392,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -397,6 +410,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -409,6 +424,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -427,6 +444,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -470,9 +490,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -486,11 +517,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -599,13 +635,13 @@ libgstisomp4_la_SOURCES = isomp4-plugin.c gstrtpxqtdepay.c \
 	gstqtmux.c gstqtmoovrecover.c atoms.c atomsrecovery.c descriptors.c \
 	properties.c gstqtmuxmap.c gstisoff.c
 
-libgstisomp4_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 presetdir = $(datadir)/gstreamer-$(GST_API_VERSION)/presets
 preset_DATA = GstQTMux.prs
 noinst_HEADERS = \
 	qtatomparser.h   \
 	qtdemux.h        \
 	qtdemux_types.h  \
+	qtdemux_debug.h  \
 	qtdemux_dump.h   \
 	qtdemux_lang.h   \
 	qtpalette.h      \
@@ -743,102 +779,102 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstisomp4_la-isomp4-plugin.lo: isomp4-plugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-isomp4-plugin.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-isomp4-plugin.Tpo -c -o libgstisomp4_la-isomp4-plugin.lo `test -f 'isomp4-plugin.c' || echo '$(srcdir)/'`isomp4-plugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-isomp4-plugin.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-isomp4-plugin.Tpo -c -o libgstisomp4_la-isomp4-plugin.lo `test -f 'isomp4-plugin.c' || echo '$(srcdir)/'`isomp4-plugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-isomp4-plugin.Tpo $(DEPDIR)/libgstisomp4_la-isomp4-plugin.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='isomp4-plugin.c' object='libgstisomp4_la-isomp4-plugin.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-isomp4-plugin.lo `test -f 'isomp4-plugin.c' || echo '$(srcdir)/'`isomp4-plugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-isomp4-plugin.lo `test -f 'isomp4-plugin.c' || echo '$(srcdir)/'`isomp4-plugin.c
 
 libgstisomp4_la-gstrtpxqtdepay.lo: gstrtpxqtdepay.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstrtpxqtdepay.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstrtpxqtdepay.Tpo -c -o libgstisomp4_la-gstrtpxqtdepay.lo `test -f 'gstrtpxqtdepay.c' || echo '$(srcdir)/'`gstrtpxqtdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstrtpxqtdepay.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstrtpxqtdepay.Tpo -c -o libgstisomp4_la-gstrtpxqtdepay.lo `test -f 'gstrtpxqtdepay.c' || echo '$(srcdir)/'`gstrtpxqtdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-gstrtpxqtdepay.Tpo $(DEPDIR)/libgstisomp4_la-gstrtpxqtdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpxqtdepay.c' object='libgstisomp4_la-gstrtpxqtdepay.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstrtpxqtdepay.lo `test -f 'gstrtpxqtdepay.c' || echo '$(srcdir)/'`gstrtpxqtdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstrtpxqtdepay.lo `test -f 'gstrtpxqtdepay.c' || echo '$(srcdir)/'`gstrtpxqtdepay.c
 
 libgstisomp4_la-qtdemux.lo: qtdemux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-qtdemux.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-qtdemux.Tpo -c -o libgstisomp4_la-qtdemux.lo `test -f 'qtdemux.c' || echo '$(srcdir)/'`qtdemux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-qtdemux.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-qtdemux.Tpo -c -o libgstisomp4_la-qtdemux.lo `test -f 'qtdemux.c' || echo '$(srcdir)/'`qtdemux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-qtdemux.Tpo $(DEPDIR)/libgstisomp4_la-qtdemux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='qtdemux.c' object='libgstisomp4_la-qtdemux.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux.lo `test -f 'qtdemux.c' || echo '$(srcdir)/'`qtdemux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux.lo `test -f 'qtdemux.c' || echo '$(srcdir)/'`qtdemux.c
 
 libgstisomp4_la-qtdemux_types.lo: qtdemux_types.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-qtdemux_types.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-qtdemux_types.Tpo -c -o libgstisomp4_la-qtdemux_types.lo `test -f 'qtdemux_types.c' || echo '$(srcdir)/'`qtdemux_types.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-qtdemux_types.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-qtdemux_types.Tpo -c -o libgstisomp4_la-qtdemux_types.lo `test -f 'qtdemux_types.c' || echo '$(srcdir)/'`qtdemux_types.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-qtdemux_types.Tpo $(DEPDIR)/libgstisomp4_la-qtdemux_types.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='qtdemux_types.c' object='libgstisomp4_la-qtdemux_types.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux_types.lo `test -f 'qtdemux_types.c' || echo '$(srcdir)/'`qtdemux_types.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux_types.lo `test -f 'qtdemux_types.c' || echo '$(srcdir)/'`qtdemux_types.c
 
 libgstisomp4_la-qtdemux_dump.lo: qtdemux_dump.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-qtdemux_dump.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-qtdemux_dump.Tpo -c -o libgstisomp4_la-qtdemux_dump.lo `test -f 'qtdemux_dump.c' || echo '$(srcdir)/'`qtdemux_dump.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-qtdemux_dump.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-qtdemux_dump.Tpo -c -o libgstisomp4_la-qtdemux_dump.lo `test -f 'qtdemux_dump.c' || echo '$(srcdir)/'`qtdemux_dump.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-qtdemux_dump.Tpo $(DEPDIR)/libgstisomp4_la-qtdemux_dump.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='qtdemux_dump.c' object='libgstisomp4_la-qtdemux_dump.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux_dump.lo `test -f 'qtdemux_dump.c' || echo '$(srcdir)/'`qtdemux_dump.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux_dump.lo `test -f 'qtdemux_dump.c' || echo '$(srcdir)/'`qtdemux_dump.c
 
 libgstisomp4_la-qtdemux_lang.lo: qtdemux_lang.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-qtdemux_lang.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-qtdemux_lang.Tpo -c -o libgstisomp4_la-qtdemux_lang.lo `test -f 'qtdemux_lang.c' || echo '$(srcdir)/'`qtdemux_lang.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-qtdemux_lang.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-qtdemux_lang.Tpo -c -o libgstisomp4_la-qtdemux_lang.lo `test -f 'qtdemux_lang.c' || echo '$(srcdir)/'`qtdemux_lang.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-qtdemux_lang.Tpo $(DEPDIR)/libgstisomp4_la-qtdemux_lang.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='qtdemux_lang.c' object='libgstisomp4_la-qtdemux_lang.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux_lang.lo `test -f 'qtdemux_lang.c' || echo '$(srcdir)/'`qtdemux_lang.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux_lang.lo `test -f 'qtdemux_lang.c' || echo '$(srcdir)/'`qtdemux_lang.c
 
 libgstisomp4_la-gstqtmux.lo: gstqtmux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstqtmux.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstqtmux.Tpo -c -o libgstisomp4_la-gstqtmux.lo `test -f 'gstqtmux.c' || echo '$(srcdir)/'`gstqtmux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstqtmux.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstqtmux.Tpo -c -o libgstisomp4_la-gstqtmux.lo `test -f 'gstqtmux.c' || echo '$(srcdir)/'`gstqtmux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-gstqtmux.Tpo $(DEPDIR)/libgstisomp4_la-gstqtmux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstqtmux.c' object='libgstisomp4_la-gstqtmux.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstqtmux.lo `test -f 'gstqtmux.c' || echo '$(srcdir)/'`gstqtmux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstqtmux.lo `test -f 'gstqtmux.c' || echo '$(srcdir)/'`gstqtmux.c
 
 libgstisomp4_la-gstqtmoovrecover.lo: gstqtmoovrecover.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstqtmoovrecover.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstqtmoovrecover.Tpo -c -o libgstisomp4_la-gstqtmoovrecover.lo `test -f 'gstqtmoovrecover.c' || echo '$(srcdir)/'`gstqtmoovrecover.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstqtmoovrecover.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstqtmoovrecover.Tpo -c -o libgstisomp4_la-gstqtmoovrecover.lo `test -f 'gstqtmoovrecover.c' || echo '$(srcdir)/'`gstqtmoovrecover.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-gstqtmoovrecover.Tpo $(DEPDIR)/libgstisomp4_la-gstqtmoovrecover.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstqtmoovrecover.c' object='libgstisomp4_la-gstqtmoovrecover.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstqtmoovrecover.lo `test -f 'gstqtmoovrecover.c' || echo '$(srcdir)/'`gstqtmoovrecover.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstqtmoovrecover.lo `test -f 'gstqtmoovrecover.c' || echo '$(srcdir)/'`gstqtmoovrecover.c
 
 libgstisomp4_la-atoms.lo: atoms.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-atoms.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-atoms.Tpo -c -o libgstisomp4_la-atoms.lo `test -f 'atoms.c' || echo '$(srcdir)/'`atoms.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-atoms.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-atoms.Tpo -c -o libgstisomp4_la-atoms.lo `test -f 'atoms.c' || echo '$(srcdir)/'`atoms.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-atoms.Tpo $(DEPDIR)/libgstisomp4_la-atoms.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='atoms.c' object='libgstisomp4_la-atoms.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-atoms.lo `test -f 'atoms.c' || echo '$(srcdir)/'`atoms.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-atoms.lo `test -f 'atoms.c' || echo '$(srcdir)/'`atoms.c
 
 libgstisomp4_la-atomsrecovery.lo: atomsrecovery.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-atomsrecovery.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-atomsrecovery.Tpo -c -o libgstisomp4_la-atomsrecovery.lo `test -f 'atomsrecovery.c' || echo '$(srcdir)/'`atomsrecovery.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-atomsrecovery.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-atomsrecovery.Tpo -c -o libgstisomp4_la-atomsrecovery.lo `test -f 'atomsrecovery.c' || echo '$(srcdir)/'`atomsrecovery.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-atomsrecovery.Tpo $(DEPDIR)/libgstisomp4_la-atomsrecovery.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='atomsrecovery.c' object='libgstisomp4_la-atomsrecovery.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-atomsrecovery.lo `test -f 'atomsrecovery.c' || echo '$(srcdir)/'`atomsrecovery.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-atomsrecovery.lo `test -f 'atomsrecovery.c' || echo '$(srcdir)/'`atomsrecovery.c
 
 libgstisomp4_la-descriptors.lo: descriptors.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-descriptors.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-descriptors.Tpo -c -o libgstisomp4_la-descriptors.lo `test -f 'descriptors.c' || echo '$(srcdir)/'`descriptors.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-descriptors.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-descriptors.Tpo -c -o libgstisomp4_la-descriptors.lo `test -f 'descriptors.c' || echo '$(srcdir)/'`descriptors.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-descriptors.Tpo $(DEPDIR)/libgstisomp4_la-descriptors.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='descriptors.c' object='libgstisomp4_la-descriptors.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-descriptors.lo `test -f 'descriptors.c' || echo '$(srcdir)/'`descriptors.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-descriptors.lo `test -f 'descriptors.c' || echo '$(srcdir)/'`descriptors.c
 
 libgstisomp4_la-properties.lo: properties.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-properties.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-properties.Tpo -c -o libgstisomp4_la-properties.lo `test -f 'properties.c' || echo '$(srcdir)/'`properties.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-properties.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-properties.Tpo -c -o libgstisomp4_la-properties.lo `test -f 'properties.c' || echo '$(srcdir)/'`properties.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-properties.Tpo $(DEPDIR)/libgstisomp4_la-properties.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='properties.c' object='libgstisomp4_la-properties.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-properties.lo `test -f 'properties.c' || echo '$(srcdir)/'`properties.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-properties.lo `test -f 'properties.c' || echo '$(srcdir)/'`properties.c
 
 libgstisomp4_la-gstqtmuxmap.lo: gstqtmuxmap.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstqtmuxmap.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstqtmuxmap.Tpo -c -o libgstisomp4_la-gstqtmuxmap.lo `test -f 'gstqtmuxmap.c' || echo '$(srcdir)/'`gstqtmuxmap.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstqtmuxmap.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstqtmuxmap.Tpo -c -o libgstisomp4_la-gstqtmuxmap.lo `test -f 'gstqtmuxmap.c' || echo '$(srcdir)/'`gstqtmuxmap.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-gstqtmuxmap.Tpo $(DEPDIR)/libgstisomp4_la-gstqtmuxmap.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstqtmuxmap.c' object='libgstisomp4_la-gstqtmuxmap.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstqtmuxmap.lo `test -f 'gstqtmuxmap.c' || echo '$(srcdir)/'`gstqtmuxmap.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstqtmuxmap.lo `test -f 'gstqtmuxmap.c' || echo '$(srcdir)/'`gstqtmuxmap.c
 
 libgstisomp4_la-gstisoff.lo: gstisoff.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstisoff.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstisoff.Tpo -c -o libgstisomp4_la-gstisoff.lo `test -f 'gstisoff.c' || echo '$(srcdir)/'`gstisoff.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstisoff.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstisoff.Tpo -c -o libgstisomp4_la-gstisoff.lo `test -f 'gstisoff.c' || echo '$(srcdir)/'`gstisoff.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-gstisoff.Tpo $(DEPDIR)/libgstisomp4_la-gstisoff.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstisoff.c' object='libgstisomp4_la-gstisoff.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 $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstisoff.lo `test -f 'gstisoff.c' || echo '$(srcdir)/'`gstisoff.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstisoff.lo `test -f 'gstisoff.c' || echo '$(srcdir)/'`gstisoff.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/isomp4/atoms.c b/gst/isomp4/atoms.c
index 8c8b7cb8c..4ca69274b 100644
--- a/gst/isomp4/atoms.c
+++ b/gst/isomp4/atoms.c
@@ -728,6 +728,33 @@ atom_ctts_free (AtomCTTS * ctts)
   g_free (ctts);
 }
 
+static void
+atom_svmi_init (AtomSVMI * svmi)
+{
+  guint8 flags[3] = { 0, 0, 0 };
+
+  atom_full_init (&svmi->header, FOURCC_svmi, 0, 0, 0, flags);
+  svmi->stereoscopic_composition_type = 0x00;
+  svmi->is_left_first = FALSE;
+}
+
+AtomSVMI *
+atom_svmi_new (guint8 stereoscopic_composition_type, gboolean is_left_first)
+{
+  AtomSVMI *svmi = g_new0 (AtomSVMI, 1);
+
+  atom_svmi_init (svmi);
+  svmi->stereoscopic_composition_type = stereoscopic_composition_type;
+  svmi->is_left_first = is_left_first;
+  return svmi;
+}
+
+static void
+atom_svmi_free (AtomSVMI * svmi)
+{
+  g_free (svmi);
+}
+
 static void
 atom_stts_init (AtomSTTS * stts)
 {
@@ -822,6 +849,7 @@ atom_stbl_init (AtomSTBL * stbl)
   atom_stsz_init (&stbl->stsz);
   atom_stsc_init (&stbl->stsc);
   stbl->ctts = NULL;
+  stbl->svmi = NULL;
 
   atom_co64_init (&stbl->stco64);
 }
@@ -838,6 +866,9 @@ atom_stbl_clear (AtomSTBL * stbl)
   if (stbl->ctts) {
     atom_ctts_free (stbl->ctts);
   }
+  if (stbl->svmi) {
+    atom_svmi_free (stbl->svmi);
+  }
   atom_stco64_clear (&stbl->stco64);
 }
 
@@ -1112,7 +1143,11 @@ atom_mdhd_init (AtomMDHD * mdhd)
 
   atom_full_init (&mdhd->header, FOURCC_mdhd, 0, 0, 0, flags);
   common_time_info_init (&mdhd->time_info);
-  mdhd->language_code = 0;
+  /* tempting as it may be to simply 0-initialize,
+   * that will have the demuxer (correctly) come up with 'eng' as language
+   * so explicitly specify undefined instead */
+  mdhd->language_code =
+      ('u' - 0x60) * 0x400 + ('n' - 0x60) * 0x20 + ('d' - 0x60);
   mdhd->quality = 0;
 }
 
@@ -2288,6 +2323,25 @@ atom_ctts_copy_data (AtomCTTS * ctts, guint8 ** buffer, guint64 * size,
   return *offset - original_offset;
 }
 
+guint64
+atom_svmi_copy_data (AtomSVMI * svmi, guint8 ** buffer, guint64 * size,
+    guint64 * offset)
+{
+  guint64 original_offset = *offset;
+
+  if (!atom_full_copy_data (&svmi->header, buffer, size, offset)) {
+    return 0;
+  }
+
+  prop_copy_uint8 (svmi->stereoscopic_composition_type, buffer, size, offset);
+  prop_copy_uint8 (svmi->is_left_first ? 1 : 0, buffer, size, offset);
+  /* stereo-mono change count */
+  prop_copy_uint32 (0, buffer, size, offset);
+
+  atom_write_size (buffer, size, offset, original_offset);
+  return *offset - original_offset;
+}
+
 guint64
 atom_stco64_copy_data (AtomSTCO64 * stco64, guint8 ** buffer, guint64 * size,
     guint64 * offset)
@@ -2450,6 +2504,11 @@ atom_stbl_copy_data (AtomSTBL * stbl, guint8 ** buffer, guint64 * size,
       return 0;
     }
   }
+  if (stbl->svmi) {
+    if (!atom_svmi_copy_data (stbl->svmi, buffer, size, offset)) {
+      return 0;
+    }
+  }
   if (!atom_stco64_copy_data (&stbl->stco64, buffer, size, offset)) {
     return 0;
   }
@@ -2934,7 +2993,7 @@ atom_wave_copy_data (AtomWAVE * wave, guint8 ** buffer,
 
 /* add samples to tables */
 
-static void
+void
 atom_stsc_add_new_entry (AtomSTSC * stsc, guint32 first_chunk, guint32 nsamples)
 {
   gint len;
@@ -3809,17 +3868,18 @@ atom_framerate_to_timescale (gint n, gint d)
 
 static SampleTableEntryTMCD *
 atom_trak_add_timecode_entry (AtomTRAK * trak, AtomsContext * context,
-    GstVideoTimeCode * tc)
+    guint32 trak_timescale, GstVideoTimeCode * tc)
 {
   AtomSTSD *stsd = &trak->mdia.minf.stbl.stsd;
   SampleTableEntryTMCD *tmcd = sample_entry_tmcd_new ();
 
+  g_assert (trak_timescale != 0);
+
   trak->mdia.hdlr.component_type = FOURCC_mhlr;
   trak->mdia.hdlr.handler_type = FOURCC_tmcd;
   g_free (trak->mdia.hdlr.name);
   trak->mdia.hdlr.name = g_strdup ("Time Code Media Handler");
-  trak->mdia.mdhd.time_info.timescale =
-      atom_framerate_to_timescale (tc->config.fps_n, tc->config.fps_d);
+  trak->mdia.mdhd.time_info.timescale = trak_timescale;
 
   tmcd->se.kind = TIMECODE;
   tmcd->se.data_reference_index = 1;
@@ -3828,9 +3888,10 @@ atom_trak_add_timecode_entry (AtomTRAK * trak, AtomsContext * context,
     tmcd->tc_flags |= TC_DROP_FRAME;
   tmcd->name.language_code = 0;
   tmcd->name.name = g_strdup ("Tape");
-  tmcd->timescale =
-      atom_framerate_to_timescale (tc->config.fps_n, tc->config.fps_d);
-  tmcd->frame_duration = 100;
+  tmcd->timescale = trak_timescale;
+  tmcd->frame_duration =
+      gst_util_uint64_scale (tmcd->timescale, tc->config.fps_d,
+      tc->config.fps_n);
   if (tc->config.fps_d == 1001)
     tmcd->n_frames = tc->config.fps_n / 1000;
   else
@@ -3880,7 +3941,7 @@ atom_trak_add_subtitle_entry (AtomTRAK * trak, AtomsContext * context,
 }
 
 
-static void
+void
 atom_trak_set_constant_size_samples (AtomTRAK * trak, guint32 sample_size)
 {
   trak->mdia.minf.stbl.stsz.sample_size = sample_size;
@@ -3987,7 +4048,7 @@ atom_trak_set_audio_type (AtomTRAK * trak, AtomsContext * context,
 
 SampleTableEntryTMCD *
 atom_trak_set_timecode_type (AtomTRAK * trak, AtomsContext * context,
-    GstVideoTimeCode * tc)
+    guint32 trak_timescale, GstVideoTimeCode * tc)
 {
   SampleTableEntryTMCD *ste;
   AtomGMHD *gmhd = trak->mdia.minf.gmhd;
@@ -3996,7 +4057,7 @@ atom_trak_set_timecode_type (AtomTRAK * trak, AtomsContext * context,
     return NULL;
   }
 
-  ste = atom_trak_add_timecode_entry (trak, context, tc);
+  ste = atom_trak_add_timecode_entry (trak, context, trak_timescale, tc);
 
   gmhd = atom_gmhd_new ();
   gmhd->gmin.graphics_mode = 0x0040;
diff --git a/gst/isomp4/atoms.h b/gst/isomp4/atoms.h
index c7a5d8b58..27d249431 100644
--- a/gst/isomp4/atoms.h
+++ b/gst/isomp4/atoms.h
@@ -563,6 +563,14 @@ typedef struct _AtomCTTS
   gboolean do_pts;
 } AtomCTTS;
 
+typedef struct _AtomSVMI
+{
+  AtomFull header;
+
+  guint8 stereoscopic_composition_type;
+  gboolean is_left_first;
+} AtomSVMI;
+
 typedef struct _AtomSTBL
 {
   Atom header;
@@ -574,6 +582,8 @@ typedef struct _AtomSTBL
   AtomSTSZ stsz;
   /* NULL if not present */
   AtomCTTS *ctts;
+  /* NULL if not present */
+  AtomSVMI *svmi;
 
   AtomSTCO64 stco64;
 } AtomSTBL;
@@ -923,10 +933,13 @@ void       atom_trak_set_elst_entry    (AtomTRAK * trak, gint index, guint32 dur
 void       atom_trak_edts_clear        (AtomTRAK * trak);
 guint32    atom_trak_get_timescale     (AtomTRAK *trak);
 guint32    atom_trak_get_id            (AtomTRAK * trak);
+void       atom_trak_set_constant_size_samples (AtomTRAK * trak, guint32 sample_size);
 void       atom_stbl_add_samples       (AtomSTBL * stbl, guint32 nsamples,
                                         guint32 delta, guint32 size,
                                         guint64 chunk_offset, gboolean sync,
                                         gint64 pts_offset);
+void       atom_stsc_add_new_entry     (AtomSTSC * stsc,
+                                        guint32 first_chunk, guint32 nsamples);
 
 AtomMOOV*  atom_moov_new               (AtomsContext *context);
 void       atom_moov_free              (AtomMOOV *moov);
@@ -957,6 +970,9 @@ guint64    atom_stsz_copy_data         (AtomSTSZ *atom, guint8 **buffer,
                                         guint64 *size, guint64* offset);
 guint64    atom_ctts_copy_data         (AtomCTTS *atom, guint8 **buffer,
                                         guint64 *size, guint64* offset);
+guint64    atom_svmi_copy_data         (AtomSVMI *atom, guint8 **buffer,
+                                        guint64 *size, guint64* offset);
+AtomSVMI * atom_svmi_new (guint8 stereoscopic_composition_type, gboolean is_left_first);
 guint64    atom_stco64_copy_data       (AtomSTCO64 *atom, guint8 **buffer,
                                         guint64 *size, guint64* offset);
 AtomMOOF*  atom_moof_new               (AtomsContext *context, guint32 sequence_number);
@@ -1036,7 +1052,7 @@ SampleTableEntryTX3G * atom_trak_set_subtitle_type (AtomTRAK * trak, AtomsContex
                                SubtitleSampleEntry * entry);
 
 SampleTableEntryTMCD *
-atom_trak_set_timecode_type (AtomTRAK * trak, AtomsContext * context, GstVideoTimeCode * tc);
+atom_trak_set_timecode_type (AtomTRAK * trak, AtomsContext * context, guint trak_timescale, GstVideoTimeCode * tc);
 
 void atom_trak_update_bitrates (AtomTRAK * trak, guint32 avg_bitrate,
                                 guint32 max_bitrate);
diff --git a/gst/isomp4/atomsrecovery.c b/gst/isomp4/atomsrecovery.c
index 24bc31c6e..edc443487 100644
--- a/gst/isomp4/atomsrecovery.c
+++ b/gst/isomp4/atomsrecovery.c
@@ -88,6 +88,8 @@
 
 #include "atomsrecovery.h"
 
+#define MAX_CHUNK_SIZE (1024 * 1024)    /* 1MB */
+
 #define ATOMS_RECOV_OUTPUT_WRITE_ERROR(err) \
     g_set_error (err, ATOMS_RECOV_QUARK, ATOMS_RECOV_ERR_FILE, \
         "Failed to write to output file: %s", g_strerror (errno))
@@ -110,7 +112,9 @@ atoms_recov_write_ftyp_info (FILE * f, AtomFTYP * ftyp, GstBuffer * prefix)
   if (prefix) {
     GstMapInfo map;
 
-    gst_buffer_map (prefix, &map, GST_MAP_READ);
+    if (!gst_buffer_map (prefix, &map, GST_MAP_READ)) {
+      return FALSE;
+    }
     if (fwrite (map.data, 1, map.size, f) != map.size) {
       gst_buffer_unmap (prefix, &map);
       return FALSE;
@@ -956,7 +960,7 @@ fail:
 
 gboolean
 moov_recov_write_file (MoovRecovFile * moovrf, MdatRecovFile * mdatrf,
-    FILE * outf, GError ** err)
+    FILE * outf, GError ** err, GError ** warn)
 {
   guint8 auxdata[16];
   guint8 *data = NULL;
@@ -969,6 +973,7 @@ moov_recov_write_file (MoovRecovFile * moovrf, MdatRecovFile * mdatrf,
   guint8 *stbl_children = NULL;
   guint32 longest_duration = 0;
   guint16 version;
+  guint remaining;
 
   /* check the version */
   if (fseek (moovrf->file, 0, SEEK_SET) != 0) {
@@ -1030,8 +1035,8 @@ moov_recov_write_file (MoovRecovFile * moovrf, MdatRecovFile * mdatrf,
   /* add chunks offsets */
   for (i = 0; i < moovrf->num_traks; i++) {
     TrakRecovData *trak = &(moovrf->traks_rd[i]);
-    /* 16 for the mdat header */
-    gint64 offset = moov_size + ftell (outf) + 16;
+    /* 8 or 16 for the mdat header */
+    gint64 offset = moov_size + ftell (outf) + mdatrf->mdat_header_size;
     atom_stco64_chunks_set_offset (&trak->stbl.stco64, offset);
   }
 
@@ -1135,10 +1140,21 @@ moov_recov_write_file (MoovRecovFile * moovrf, MdatRecovFile * mdatrf,
 
   /* write the mdat */
   /* write the header first */
-  GST_WRITE_UINT32_BE (auxdata, 1);
-  GST_WRITE_UINT32_LE (auxdata + 4, FOURCC_mdat);
-  GST_WRITE_UINT64_BE (auxdata + 8, mdatrf->mdat_size);
-  if (fwrite (auxdata, 1, 16, outf) != 16) {
+  if (mdatrf->mdat_header_size == 16) {
+    GST_WRITE_UINT32_BE (auxdata, 1);
+    GST_WRITE_UINT32_LE (auxdata + 4, FOURCC_mdat);
+    GST_WRITE_UINT64_BE (auxdata + 8, mdatrf->mdat_size);
+  } else if (mdatrf->mdat_header_size == 8) {
+    GST_WRITE_UINT32_BE (auxdata, mdatrf->mdat_size);
+    GST_WRITE_UINT32_LE (auxdata + 4, FOURCC_mdat);
+  } else {
+    GST_ERROR ("Unexpected atom size: %u", mdatrf->mdat_header_size);
+    g_assert_not_reached ();
+    goto fail;
+  }
+
+  if (fwrite (auxdata, 1, mdatrf->mdat_header_size,
+          outf) != mdatrf->mdat_header_size) {
     ATOMS_RECOV_OUTPUT_WRITE_ERROR (err);
     goto fail;
   }
@@ -1148,12 +1164,16 @@ moov_recov_write_file (MoovRecovFile * moovrf, MdatRecovFile * mdatrf,
           (mdatrf->rawfile ? 0 : mdatrf->mdat_header_size), SEEK_SET) != 0)
     goto fail;
 
-  data = g_malloc (4096);
-  while (!feof (mdatrf->file)) {
-    gint read, write;
+  remaining = mdatrf->mdat_size - mdatrf->mdat_header_size;
+  data = g_malloc (MAX_CHUNK_SIZE);
+  while (!feof (mdatrf->file) && remaining > 0) {
+    gint read, write, readsize;
+
+    readsize = MIN (MAX_CHUNK_SIZE, remaining);
 
-    read = fread (data, 1, 4096, mdatrf->file);
+    read = fread (data, 1, readsize, mdatrf->file);
     write = fwrite (data, 1, read, outf);
+    remaining -= read;
 
     if (write != read) {
       g_set_error (err, ATOMS_RECOV_QUARK, ATOMS_RECOV_ERR_FILE,
@@ -1163,6 +1183,17 @@ moov_recov_write_file (MoovRecovFile * moovrf, MdatRecovFile * mdatrf,
   }
   g_free (data);
 
+  if (remaining) {
+    g_set_error (warn, ATOMS_RECOV_QUARK, ATOMS_RECOV_ERR_FILE,
+        "Samples in recovery file were not present on headers."
+        " Bytes lost: %u", remaining);
+  } else if (!feof (mdatrf->file)) {
+    g_set_error (warn, ATOMS_RECOV_QUARK, ATOMS_RECOV_ERR_FILE,
+        "Samples in headers were not found in data file.");
+    GST_FIXME ("Rewrite mdat size if we reach this to make the file"
+        " fully correct");
+  }
+
   return TRUE;
 
 fail:
diff --git a/gst/isomp4/atomsrecovery.h b/gst/isomp4/atomsrecovery.h
index 2d9382d16..f044c9b9f 100644
--- a/gst/isomp4/atomsrecovery.h
+++ b/gst/isomp4/atomsrecovery.h
@@ -157,6 +157,6 @@ gboolean        moov_recov_parse_buffers (MoovRecovFile * moovrf,
                                           GError ** err);
 gboolean        moov_recov_write_file    (MoovRecovFile * moovrf,
                                           MdatRecovFile * mdatrf, FILE * outf,
-                                          GError ** err);
+                                          GError ** err, GError ** warn);
 
 #endif /* __ATOMS_RECOVERY_H__ */
diff --git a/gst/isomp4/fourcc.h b/gst/isomp4/fourcc.h
index 18c0b9935..be5c7c04e 100644
--- a/gst/isomp4/fourcc.h
+++ b/gst/isomp4/fourcc.h
@@ -186,6 +186,7 @@ G_BEGIN_DECLS
 #define FOURCC_fiel     GST_MAKE_FOURCC('f','i','e','l')
 #define FOURCC_pcst     GST_MAKE_FOURCC('p','c','s','t')
 #define FOURCC_pgap     GST_MAKE_FOURCC('p','g','a','p')
+#define FOURCC_png      GST_MAKE_FOURCC('p','n','g',' ')
 #define FOURCC_pnot     GST_MAKE_FOURCC('p','n','o','t')
 #define FOURCC_qt__     GST_MAKE_FOURCC('q','t',' ',' ')
 #define FOURCC_qtim     GST_MAKE_FOURCC('q','t','i','m')
@@ -204,6 +205,7 @@ G_BEGIN_DECLS
 #define FOURCC_sbtl     GST_MAKE_FOURCC('s','b','t','l')
 #define FOURCC_sdp_     GST_MAKE_FOURCC('s','d','p',' ')
 #define FOURCC_sidx     GST_MAKE_FOURCC('s','i','d','x')
+#define FOURCC_skip     GST_MAKE_FOURCC('s','k','i','p')
 #define FOURCC_smhd     GST_MAKE_FOURCC('s','m','h','d')
 #define FOURCC_soaa     GST_MAKE_FOURCC('s','o','a','a')
 #define FOURCC_soal     GST_MAKE_FOURCC('s','o','a','l')
@@ -249,6 +251,8 @@ G_BEGIN_DECLS
 #define FOURCC_vc_1     GST_MAKE_FOURCC('v','c','-','1')
 #define FOURCC_vide     GST_MAKE_FOURCC('v','i','d','e')
 #define FOURCC_vmhd     GST_MAKE_FOURCC('v','m','h','d')
+#define FOURCC_vp08     GST_MAKE_FOURCC('v','p','0','8')
+#define FOURCC_vp09     GST_MAKE_FOURCC('v','p','0','9')
 #define FOURCC_xvid     GST_MAKE_FOURCC('x','v','i','d')
 #define FOURCC_wave     GST_MAKE_FOURCC('w','a','v','e')
 #define FOURCC_wide     GST_MAKE_FOURCC('w','i','d','e')
diff --git a/gst/isomp4/gstisoff.c b/gst/isomp4/gstisoff.c
index 5c9f1ed66..829a73af9 100644
--- a/gst/isomp4/gstisoff.c
+++ b/gst/isomp4/gstisoff.c
@@ -22,9 +22,12 @@
  * Boston, MA 02111-1307, USA.
  */
 
+#include "qtdemux_debug.h"
 #include "gstisoff.h"
 #include <gst/base/gstbytereader.h>
 
+#define GST_CAT_DEFAULT qtdemux_debug
+
 void
 gst_isoff_qt_sidx_parser_init (GstSidxParser * parser)
 {
diff --git a/gst/isomp4/gstqtmoovrecover.c b/gst/isomp4/gstqtmoovrecover.c
index 80b22ebcb..f5d2b91dc 100644
--- a/gst/isomp4/gstqtmoovrecover.c
+++ b/gst/isomp4/gstqtmoovrecover.c
@@ -169,6 +169,7 @@ gst_qt_moov_recover_run (void *data)
   MoovRecovFile *moov_recov = NULL;
   GstQTMoovRecover *qtmr = GST_QT_MOOV_RECOVER_CAST (data);
   GError *err = NULL;
+  GError *warn = NULL;
 
   GST_LOG_OBJECT (qtmr, "Starting task");
 
@@ -243,10 +244,15 @@ gst_qt_moov_recover_run (void *data)
   }
 
   GST_DEBUG_OBJECT (qtmr, "Writing fixed file to output");
-  if (!moov_recov_write_file (moov_recov, mdat_recov, output, &err)) {
+  if (!moov_recov_write_file (moov_recov, mdat_recov, output, &err, &warn)) {
     goto end;
   }
 
+  if (warn) {
+    GST_ELEMENT_WARNING (qtmr, RESOURCE, FAILED, ("%s", warn->message), (NULL));
+    g_error_free (warn);
+  }
+
   /* here means success */
   GST_DEBUG_OBJECT (qtmr, "Finished successfully, posting EOS");
   gst_element_post_message (GST_ELEMENT_CAST (qtmr),
diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c
index c0c560827..74e177c3d 100644
--- a/gst/isomp4/gstqtmux.c
+++ b/gst/isomp4/gstqtmux.c
@@ -65,9 +65,10 @@
  * The fragmented file features defined (only) in ISO Base Media are used by
  * ISMV files making up (a.o.) Smooth Streaming (ismlmux).
  *
- * A few properties (#GstQTMux:movie-timescale, #GstQTMux:trak-timescale) allow
- * adjusting some technical parameters, which might be useful in (rare) cases to
- * resolve compatibility issues in some situations.
+ * A few properties (#GstQTMux:movie-timescale, #GstQTMux:trak-timescale,
+ * #GstQTMuxPad:trak-timescale) allow adjusting some technical parameters,
+ * which might be useful in (rare) cases to resolve compatibility issues in
+ * some situations.
  *
  * Some other properties influence the result more fundamentally.
  * A typical mov/mp4 file's metadata (aka moov) is located at the end of the
@@ -146,6 +147,10 @@
 GST_DEBUG_CATEGORY_STATIC (gst_qt_mux_debug);
 #define GST_CAT_DEFAULT gst_qt_mux_debug
 
+#ifndef ABSDIFF
+#define ABSDIFF(a, b) ((a) > (b) ? (a) - (b) : (b) - (a))
+#endif
+
 /* Hacker notes.
  *
  * The basic building blocks of MP4 files are:
@@ -243,6 +248,115 @@ gst_qt_mux_dts_method_get_type (void)
   (gst_qt_mux_dts_method_get_type ())
 #endif
 
+enum
+{
+  PROP_PAD_0,
+  PROP_PAD_TRAK_TIMESCALE,
+};
+
+#define DEFAULT_PAD_TRAK_TIMESCALE          0
+
+GType gst_qt_mux_pad_get_type (void);
+
+#define GST_TYPE_QT_MUX_PAD \
+  (gst_qt_mux_pad_get_type())
+#define GST_QT_MUX_PAD(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_QT_MUX_PAD, GstQTMuxPad))
+#define GST_QT_MUX_PAD_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_QT_MUX_PAD, GstQTMuxPadClass))
+#define GST_IS_QT_MUX_PAD(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_QT_MUX_PAD))
+#define GST_IS_QT_MUX_PAD_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_QT_MUX_PAD))
+#define GST_QT_MUX_PAD_CAST(obj) \
+  ((GstQTMuxPad *)(obj))
+
+typedef struct _GstQTMuxPad GstQTMuxPad;
+typedef struct _GstQTMuxPadClass GstQTMuxPadClass;
+
+struct _GstQTMuxPad
+{
+  GstPad parent;
+
+  guint32 trak_timescale;
+};
+
+struct _GstQTMuxPadClass
+{
+  GstPadClass parent;
+};
+
+G_DEFINE_TYPE (GstQTMuxPad, gst_qt_mux_pad, GST_TYPE_PAD);
+
+static void
+gst_qt_mux_pad_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+  GstQTMuxPad *pad = GST_QT_MUX_PAD_CAST (object);
+
+  GST_OBJECT_LOCK (pad);
+  switch (prop_id) {
+    case PROP_PAD_TRAK_TIMESCALE:
+      pad->trak_timescale = g_value_get_uint (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+  GST_OBJECT_UNLOCK (pad);
+}
+
+static void
+gst_qt_mux_pad_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec)
+{
+  GstQTMuxPad *pad = GST_QT_MUX_PAD_CAST (object);
+
+  GST_OBJECT_LOCK (pad);
+  switch (prop_id) {
+    case PROP_PAD_TRAK_TIMESCALE:
+      g_value_set_uint (value, pad->trak_timescale);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+  GST_OBJECT_UNLOCK (pad);
+}
+
+static void
+gst_qt_mux_pad_class_init (GstQTMuxPadClass * klass)
+{
+  GObjectClass *gobject_class = (GObjectClass *) klass;
+
+  gobject_class->get_property = gst_qt_mux_pad_get_property;
+  gobject_class->set_property = gst_qt_mux_pad_set_property;
+
+  g_object_class_install_property (gobject_class, PROP_PAD_TRAK_TIMESCALE,
+      g_param_spec_uint ("trak-timescale", "Track timescale",
+          "Timescale to use for this pad's trak (units per second, 0 is automatic)",
+          0, G_MAXUINT32, DEFAULT_PAD_TRAK_TIMESCALE,
+          G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
+}
+
+static void
+gst_qt_mux_pad_init (GstQTMuxPad * pad)
+{
+  pad->trak_timescale = DEFAULT_PAD_TRAK_TIMESCALE;
+}
+
+static guint32
+gst_qt_mux_pad_get_timescale (GstQTMuxPad * pad)
+{
+  guint32 timescale;
+
+  GST_OBJECT_LOCK (pad);
+  timescale = pad->trak_timescale;
+  GST_OBJECT_UNLOCK (pad);
+
+  return timescale;
+}
+
 /* QTMux signals and args */
 enum
 {
@@ -264,12 +378,14 @@ enum
   PROP_RESERVED_DURATION_REMAINING,
   PROP_RESERVED_MOOV_UPDATE_PERIOD,
   PROP_RESERVED_BYTES_PER_SEC,
+  PROP_RESERVED_PREFILL,
 #ifndef GST_REMOVE_DEPRECATED
   PROP_DTS_METHOD,
 #endif
   PROP_DO_CTTS,
   PROP_INTERLEAVE_BYTES,
   PROP_INTERLEAVE_TIME,
+  PROP_MAX_RAW_AUDIO_DRIFT,
 };
 
 /* some spare for header size as well */
@@ -289,8 +405,10 @@ enum
 #define DEFAULT_RESERVED_MAX_DURATION   GST_CLOCK_TIME_NONE
 #define DEFAULT_RESERVED_MOOV_UPDATE_PERIOD   GST_CLOCK_TIME_NONE
 #define DEFAULT_RESERVED_BYTES_PER_SEC_PER_TRAK 550
+#define DEFAULT_RESERVED_PREFILL FALSE
 #define DEFAULT_INTERLEAVE_BYTES 0
 #define DEFAULT_INTERLEAVE_TIME 250*GST_MSECOND
+#define DEFAULT_MAX_RAW_AUDIO_DRIFT 40 * GST_MSECOND
 
 static void gst_qt_mux_finalize (GObject * object);
 
@@ -320,6 +438,9 @@ static GstFlowReturn gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad,
 static GstFlowReturn
 gst_qt_mux_robust_recording_rewrite_moov (GstQTMux * qtmux);
 
+static void gst_qt_mux_update_global_statistics (GstQTMux * qtmux);
+static void gst_qt_mux_update_edit_lists (GstQTMux * qtmux);
+
 static GstElementClass *parent_class = NULL;
 
 static void
@@ -353,20 +474,23 @@ gst_qt_mux_base_init (gpointer g_class)
   gst_element_class_add_pad_template (element_class, srctempl);
 
   if (params->audio_sink_caps) {
-    audiosinktempl = gst_pad_template_new ("audio_%u",
-        GST_PAD_SINK, GST_PAD_REQUEST, params->audio_sink_caps);
+    audiosinktempl = gst_pad_template_new_with_gtype ("audio_%u",
+        GST_PAD_SINK, GST_PAD_REQUEST, params->audio_sink_caps,
+        GST_TYPE_QT_MUX_PAD);
     gst_element_class_add_pad_template (element_class, audiosinktempl);
   }
 
   if (params->video_sink_caps) {
-    videosinktempl = gst_pad_template_new ("video_%u",
-        GST_PAD_SINK, GST_PAD_REQUEST, params->video_sink_caps);
+    videosinktempl = gst_pad_template_new_with_gtype ("video_%u",
+        GST_PAD_SINK, GST_PAD_REQUEST, params->video_sink_caps,
+        GST_TYPE_QT_MUX_PAD);
     gst_element_class_add_pad_template (element_class, videosinktempl);
   }
 
   if (params->subtitle_sink_caps) {
-    subtitlesinktempl = gst_pad_template_new ("subtitle_%u",
-        GST_PAD_SINK, GST_PAD_REQUEST, params->subtitle_sink_caps);
+    subtitlesinktempl = gst_pad_template_new_with_gtype ("subtitle_%u",
+        GST_PAD_SINK, GST_PAD_REQUEST, params->subtitle_sink_caps,
+        GST_TYPE_QT_MUX_PAD);
     gst_element_class_add_pad_template (element_class, subtitlesinktempl);
   }
 
@@ -483,6 +607,12 @@ gst_qt_mux_class_init (GstQTMuxClass * klass)
           "Multiplier for converting reserved-max-duration into bytes of header to reserve, per second, per track",
           0, 10000, DEFAULT_RESERVED_BYTES_PER_SEC_PER_TRAK,
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_RESERVED_PREFILL,
+      g_param_spec_boolean ("reserved-prefill",
+          "Reserved Prefill Samples Table",
+          "Prefill samples table of reserved duration",
+          DEFAULT_RESERVED_PREFILL,
+          G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_INTERLEAVE_BYTES,
       g_param_spec_uint64 ("interleave-bytes", "Interleave (bytes)",
           "Interleave between streams in bytes",
@@ -493,6 +623,11 @@ gst_qt_mux_class_init (GstQTMuxClass * klass)
           "Interleave between streams in nanoseconds",
           0, G_MAXUINT64, DEFAULT_INTERLEAVE_TIME,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_MAX_RAW_AUDIO_DRIFT,
+      g_param_spec_uint64 ("max-raw-audio-drift", "Max Raw Audio Drift",
+          "Maximum allowed drift of raw audio samples vs. timestamps in nanoseconds",
+          0, G_MAXUINT64, DEFAULT_MAX_RAW_AUDIO_DRIFT,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gstelement_class->request_new_pad =
       GST_DEBUG_FUNCPTR (gst_qt_mux_request_new_pad);
@@ -508,6 +643,7 @@ gst_qt_mux_pad_reset (GstQTPad * qtpad)
   qtpad->sample_size = 0;
   qtpad->sync = FALSE;
   qtpad->last_dts = 0;
+  qtpad->sample_offset = 0;
   qtpad->dts_adjustment = GST_CLOCK_TIME_NONE;
   qtpad->first_ts = GST_CLOCK_TIME_NONE;
   qtpad->first_dts = GST_CLOCK_TIME_NONE;
@@ -535,6 +671,9 @@ gst_qt_mux_pad_reset (GstQTPad * qtpad)
     qtpad->traf = NULL;
   }
   atom_array_clear (&qtpad->fragment_buffers);
+  if (qtpad->samples)
+    g_array_unref (qtpad->samples);
+  qtpad->samples = NULL;
 
   /* reference owned elsewhere */
   qtpad->tfra = NULL;
@@ -544,6 +683,10 @@ gst_qt_mux_pad_reset (GstQTPad * qtpad)
   if (qtpad->first_tc)
     gst_video_time_code_free (qtpad->first_tc);
   qtpad->first_tc = NULL;
+
+  if (qtpad->raw_audio_adapter)
+    gst_object_unref (qtpad->raw_audio_adapter);
+  qtpad->raw_audio_adapter = NULL;
 }
 
 /*
@@ -655,6 +798,7 @@ gst_qt_mux_init (GstQTMux * qtmux, GstQTMuxClass * qtmux_klass)
       DEFAULT_RESERVED_BYTES_PER_SEC_PER_TRAK;
   qtmux->interleave_bytes = DEFAULT_INTERLEAVE_BYTES;
   qtmux->interleave_time = DEFAULT_INTERLEAVE_TIME;
+  qtmux->max_raw_audio_drift = DEFAULT_MAX_RAW_AUDIO_DRIFT;
 
   /* always need this */
   qtmux->context =
@@ -2100,6 +2244,451 @@ fail:
   qtmux->moov_recov_file = NULL;
 }
 
+static guint64
+prefill_get_block_index (GstQTMux * qtmux, GstQTPad * qpad)
+{
+  switch (qpad->fourcc) {
+    case FOURCC_apch:
+    case FOURCC_apcn:
+    case FOURCC_apcs:
+    case FOURCC_apco:
+    case FOURCC_ap4h:
+    case FOURCC_ap4x:
+      return qpad->sample_offset;
+    case FOURCC_sowt:
+    case FOURCC_twos:
+      return gst_util_uint64_scale_ceil (qpad->sample_offset,
+          qpad->expected_sample_duration_n,
+          qpad->expected_sample_duration_d *
+          atom_trak_get_timescale (qpad->trak));
+    default:
+      return -1;
+  }
+}
+
+static guint
+prefill_get_sample_size (GstQTMux * qtmux, GstQTPad * qpad)
+{
+  switch (qpad->fourcc) {
+    case FOURCC_apch:
+      if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 480) {
+        return 300000;
+      } else if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 576) {
+        return 350000;
+      } else if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 720) {
+        return 525000;
+      } else if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 1080) {
+        return 1050000;
+      } else {
+        return 4150000;
+      }
+      break;
+    case FOURCC_apcn:
+      if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 480) {
+        return 200000;
+      } else if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 576) {
+        return 250000;
+      } else if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 720) {
+        return 350000;
+      } else if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 1080) {
+        return 700000;
+      } else {
+        return 2800000;
+      }
+      break;
+    case FOURCC_apcs:
+      if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 480) {
+        return 150000;
+      } else if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 576) {
+        return 200000;
+      } else if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 720) {
+        return 250000;
+      } else if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 1080) {
+        return 500000;
+      } else {
+        return 2800000;
+      }
+      break;
+    case FOURCC_apco:
+      if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 480) {
+        return 80000;
+      } else if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 576) {
+        return 100000;
+      } else if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 720) {
+        return 150000;
+      } else if (((SampleTableEntryMP4V *) qpad->trak_ste)->height <= 1080) {
+        return 250000;
+      } else {
+        return 900000;
+      }
+      break;
+    case FOURCC_sowt:
+    case FOURCC_twos:{
+      guint64 block_idx;
+      guint64 next_sample_offset;
+
+      block_idx = prefill_get_block_index (qtmux, qpad);
+      next_sample_offset =
+          gst_util_uint64_scale (block_idx + 1,
+          qpad->expected_sample_duration_d *
+          atom_trak_get_timescale (qpad->trak),
+          qpad->expected_sample_duration_n);
+
+      return (next_sample_offset - qpad->sample_offset) * qpad->sample_size;
+    }
+    case FOURCC_ap4h:
+    case FOURCC_ap4x:
+    default:
+      GST_ERROR_OBJECT (qtmux, "unsupported codec for pre-filling");
+      return -1;
+  }
+
+  return -1;
+}
+
+static GstClockTime
+prefill_get_next_timestamp (GstQTMux * qtmux, GstQTPad * qpad)
+{
+  switch (qpad->fourcc) {
+    case FOURCC_apch:
+    case FOURCC_apcn:
+    case FOURCC_apcs:
+    case FOURCC_apco:
+    case FOURCC_ap4h:
+    case FOURCC_ap4x:
+      return gst_util_uint64_scale (qpad->sample_offset + 1,
+          qpad->expected_sample_duration_d * GST_SECOND,
+          qpad->expected_sample_duration_n);
+    case FOURCC_sowt:
+    case FOURCC_twos:{
+      guint64 block_idx;
+      guint64 next_sample_offset;
+
+      block_idx = prefill_get_block_index (qtmux, qpad);
+      next_sample_offset =
+          gst_util_uint64_scale (block_idx + 1,
+          qpad->expected_sample_duration_d *
+          atom_trak_get_timescale (qpad->trak),
+          qpad->expected_sample_duration_n);
+
+      return gst_util_uint64_scale (next_sample_offset, GST_SECOND,
+          atom_trak_get_timescale (qpad->trak));
+    }
+    default:
+      GST_ERROR_OBJECT (qtmux, "unsupported codec for pre-filling");
+      return -1;
+  }
+
+  return -1;
+}
+
+static GstBuffer *
+prefill_raw_audio_prepare_buf_func (GstQTPad * qtpad, GstBuffer * buf,
+    GstQTMux * qtmux)
+{
+  guint64 block_idx;
+  guint64 nsamples;
+  GstClockTime input_timestamp;
+  guint64 input_timestamp_distance;
+
+  if (buf)
+    gst_adapter_push (qtpad->raw_audio_adapter, buf);
+
+  block_idx = gst_util_uint64_scale_ceil (qtpad->raw_audio_adapter_offset,
+      qtpad->expected_sample_duration_n,
+      qtpad->expected_sample_duration_d *
+      atom_trak_get_timescale (qtpad->trak));
+  nsamples =
+      gst_util_uint64_scale (block_idx + 1,
+      qtpad->expected_sample_duration_d * atom_trak_get_timescale (qtpad->trak),
+      qtpad->expected_sample_duration_n) - qtpad->raw_audio_adapter_offset;
+
+  if ((!GST_COLLECT_PADS_STATE_IS_SET (&qtpad->collect,
+              GST_COLLECT_PADS_STATE_EOS)
+          && gst_adapter_available (qtpad->raw_audio_adapter) <
+          nsamples * qtpad->sample_size)
+      || gst_adapter_available (qtpad->raw_audio_adapter) == 0) {
+    return NULL;
+  }
+
+  input_timestamp =
+      gst_adapter_prev_pts (qtpad->raw_audio_adapter,
+      &input_timestamp_distance);
+  if (input_timestamp != GST_CLOCK_TIME_NONE)
+    input_timestamp +=
+        gst_util_uint64_scale (input_timestamp_distance, GST_SECOND,
+        qtpad->sample_size * atom_trak_get_timescale (qtpad->trak));
+
+  buf =
+      gst_adapter_take_buffer (qtpad->raw_audio_adapter,
+      !GST_COLLECT_PADS_STATE_IS_SET (&qtpad->collect,
+          GST_COLLECT_PADS_STATE_EOS) ? nsamples *
+      qtpad->sample_size : gst_adapter_available (qtpad->raw_audio_adapter));
+  GST_BUFFER_PTS (buf) = input_timestamp;
+  GST_BUFFER_DTS (buf) = GST_CLOCK_TIME_NONE;
+  GST_BUFFER_DURATION (buf) = GST_CLOCK_TIME_NONE;
+
+  qtpad->raw_audio_adapter_offset += nsamples;
+
+  /* Check if we have yet another block of raw audio in the adapter */
+  nsamples =
+      gst_util_uint64_scale (block_idx + 2,
+      qtpad->expected_sample_duration_d * atom_trak_get_timescale (qtpad->trak),
+      qtpad->expected_sample_duration_n) - qtpad->raw_audio_adapter_offset;
+  if (gst_adapter_available (qtpad->raw_audio_adapter) >=
+      nsamples * qtpad->sample_size) {
+    input_timestamp =
+        gst_adapter_prev_pts (qtpad->raw_audio_adapter,
+        &input_timestamp_distance);
+    if (input_timestamp != GST_CLOCK_TIME_NONE)
+      input_timestamp +=
+          gst_util_uint64_scale (input_timestamp_distance, GST_SECOND,
+          qtpad->sample_size * atom_trak_get_timescale (qtpad->trak));
+    qtpad->raw_audio_adapter_pts = input_timestamp;
+  } else {
+    qtpad->raw_audio_adapter_pts = GST_CLOCK_TIME_NONE;
+  }
+
+  return buf;
+}
+
+static gboolean
+prefill_update_sample_size (GstQTMux * qtmux, GstQTPad * qpad)
+{
+  switch (qpad->fourcc) {
+    case FOURCC_apch:
+    case FOURCC_apcn:
+    case FOURCC_apcs:
+    case FOURCC_apco:
+    case FOURCC_ap4h:
+    case FOURCC_ap4x:{
+      guint sample_size = prefill_get_sample_size (qtmux, qpad);
+      atom_trak_set_constant_size_samples (qpad->trak, sample_size);
+      return TRUE;
+    }
+    case FOURCC_sowt:
+    case FOURCC_twos:{
+      GSList *walk;
+
+      /* Find the (first) video track and assume that we have to output
+       * in that size */
+      for (walk = qtmux->collect->data; walk; walk = g_slist_next (walk)) {
+        GstCollectData *cdata = (GstCollectData *) walk->data;
+        GstQTPad *tmp_qpad = (GstQTPad *) cdata;
+
+        if (tmp_qpad->trak->is_video) {
+          qpad->expected_sample_duration_n =
+              tmp_qpad->expected_sample_duration_n;
+          qpad->expected_sample_duration_d =
+              tmp_qpad->expected_sample_duration_d;
+          break;
+        }
+      }
+
+      if (walk == NULL) {
+        GST_INFO_OBJECT (qpad->collect.pad,
+            "Found no video framerate, using 40ms audio buffers");
+        qpad->expected_sample_duration_n = 25;
+        qpad->expected_sample_duration_d = 1;
+      }
+
+      /* Set a prepare_buf_func that ensures this */
+      qpad->prepare_buf_func = prefill_raw_audio_prepare_buf_func;
+      qpad->raw_audio_adapter = gst_adapter_new ();
+      qpad->raw_audio_adapter_offset = 0;
+      qpad->raw_audio_adapter_pts = GST_CLOCK_TIME_NONE;
+
+      return TRUE;
+    }
+    default:
+      return TRUE;
+  }
+}
+
+static GstQTPad *
+find_best_pad_prefill (GstQTMux * qtmux)
+{
+  GSList *walk;
+  GstQTPad *best_pad = NULL;
+
+  if (qtmux->current_pad &&
+      (qtmux->interleave_bytes != 0 || qtmux->interleave_time != 0) &&
+      (qtmux->interleave_bytes == 0
+          || qtmux->current_chunk_size <= qtmux->interleave_bytes)
+      && (qtmux->interleave_time == 0
+          || qtmux->current_chunk_duration <= qtmux->interleave_time)
+      && qtmux->mux_mode != GST_QT_MUX_MODE_FRAGMENTED
+      && qtmux->mux_mode != GST_QT_MUX_MODE_FRAGMENTED_STREAMABLE) {
+
+    if (qtmux->current_pad->total_duration < qtmux->reserved_max_duration) {
+      best_pad = qtmux->current_pad;
+    }
+  } else if (qtmux->collect->data->next) {
+    best_pad = qtmux->current_pad = NULL;
+  }
+
+  if (!best_pad) {
+    GstClockTime best_time = GST_CLOCK_TIME_NONE;
+
+    for (walk = qtmux->collect->data; walk; walk = g_slist_next (walk)) {
+      GstCollectData *cdata = (GstCollectData *) walk->data;
+      GstQTPad *qtpad = (GstQTPad *) cdata;
+      GstClockTime timestamp;
+
+      if (qtpad->total_duration >= qtmux->reserved_max_duration)
+        continue;
+
+      timestamp = qtpad->total_duration;
+
+      if (best_pad == NULL ||
+          !GST_CLOCK_TIME_IS_VALID (best_time) || timestamp < best_time) {
+        best_pad = qtpad;
+        best_time = timestamp;
+      }
+    }
+  }
+
+  return best_pad;
+}
+
+static gboolean
+gst_qt_mux_prefill_samples (GstQTMux * qtmux)
+{
+  GstQTPad *qpad;
+  GSList *walk;
+  GstQTMuxClass *qtmux_klass = (GstQTMuxClass *) (G_OBJECT_GET_CLASS (qtmux));
+
+  /* Update expected sample sizes/durations as needed, this is for raw
+   * audio where samples are actual audio samples. */
+  for (walk = qtmux->collect->data; walk; walk = g_slist_next (walk)) {
+    GstCollectData *cdata = (GstCollectData *) walk->data;
+    GstQTPad *qpad = (GstQTPad *) cdata;
+
+    if (!prefill_update_sample_size (qtmux, qpad))
+      return FALSE;
+  }
+
+  if (qtmux_klass->format == GST_QT_MUX_FORMAT_QT) {
+    /* For the first sample check/update timecode as needed. We do that before
+     * all actual samples as the code in gst_qt_mux_add_buffer() does it with
+     * initial buffer directly, not with last_buf */
+    for (walk = qtmux->collect->data; walk; walk = g_slist_next (walk)) {
+      GstCollectData *cdata = (GstCollectData *) walk->data;
+      GstQTPad *qpad = (GstQTPad *) cdata;
+      GstBuffer *buffer =
+          gst_collect_pads_peek (qtmux->collect, (GstCollectData *) qpad);
+      GstVideoTimeCodeMeta *tc_meta;
+
+      if (buffer && (tc_meta = gst_buffer_get_video_time_code_meta (buffer))) {
+        GstVideoTimeCode *tc = &tc_meta->tc;
+
+        qpad->tc_trak = atom_trak_new (qtmux->context);
+        atom_moov_add_trak (qtmux->moov, qpad->tc_trak);
+
+        qpad->trak->tref = atom_tref_new (FOURCC_tmcd);
+        atom_tref_add_entry (qpad->trak->tref, qpad->tc_trak->tkhd.track_ID);
+
+        atom_trak_set_timecode_type (qpad->tc_trak, qtmux->context,
+            qpad->trak->mdia.mdhd.time_info.timescale, tc);
+
+        atom_trak_add_samples (qpad->tc_trak, 1, 1, 4,
+            qtmux->mdat_size, FALSE, 0);
+
+        qpad->tc_pos = qtmux->mdat_size;
+        qpad->first_tc = gst_video_time_code_copy (tc);
+        qpad->first_pts = GST_BUFFER_PTS (buffer);
+
+        qtmux->current_chunk_offset = -1;
+        qtmux->current_chunk_size = 0;
+        qtmux->current_chunk_duration = 0;
+        qtmux->mdat_size += 4;
+      }
+      if (buffer)
+        gst_buffer_unref (buffer);
+    }
+  }
+
+  while ((qpad = find_best_pad_prefill (qtmux))) {
+    GstClockTime timestamp, next_timestamp, duration;
+    guint nsamples, sample_size;
+    guint64 chunk_offset;
+    gint64 scaled_duration;
+    gint64 pts_offset = 0;
+    gboolean sync = FALSE;
+    TrakBufferEntryInfo sample_entry;
+
+    sample_size = prefill_get_sample_size (qtmux, qpad);
+
+    if (sample_size == -1) {
+      return FALSE;
+    }
+
+    if (!qpad->samples)
+      qpad->samples = g_array_new (FALSE, FALSE, sizeof (TrakBufferEntryInfo));
+
+    timestamp = qpad->total_duration;
+    next_timestamp = prefill_get_next_timestamp (qtmux, qpad);
+    duration = next_timestamp - timestamp;
+
+    if (qpad->first_ts == GST_CLOCK_TIME_NONE)
+      qpad->first_ts = timestamp;
+    if (qpad->first_dts == GST_CLOCK_TIME_NONE)
+      qpad->first_dts = timestamp;
+
+    if (qtmux->current_pad != qpad || qtmux->current_chunk_offset == -1) {
+      qtmux->current_pad = qpad;
+      if (qtmux->current_chunk_offset == -1)
+        qtmux->current_chunk_offset = qtmux->mdat_size;
+      else
+        qtmux->current_chunk_offset += qtmux->current_chunk_size;
+      qtmux->current_chunk_size = 0;
+      qtmux->current_chunk_duration = 0;
+    }
+    if (qpad->sample_size)
+      nsamples = sample_size / qpad->sample_size;
+    else
+      nsamples = 1;
+    qpad->last_dts = timestamp;
+    scaled_duration = gst_util_uint64_scale_round (timestamp + duration,
+        atom_trak_get_timescale (qpad->trak),
+        GST_SECOND) - gst_util_uint64_scale_round (timestamp,
+        atom_trak_get_timescale (qpad->trak), GST_SECOND);
+
+    qtmux->current_chunk_size += sample_size;
+    qtmux->current_chunk_duration += duration;
+    qpad->total_bytes += sample_size;
+
+    chunk_offset = qtmux->current_chunk_offset;
+
+    /* I-frame only, no frame reordering */
+    sync = FALSE;
+    pts_offset = 0;
+
+    if (qtmux->current_chunk_duration > qtmux->longest_chunk
+        || !GST_CLOCK_TIME_IS_VALID (qtmux->longest_chunk)) {
+      qtmux->longest_chunk = qtmux->current_chunk_duration;
+    }
+
+    sample_entry.track_id = qpad->trak->tkhd.track_ID;
+    sample_entry.nsamples = nsamples;
+    sample_entry.delta = scaled_duration / nsamples;
+    sample_entry.size = sample_size / nsamples;
+    sample_entry.chunk_offset = chunk_offset;
+    sample_entry.pts_offset = pts_offset;
+    sample_entry.sync = sync;
+    sample_entry.do_pts = TRUE;
+    g_array_append_val (qpad->samples, sample_entry);
+    atom_trak_add_samples (qpad->trak, nsamples, scaled_duration / nsamples,
+        sample_size / nsamples, chunk_offset, sync, pts_offset);
+
+    qpad->total_duration = next_timestamp;
+    qtmux->mdat_size += sample_size;
+    qpad->sample_offset += nsamples;
+  }
+
+  return TRUE;
+}
+
 static GstFlowReturn
 gst_qt_mux_start_file (GstQTMux * qtmux)
 {
@@ -2110,6 +2699,7 @@ gst_qt_mux_start_file (GstQTMux * qtmux)
   gchar s_id[32];
   GstClockTime reserved_max_duration;
   guint reserved_bytes_per_sec_per_trak;
+  GSList *walk;
 
   GST_DEBUG_OBJECT (qtmux, "starting file");
 
@@ -2146,7 +2736,10 @@ gst_qt_mux_start_file (GstQTMux * qtmux)
   } else if (qtmux->fast_start) {
     qtmux->mux_mode = GST_QT_MUX_MODE_FAST_START;
   } else if (reserved_max_duration != GST_CLOCK_TIME_NONE) {
-    qtmux->mux_mode = GST_QT_MUX_MODE_ROBUST_RECORDING;
+    if (qtmux->reserved_prefill)
+      qtmux->mux_mode = GST_QT_MUX_MODE_ROBUST_RECORDING_PREFILL;
+    else
+      qtmux->mux_mode = GST_QT_MUX_MODE_ROBUST_RECORDING;
   }
 
   switch (qtmux->mux_mode) {
@@ -2175,6 +2768,14 @@ gst_qt_mux_start_file (GstQTMux * qtmux)
         g_object_notify (G_OBJECT (qtmux), "streamable");
       }
       break;
+    case GST_QT_MUX_MODE_ROBUST_RECORDING_PREFILL:
+      if (!gst_qt_mux_downstream_is_seekable (qtmux)) {
+        GST_WARNING_OBJECT (qtmux,
+            "downstream is not seekable, will not be able "
+            "to trim samples table at the end if less than reserved-duration is "
+            "recorded");
+      }
+      break;
   }
 
   /* let downstream know we think in BYTES and expect to do seeking later on */
@@ -2248,7 +2849,6 @@ gst_qt_mux_start_file (GstQTMux * qtmux)
           FALSE);
       break;
     case GST_QT_MUX_MODE_ROBUST_RECORDING:
-
       ret = gst_qt_mux_prepare_and_send_ftyp (qtmux);
       if (ret != GST_FLOW_OK)
         break;
@@ -2342,6 +2942,97 @@ gst_qt_mux_start_file (GstQTMux * qtmux)
           gst_qt_mux_send_mdat_header (qtmux, &qtmux->header_size, 0, TRUE,
           FALSE);
       break;
+    case GST_QT_MUX_MODE_ROBUST_RECORDING_PREFILL:
+      ret = gst_qt_mux_prepare_and_send_ftyp (qtmux);
+      if (ret != GST_FLOW_OK)
+        break;
+
+      /* Store this as the moov offset for later updating.
+       * We record mdat position below */
+      qtmux->moov_pos = qtmux->header_size;
+
+      if (!gst_qt_mux_prefill_samples (qtmux)) {
+        GST_ELEMENT_ERROR (qtmux, STREAM, MUX,
+            ("Unsupported codecs or configuration for prefill mode"), (NULL));
+
+        return GST_FLOW_ERROR;
+      }
+
+      gst_qt_mux_update_global_statistics (qtmux);
+      gst_qt_mux_configure_moov (qtmux);
+      gst_qt_mux_update_edit_lists (qtmux);
+      gst_qt_mux_setup_metadata (qtmux);
+
+      /* Moov header with pre-filled samples */
+      ret = gst_qt_mux_send_moov (qtmux, &qtmux->header_size, 0, FALSE, FALSE);
+      if (ret != GST_FLOW_OK)
+        return ret;
+
+      /* last_moov_size now contains the full size of the moov, moov_pos the
+       * position. This allows us to rewrite it in the very end as needed */
+      qtmux->reserved_moov_size =
+          qtmux->last_moov_size + 12 * g_slist_length (qtmux->sinkpads) + 8;
+
+      /* Send an additional free atom at the end so we definitely have space
+       * to rewrite the moov header at the end and remove the samples that
+       * were not actually written */
+      ret =
+          gst_qt_mux_send_free_atom (qtmux, &qtmux->header_size,
+          12 * g_slist_length (qtmux->sinkpads) + 8, FALSE);
+      if (ret != GST_FLOW_OK)
+        return ret;
+
+      /* extra atoms go after the free/moov(s), before the mdat */
+      ret =
+          gst_qt_mux_send_extra_atoms (qtmux, TRUE, &qtmux->header_size, FALSE);
+      if (ret != GST_FLOW_OK)
+        return ret;
+
+      qtmux->mdat_pos = qtmux->header_size;
+
+      /* And now send the mdat header */
+      ret =
+          gst_qt_mux_send_mdat_header (qtmux, &qtmux->header_size,
+          qtmux->mdat_size, TRUE, FALSE);
+
+      /* chunks position is set relative to the first byte of the
+       * MDAT atom payload. Set the overall offset into the file */
+      atom_moov_chunks_set_offset (qtmux->moov, qtmux->header_size);
+
+      {
+        GstSegment segment;
+
+        gst_segment_init (&segment, GST_FORMAT_BYTES);
+        segment.start = qtmux->moov_pos;
+        gst_pad_push_event (qtmux->srcpad, gst_event_new_segment (&segment));
+
+        ret = gst_qt_mux_send_moov (qtmux, NULL, 0, FALSE, FALSE);
+        if (ret != GST_FLOW_OK)
+          return ret;
+
+        segment.start = qtmux->header_size;
+        gst_pad_push_event (qtmux->srcpad, gst_event_new_segment (&segment));
+      }
+
+      qtmux->current_chunk_size = 0;
+      qtmux->current_chunk_duration = 0;
+      qtmux->current_chunk_offset = -1;
+      qtmux->mdat_size = 0;
+      qtmux->current_pad = NULL;
+      qtmux->longest_chunk = GST_CLOCK_TIME_NONE;
+
+      for (walk = qtmux->collect->data; walk; walk = g_slist_next (walk)) {
+        GstCollectData *cdata = (GstCollectData *) walk->data;
+        GstQTPad *qtpad = (GstQTPad *) cdata;
+
+        qtpad->total_bytes = 0;
+        qtpad->total_duration = 0;
+        qtpad->first_dts = qtpad->first_ts = GST_CLOCK_TIME_NONE;
+        qtpad->last_dts = GST_CLOCK_TIME_NONE;
+        qtpad->sample_offset = 0;
+      }
+
+      break;
     case GST_QT_MUX_MODE_FAST_START:
       GST_OBJECT_LOCK (qtmux);
       qtmux->fast_start_file = g_fopen (qtmux->fast_start_file_path, "wb+");
@@ -2460,14 +3151,24 @@ gst_qt_mux_update_global_statistics (GstQTMux * qtmux)
 
     /* having flushed above, can check for buffers now */
     if (GST_CLOCK_TIME_IS_VALID (qtpad->first_ts)) {
+      GstClockTime first_pts_in = qtpad->first_ts;
+      /* it should be, since we got first_ts by adding adjustment
+       * to a positive incoming PTS */
+      if (qtpad->dts_adjustment <= first_pts_in)
+        first_pts_in -= qtpad->dts_adjustment;
       /* determine max stream duration */
       if (!GST_CLOCK_TIME_IS_VALID (qtmux->last_dts)
           || qtpad->last_dts > qtmux->last_dts) {
         qtmux->last_dts = qtpad->last_dts;
       }
       if (!GST_CLOCK_TIME_IS_VALID (qtmux->first_ts)
-          || qtpad->first_ts < qtmux->first_ts) {
-        qtmux->first_ts = qtpad->first_ts;
+          || first_pts_in < qtmux->first_ts) {
+        /* we need the original incoming PTS here, as this first_ts
+         * is used in update_edit_lists to construct the edit list that arrange
+         * for sync'ed streams.  The first_ts is most likely obtained from
+         * some (audio) stream with 0 dts_adjustment and initial 0 PTS,
+         * so it makes no difference, though it matters in other cases */
+        qtmux->first_ts = first_pts_in;
       }
     }
 
@@ -2695,6 +3396,178 @@ gst_qt_mux_stop_file (GstQTMux * qtmux)
       return gst_qt_mux_update_mdat_size (qtmux, qtmux->mdat_pos,
           qtmux->mdat_size, NULL, TRUE);
     }
+    case GST_QT_MUX_MODE_ROBUST_RECORDING_PREFILL:{
+      GSList *walk;
+      guint32 next_track_id = qtmux->moov->mvhd.next_track_id;
+
+      for (walk = qtmux->collect->data; walk; walk = g_slist_next (walk)) {
+        GstCollectData *cdata = (GstCollectData *) walk->data;
+        GstQTPad *qpad = (GstQTPad *) cdata;
+        const TrakBufferEntryInfo *sample_entry;
+        guint64 block_idx;
+        AtomSTBL *stbl = &qpad->trak->mdia.minf.stbl;
+
+        /* Get the block index of the last sample we wrote, not of the next
+         * sample we would write */
+        block_idx = prefill_get_block_index (qtmux, qpad);
+        g_assert (block_idx > 0);
+        block_idx--;
+
+        sample_entry =
+            &g_array_index (qpad->samples, TrakBufferEntryInfo, block_idx);
+
+        /* stts */
+        {
+          STTSEntry *entry;
+          guint64 nsamples = 0;
+          gint i, n;
+
+          n = atom_array_get_len (&stbl->stts.entries);
+          for (i = 0; i < n; i++) {
+            entry = &atom_array_index (&stbl->stts.entries, i);
+            if (nsamples + entry->sample_count >= qpad->sample_offset) {
+              entry->sample_count = qpad->sample_offset - nsamples;
+              stbl->stts.entries.len = i + 1;
+              break;
+            }
+            nsamples += entry->sample_count;
+          }
+          g_assert (i < n);
+        }
+
+        /* stsz */
+        {
+          g_assert (stbl->stsz.entries.len == 0);
+          stbl->stsz.table_size = qpad->sample_offset;
+        }
+
+        /* stco/stsc */
+        {
+          gint i, n;
+          guint64 nsamples = 0;
+          gint chunk_index = 0;
+
+          n = stbl->stco64.entries.len;
+          for (i = 0; i < n; i++) {
+            guint64 *entry = &atom_array_index (&stbl->stco64.entries, i);
+
+            if (*entry == sample_entry->chunk_offset) {
+              stbl->stco64.entries.len = i + 1;
+              chunk_index = i + 1;
+              break;
+            }
+          }
+          g_assert (i < n);
+          g_assert (chunk_index > 0);
+
+          n = stbl->stsc.entries.len;
+          for (i = 0; i < n; i++) {
+            STSCEntry *entry = &atom_array_index (&stbl->stsc.entries, i);
+
+            if (entry->first_chunk >= chunk_index)
+              break;
+
+            if (i > 0) {
+              nsamples +=
+                  (entry->first_chunk - atom_array_index (&stbl->stsc.entries,
+                      i -
+                      1).first_chunk) * atom_array_index (&stbl->stsc.entries,
+                  i - 1).samples_per_chunk;
+            }
+          }
+          g_assert (i <= n);
+
+          if (i > 0) {
+            STSCEntry *prev_entry =
+                &atom_array_index (&stbl->stsc.entries, i - 1);
+            nsamples +=
+                (chunk_index -
+                prev_entry->first_chunk) * prev_entry->samples_per_chunk;
+            if (qpad->sample_offset - nsamples > 0) {
+              stbl->stsc.entries.len = i;
+              atom_stsc_add_new_entry (&stbl->stsc, chunk_index,
+                  qpad->sample_offset - nsamples);
+            } else {
+              stbl->stsc.entries.len = i;
+              stbl->stco64.entries.len--;
+            }
+          } else {
+            /* Everything in a single chunk */
+            stbl->stsc.entries.len = 0;
+            atom_stsc_add_new_entry (&stbl->stsc, chunk_index,
+                qpad->sample_offset);
+          }
+        }
+
+        {
+          GList *walk2;
+
+          for (walk2 = qtmux->moov->mvex.trexs; walk2; walk2 = walk2->next) {
+            AtomTREX *trex = walk2->data;
+
+            if (trex->track_ID == qpad->trak->tkhd.track_ID) {
+              trex->track_ID = next_track_id;
+              break;
+            }
+          }
+
+          qpad->trak->tkhd.track_ID = next_track_id++;
+        }
+      }
+      qtmux->moov->mvhd.next_track_id = next_track_id;
+
+      gst_qt_mux_update_global_statistics (qtmux);
+      gst_qt_mux_configure_moov (qtmux);
+
+      gst_qt_mux_update_edit_lists (qtmux);
+
+      /* Check if any gap edit lists were added. We don't have any space
+       * reserved for this in the moov and the pre-finalized moov would have
+       * broken A/V synchronization. Error out here now
+       */
+      for (walk = qtmux->collect->data; walk; walk = g_slist_next (walk)) {
+        GstCollectData *cdata = (GstCollectData *) walk->data;
+        GstQTPad *qpad = (GstQTPad *) cdata;
+
+        if (qpad->trak->edts
+            && g_slist_length (qpad->trak->edts->elst.entries) > 1) {
+          GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL),
+              ("Can't support gaps in prefill mode"));
+
+          return GST_FLOW_ERROR;
+        }
+      }
+
+      gst_qt_mux_setup_metadata (qtmux);
+      atom_moov_chunks_set_offset (qtmux->moov, qtmux->header_size);
+
+      {
+        GstSegment segment;
+
+        gst_segment_init (&segment, GST_FORMAT_BYTES);
+        segment.start = qtmux->moov_pos;
+        gst_pad_push_event (qtmux->srcpad, gst_event_new_segment (&segment));
+
+        ret =
+            gst_qt_mux_send_moov (qtmux, NULL, qtmux->reserved_moov_size, FALSE,
+            FALSE);
+        if (ret != GST_FLOW_OK)
+          return ret;
+
+        if (qtmux->reserved_moov_size > qtmux->last_moov_size) {
+          ret =
+              gst_qt_mux_send_free_atom (qtmux, NULL,
+              qtmux->reserved_moov_size - qtmux->last_moov_size, TRUE);
+        }
+
+        if (ret != GST_FLOW_OK)
+          return ret;
+      }
+
+      ret = gst_qt_mux_update_mdat_size (qtmux, qtmux->mdat_pos,
+          qtmux->mdat_size, NULL, FALSE);
+      return ret;
+    }
     default:
       break;
   }
@@ -3021,6 +3894,18 @@ gst_qt_mux_robust_recording_update (GstQTMux * qtmux, GstClockTime position)
   guint64 mdat_offset = qtmux->mdat_pos + 16 + qtmux->mdat_size;
 
   GST_OBJECT_LOCK (qtmux);
+
+  /* Update the offset of how much we've muxed, so the
+   * report of remaining space keeps counting down */
+  if (position > qtmux->last_moov_update &&
+      position - qtmux->last_moov_update > qtmux->muxed_since_last_update) {
+    GST_LOG_OBJECT (qtmux,
+        "Muxed time %" G_GUINT64_FORMAT " since last moov update",
+        qtmux->muxed_since_last_update);
+    qtmux->muxed_since_last_update = position - qtmux->last_moov_update;
+  }
+
+  /* Next, check if we're supposed to send periodic moov updates downstream */
   if (qtmux->reserved_moov_update_period == GST_CLOCK_TIME_NONE) {
     GST_OBJECT_UNLOCK (qtmux);
     return GST_FLOW_OK;
@@ -3031,15 +3916,6 @@ gst_qt_mux_robust_recording_update (GstQTMux * qtmux, GstClockTime position)
       (position <= qtmux->last_moov_update ||
           (position - qtmux->last_moov_update) <
           qtmux->reserved_moov_update_period)) {
-    /* Update the offset of how much we've muxed, so the
-     * report of remaining space keeps counting down */
-    if (position > qtmux->last_moov_update &&
-        position - qtmux->last_moov_update > qtmux->muxed_since_last_update) {
-      GST_LOG_OBJECT (qtmux,
-          "Muxed time %" G_GUINT64_FORMAT " since last moov update",
-          qtmux->muxed_since_last_update);
-      qtmux->muxed_since_last_update = position - qtmux->last_moov_update;
-    }
     GST_OBJECT_UNLOCK (qtmux);
     return GST_FLOW_OK;         /* No update needed yet */
   }
@@ -3084,6 +3960,41 @@ gst_qt_mux_register_and_push_sample (GstQTMux * qtmux, GstQTPad * pad,
   }
 
   switch (qtmux->mux_mode) {
+    case GST_QT_MUX_MODE_ROBUST_RECORDING_PREFILL:{
+      const TrakBufferEntryInfo *sample_entry;
+      guint64 block_idx = prefill_get_block_index (qtmux, pad);
+
+      if (block_idx >= pad->samples->len) {
+        GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL),
+            ("Unexpected sample %" G_GUINT64_FORMAT ", expected up to %u",
+                block_idx, pad->samples->len));
+        gst_buffer_unref (buffer);
+        return GST_FLOW_ERROR;
+      }
+
+      /* Check if all values are as expected */
+      sample_entry =
+          &g_array_index (pad->samples, TrakBufferEntryInfo, block_idx);
+
+      /* Allow +/- 1 difference for the scaled_duration to allow
+       * for some rounding errors
+       */
+      if (sample_entry->nsamples != nsamples
+          || ABSDIFF (sample_entry->delta, scaled_duration) > 1
+          || sample_entry->size != sample_size
+          || sample_entry->chunk_offset != chunk_offset
+          || sample_entry->pts_offset != pts_offset
+          || sample_entry->sync != sync) {
+        GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL),
+            ("Unexpected values in sample %" G_GUINT64_FORMAT,
+                pad->sample_offset + 1));
+        gst_buffer_unref (buffer);
+        return GST_FLOW_ERROR;
+      }
+
+      ret = gst_qt_mux_send_buffer (qtmux, buffer, &qtmux->mdat_size, TRUE);
+      break;
+    }
     case GST_QT_MUX_MODE_MOOV_AT_END:
     case GST_QT_MUX_MODE_FAST_START:
     case GST_QT_MUX_MODE_ROBUST_RECORDING:
@@ -3107,6 +4018,23 @@ gst_qt_mux_register_and_push_sample (GstQTMux * qtmux, GstQTPad * pad,
   return ret;
 }
 
+static void
+gst_qt_mux_register_buffer_in_chunk (GstQTMux * qtmux, GstQTPad * pad,
+    guint buffer_size, GstClockTime duration)
+{
+  /* not that much happens here,
+   * but updating any of this very likely needs to happen all in sync,
+   * unless there is a very good reason not to */
+
+  /* for computing the avg bitrate */
+  pad->total_bytes += buffer_size;
+  pad->total_duration += duration;
+  /* for keeping track of where we are in chunk;
+   * ensures that data really is located as recorded in atoms */
+  qtmux->current_chunk_size += buffer_size;
+  qtmux->current_chunk_duration += duration;
+}
+
 static GstFlowReturn
 gst_qt_mux_check_and_update_timecode (GstQTMux * qtmux, GstQTPad * pad,
     GstBuffer * buf, GstFlowReturn ret)
@@ -3138,7 +4066,6 @@ gst_qt_mux_check_and_update_timecode (GstQTMux * qtmux, GstQTPad * pad,
     g_free (tc_str);
 #endif
     g_assert (pad->tc_trak == NULL);
-    tc_buf = gst_buffer_new_allocate (NULL, 4, NULL);
     pad->first_tc = gst_video_time_code_copy (tc);
     /* If frames are out of order, the frame we're currently getting might
      * not be the first one. Just write a 0 timecode for now and wait
@@ -3160,8 +4087,10 @@ gst_qt_mux_check_and_update_timecode (GstQTMux * qtmux, GstQTPad * pad,
     pad->trak->tref = atom_tref_new (FOURCC_tmcd);
     atom_tref_add_entry (pad->trak->tref, pad->tc_trak->tkhd.track_ID);
 
-    atom_trak_set_timecode_type (pad->tc_trak, qtmux->context, pad->first_tc);
+    atom_trak_set_timecode_type (pad->tc_trak, qtmux->context,
+        pad->trak->mdia.mdhd.time_info.timescale, pad->first_tc);
 
+    tc_buf = gst_buffer_new_allocate (NULL, 4, NULL);
     szret = gst_buffer_fill (tc_buf, 0, &frames_since_daily_jam, 4);
     g_assert (szret == 4);
 
@@ -3174,6 +4103,21 @@ gst_qt_mux_check_and_update_timecode (GstQTMux * qtmux, GstQTPad * pad,
     qtmux->current_chunk_offset = -1;
     qtmux->current_chunk_size = 0;
     qtmux->current_chunk_duration = 0;
+  } else if (qtmux->mux_mode == GST_QT_MUX_MODE_ROBUST_RECORDING_PREFILL) {
+    frames_since_daily_jam =
+        gst_video_time_code_frames_since_daily_jam (pad->first_tc);
+    frames_since_daily_jam = GUINT32_TO_BE (frames_since_daily_jam);
+
+    tc_buf = gst_buffer_new_allocate (NULL, 4, NULL);
+    szret = gst_buffer_fill (tc_buf, 0, &frames_since_daily_jam, 4);
+    g_assert (szret == 4);
+
+    ret = gst_qt_mux_send_buffer (qtmux, tc_buf, &qtmux->mdat_size, TRUE);
+    pad->tc_pos = -1;
+
+    qtmux->current_chunk_offset = -1;
+    qtmux->current_chunk_size = 0;
+    qtmux->current_chunk_duration = 0;
   } else if (pad->is_out_of_order) {
     /* Check for a lower timecode than the one stored */
     g_assert (pad->tc_trak != NULL);
@@ -3214,13 +4158,19 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
   gint64 pts_offset = 0;
   gboolean sync = FALSE;
   GstFlowReturn ret = GST_FLOW_OK;
+  guint buffer_size;
 
   if (!pad->fourcc)
     goto not_negotiated;
 
   /* if this pad has a prepare function, call it */
   if (pad->prepare_buf_func != NULL) {
-    buf = pad->prepare_buf_func (pad, buf, qtmux);
+    GstBuffer *new_buf;
+
+    new_buf = pad->prepare_buf_func (pad, buf, qtmux);
+    if (buf && !new_buf)
+      return GST_FLOW_OK;
+    buf = new_buf;
   }
 
   ret = gst_qt_mux_check_and_update_timecode (qtmux, pad, buf, ret);
@@ -3245,7 +4195,6 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
           GST_PAD_NAME (pad->collect.pad));
     }
 #endif
-    qtmux->current_pad = pad;
     goto exit;
   }
 
@@ -3288,6 +4237,35 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
     GST_BUFFER_DTS (buf) = GST_BUFFER_DTS (last_buf);
   }
 
+  buffer_size = gst_buffer_get_size (last_buf);
+
+  if (qtmux->mux_mode == GST_QT_MUX_MODE_ROBUST_RECORDING_PREFILL) {
+    guint required_buffer_size = prefill_get_sample_size (qtmux, pad);
+    guint fill_size = required_buffer_size - buffer_size;
+    GstMemory *mem;
+    GstMapInfo map;
+
+    if (required_buffer_size < buffer_size) {
+      GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL),
+          ("Sample size %u bigger than expected maximum %u", buffer_size,
+              required_buffer_size));
+      goto bail;
+    }
+
+    if (fill_size > 0) {
+      GST_DEBUG_OBJECT (qtmux,
+          "Padding buffer by %u bytes to reach required %u bytes", fill_size,
+          required_buffer_size);
+      mem = gst_allocator_alloc (NULL, fill_size, NULL);
+      gst_memory_map (mem, &map, GST_MAP_WRITE);
+      memset (map.data, 0, map.size);
+      gst_memory_unmap (mem, &map);
+      last_buf = gst_buffer_make_writable (last_buf);
+      gst_buffer_append_memory (last_buf, mem);
+      buffer_size = required_buffer_size;
+    }
+  }
+
   /* 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
@@ -3326,20 +4304,33 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
 
   /* fragments only deal with 1 buffer == 1 chunk (== 1 sample) */
   if (pad->sample_size && !qtmux->fragment_sequence) {
+    GstClockTime expected_timestamp;
+
     /* Constant size packets: usually raw audio (with many samples per
        buffer (= chunk)), but can also be fixed-packet-size codecs like ADPCM
      */
     sample_size = pad->sample_size;
-    if (gst_buffer_get_size (last_buf) % sample_size != 0)
+    if (buffer_size % sample_size != 0)
       goto fragmented_sample;
+
     /* note: qt raw audio storage warps it implicitly into a timewise
-     * perfect stream, discarding buffer times */
+     * perfect stream, discarding buffer times.
+     * If the difference between the current PTS and the expected one
+     * becomes too big, we error out: there was a gap and we have no way to
+     * represent that, causing A/V sync to be off */
+    expected_timestamp =
+        gst_util_uint64_scale (pad->sample_offset, GST_SECOND,
+        atom_trak_get_timescale (pad->trak)) + pad->first_ts;
+    if (ABSDIFF (GST_BUFFER_DTS_OR_PTS (last_buf),
+            expected_timestamp) > qtmux->max_raw_audio_drift)
+      goto raw_audio_timestamp_drift;
+
     if (GST_BUFFER_DURATION (last_buf) != GST_CLOCK_TIME_NONE) {
       nsamples = gst_util_uint64_scale_round (GST_BUFFER_DURATION (last_buf),
           atom_trak_get_timescale (pad->trak), GST_SECOND);
       duration = GST_BUFFER_DURATION (last_buf);
     } else {
-      nsamples = gst_buffer_get_size (last_buf) / sample_size;
+      nsamples = buffer_size / sample_size;
       duration =
           gst_util_uint64_scale_round (nsamples, GST_SECOND,
           atom_trak_get_timescale (pad->trak));
@@ -3347,12 +4338,14 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
 
     /* timescale = samplerate */
     scaled_duration = 1;
-    pad->last_dts += duration;
+    pad->last_dts =
+        pad->first_dts + gst_util_uint64_scale_round (pad->sample_offset +
+        nsamples, GST_SECOND, atom_trak_get_timescale (pad->trak));
   } else {
     nsamples = 1;
-    sample_size = gst_buffer_get_size (last_buf);
-    if ((buf && GST_BUFFER_DTS_IS_VALID (buf))
-        || GST_BUFFER_DTS_IS_VALID (last_buf)) {
+    sample_size = buffer_size;
+    if (!pad->sparse && ((buf && GST_BUFFER_DTS_IS_VALID (buf))
+            || GST_BUFFER_DTS_IS_VALID (last_buf))) {
       gint64 scaled_dts;
       if (buf && GST_BUFFER_DTS_IS_VALID (buf)) {
         pad->last_dts = GST_BUFFER_DTS (buf);
@@ -3379,11 +4372,7 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
     }
   }
 
-  /* for computing the avg bitrate */
-  pad->total_bytes += gst_buffer_get_size (last_buf);
-  pad->total_duration += duration;
-  qtmux->current_chunk_size += gst_buffer_get_size (last_buf);
-  qtmux->current_chunk_duration += duration;
+  gst_qt_mux_register_buffer_in_chunk (qtmux, pad, buffer_size, duration);
 
   chunk_offset = qtmux->current_chunk_offset;
 
@@ -3430,10 +4419,47 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
     qtmux->longest_chunk = qtmux->current_chunk_duration;
   }
 
+  if (qtmux->mux_mode == GST_QT_MUX_MODE_ROBUST_RECORDING_PREFILL) {
+    const TrakBufferEntryInfo *sample_entry;
+    guint64 block_idx = prefill_get_block_index (qtmux, pad);
+
+    if (block_idx >= pad->samples->len) {
+      GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL),
+          ("Unexpected sample %" G_GUINT64_FORMAT ", expected up to %u",
+              block_idx, pad->samples->len));
+      goto bail;
+    }
+
+    /* Check if all values are as expected */
+    sample_entry =
+        &g_array_index (pad->samples, TrakBufferEntryInfo, block_idx);
+
+    if (chunk_offset < sample_entry->chunk_offset) {
+      guint fill_size = sample_entry->chunk_offset - chunk_offset;
+      GstBuffer *fill_buf;
+
+      fill_buf = gst_buffer_new_allocate (NULL, fill_size, NULL);
+      gst_buffer_memset (fill_buf, 0, 0, fill_size);
+
+      ret = gst_qt_mux_send_buffer (qtmux, fill_buf, &qtmux->mdat_size, TRUE);
+      if (ret != GST_FLOW_OK)
+        goto bail;
+      qtmux->current_chunk_offset = chunk_offset = sample_entry->chunk_offset;
+      qtmux->current_chunk_size = buffer_size;
+      qtmux->current_chunk_duration = duration;
+    } else if (chunk_offset != sample_entry->chunk_offset) {
+      GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL),
+          ("Unexpected chunk offset %" G_GUINT64_FORMAT ", expected up to %"
+              G_GUINT64_FORMAT, chunk_offset, sample_entry->chunk_offset));
+      goto bail;
+    }
+  }
+
   /* now we go and register this buffer/sample all over */
   ret = gst_qt_mux_register_and_push_sample (qtmux, pad, last_buf,
       buf == NULL, nsamples, last_dts, scaled_duration, sample_size,
       chunk_offset, sync, TRUE, pts_offset);
+  pad->sample_offset += nsamples;
 
   /* if this is sparse and we have a next buffer, check if there is any gap
    * between them to insert an empty sample */
@@ -3443,19 +4469,23 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
       gint64 empty_duration =
           GST_BUFFER_PTS (buf) - (GST_BUFFER_PTS (last_buf) + duration);
       gint64 empty_duration_scaled;
+      guint empty_size;
 
       empty_buf = pad->create_empty_buffer (pad, empty_duration);
 
-      empty_duration_scaled = gst_util_uint64_scale_round (empty_duration,
-          atom_trak_get_timescale (pad->trak), GST_SECOND);
+      pad->last_dts = GST_BUFFER_PTS (buf);
+      empty_duration_scaled = gst_util_uint64_scale_round (pad->last_dts,
+          atom_trak_get_timescale (pad->trak), GST_SECOND)
+          - (last_dts + scaled_duration);
+      empty_size = gst_buffer_get_size (empty_buf);
 
-      pad->total_bytes += gst_buffer_get_size (empty_buf);
-      pad->total_duration += duration;
+      gst_qt_mux_register_buffer_in_chunk (qtmux, pad, empty_size,
+          empty_duration);
 
       ret =
           gst_qt_mux_register_and_push_sample (qtmux, pad, empty_buf, FALSE, 1,
           last_dts + scaled_duration, empty_duration_scaled,
-          gst_buffer_get_size (empty_buf), chunk_offset, sync, TRUE, 0);
+          empty_size, chunk_offset, sync, TRUE, 0);
     } else {
       /* our only case currently is tx3g subtitles, so there is no reason to fill this yet */
       g_assert_not_reached ();
@@ -3481,6 +4511,18 @@ fragmented_sample:
         ("Audio buffer contains fragmented sample."));
     goto bail;
   }
+raw_audio_timestamp_drift:
+  {
+    /* TODO: Could in theory be implemented with edit lists */
+    GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL),
+        ("Audio stream timestamps are drifting (got %" GST_TIME_FORMAT
+            ", expected %" GST_TIME_FORMAT "). This is not supported yet!",
+            GST_TIME_ARGS (GST_BUFFER_DTS_OR_PTS (last_buf)),
+            GST_TIME_ARGS (gst_util_uint64_scale (pad->sample_offset,
+                    GST_SECOND,
+                    atom_trak_get_timescale (pad->trak)) + pad->first_ts)));
+    goto bail;
+  }
 no_pts:
   {
     GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL), ("Buffer has no PTS."));
@@ -3554,9 +4596,64 @@ find_best_pad (GstQTMux * qtmux, GstCollectPads * pads)
   GSList *walk;
   GstQTPad *best_pad = NULL;
 
-  if (qtmux->current_pad &&
-      (qtmux->interleave_bytes != 0 || qtmux->interleave_time != 0) &&
-      (qtmux->interleave_bytes == 0
+  if (qtmux->mux_mode == GST_QT_MUX_MODE_ROBUST_RECORDING_PREFILL) {
+    guint64 smallest_offset = G_MAXUINT64;
+    guint64 chunk_offset = 0;
+
+    for (walk = qtmux->collect->data; walk; walk = g_slist_next (walk)) {
+      GstCollectData *cdata = (GstCollectData *) walk->data;
+      GstQTPad *qtpad = (GstQTPad *) cdata;
+      const TrakBufferEntryInfo *sample_entry;
+      guint64 block_idx, current_block_idx;
+      guint64 chunk_offset_offset = 0;
+      GstBuffer *tmp_buf =
+          gst_collect_pads_peek (pads, (GstCollectData *) qtpad);
+
+      /* Check for EOS pads and just skip them */
+      if (!tmp_buf && !qtpad->last_buf && (!qtpad->raw_audio_adapter
+              || gst_adapter_available (qtpad->raw_audio_adapter) == 0))
+        continue;
+      if (tmp_buf)
+        gst_buffer_unref (tmp_buf);
+
+      /* Find the exact offset where the next sample of this track is supposed
+       * to be written at */
+      block_idx = current_block_idx = prefill_get_block_index (qtmux, qtpad);
+      sample_entry =
+          &g_array_index (qtpad->samples, TrakBufferEntryInfo, block_idx);
+      while (block_idx > 0) {
+        const TrakBufferEntryInfo *tmp =
+            &g_array_index (qtpad->samples, TrakBufferEntryInfo, block_idx - 1);
+
+        if (tmp->chunk_offset != sample_entry->chunk_offset)
+          break;
+        chunk_offset_offset += tmp->size * tmp->nsamples;
+        block_idx--;
+      }
+
+      /* Except for the previously selected pad being EOS we always have
+       *  qtmux->current_chunk_offset + qtmux->current_chunk_size
+       *    ==
+       *  sample_entry->chunk_offset + chunk_offset_offset
+       * for the best pad. Instead of checking that, we just return the
+       * pad that has the smallest offset for the next to-be-written sample.
+       */
+      if (sample_entry->chunk_offset + chunk_offset_offset < smallest_offset) {
+        smallest_offset = sample_entry->chunk_offset + chunk_offset_offset;
+        best_pad = qtpad;
+        chunk_offset = sample_entry->chunk_offset;
+      }
+    }
+
+    if (chunk_offset != qtmux->current_chunk_offset) {
+      qtmux->current_pad = NULL;
+    }
+
+    return best_pad;
+  }
+
+  if (qtmux->current_pad && (qtmux->interleave_bytes != 0
+          || qtmux->interleave_time != 0) && (qtmux->interleave_bytes == 0
           || qtmux->current_chunk_size <= qtmux->interleave_bytes)
       && (qtmux->interleave_time == 0
           || qtmux->current_chunk_duration <= qtmux->interleave_time)
@@ -3649,9 +4746,16 @@ gst_qt_mux_collected (GstCollectPads * pads, gpointer user_data)
 
   /* clipping already converted to running time */
   if (best_pad != NULL) {
-    GstBuffer *buf = gst_collect_pads_pop (pads, (GstCollectData *) best_pad);
+    GstBuffer *buf = NULL;
+
+    if (qtmux->mux_mode != GST_QT_MUX_MODE_ROBUST_RECORDING_PREFILL ||
+        best_pad->raw_audio_adapter == NULL ||
+        best_pad->raw_audio_adapter_pts == GST_CLOCK_TIME_NONE)
+      buf = gst_collect_pads_pop (pads, (GstCollectData *) best_pad);
+
+    g_assert (buf || best_pad->last_buf || (best_pad->raw_audio_adapter
+            && gst_adapter_available (best_pad->raw_audio_adapter) > 0));
 
-    g_assert (buf || best_pad->last_buf);
     if (buf)
       gst_qt_pad_adjust_buffer_dts (qtmux, best_pad,
           (GstCollectData *) best_pad, &buf);
@@ -3709,8 +4813,7 @@ gst_qt_mux_audio_sink_set_caps (GstQTPad * qtpad, GstCaps * caps)
   AtomInfo *ext_atom = NULL;
   gint constant_size = 0;
   const gchar *stream_format;
-
-  qtpad->prepare_buf_func = NULL;
+  guint32 timescale;
 
   /* does not go well to renegotiate stream mid-way, unless
    * the old caps are a subset of the new one (this means upstream
@@ -3729,11 +4832,15 @@ gst_qt_mux_audio_sink_set_caps (GstQTPad * qtpad, GstCaps * caps)
         "pad %s accepted renegotiation to %" GST_PTR_FORMAT " from %"
         GST_PTR_FORMAT, GST_PAD_NAME (pad), caps, current_caps);
     gst_caps_unref (current_caps);
+
+    return TRUE;
   }
 
   GST_DEBUG_OBJECT (qtmux, "%s:%s, caps=%" GST_PTR_FORMAT,
       GST_DEBUG_PAD_NAME (pad), caps);
 
+  qtpad->prepare_buf_func = NULL;
+
   format = qtmux_klass->format;
   structure = gst_caps_get_structure (caps, 0);
   mimetype = gst_structure_get_name (structure);
@@ -3786,10 +4893,12 @@ gst_qt_mux_audio_sink_set_caps (GstQTPad * qtpad, GstCaps * caps)
               qtpad->max_bitrate);
         }
         if (layer == 1) {
-          g_warn_if_fail (format == GST_QT_MUX_FORMAT_MP4);
+          g_warn_if_fail (format == GST_QT_MUX_FORMAT_MP4
+              || format == GST_QT_MUX_FORMAT_QT);
           entry.samples_per_packet = 384;
         } else if (layer == 2) {
-          g_warn_if_fail (format == GST_QT_MUX_FORMAT_MP4);
+          g_warn_if_fail (format == GST_QT_MUX_FORMAT_MP4
+              || format == GST_QT_MUX_FORMAT_QT);
           entry.samples_per_packet = 1152;
         } else {
           g_warn_if_fail (layer == 3);
@@ -4027,14 +5136,18 @@ gst_qt_mux_audio_sink_set_caps (GstQTPad * qtpad, GstCaps * caps)
   if (!entry.fourcc)
     goto refuse_caps;
 
+  timescale = gst_qt_mux_pad_get_timescale (GST_QT_MUX_PAD_CAST (pad));
+  if (!timescale && qtmux->trak_timescale)
+    timescale = qtmux->trak_timescale;
+  else if (!timescale)
+    timescale = entry.sample_rate;
+
   /* ok, set the pad info accordingly */
   qtpad->fourcc = entry.fourcc;
   qtpad->sample_size = constant_size;
   qtpad->trak_ste =
       (SampleTableEntry *) atom_trak_set_audio_type (qtpad->trak,
-      qtmux->context, &entry,
-      qtmux->trak_timescale ? qtmux->trak_timescale : entry.sample_rate,
-      ext_atom, constant_size);
+      qtmux->context, &entry, timescale, ext_atom, constant_size);
 
   gst_object_unref (qtmux);
   return TRUE;
@@ -4076,8 +5189,7 @@ gst_qt_mux_video_sink_set_caps (GstQTPad * qtpad, GstCaps * caps)
   GList *ext_atom_list = NULL;
   gboolean sync = FALSE;
   int par_num, par_den;
-
-  qtpad->prepare_buf_func = NULL;
+  const gchar *multiview_mode;
 
   /* does not go well to renegotiate stream mid-way, unless
    * the old caps are a subset of the new one (this means upstream
@@ -4096,11 +5208,15 @@ gst_qt_mux_video_sink_set_caps (GstQTPad * qtpad, GstCaps * caps)
         "pad %s accepted renegotiation to %" GST_PTR_FORMAT " from %"
         GST_PTR_FORMAT, GST_PAD_NAME (pad), caps, current_caps);
     gst_caps_unref (current_caps);
+
+    return TRUE;
   }
 
   GST_DEBUG_OBJECT (qtmux, "%s:%s, caps=%" GST_PTR_FORMAT,
       GST_DEBUG_PAD_NAME (pad), caps);
 
+  qtpad->prepare_buf_func = NULL;
+
   format = qtmux_klass->format;
   structure = gst_caps_get_structure (caps, 0);
   mimetype = gst_structure_get_name (structure);
@@ -4131,12 +5247,48 @@ gst_qt_mux_video_sink_set_caps (GstQTPad * qtpad, GstCaps * caps)
 
   /* bring frame numerator into a range that ensures both reasonable resolution
    * as well as a fair duration */
-  rate = qtmux->trak_timescale ?
-      qtmux->trak_timescale : atom_framerate_to_timescale (framerate_num,
-      framerate_den);
+  qtpad->expected_sample_duration_n = framerate_num;
+  qtpad->expected_sample_duration_d = framerate_den;
+
+  rate = gst_qt_mux_pad_get_timescale (GST_QT_MUX_PAD_CAST (pad));
+  if (!rate && qtmux->trak_timescale)
+    rate = qtmux->trak_timescale;
+  else if (!rate)
+    rate = atom_framerate_to_timescale (framerate_num, framerate_den);
+
   GST_DEBUG_OBJECT (qtmux, "Rate of video track selected: %" G_GUINT32_FORMAT,
       rate);
 
+  multiview_mode = gst_structure_get_string (structure, "multiview-mode");
+  if (multiview_mode && !qtpad->trak->mdia.minf.stbl.svmi) {
+    GstVideoMultiviewMode mode;
+    GstVideoMultiviewFlags flags = 0;
+
+    mode = gst_video_multiview_mode_from_caps_string (multiview_mode);
+    gst_structure_get_flagset (structure, "multiview-flags", &flags, NULL);
+    switch (mode) {
+      case GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE:
+        qtpad->trak->mdia.minf.stbl.svmi =
+            atom_svmi_new (0,
+            flags & GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST);
+        break;
+      case GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED:
+        qtpad->trak->mdia.minf.stbl.svmi =
+            atom_svmi_new (1,
+            flags & GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST);
+        break;
+      case GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME:
+        qtpad->trak->mdia.minf.stbl.svmi =
+            atom_svmi_new (2,
+            flags & GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST);
+        break;
+      default:
+        GST_DEBUG_OBJECT (qtmux, "Unsupported multiview-mode %s",
+            multiview_mode);
+        break;
+    }
+  }
+
   /* set common properties */
   entry.width = width;
   entry.height = height;
@@ -4315,6 +5467,9 @@ gst_qt_mux_video_sink_set_caps (GstQTPad * qtpad, GstCaps * caps)
   } else if (strcmp (mimetype, "image/jpeg") == 0) {
     entry.fourcc = FOURCC_jpeg;
     sync = FALSE;
+  } else if (strcmp (mimetype, "image/png") == 0) {
+    entry.fourcc = FOURCC_png;
+    sync = FALSE;
   } else if (strcmp (mimetype, "image/x-j2c") == 0 ||
       strcmp (mimetype, "image/x-jpc") == 0) {
     const gchar *colorspace;
@@ -4349,8 +5504,9 @@ gst_qt_mux_video_sink_set_caps (GstQTPad * qtpad, GstCaps * caps)
       goto refuse_caps;
     }
   } else if (strcmp (mimetype, "video/x-vp8") == 0) {
-    entry.fourcc = FOURCC_VP80;
-    sync = FALSE;
+    entry.fourcc = FOURCC_vp08;
+  } else if (strcmp (mimetype, "video/x-vp9") == 0) {
+    entry.fourcc = FOURCC_vp09;
   } else if (strcmp (mimetype, "video/x-dirac") == 0) {
     entry.fourcc = FOURCC_drac;
   } else if (strcmp (mimetype, "video/x-qt-part") == 0) {
@@ -4560,9 +5716,10 @@ refuse_caps:
   }
 refuse_renegotiation:
   {
-    GST_WARNING_OBJECT (qtmux,
-        "pad %s refused renegotiation to %" GST_PTR_FORMAT, GST_PAD_NAME (pad),
-        caps);
+    GST_ELEMENT_WARNING (qtmux, STREAM, FORMAT,
+        ("Can't change input format at runtime."),
+        ("pad %s refused renegotiation to %" GST_PTR_FORMAT, GST_PAD_NAME (pad),
+            caps));
     gst_object_unref (qtmux);
     return FALSE;
   }
@@ -4593,6 +5750,8 @@ gst_qt_mux_subtitle_sink_set_caps (GstQTPad * qtpad, GstCaps * caps)
         "pad %s accepted renegotiation to %" GST_PTR_FORMAT " from %"
         GST_PTR_FORMAT, GST_PAD_NAME (pad), caps, current_caps);
     gst_caps_unref (current_caps);
+
+    return TRUE;
   }
 
   GST_DEBUG_OBJECT (qtmux, "%s:%s, caps=%" GST_PTR_FORMAT,
@@ -4822,7 +5981,9 @@ gst_qt_mux_request_new_pad (GstElement * element,
   GST_DEBUG_OBJECT (qtmux, "Requested pad: %s", name);
 
   /* create pad and add to collections */
-  newpad = gst_pad_new_from_template (templ, name);
+  newpad =
+      g_object_new (GST_TYPE_QT_MUX_PAD, "name", name, "direction",
+      templ->direction, "template", templ, NULL);
   g_free (name);
   collect_pad = (GstQTPad *)
       gst_collect_pads_add_pad (qtmux->collect, newpad, sizeof (GstQTPad),
@@ -4925,12 +6086,18 @@ gst_qt_mux_get_property (GObject * object,
     case PROP_RESERVED_BYTES_PER_SEC:
       g_value_set_uint (value, qtmux->reserved_bytes_per_sec_per_trak);
       break;
+    case PROP_RESERVED_PREFILL:
+      g_value_set_boolean (value, qtmux->reserved_prefill);
+      break;
     case PROP_INTERLEAVE_BYTES:
       g_value_set_uint64 (value, qtmux->interleave_bytes);
       break;
     case PROP_INTERLEAVE_TIME:
       g_value_set_uint64 (value, qtmux->interleave_time);
       break;
+    case PROP_MAX_RAW_AUDIO_DRIFT:
+      g_value_set_uint64 (value, qtmux->max_raw_audio_drift);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -5008,6 +6175,9 @@ gst_qt_mux_set_property (GObject * object,
     case PROP_RESERVED_BYTES_PER_SEC:
       qtmux->reserved_bytes_per_sec_per_trak = g_value_get_uint (value);
       break;
+    case PROP_RESERVED_PREFILL:
+      qtmux->reserved_prefill = g_value_get_boolean (value);
+      break;
     case PROP_INTERLEAVE_BYTES:
       qtmux->interleave_bytes = g_value_get_uint64 (value);
       qtmux->interleave_bytes_set = TRUE;
@@ -5016,6 +6186,9 @@ gst_qt_mux_set_property (GObject * object,
       qtmux->interleave_time = g_value_get_uint64 (value);
       qtmux->interleave_time_set = TRUE;
       break;
+    case PROP_MAX_RAW_AUDIO_DRIFT:
+      qtmux->max_raw_audio_drift = g_value_get_uint64 (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
diff --git a/gst/isomp4/gstqtmux.h b/gst/isomp4/gstqtmux.h
index bfe74054d..c9ef21ddf 100644
--- a/gst/isomp4/gstqtmux.h
+++ b/gst/isomp4/gstqtmux.h
@@ -100,6 +100,9 @@ struct _GstQTPad
   gboolean sparse;
   /* bitrates */
   guint32 avg_bitrate, max_bitrate;
+  /* expected sample duration */
+  guint expected_sample_duration_n;
+  guint expected_sample_duration_d;
 
   /* for avg bitrate calculation */
   guint64 total_bytes;
@@ -108,12 +111,14 @@ struct _GstQTPad
   GstBuffer *last_buf;
   /* dts of last_buf */
   GstClockTime last_dts;
+  guint64 sample_offset;
 
   /* This is compensate for CTTS */
   GstClockTime dts_adjustment;
 
   /* store the first timestamp for comparing with other streams and
    * know if there are late streams */
+  /* subjected to dts adjustment */
   GstClockTime first_ts;
   GstClockTime first_dts;
 
@@ -146,6 +151,13 @@ struct _GstQTPad
   GstVideoTimeCode *first_tc;
   GstClockTime first_pts;
   guint64 tc_pos;
+
+  /* for keeping track in pre-fill mode */
+  GArray *samples;
+  /* current sample */
+  GstAdapter *raw_audio_adapter;
+  guint64 raw_audio_adapter_offset;
+  GstClockTime raw_audio_adapter_pts;
 };
 
 typedef enum _GstQTMuxState
@@ -161,7 +173,8 @@ typedef enum _GstQtMuxMode {
     GST_QT_MUX_MODE_FRAGMENTED,
     GST_QT_MUX_MODE_FRAGMENTED_STREAMABLE,
     GST_QT_MUX_MODE_FAST_START,
-    GST_QT_MUX_MODE_ROBUST_RECORDING
+    GST_QT_MUX_MODE_ROBUST_RECORDING,
+    GST_QT_MUX_MODE_ROBUST_RECORDING_PREFILL,
 } GstQtMuxMode;
 
 struct _GstQTMux
@@ -193,7 +206,8 @@ struct _GstQTMux
   /* keep track of the largest chunk to fine-tune brands */
   GstClockTime longest_chunk;
 
-  /* Earliest timestamp across all pads/traks */
+  /* Earliest timestamp across all pads/traks
+   * (unadjusted incoming PTS) */
   GstClockTime first_ts;
   /* Last DTS across all pads (= duration) */
   GstClockTime last_dts;
@@ -254,6 +268,8 @@ struct _GstQTMux
   GstClockTime interleave_time;
   gboolean interleave_bytes_set, interleave_time_set;
 
+  GstClockTime max_raw_audio_drift;
+
   /* Reserved minimum MOOV size in bytes
    * This is converted from reserved_max_duration
    * using the bytes/trak/sec estimate */
@@ -271,6 +287,8 @@ struct _GstQTMux
   GstClockTime reserved_moov_update_period;
   GstClockTime muxed_since_last_update;
 
+  gboolean reserved_prefill;
+
   /* for request pad naming */
   guint video_pads, audio_pads, subtitle_pads;
 };
diff --git a/gst/isomp4/gstqtmuxmap.c b/gst/isomp4/gstqtmuxmap.c
index b8e08e08f..4e34e137f 100644
--- a/gst/isomp4/gstqtmuxmap.c
+++ b/gst/isomp4/gstqtmuxmap.c
@@ -192,18 +192,23 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = {
             COMMON_VIDEO_CAPS "; "
             "image/jpeg, "
             COMMON_VIDEO_CAPS_NO_FRAMERATE "; "
+            "image/png, "
+            COMMON_VIDEO_CAPS_NO_FRAMERATE "; "
             "video/x-vp8, "
             COMMON_VIDEO_CAPS "; "
+            "video/x-vp9, "
+            COMMON_VIDEO_CAPS "; "
             "video/x-dirac, "
             COMMON_VIDEO_CAPS "; " "video/x-qt-part, " COMMON_VIDEO_CAPS),
         GST_STATIC_CAPS (PCM_CAPS_FULL "; "
             PCM_CAPS_UNPOSITIONED " ; "
-            MP3_CAPS " ; "
+            MP123_CAPS " ; "
             AAC_CAPS " ; "
+            AC3_CAPS " ; "
             ADPCM_CAPS " ; "
             "audio/x-alaw, " COMMON_AUDIO_CAPS (2, MAX) "; "
             "audio/x-mulaw, " COMMON_AUDIO_CAPS (2, MAX) "; "
-            AMR_CAPS " ; " ALAC_CAPS),
+            AMR_CAPS " ; " ALAC_CAPS " ; " OPUS_CAPS),
       GST_STATIC_CAPS (TEXT_UTF8)}
   ,
   /* ISO 14496-14: mp42 as ISO base media extension
diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c
index f0f8320e2..a6f870f03 100644
--- a/gst/isomp4/qtdemux.c
+++ b/gst/isomp4/qtdemux.c
@@ -101,6 +101,7 @@
 #define ABSDIFF(x, y) ( (x) > (y) ? ((x) - (y)) : ((y) - (x)) )
 
 GST_DEBUG_CATEGORY (qtdemux_debug);
+#define GST_CAT_DEFAULT qtdemux_debug
 
 typedef struct _QtDemuxSegment QtDemuxSegment;
 typedef struct _QtDemuxSample QtDemuxSample;
@@ -906,10 +907,9 @@ gst_qtdemux_handle_src_query (GstPad * pad, GstObject * parent,
 
       res = gst_qtdemux_src_convert (qtdemux, pad,
           src_fmt, src_value, dest_fmt, &dest_value);
-      if (res) {
+      if (res)
         gst_query_set_convert (query, src_fmt, src_value, dest_fmt, dest_value);
-        res = TRUE;
-      }
+
       break;
     }
     case GST_QUERY_FORMATS:
@@ -1626,7 +1626,7 @@ gst_qtdemux_do_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event)
   gboolean flush;
   gboolean update;
   GstSegment seeksegment;
-  guint32 seqnum = 0;
+  guint32 seqnum = GST_SEQNUM_INVALID;
   GstEvent *flush_event;
   gboolean ret;
 
@@ -1654,7 +1654,7 @@ gst_qtdemux_do_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event)
   /* stop streaming, either by flushing or by pausing the task */
   if (flush) {
     flush_event = gst_event_new_flush_start ();
-    if (seqnum)
+    if (seqnum != GST_SEQNUM_INVALID)
       gst_event_set_seqnum (flush_event, seqnum);
     /* unlock upstream pull_range */
     gst_pad_push_event (qtdemux->sinkpad, gst_event_ref (flush_event));
@@ -1691,7 +1691,7 @@ gst_qtdemux_do_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event)
   /* prepare for streaming again */
   if (flush) {
     flush_event = gst_event_new_flush_stop (TRUE);
-    if (seqnum)
+    if (seqnum != GST_SEQNUM_INVALID)
       gst_event_set_seqnum (flush_event, seqnum);
 
     gst_pad_push_event (qtdemux->sinkpad, gst_event_ref (flush_event));
@@ -1704,7 +1704,7 @@ gst_qtdemux_do_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event)
   if (qtdemux->segment.flags & GST_SEEK_FLAG_SEGMENT) {
     GstMessage *msg = gst_message_new_segment_start (GST_OBJECT_CAST (qtdemux),
         qtdemux->segment.format, qtdemux->segment.position);
-    if (seqnum)
+    if (seqnum != GST_SEQNUM_INVALID)
       gst_message_set_seqnum (msg, seqnum);
     gst_element_post_message (GST_ELEMENT_CAST (qtdemux), msg);
   }
@@ -1824,9 +1824,19 @@ index_failed:
   }
 }
 
-/* stream/index return sample that is min/max w.r.t. byte position,
- * time is min/max w.r.t. time of samples,
- * the latter need not be time of the former sample */
+/* Find, for each track, the first sample in coding order that has a file offset >= @byte_pos.
+ *
+ * If @fw is false, the coding order is explored backwards.
+ *
+ * If @set is true, each stream will be moved to its matched sample, or EOS if no matching
+ * sample is found for that track.
+ *
+ * The stream and sample index of the sample with the minimum offset in the direction explored
+ * (see @fw) is returned in the output parameters @_stream and @_index respectively.
+ *
+ * @_time is set to the QTSAMPLE_PTS of the matched sample with the minimum QTSAMPLE_PTS in the
+ * direction explored, which may not always match the QTSAMPLE_PTS of the sample returned in
+ * @_stream and @_index. */
 static void
 gst_qtdemux_find_sample (GstQTDemux * qtdemux, gint64 byte_pos, gboolean fw,
     gboolean set, QtDemuxStream ** _stream, gint * _index, gint64 * _time)
@@ -2093,7 +2103,7 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard)
   qtdemux->offset = 0;
   gst_adapter_clear (qtdemux->adapter);
   gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME);
-  qtdemux->segment_seqnum = 0;
+  qtdemux->segment_seqnum = GST_SEQNUM_INVALID;
 
   if (hard) {
     for (n = 0; n < qtdemux->n_streams; n++) {
@@ -2127,7 +2137,7 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard)
     }
     if (!qtdemux->pending_newsegment) {
       qtdemux->pending_newsegment = gst_event_new_segment (&qtdemux->segment);
-      if (qtdemux->segment_seqnum)
+      if (qtdemux->segment_seqnum != GST_SEQNUM_INVALID)
         gst_event_set_seqnum (qtdemux->pending_newsegment,
             qtdemux->segment_seqnum);
     }
@@ -2552,7 +2562,7 @@ gst_qtdemux_stream_reset (GstQTDemux * qtdemux, QtDemuxStream * stream)
 static void
 gst_qtdemux_stream_free (GstQTDemux * qtdemux, QtDemuxStream * stream)
 {
-  gst_qtdemux_stream_reset(qtdemux, stream);
+  gst_qtdemux_stream_reset (qtdemux, stream);
   gst_tag_list_unref (stream->stream_tags);
   if (stream->pad) {
     gst_element_remove_pad (GST_ELEMENT_CAST (qtdemux), stream->pad);
@@ -3063,7 +3073,11 @@ check_update_duration (GstQTDemux * qtdemux, GstClockTime duration)
             "Updating stream #%d duration to %" GST_TIME_FORMAT, i,
             GST_TIME_ARGS (duration));
         stream->duration = movdur;
-        if (stream->dummy_segment) {
+        /* internal duration tracking state has been updated above, so */
+        /* preserve an open-ended dummy segment rather than repeatedly updating
+         * it and spamming downstream accordingly with segment events */
+        if (stream->dummy_segment &&
+            GST_CLOCK_TIME_IS_VALID (stream->segments[0].duration)) {
           /* Update all dummy values to new duration */
           stream->segments[0].stop_time = duration;
           stream->segments[0].duration = duration;
@@ -4310,6 +4324,7 @@ gst_qtdemux_loop_state_header (GstQTDemux * qtdemux)
       break;
     case FOURCC_mdat:
     case FOURCC_free:
+    case FOURCC_skip:
     case FOURCC_wide:
     case FOURCC_PICT:
     case FOURCC_pnot:
@@ -4778,7 +4793,7 @@ gst_qtdemux_stream_update_segment (GstQTDemux * qtdemux, QtDemuxStream * stream,
   /* now prepare and send the segment */
   if (stream->pad) {
     event = gst_event_new_segment (&stream->segment);
-    if (qtdemux->segment_seqnum) {
+    if (qtdemux->segment_seqnum != GST_SEQNUM_INVALID) {
       gst_event_set_seqnum (event, qtdemux->segment_seqnum);
     }
     gst_pad_push_event (stream->pad, event);
@@ -4825,9 +4840,15 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream,
    * (FIXME: doesn't seem to work so well with ismv and wmv, as no parser; the
    * tfra entries tells us which trun/sample the key unit is in, but we don't
    * make use of this additional information at the moment) */
-  if (qtdemux->fragmented) {
+  if (qtdemux->fragmented && !qtdemux->fragmented_seek_pending) {
     stream->to_sample = G_MAXUINT32;
     return TRUE;
+  } else {
+    /* well, it will be taken care of below */
+    qtdemux->fragmented_seek_pending = FALSE;
+    /* FIXME ideally the do_fragmented_seek can be done right here,
+     * rather than at loop level
+     * (which might even allow handling edit lists in a fragmented file) */
   }
 
   /* We don't need to look for a sample in push-based */
@@ -5143,7 +5164,7 @@ gst_qtdemux_sync_streams (GstQTDemux * demux)
           GST_PAD_NAME (stream->pad));
       stream->sent_eos = TRUE;
       event = gst_event_new_eos ();
-      if (demux->segment_seqnum)
+      if (demux->segment_seqnum != GST_SEQNUM_INVALID)
         gst_event_set_seqnum (event, demux->segment_seqnum);
       gst_pad_push_event (stream->pad, event);
     }
@@ -5613,6 +5634,8 @@ gst_qtdemux_do_fragmented_seek (GstQTDemux * qtdemux)
 
   g_assert (qtdemux->n_streams > 0);
 
+  /* first see if we can determine where to go to using mfra,
+   * before we start clearing things */
   for (i = 0; i < qtdemux->n_streams; i++) {
     const QtDemuxRandomAccessEntry *entry;
     QtDemuxStream *stream;
@@ -5620,24 +5643,6 @@ gst_qtdemux_do_fragmented_seek (GstQTDemux * qtdemux)
 
     stream = qtdemux->streams[i];
 
-    g_free (stream->samples);
-    stream->samples = NULL;
-    stream->n_samples = 0;
-    stream->stbl_index = -1;    /* no samples have yet been parsed */
-    stream->sample_index = -1;
-
-    if (stream->protection_scheme_info) {
-      /* Clear out any old cenc crypto info entries as we'll move to a new moof */
-      if (stream->protection_scheme_type == FOURCC_cenc) {
-        QtDemuxCencSampleSetInfo *info =
-            (QtDemuxCencSampleSetInfo *) stream->protection_scheme_info;
-        if (info->crypto_info) {
-          g_ptr_array_free (info->crypto_info, TRUE);
-          info->crypto_info = NULL;
-        }
-      }
-    }
-
     if (stream->ra_entries == NULL)
       continue;
 
@@ -5663,11 +5668,37 @@ gst_qtdemux_do_fragmented_seek (GstQTDemux * qtdemux)
       best_entry = entry;
   }
 
+  /* no luck, will handle seek otherwise */
   if (best_entry == NULL) {
     GST_OBJECT_UNLOCK (qtdemux);
     return FALSE;
   }
 
+  /* ok, now we can prepare for processing as of located moof */
+  for (i = 0; i < qtdemux->n_streams; i++) {
+    QtDemuxStream *stream;
+
+    stream = qtdemux->streams[i];
+
+    g_free (stream->samples);
+    stream->samples = NULL;
+    stream->n_samples = 0;
+    stream->stbl_index = -1;    /* no samples have yet been parsed */
+    stream->sample_index = -1;
+
+    if (stream->protection_scheme_info) {
+      /* Clear out any old cenc crypto info entries as we'll move to a new moof */
+      if (stream->protection_scheme_type == FOURCC_cenc) {
+        QtDemuxCencSampleSetInfo *info =
+            (QtDemuxCencSampleSetInfo *) stream->protection_scheme_info;
+        if (info->crypto_info) {
+          g_ptr_array_free (info->crypto_info, TRUE);
+          info->crypto_info = NULL;
+        }
+      }
+    }
+  }
+
   GST_INFO_OBJECT (qtdemux, "seek to %" GST_TIME_FORMAT ", best fragment "
       "moof offset: %" G_GUINT64_FORMAT ", ts %" GST_TIME_FORMAT,
       GST_TIME_ARGS (qtdemux->streams[0]->time_position),
@@ -5703,9 +5734,12 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux)
 
   if (qtdemux->fragmented_seek_pending) {
     GST_INFO_OBJECT (qtdemux, "pending fragmented seek");
-    gst_qtdemux_do_fragmented_seek (qtdemux);
-    GST_INFO_OBJECT (qtdemux, "fragmented seek done!");
-    qtdemux->fragmented_seek_pending = FALSE;
+    if (gst_qtdemux_do_fragmented_seek (qtdemux)) {
+      GST_INFO_OBJECT (qtdemux, "fragmented seek done!");
+      qtdemux->fragmented_seek_pending = FALSE;
+    } else {
+      GST_INFO_OBJECT (qtdemux, "fragmented seek still pending");
+    }
   }
 
   /* Figure out the next stream sample to output, min_time is expressed in
@@ -5788,8 +5822,10 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux)
       GST_TIME_ARGS (dts), GST_TIME_ARGS (pts), GST_TIME_ARGS (duration));
 
   if (G_UNLIKELY (empty)) {
-    /* empty segment, push a gap and move to the next one */
-    gst_pad_push_event (stream->pad, gst_event_new_gap (pts, duration));
+    /* empty segment, push a gap if there's a second or more
+     * difference and move to the next one */
+    if ((pts + duration - stream->segment.position) >= GST_SECOND)
+      gst_pad_push_event (stream->pad, gst_event_new_gap (pts, duration));
     stream->segment.position = pts + duration;
     goto next;
   }
@@ -5997,7 +6033,7 @@ pause:
           message = gst_message_new_segment_done (GST_OBJECT_CAST (qtdemux),
               GST_FORMAT_TIME, stop);
           event = gst_event_new_segment_done (GST_FORMAT_TIME, stop);
-          if (qtdemux->segment_seqnum) {
+          if (qtdemux->segment_seqnum != GST_SEQNUM_INVALID) {
             gst_message_set_seqnum (message, qtdemux->segment_seqnum);
             gst_event_set_seqnum (event, qtdemux->segment_seqnum);
           }
@@ -6013,7 +6049,7 @@ pause:
               GST_FORMAT_TIME, qtdemux->segment.start);
           event = gst_event_new_segment_done (GST_FORMAT_TIME,
               qtdemux->segment.start);
-          if (qtdemux->segment_seqnum) {
+          if (qtdemux->segment_seqnum != GST_SEQNUM_INVALID) {
             gst_message_set_seqnum (message, qtdemux->segment_seqnum);
             gst_event_set_seqnum (event, qtdemux->segment_seqnum);
           }
@@ -6025,7 +6061,7 @@ pause:
 
         GST_LOG_OBJECT (qtdemux, "Sending EOS at end of segment");
         event = gst_event_new_eos ();
-        if (qtdemux->segment_seqnum)
+        if (qtdemux->segment_seqnum != GST_SEQNUM_INVALID)
           gst_event_set_seqnum (event, qtdemux->segment_seqnum);
         gst_qtdemux_push_event (qtdemux, event);
       }
@@ -6167,7 +6203,7 @@ qtdemux_seek_offset (GstQTDemux * demux, guint64 offset)
   /* store seqnum to drop flush events, they don't need to reach downstream */
   demux->offset_seek_seqnum = gst_event_get_seqnum (event);
   res = gst_pad_push_event (demux->sinkpad, event);
-  demux->offset_seek_seqnum = 0;
+  demux->offset_seek_seqnum = GST_SEQNUM_INVALID;
 
   return res;
 }
@@ -6558,7 +6594,7 @@ gst_qtdemux_process_adapter (GstQTDemux * demux, gboolean force)
               if (!demux->pending_newsegment) {
                 demux->pending_newsegment =
                     gst_event_new_segment (&demux->segment);
-                if (demux->segment_seqnum)
+                if (demux->segment_seqnum != GST_SEQNUM_INVALID)
                   gst_event_set_seqnum (demux->pending_newsegment,
                       demux->segment_seqnum);
               }
@@ -6679,7 +6715,7 @@ gst_qtdemux_process_adapter (GstQTDemux * demux, gboolean force)
                 GST_DEBUG_OBJECT (demux, "new pending_newsegment");
                 demux->pending_newsegment =
                     gst_event_new_segment (&demux->segment);
-                if (demux->segment_seqnum)
+                if (demux->segment_seqnum != GST_SEQNUM_INVALID)
                   gst_event_set_seqnum (demux->pending_newsegment,
                       demux->segment_seqnum);
               }
@@ -6702,8 +6738,9 @@ gst_qtdemux_process_adapter (GstQTDemux * demux, gboolean force)
             case FOURCC_styp:
               /* [styp] is like a [ftyp], but in fragment header. We ignore it for now
                * FALLTHROUGH */
+            case FOURCC_skip:
             case FOURCC_free:
-              /* [free] is a padding atom */
+              /* [free] and [skip] are padding atoms */
               GST_DEBUG_OBJECT (demux,
                   "Skipping fourcc while parsing header : %" GST_FOURCC_FORMAT,
                   GST_FOURCC_ARGS (fourcc));
@@ -7484,7 +7521,27 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer,
       case FOURCC_meta:
       {
         GST_DEBUG_OBJECT (qtdemux, "parsing meta atom");
-        qtdemux_parse_container (qtdemux, node, buffer + 12, end);
+
+        /* You are reading this correctly. QTFF specifies that the
+         * metadata atom is a short atom, whereas ISO BMFF specifies
+         * it's a full atom. But since so many people are doing things
+         * differently, we actually peek into the atom to see which
+         * variant it is */
+        if (length < 16) {
+          GST_LOG_OBJECT (qtdemux, "skipping small %" GST_FOURCC_FORMAT " box",
+              GST_FOURCC_ARGS (fourcc));
+          break;
+        }
+        if (QT_FOURCC (buffer + 12) == FOURCC_hdlr) {
+          /* Variant 1: What QTFF specifies. 'meta' is a short header which
+           * starts with a 'hdlr' atom */
+          qtdemux_parse_container (qtdemux, node, buffer + 8, end);
+        } else if (QT_UINT32 (buffer + 8) == 0x00000000) {
+          /* Variant 2: What ISO BMFF specifies. 'meta' is a _full_ atom
+           * with version/flags both set to zero */
+          qtdemux_parse_container (qtdemux, node, buffer + 12, end);
+        } else
+          GST_WARNING_OBJECT (qtdemux, "Unknown 'meta' atom format");
         break;
       }
       case FOURCC_mp4s:
@@ -7746,7 +7803,8 @@ gst_qtdemux_configure_stream (GstQTDemux * qtdemux, QtDemuxStream * stream)
      * qt does not have a fixed framerate. */
     gboolean fps_available = TRUE;
 
-    if ((stream->n_samples == 1) && (stream->first_duration == 0)) {
+    if ((stream->n_samples == 1 && stream->first_duration == 0)
+        || (qtdemux->fragmented && stream->n_samples_moof == 1)) {
       /* still frame */
       CUR_STREAM (stream)->fps_n = 0;
       CUR_STREAM (stream)->fps_d = 1;
@@ -9569,18 +9627,13 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
   GNode *stsd;
   GNode *mp4a;
   GNode *mp4v;
-  GNode *wave;
   GNode *esds;
-  GNode *pasp;
-  GNode *colr;
   GNode *tref;
   GNode *udta;
   GNode *svmi;
-  GNode *fiel;
 
   QtDemuxStream *stream = NULL;
   gboolean new_stream = FALSE;
-  gchar *codec = NULL;
   const guint8 *stsd_data;
   const guint8 *stsd_entry_data;
   guint remaining_stsd_len;
@@ -9591,7 +9644,6 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
   guint32 tkhd_flags = 0;
   guint8 tkhd_version = 0;
   guint32 w = 0, h = 0;
-  guint32 fourcc;
   guint value_size, stsd_len, len;
   guint32 track_id;
   guint32 dummy;
@@ -9623,7 +9675,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
     }
 
     /* reset reused stream */
-    gst_qtdemux_stream_reset(qtdemux, stream);
+    gst_qtdemux_stream_reset (qtdemux, stream);
   }
   /* need defaults for fragments */
   qtdemux_parse_trex (qtdemux, stream, &dummy, &dummy, &dummy);
@@ -9831,6 +9883,8 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
   stsd_entry_data = stsd_data + 16;
   remaining_stsd_len = stsd_len - 16;
   for (stsd_index = 0; stsd_index < stsd_entry_count; stsd_index++) {
+    guint32 fourcc;
+    gchar *codec = NULL;
     QtDemuxStreamStsdEntry *entry = &stream->stsd_entries[stsd_index];
 
     /* and that entry should fit within stsd */
@@ -9856,6 +9910,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
     }
 
     if (stream->subtype == FOURCC_vide) {
+      GNode *colr;
+      GNode *fiel;
+      GNode *pasp;
       gboolean gray;
       gint depth, palette_size, palette_count;
       guint32 *palette_data = NULL;
@@ -10738,6 +10795,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
           GST_FOURCC_ARGS (fourcc), entry->caps);
 
     } else if (stream->subtype == FOURCC_soun) {
+      GNode *wave;
       int version, samplesize;
       guint16 compression_id;
       gboolean amrwb = FALSE;
@@ -11728,15 +11786,15 @@ gst_qtdemux_guess_bitrate (GstQTDemux * qtdemux)
         /* retrieve bitrate, prefer avg then max */
         bitrate = 0;
         if (qtdemux->streams[i]->stream_tags) {
-          gst_tag_list_get_uint (qtdemux->streams[i]->stream_tags,
-              GST_TAG_MAXIMUM_BITRATE, &bitrate);
-          GST_DEBUG_OBJECT (qtdemux, "max-bitrate: %u", bitrate);
-          gst_tag_list_get_uint (qtdemux->streams[i]->stream_tags,
-              GST_TAG_NOMINAL_BITRATE, &bitrate);
-          GST_DEBUG_OBJECT (qtdemux, "nominal-bitrate: %u", bitrate);
-          gst_tag_list_get_uint (qtdemux->streams[i]->stream_tags,
-              GST_TAG_BITRATE, &bitrate);
-          GST_DEBUG_OBJECT (qtdemux, "bitrate: %u", bitrate);
+          if (gst_tag_list_get_uint (qtdemux->streams[i]->stream_tags,
+                  GST_TAG_MAXIMUM_BITRATE, &bitrate))
+            GST_DEBUG_OBJECT (qtdemux, "max-bitrate: %u", bitrate);
+          if (gst_tag_list_get_uint (qtdemux->streams[i]->stream_tags,
+                  GST_TAG_NOMINAL_BITRATE, &bitrate))
+            GST_DEBUG_OBJECT (qtdemux, "nominal-bitrate: %u", bitrate);
+          if (gst_tag_list_get_uint (qtdemux->streams[i]->stream_tags,
+                  GST_TAG_BITRATE, &bitrate))
+            GST_DEBUG_OBJECT (qtdemux, "bitrate: %u", bitrate);
         }
         if (bitrate)
           sum_bitrate += bitrate;
@@ -11884,7 +11942,7 @@ qtdemux_expose_streams (GstQTDemux * qtdemux)
     GstEvent *event;
 
     event = gst_event_new_eos ();
-    if (qtdemux->segment_seqnum)
+    if (qtdemux->segment_seqnum != GST_SEQNUM_INVALID)
       gst_event_set_seqnum (event, qtdemux->segment_seqnum);
 
     gst_pad_push_event (oldpad, event);
@@ -13467,7 +13525,7 @@ gst_qtdemux_handle_esds (GstQTDemux * qtdemux, QtDemuxStream * stream,
     case 0x69:                 /* MPEG-2 BC audio */
     case 0x6B:                 /* MPEG-1 audio */
       caps = gst_caps_new_simple ("audio/mpeg",
-          "mpegversion", G_TYPE_INT, 1, "parsed", G_TYPE_BOOLEAN, TRUE, NULL);
+          "mpegversion", G_TYPE_INT, 1, NULL);
       codec_name = "MPEG-1 audio";
       break;
     case 0x6A:                 /* MPEG-1 */
@@ -13577,7 +13635,7 @@ qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
   GstVideoFormat format = GST_VIDEO_FORMAT_UNKNOWN;
 
   switch (fourcc) {
-    case GST_MAKE_FOURCC ('p', 'n', 'g', ' '):
+    case FOURCC_png:
       _codec ("PNG still images");
       caps = gst_caps_new_empty_simple ("image/png");
       break;
@@ -13918,9 +13976,14 @@ qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
       caps = gst_caps_from_string ("video/x-dnxhd");
       break;
     case FOURCC_VP80:
+    case FOURCC_vp08:
       _codec ("On2 VP8");
       caps = gst_caps_from_string ("video/x-vp8");
       break;
+    case FOURCC_vp09:
+      _codec ("Google VP9");
+      caps = gst_caps_from_string ("video/x-vp9");
+      break;
     case FOURCC_apcs:
       _codec ("Apple ProRes LT");
       caps =
diff --git a/gst/isomp4/qtdemux.h b/gst/isomp4/qtdemux.h
index ebd725871..ad4da3ef2 100644
--- a/gst/isomp4/qtdemux.h
+++ b/gst/isomp4/qtdemux.h
@@ -28,9 +28,6 @@
 
 G_BEGIN_DECLS
 
-GST_DEBUG_CATEGORY_EXTERN (qtdemux_debug);
-#define GST_CAT_DEFAULT qtdemux_debug
-
 #define GST_TYPE_QTDEMUX \
   (gst_qtdemux_get_type())
 #define GST_QTDEMUX(obj) \
@@ -145,7 +142,7 @@ struct _GstQTDemux {
 
   /* Set to TRUE when all streams have been exposed */
   gboolean exposed;
-    
+
   gint64 chapters_track_id;
 
   /* protection support */
@@ -157,7 +154,7 @@ struct _GstQTDemux {
 
 
   /*
-   * ALL VARIABLES BELOW ARE ONLY USED IN PUSH-BASED MODE 
+   * ALL VARIABLES BELOW ARE ONLY USED IN PUSH-BASED MODE
    */
   GstAdapter *adapter;
   guint neededbytes;
diff --git a/gst/isomp4/qtdemux_debug.h b/gst/isomp4/qtdemux_debug.h
new file mode 100644
index 000000000..26da2686c
--- /dev/null
+++ b/gst/isomp4/qtdemux_debug.h
@@ -0,0 +1,12 @@
+#ifndef __GST_QTDEMUX_DEBUG_H__
+#define __GST_QTDEMUX_DEBUG_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+GST_DEBUG_CATEGORY_EXTERN (qtdemux_debug);
+
+G_END_DECLS
+
+#endif /* __GST_QTDEMUX_DEBUG_H__ */
diff --git a/gst/isomp4/qtdemux_dump.c b/gst/isomp4/qtdemux_dump.c
index de378118e..5ff2e9288 100644
--- a/gst/isomp4/qtdemux_dump.c
+++ b/gst/isomp4/qtdemux_dump.c
@@ -19,6 +19,7 @@
  * Boston, MA 02110-1301, USA.
  */
 
+#include "qtdemux_debug.h"
 #include "qtdemux_types.h"
 #include "qtdemux_dump.h"
 #include "fourcc.h"
@@ -27,6 +28,8 @@
 
 #include <string.h>
 
+#define GST_CAT_DEFAULT qtdemux_debug
+
 #define GET_UINT8(data)   gst_byte_reader_get_uint8_unchecked(data)
 #define GET_UINT16(data)  gst_byte_reader_get_uint16_be_unchecked(data)
 #define GET_UINT32(data)  gst_byte_reader_get_uint32_be_unchecked(data)
@@ -182,7 +185,7 @@ qtdemux_dump_hdlr (GstQTDemux * qtdemux, GstByteReader * data, int depth)
   guint32 version, type, subtype, manufacturer;
   const gchar *name;
 
-  if (!qt_atom_parser_has_remaining (data, 4 + 4 + 4 + 4 + 4 + 4 + 1))
+  if (!qt_atom_parser_has_remaining (data, 4 + 4 + 4 + 4 + 4 + 4))
     return FALSE;
 
   version = GET_UINT32 (data);
@@ -205,10 +208,10 @@ qtdemux_dump_hdlr (GstQTDemux * qtdemux, GstByteReader * data, int depth)
     GST_LOG ("%*s  name:          %s", depth, "", name);
   } else {
     gchar buf[256];
-    guint len;
+    guint8 len;
 
-    len = gst_byte_reader_get_uint8_unchecked (data);
-    if (qt_atom_parser_has_remaining (data, len)) {
+    if (gst_byte_reader_get_uint8 (data, &len)
+        && qt_atom_parser_has_remaining (data, len)) {
       memcpy (buf, gst_byte_reader_peek_data_unchecked (data), len);
       buf[len] = '\0';
       GST_LOG ("%*s  name:          %s", depth, "", buf);
@@ -453,7 +456,7 @@ qtdemux_dump_stsc (GstQTDemux * qtdemux, GstByteReader * data, int depth)
 gboolean
 qtdemux_dump_stsz (GstQTDemux * qtdemux, GstByteReader * data, int depth)
 {
-  guint32 ver_flags = 0, sample_size = 0, num_entries = 0;
+  guint32 ver_flags = 0, sample_size = 0, num_entries = 0, i;
 
   if (!gst_byte_reader_get_uint32_be (data, &ver_flags) ||
       !gst_byte_reader_get_uint32_be (data, &sample_size))
@@ -467,13 +470,11 @@ qtdemux_dump_stsz (GstQTDemux * qtdemux, GstByteReader * data, int depth)
       return FALSE;
 
     GST_LOG ("%*s  n entries:     %d", depth, "", num_entries);
-#if 0
     if (!qt_atom_parser_has_chunks (data, num_entries, 4))
       return FALSE;
     for (i = 0; i < num_entries; i++) {
-      GST_LOG ("%*s    sample size:   %u", depth, "", GET_UINT32 (data));
+      GST_TRACE ("%*s    sample size:   %u", depth, "", GET_UINT32 (data));
     }
-#endif
   }
   return TRUE;
 }
@@ -957,6 +958,31 @@ qtdemux_dump_fLaC (GstQTDemux * qtdemux, GstByteReader * data, int depth)
   return TRUE;
 }
 
+gboolean
+qtdemux_dump_gmin (GstQTDemux * qtdemux, GstByteReader * data, int depth)
+{
+  guint32 ver_flags;
+  guint16 graphics_mode, opc_r, opc_g, opc_b, balance;
+
+  if (!gst_byte_reader_get_uint32_be (data, &ver_flags))
+    return FALSE;
+
+  GST_LOG ("%*s  version/flags : %08x", depth, "", ver_flags);
+  if (!gst_byte_reader_get_uint16_be (data, &graphics_mode) ||
+      !gst_byte_reader_get_uint16_be (data, &opc_r) ||
+      !gst_byte_reader_get_uint16_be (data, &opc_g) ||
+      !gst_byte_reader_get_uint16_be (data, &opc_b) ||
+      !gst_byte_reader_get_uint16_be (data, &balance))
+    return FALSE;
+
+  GST_LOG ("%*s  graphics mode : 0x%x", depth, "", graphics_mode);
+  GST_LOG ("%*s  opcolor :       r:0x%x g:0x%x b:0x%x", depth, "", opc_r, opc_g,
+      opc_b);
+  GST_LOG ("%*s  balance :       %d", depth, "", balance);
+
+  return TRUE;
+}
+
 gboolean
 qtdemux_dump_unknown (GstQTDemux * qtdemux, GstByteReader * data, int depth)
 {
diff --git a/gst/isomp4/qtdemux_dump.h b/gst/isomp4/qtdemux_dump.h
index 8b240de06..45dcd3f08 100644
--- a/gst/isomp4/qtdemux_dump.h
+++ b/gst/isomp4/qtdemux_dump.h
@@ -89,6 +89,8 @@ gboolean qtdemux_dump_dfLa (GstQTDemux * qtdemux, GstByteReader * data,
     int depth);
 gboolean qtdemux_dump_fLaC (GstQTDemux * qtdemux, GstByteReader * data,
     int depth);
+gboolean qtdemux_dump_gmin (GstQTDemux * qtdemux, GstByteReader * data,
+    int depth);
 
 gboolean qtdemux_node_dump (GstQTDemux * qtdemux, GNode * node);
 
diff --git a/gst/isomp4/qtdemux_lang.c b/gst/isomp4/qtdemux_lang.c
index 59a78d7e9..c9646b2d6 100644
--- a/gst/isomp4/qtdemux_lang.c
+++ b/gst/isomp4/qtdemux_lang.c
@@ -17,11 +17,13 @@
  * Boston, MA 02110-1301, USA.
  */
 
-#include "qtdemux.h"
+#include "qtdemux_debug.h"
 #include "qtdemux_lang.h"
 
 #include <string.h>
 
+#define GST_CAT_DEFAULT qtdemux_debug
+
 /* http://developer.apple.com/mac/library/documentation/QuickTime/QTFF/QTFFChap4/qtff4.html */
 
 static const gchar qt_lang_map[][4] = {
diff --git a/gst/isomp4/qtdemux_types.c b/gst/isomp4/qtdemux_types.c
index d6cdf8118..88db8c2ce 100644
--- a/gst/isomp4/qtdemux_types.c
+++ b/gst/isomp4/qtdemux_types.c
@@ -17,10 +17,13 @@
  * Boston, MA 02110-1301, USA.
  */
 
+#include "qtdemux_debug.h"
 #include "qtdemux_types.h"
 #include "qtdemux_dump.h"
 #include "fourcc.h"
 
+#define GST_CAT_DEFAULT qtdemux_debug
+
 static const QtNodeType qt_node_types[] = {
   {FOURCC_moov, "movie", QT_FLAG_CONTAINER,},
   {FOURCC_mvhd, "movie header", 0,
@@ -51,8 +54,8 @@ static const QtNodeType qt_node_types[] = {
   {FOURCC_vmhd, "video media information", 0,
       qtdemux_dump_vmhd},
   {FOURCC_smhd, "sound media information", 0},
-  {FOURCC_gmhd, "base media information header", 0},
-  {FOURCC_gmin, "base media info", 0},
+  {FOURCC_gmhd, "base media information header", QT_FLAG_CONTAINER},
+  {FOURCC_gmin, "base media info", 0, qtdemux_dump_gmin},
   {FOURCC_dinf, "data information", QT_FLAG_CONTAINER},
   {FOURCC_dref, "data reference", 0,
       qtdemux_dump_dref},
@@ -143,9 +146,11 @@ static const QtNodeType qt_node_types[] = {
   {FOURCC_keyw, "Keywords", QT_FLAG_CONTAINER,},
   {FOURCC_kywd, "Keywords", QT_FLAG_CONTAINER,},
   {FOURCC__too, "Encoder", QT_FLAG_CONTAINER,},
+  {FOURCC__swr, "Application Name", QT_FLAG_CONTAINER,},
   {FOURCC_____, "----", QT_FLAG_CONTAINER,},
   {FOURCC_data, "data", 0, qtdemux_dump_unknown},
   {FOURCC_free, "free", 0,},
+  {FOURCC_skip, "skip", 0,},
   {FOURCC_SVQ3, "SVQ3", 0,},
   {FOURCC_rmra, "rmra", QT_FLAG_CONTAINER,},
   {FOURCC_rmda, "rmda", QT_FLAG_CONTAINER,},
diff --git a/gst/law/Makefile.am b/gst/law/Makefile.am
index 2591c78fd..9ed94ba95 100644
--- a/gst/law/Makefile.am
+++ b/gst/law/Makefile.am
@@ -5,13 +5,11 @@ libgstalaw_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 libgstalaw_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS)
 libgstalaw_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstalaw_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 libgstmulaw_la_SOURCES = mulaw-encode.c mulaw-conversion.c mulaw-decode.c mulaw.c
 libgstmulaw_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 libgstmulaw_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS)
 libgstmulaw_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstmulaw_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = mulaw-conversion.h alaw-encode.h alaw-decode.h mulaw-encode.h mulaw-decode.h
diff --git a/gst/law/Makefile.in b/gst/law/Makefile.in
index 9eaadbdc8..e18731f8d 100644
--- a/gst/law/Makefile.in
+++ b/gst/law/Makefile.in
@@ -172,10 +172,9 @@ 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) \
-	$(libgstalaw_la_LDFLAGS) $(LDFLAGS) -o $@
+libgstalaw_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgstalaw_la_CFLAGS) \
+	$(CFLAGS) $(libgstalaw_la_LDFLAGS) $(LDFLAGS) -o $@
 libgstmulaw_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstmulaw_la_OBJECTS = libgstmulaw_la-mulaw-encode.lo \
@@ -183,9 +182,9 @@ am_libgstmulaw_la_OBJECTS = libgstmulaw_la-mulaw-encode.lo \
 	libgstmulaw_la-mulaw-decode.lo libgstmulaw_la-mulaw.lo
 libgstmulaw_la_OBJECTS = $(am_libgstmulaw_la_OBJECTS)
 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_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
@@ -302,6 +301,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -325,6 +325,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -340,6 +342,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -362,10 +366,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -380,6 +391,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -397,6 +409,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -409,6 +423,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -427,6 +443,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -470,9 +489,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -486,11 +516,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -588,14 +623,12 @@ libgstalaw_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS)
 
 libgstalaw_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstalaw_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 libgstmulaw_la_SOURCES = mulaw-encode.c mulaw-conversion.c mulaw-decode.c mulaw.c
 libgstmulaw_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 libgstmulaw_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS)
 
 libgstmulaw_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstmulaw_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = mulaw-conversion.h alaw-encode.h alaw-decode.h mulaw-encode.h mulaw-decode.h
 all: all-am
 
@@ -711,53 +744,53 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstalaw_la-alaw-encode.lo: alaw-encode.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -MT libgstalaw_la-alaw-encode.lo -MD -MP -MF $(DEPDIR)/libgstalaw_la-alaw-encode.Tpo -c -o libgstalaw_la-alaw-encode.lo `test -f 'alaw-encode.c' || echo '$(srcdir)/'`alaw-encode.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -MT libgstalaw_la-alaw-encode.lo -MD -MP -MF $(DEPDIR)/libgstalaw_la-alaw-encode.Tpo -c -o libgstalaw_la-alaw-encode.lo `test -f 'alaw-encode.c' || echo '$(srcdir)/'`alaw-encode.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstalaw_la-alaw-encode.Tpo $(DEPDIR)/libgstalaw_la-alaw-encode.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='alaw-encode.c' object='libgstalaw_la-alaw-encode.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 $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -c -o libgstalaw_la-alaw-encode.lo `test -f 'alaw-encode.c' || echo '$(srcdir)/'`alaw-encode.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -c -o libgstalaw_la-alaw-encode.lo `test -f 'alaw-encode.c' || echo '$(srcdir)/'`alaw-encode.c
 
 libgstalaw_la-alaw-decode.lo: alaw-decode.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -MT libgstalaw_la-alaw-decode.lo -MD -MP -MF $(DEPDIR)/libgstalaw_la-alaw-decode.Tpo -c -o libgstalaw_la-alaw-decode.lo `test -f 'alaw-decode.c' || echo '$(srcdir)/'`alaw-decode.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -MT libgstalaw_la-alaw-decode.lo -MD -MP -MF $(DEPDIR)/libgstalaw_la-alaw-decode.Tpo -c -o libgstalaw_la-alaw-decode.lo `test -f 'alaw-decode.c' || echo '$(srcdir)/'`alaw-decode.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstalaw_la-alaw-decode.Tpo $(DEPDIR)/libgstalaw_la-alaw-decode.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='alaw-decode.c' object='libgstalaw_la-alaw-decode.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 $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -c -o libgstalaw_la-alaw-decode.lo `test -f 'alaw-decode.c' || echo '$(srcdir)/'`alaw-decode.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -c -o libgstalaw_la-alaw-decode.lo `test -f 'alaw-decode.c' || echo '$(srcdir)/'`alaw-decode.c
 
 libgstalaw_la-alaw.lo: alaw.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -MT libgstalaw_la-alaw.lo -MD -MP -MF $(DEPDIR)/libgstalaw_la-alaw.Tpo -c -o libgstalaw_la-alaw.lo `test -f 'alaw.c' || echo '$(srcdir)/'`alaw.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -MT libgstalaw_la-alaw.lo -MD -MP -MF $(DEPDIR)/libgstalaw_la-alaw.Tpo -c -o libgstalaw_la-alaw.lo `test -f 'alaw.c' || echo '$(srcdir)/'`alaw.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstalaw_la-alaw.Tpo $(DEPDIR)/libgstalaw_la-alaw.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='alaw.c' object='libgstalaw_la-alaw.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 $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -c -o libgstalaw_la-alaw.lo `test -f 'alaw.c' || echo '$(srcdir)/'`alaw.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -c -o libgstalaw_la-alaw.lo `test -f 'alaw.c' || echo '$(srcdir)/'`alaw.c
 
 libgstmulaw_la-mulaw-encode.lo: mulaw-encode.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -MT libgstmulaw_la-mulaw-encode.lo -MD -MP -MF $(DEPDIR)/libgstmulaw_la-mulaw-encode.Tpo -c -o libgstmulaw_la-mulaw-encode.lo `test -f 'mulaw-encode.c' || echo '$(srcdir)/'`mulaw-encode.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -MT libgstmulaw_la-mulaw-encode.lo -MD -MP -MF $(DEPDIR)/libgstmulaw_la-mulaw-encode.Tpo -c -o libgstmulaw_la-mulaw-encode.lo `test -f 'mulaw-encode.c' || echo '$(srcdir)/'`mulaw-encode.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmulaw_la-mulaw-encode.Tpo $(DEPDIR)/libgstmulaw_la-mulaw-encode.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mulaw-encode.c' object='libgstmulaw_la-mulaw-encode.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 $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw-encode.lo `test -f 'mulaw-encode.c' || echo '$(srcdir)/'`mulaw-encode.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw-encode.lo `test -f 'mulaw-encode.c' || echo '$(srcdir)/'`mulaw-encode.c
 
 libgstmulaw_la-mulaw-conversion.lo: mulaw-conversion.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -MT libgstmulaw_la-mulaw-conversion.lo -MD -MP -MF $(DEPDIR)/libgstmulaw_la-mulaw-conversion.Tpo -c -o libgstmulaw_la-mulaw-conversion.lo `test -f 'mulaw-conversion.c' || echo '$(srcdir)/'`mulaw-conversion.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -MT libgstmulaw_la-mulaw-conversion.lo -MD -MP -MF $(DEPDIR)/libgstmulaw_la-mulaw-conversion.Tpo -c -o libgstmulaw_la-mulaw-conversion.lo `test -f 'mulaw-conversion.c' || echo '$(srcdir)/'`mulaw-conversion.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmulaw_la-mulaw-conversion.Tpo $(DEPDIR)/libgstmulaw_la-mulaw-conversion.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mulaw-conversion.c' object='libgstmulaw_la-mulaw-conversion.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 $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw-conversion.lo `test -f 'mulaw-conversion.c' || echo '$(srcdir)/'`mulaw-conversion.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw-conversion.lo `test -f 'mulaw-conversion.c' || echo '$(srcdir)/'`mulaw-conversion.c
 
 libgstmulaw_la-mulaw-decode.lo: mulaw-decode.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -MT libgstmulaw_la-mulaw-decode.lo -MD -MP -MF $(DEPDIR)/libgstmulaw_la-mulaw-decode.Tpo -c -o libgstmulaw_la-mulaw-decode.lo `test -f 'mulaw-decode.c' || echo '$(srcdir)/'`mulaw-decode.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -MT libgstmulaw_la-mulaw-decode.lo -MD -MP -MF $(DEPDIR)/libgstmulaw_la-mulaw-decode.Tpo -c -o libgstmulaw_la-mulaw-decode.lo `test -f 'mulaw-decode.c' || echo '$(srcdir)/'`mulaw-decode.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmulaw_la-mulaw-decode.Tpo $(DEPDIR)/libgstmulaw_la-mulaw-decode.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mulaw-decode.c' object='libgstmulaw_la-mulaw-decode.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 $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw-decode.lo `test -f 'mulaw-decode.c' || echo '$(srcdir)/'`mulaw-decode.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw-decode.lo `test -f 'mulaw-decode.c' || echo '$(srcdir)/'`mulaw-decode.c
 
 libgstmulaw_la-mulaw.lo: mulaw.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -MT libgstmulaw_la-mulaw.lo -MD -MP -MF $(DEPDIR)/libgstmulaw_la-mulaw.Tpo -c -o libgstmulaw_la-mulaw.lo `test -f 'mulaw.c' || echo '$(srcdir)/'`mulaw.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -MT libgstmulaw_la-mulaw.lo -MD -MP -MF $(DEPDIR)/libgstmulaw_la-mulaw.Tpo -c -o libgstmulaw_la-mulaw.lo `test -f 'mulaw.c' || echo '$(srcdir)/'`mulaw.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmulaw_la-mulaw.Tpo $(DEPDIR)/libgstmulaw_la-mulaw.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mulaw.c' object='libgstmulaw_la-mulaw.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 $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw.lo `test -f 'mulaw.c' || echo '$(srcdir)/'`mulaw.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw.lo `test -f 'mulaw.c' || echo '$(srcdir)/'`mulaw.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/level/Makefile.am b/gst/level/Makefile.am
index dbcb39390..49c7b28e8 100644
--- a/gst/level/Makefile.am
+++ b/gst/level/Makefile.am
@@ -4,6 +4,5 @@ libgstlevel_la_SOURCES = gstlevel.c
 libgstlevel_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstlevel_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LIBM)
 libgstlevel_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstlevel_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstlevel.h
diff --git a/gst/level/Makefile.in b/gst/level/Makefile.in
index 5fd552270..4dc5ce468 100644
--- a/gst/level/Makefile.in
+++ b/gst/level/Makefile.in
@@ -172,9 +172,9 @@ 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_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
@@ -291,6 +291,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -314,6 +315,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -329,6 +332,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -351,10 +356,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -369,6 +381,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -386,6 +399,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -398,6 +413,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -416,6 +433,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -459,9 +479,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -475,11 +506,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -575,7 +611,6 @@ libgstlevel_la_SOURCES = gstlevel.c
 libgstlevel_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstlevel_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LIBM)
 libgstlevel_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstlevel_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstlevel.h
 all: all-am
 
@@ -682,11 +717,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstlevel_la-gstlevel.lo: gstlevel.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlevel_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlevel_la_CFLAGS) $(CFLAGS) -MT libgstlevel_la-gstlevel.lo -MD -MP -MF $(DEPDIR)/libgstlevel_la-gstlevel.Tpo -c -o libgstlevel_la-gstlevel.lo `test -f 'gstlevel.c' || echo '$(srcdir)/'`gstlevel.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlevel_la_CFLAGS) $(CFLAGS) -MT libgstlevel_la-gstlevel.lo -MD -MP -MF $(DEPDIR)/libgstlevel_la-gstlevel.Tpo -c -o libgstlevel_la-gstlevel.lo `test -f 'gstlevel.c' || echo '$(srcdir)/'`gstlevel.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstlevel_la-gstlevel.Tpo $(DEPDIR)/libgstlevel_la-gstlevel.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstlevel.c' object='libgstlevel_la-gstlevel.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 $(libgstlevel_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlevel_la_CFLAGS) $(CFLAGS) -c -o libgstlevel_la-gstlevel.lo `test -f 'gstlevel.c' || echo '$(srcdir)/'`gstlevel.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlevel_la_CFLAGS) $(CFLAGS) -c -o libgstlevel_la-gstlevel.lo `test -f 'gstlevel.c' || echo '$(srcdir)/'`gstlevel.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/level/gstlevel.c b/gst/level/gstlevel.c
index aef6f5797..bcf290ece 100644
--- a/gst/level/gstlevel.c
+++ b/gst/level/gstlevel.c
@@ -23,7 +23,7 @@
  * SECTION:element-level
  *
  * Level analyses incoming audio buffers and, if the #GstLevel:message property
- * is #TRUE, generates an element message named
+ * is %TRUE, generates an element message named
  * <classname>&quot;level&quot;</classname>:
  * after each interval of time given by the #GstLevel:interval property.
  * The message's structure contains these fields:
diff --git a/gst/matroska/Makefile.am b/gst/matroska/Makefile.am
index 960a831ee..ade986592 100644
--- a/gst/matroska/Makefile.am
+++ b/gst/matroska/Makefile.am
@@ -41,4 +41,3 @@ libgstmatroska_la_LIBADD = \
 	$(BZ2_LIBS) \
 	$(LIBM)
 libgstmatroska_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstmatroska_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
diff --git a/gst/matroska/Makefile.in b/gst/matroska/Makefile.in
index d218ecd34..7a2c86ba0 100644
--- a/gst/matroska/Makefile.in
+++ b/gst/matroska/Makefile.in
@@ -181,8 +181,8 @@ 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) \
+	$(AM_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@)
@@ -300,6 +300,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -323,6 +324,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -338,6 +341,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -360,10 +365,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -378,6 +390,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -395,6 +408,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -407,6 +422,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -425,6 +442,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -468,9 +488,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -484,11 +515,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -623,7 +659,6 @@ libgstmatroska_la_LIBADD = \
 	$(LIBM)
 
 libgstmatroska_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstmatroska_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 all: all-am
 
 .SUFFIXES:
@@ -738,74 +773,74 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstmatroska_la-ebml-read.lo: ebml-read.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-ebml-read.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-ebml-read.Tpo -c -o libgstmatroska_la-ebml-read.lo `test -f 'ebml-read.c' || echo '$(srcdir)/'`ebml-read.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-ebml-read.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-ebml-read.Tpo -c -o libgstmatroska_la-ebml-read.lo `test -f 'ebml-read.c' || echo '$(srcdir)/'`ebml-read.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-ebml-read.Tpo $(DEPDIR)/libgstmatroska_la-ebml-read.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ebml-read.c' object='libgstmatroska_la-ebml-read.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 $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-ebml-read.lo `test -f 'ebml-read.c' || echo '$(srcdir)/'`ebml-read.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-ebml-read.lo `test -f 'ebml-read.c' || echo '$(srcdir)/'`ebml-read.c
 
 libgstmatroska_la-ebml-write.lo: ebml-write.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-ebml-write.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-ebml-write.Tpo -c -o libgstmatroska_la-ebml-write.lo `test -f 'ebml-write.c' || echo '$(srcdir)/'`ebml-write.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-ebml-write.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-ebml-write.Tpo -c -o libgstmatroska_la-ebml-write.lo `test -f 'ebml-write.c' || echo '$(srcdir)/'`ebml-write.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-ebml-write.Tpo $(DEPDIR)/libgstmatroska_la-ebml-write.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ebml-write.c' object='libgstmatroska_la-ebml-write.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 $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-ebml-write.lo `test -f 'ebml-write.c' || echo '$(srcdir)/'`ebml-write.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-ebml-write.lo `test -f 'ebml-write.c' || echo '$(srcdir)/'`ebml-write.c
 
 libgstmatroska_la-matroska.lo: matroska.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska.Tpo -c -o libgstmatroska_la-matroska.lo `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska.Tpo -c -o libgstmatroska_la-matroska.lo `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-matroska.Tpo $(DEPDIR)/libgstmatroska_la-matroska.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='matroska.c' object='libgstmatroska_la-matroska.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 $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska.lo `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska.lo `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c
 
 libgstmatroska_la-matroska-demux.lo: matroska-demux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-demux.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-demux.Tpo -c -o libgstmatroska_la-matroska-demux.lo `test -f 'matroska-demux.c' || echo '$(srcdir)/'`matroska-demux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-demux.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-demux.Tpo -c -o libgstmatroska_la-matroska-demux.lo `test -f 'matroska-demux.c' || echo '$(srcdir)/'`matroska-demux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-matroska-demux.Tpo $(DEPDIR)/libgstmatroska_la-matroska-demux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='matroska-demux.c' object='libgstmatroska_la-matroska-demux.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 $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-demux.lo `test -f 'matroska-demux.c' || echo '$(srcdir)/'`matroska-demux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-demux.lo `test -f 'matroska-demux.c' || echo '$(srcdir)/'`matroska-demux.c
 
 libgstmatroska_la-matroska-parse.lo: matroska-parse.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-parse.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-parse.Tpo -c -o libgstmatroska_la-matroska-parse.lo `test -f 'matroska-parse.c' || echo '$(srcdir)/'`matroska-parse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-parse.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-parse.Tpo -c -o libgstmatroska_la-matroska-parse.lo `test -f 'matroska-parse.c' || echo '$(srcdir)/'`matroska-parse.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-matroska-parse.Tpo $(DEPDIR)/libgstmatroska_la-matroska-parse.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='matroska-parse.c' object='libgstmatroska_la-matroska-parse.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 $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-parse.lo `test -f 'matroska-parse.c' || echo '$(srcdir)/'`matroska-parse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-parse.lo `test -f 'matroska-parse.c' || echo '$(srcdir)/'`matroska-parse.c
 
 libgstmatroska_la-matroska-ids.lo: matroska-ids.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-ids.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-ids.Tpo -c -o libgstmatroska_la-matroska-ids.lo `test -f 'matroska-ids.c' || echo '$(srcdir)/'`matroska-ids.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-ids.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-ids.Tpo -c -o libgstmatroska_la-matroska-ids.lo `test -f 'matroska-ids.c' || echo '$(srcdir)/'`matroska-ids.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-matroska-ids.Tpo $(DEPDIR)/libgstmatroska_la-matroska-ids.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='matroska-ids.c' object='libgstmatroska_la-matroska-ids.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 $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-ids.lo `test -f 'matroska-ids.c' || echo '$(srcdir)/'`matroska-ids.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-ids.lo `test -f 'matroska-ids.c' || echo '$(srcdir)/'`matroska-ids.c
 
 libgstmatroska_la-matroska-mux.lo: matroska-mux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-mux.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-mux.Tpo -c -o libgstmatroska_la-matroska-mux.lo `test -f 'matroska-mux.c' || echo '$(srcdir)/'`matroska-mux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-mux.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-mux.Tpo -c -o libgstmatroska_la-matroska-mux.lo `test -f 'matroska-mux.c' || echo '$(srcdir)/'`matroska-mux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-matroska-mux.Tpo $(DEPDIR)/libgstmatroska_la-matroska-mux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='matroska-mux.c' object='libgstmatroska_la-matroska-mux.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 $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-mux.lo `test -f 'matroska-mux.c' || echo '$(srcdir)/'`matroska-mux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-mux.lo `test -f 'matroska-mux.c' || echo '$(srcdir)/'`matroska-mux.c
 
 libgstmatroska_la-matroska-read-common.lo: matroska-read-common.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-read-common.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-read-common.Tpo -c -o libgstmatroska_la-matroska-read-common.lo `test -f 'matroska-read-common.c' || echo '$(srcdir)/'`matroska-read-common.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-read-common.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-read-common.Tpo -c -o libgstmatroska_la-matroska-read-common.lo `test -f 'matroska-read-common.c' || echo '$(srcdir)/'`matroska-read-common.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-matroska-read-common.Tpo $(DEPDIR)/libgstmatroska_la-matroska-read-common.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='matroska-read-common.c' object='libgstmatroska_la-matroska-read-common.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 $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-read-common.lo `test -f 'matroska-read-common.c' || echo '$(srcdir)/'`matroska-read-common.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-read-common.lo `test -f 'matroska-read-common.c' || echo '$(srcdir)/'`matroska-read-common.c
 
 libgstmatroska_la-webm-mux.lo: webm-mux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-webm-mux.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-webm-mux.Tpo -c -o libgstmatroska_la-webm-mux.lo `test -f 'webm-mux.c' || echo '$(srcdir)/'`webm-mux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-webm-mux.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-webm-mux.Tpo -c -o libgstmatroska_la-webm-mux.lo `test -f 'webm-mux.c' || echo '$(srcdir)/'`webm-mux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-webm-mux.Tpo $(DEPDIR)/libgstmatroska_la-webm-mux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='webm-mux.c' object='libgstmatroska_la-webm-mux.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 $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-webm-mux.lo `test -f 'webm-mux.c' || echo '$(srcdir)/'`webm-mux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-webm-mux.lo `test -f 'webm-mux.c' || echo '$(srcdir)/'`webm-mux.c
 
 libgstmatroska_la-lzo.lo: lzo.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-lzo.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-lzo.Tpo -c -o libgstmatroska_la-lzo.lo `test -f 'lzo.c' || echo '$(srcdir)/'`lzo.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-lzo.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-lzo.Tpo -c -o libgstmatroska_la-lzo.lo `test -f 'lzo.c' || echo '$(srcdir)/'`lzo.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-lzo.Tpo $(DEPDIR)/libgstmatroska_la-lzo.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='lzo.c' object='libgstmatroska_la-lzo.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 $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-lzo.lo `test -f 'lzo.c' || echo '$(srcdir)/'`lzo.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-lzo.lo `test -f 'lzo.c' || echo '$(srcdir)/'`lzo.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index 2fe5b3b72..f3bf76366 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -307,6 +307,8 @@ gst_matroska_demux_reset (GstElement * element)
   demux->cluster_time = GST_CLOCK_TIME_NONE;
   demux->cluster_offset = 0;
   demux->next_cluster_offset = 0;
+  demux->stream_last_time = GST_CLOCK_TIME_NONE;
+  demux->last_cluster_offset = 0;
   demux->index_offset = 0;
   demux->seekable = FALSE;
   demux->need_segment = FALSE;
@@ -389,6 +391,189 @@ gst_matroska_demux_add_stream_headers_to_caps (GstMatroskaDemux * demux,
   g_value_unset (&buf_val);
 }
 
+static GstFlowReturn
+gst_matroska_demux_parse_colour (GstMatroskaDemux * demux, GstEbmlRead * ebml,
+    GstMatroskaTrackVideoContext * video_context)
+{
+  GstFlowReturn ret;
+  GstVideoColorimetry colorimetry;
+  guint32 id;
+  guint64 num;
+
+  colorimetry.range = GST_VIDEO_COLOR_RANGE_UNKNOWN;
+  colorimetry.matrix = GST_VIDEO_COLOR_MATRIX_UNKNOWN;
+  colorimetry.transfer = GST_VIDEO_TRANSFER_UNKNOWN;
+  colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_UNKNOWN;
+
+  DEBUG_ELEMENT_START (demux, ebml, "TrackVideoColour");
+
+  if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK)
+    goto beach;
+
+  while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
+    if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK)
+      goto beach;
+
+    switch (id) {
+      case GST_MATROSKA_ID_VIDEOMATRIXCOEFFICIENTS:{
+        if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK)
+          goto beach;
+
+        switch (num) {
+          case 0:
+            colorimetry.matrix = GST_VIDEO_COLOR_MATRIX_RGB;
+            break;
+          case 1:
+            colorimetry.matrix = GST_VIDEO_COLOR_MATRIX_BT709;
+            break;
+          case 2:
+            colorimetry.matrix = GST_VIDEO_COLOR_MATRIX_UNKNOWN;
+            break;
+          case 4:
+            colorimetry.matrix = GST_VIDEO_COLOR_MATRIX_FCC;
+            break;
+            /* FIXME: "5: BT470BG" is undefined in GstVideoColorMatrix
+             * but it's functionally same as "6: BT601" */
+          case 5:
+          case 6:
+            colorimetry.matrix = GST_VIDEO_COLOR_MATRIX_BT601;
+            break;
+          case 7:
+            colorimetry.matrix = GST_VIDEO_COLOR_MATRIX_SMPTE240M;
+            break;
+          case 9:
+            colorimetry.matrix = GST_VIDEO_COLOR_MATRIX_BT2020;
+            break;
+          default:
+            GST_FIXME_OBJECT (demux, "Unsupported color matrix coefficients  %"
+                G_GUINT64_FORMAT, num);
+            break;
+        }
+        break;
+      }
+
+      case GST_MATROSKA_ID_VIDEORANGE:{
+        if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK)
+          goto beach;
+
+        switch (num) {
+          case 0:
+            colorimetry.range = GST_VIDEO_COLOR_RANGE_UNKNOWN;
+            break;
+          case 1:
+            colorimetry.range = GST_VIDEO_COLOR_RANGE_16_235;
+            break;
+          case 2:
+            colorimetry.range = GST_VIDEO_COLOR_RANGE_0_255;
+            break;
+          default:
+            GST_FIXME_OBJECT (demux, "Unsupported color range  %"
+                G_GUINT64_FORMAT, num);
+            break;
+        }
+        break;
+      }
+
+      case GST_MATROSKA_ID_VIDEOTRANSFERCHARACTERISTICS:{
+        if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK)
+          goto beach;
+
+        switch (num) {
+            /* FIXME: "6: BT601" and "14: BT2020_10" are undefined in
+             * GstVideoTransferFunction, but functionally same as "1: BT709" */
+          case 1:
+          case 6:
+          case 14:
+            colorimetry.transfer = GST_VIDEO_TRANSFER_BT709;
+            break;
+          case 2:
+            colorimetry.transfer = GST_VIDEO_TRANSFER_UNKNOWN;
+            break;
+          case 4:
+            colorimetry.transfer = GST_VIDEO_TRANSFER_GAMMA22;
+            break;
+          case 5:
+            colorimetry.transfer = GST_VIDEO_TRANSFER_GAMMA28;
+            break;
+          case 7:
+            colorimetry.transfer = GST_VIDEO_TRANSFER_SMPTE240M;
+            break;
+          case 8:
+            colorimetry.transfer = GST_VIDEO_TRANSFER_GAMMA10;
+            break;
+          case 9:
+            colorimetry.transfer = GST_VIDEO_TRANSFER_LOG100;
+            break;
+          case 10:
+            colorimetry.transfer = GST_VIDEO_TRANSFER_LOG316;
+            break;
+          case 13:
+            colorimetry.transfer = GST_VIDEO_TRANSFER_SRGB;
+            break;
+          case 15:
+            colorimetry.transfer = GST_VIDEO_TRANSFER_BT2020_12;
+            break;
+          default:
+            GST_FIXME_OBJECT (demux,
+                "Unsupported color transfer characteristics  %"
+                G_GUINT64_FORMAT, num);
+            break;
+        }
+        break;
+      }
+
+      case GST_MATROSKA_ID_VIDEOPRIMARIES:{
+        if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK)
+          goto beach;
+
+        switch (num) {
+          case 1:
+            colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_BT709;
+            break;
+          case 2:
+            colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_UNKNOWN;
+            break;
+          case 4:
+            colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_BT470M;
+            break;
+          case 5:
+            colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_BT470BG;
+            break;
+          case 6:
+            colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_SMPTE170M;
+            break;
+          case 7:
+            colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_SMPTE240M;
+            break;
+          case 8:
+            colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_FILM;
+            break;
+          case 9:
+            colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_BT2020;
+            break;
+          default:
+            GST_FIXME_OBJECT (demux, "Unsupported color primaries  %"
+                G_GUINT64_FORMAT, num);
+            break;
+        }
+        break;
+      }
+
+      default:
+        GST_FIXME_OBJECT (demux, "Unsupported subelement 0x%x in Colour", id);
+        ret = gst_ebml_read_skip (ebml);
+        break;
+    }
+  }
+
+  memcpy (&video_context->colorimetry, &colorimetry,
+      sizeof (GstVideoColorimetry));
+
+beach:
+  DEBUG_ELEMENT_STOP (demux, ebml, "TrackVideoColour", ret);
+  return ret;
+}
+
 static GstFlowReturn
 gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
 {
@@ -732,6 +917,13 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
               g_free (data);
               break;
             }
+
+              /* color info */
+            case GST_MATROSKA_ID_VIDEOCOLOUR:{
+              ret = gst_matroska_demux_parse_colour (demux, ebml, videocontext);
+              break;
+            }
+
             case GST_MATROSKA_ID_VIDEOSTEREOMODE:
             {
               guint64 num;
@@ -1654,12 +1846,13 @@ gst_matroska_cluster_compare (gint64 * i1, gint64 * i2)
 /* searches for a cluster start from @pos,
  * return GST_FLOW_OK and cluster position in @pos if found */
 static GstFlowReturn
-gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos)
+gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos,
+    gboolean forward)
 {
   gint64 newpos = *pos;
   gint64 orig_offset;
   GstFlowReturn ret = GST_FLOW_OK;
-  const guint chunk = 64 * 1024;
+  const guint chunk = 128 * 1024;
   GstBuffer *buf = NULL;
   GstMapInfo map;
   gpointer data = NULL;
@@ -1671,8 +1864,8 @@ gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos)
 
   orig_offset = demux->common.offset;
 
-  GST_LOG_OBJECT (demux, "searching cluster following offset %" G_GINT64_FORMAT,
-      *pos);
+  GST_LOG_OBJECT (demux, "searching cluster %s offset %" G_GINT64_FORMAT,
+      forward ? "following" : "preceding", *pos);
 
   if (demux->clusters) {
     gint64 *cpos;
@@ -1680,7 +1873,7 @@ gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos)
     cpos = gst_util_array_binary_search (demux->clusters->data,
         demux->clusters->len, sizeof (gint64),
         (GCompareDataFunc) gst_matroska_cluster_compare,
-        GST_SEARCH_MODE_AFTER, pos, NULL);
+        forward ? GST_SEARCH_MODE_AFTER : GST_SEARCH_MODE_BEFORE, pos, NULL);
     /* sanity check */
     if (cpos) {
       GST_DEBUG_OBJECT (demux,
@@ -1700,13 +1893,23 @@ gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos)
   while (1) {
     GstByteReader reader;
     gint cluster_pos;
+    guint toread = chunk;
 
+    if (!forward) {
+      /* never read beyond the requested target */
+      if (G_UNLIKELY (newpos < chunk)) {
+        toread = newpos;
+        newpos = 0;
+      } else {
+        newpos -= chunk;
+      }
+    }
     if (buf != NULL) {
       gst_buffer_unmap (buf, &map);
       gst_buffer_unref (buf);
       buf = NULL;
     }
-    ret = gst_pad_pull_range (demux->common.sinkpad, newpos, chunk, &buf);
+    ret = gst_pad_pull_range (demux->common.sinkpad, newpos, toread, &buf);
     if (ret != GST_FLOW_OK)
       break;
     GST_DEBUG_OBJECT (demux,
@@ -1725,16 +1928,25 @@ gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos)
     }
 
     gst_byte_reader_init (&reader, data, size);
-  resume:
-    cluster_pos = gst_byte_reader_masked_scan_uint32 (&reader, 0xffffffff,
-        GST_MATROSKA_ID_CLUSTER, 0, gst_byte_reader_get_remaining (&reader));
+    cluster_pos = -1;
+    while (1) {
+      gint found = gst_byte_reader_masked_scan_uint32 (&reader, 0xffffffff,
+          GST_MATROSKA_ID_CLUSTER, 0, gst_byte_reader_get_remaining (&reader));
+      if (forward) {
+        cluster_pos = found;
+        break;
+      }
+      /* need last occurrence when searching backwards */
+      if (found >= 0) {
+        cluster_pos = gst_byte_reader_get_pos (&reader) + found;
+        gst_byte_reader_skip (&reader, found + 4);
+      } else {
+        break;
+      }
+    }
+
     if (cluster_pos >= 0) {
       newpos += cluster_pos;
-      /* prepare resuming at next byte */
-      if (!gst_byte_reader_skip (&reader, cluster_pos + 1)) {
-        GST_DEBUG_OBJECT (demux, "Need more data -> continue");
-        continue;
-      }
       GST_DEBUG_OBJECT (demux,
           "found cluster ebml id at offset %" G_GINT64_FORMAT, newpos);
       /* extra checks whether we really sync'ed to a cluster:
@@ -1752,7 +1964,7 @@ gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos)
           GST_ELEMENT_CAST (demux), &id, &length, &needed);
       if (ret != GST_FLOW_OK) {
         GST_DEBUG_OBJECT (demux, "need more data -> continue");
-        continue;
+        goto next;
       }
       g_assert (id == GST_MATROSKA_ID_CLUSTER);
       GST_DEBUG_OBJECT (demux, "cluster size %" G_GUINT64_FORMAT ", prefix %d",
@@ -1766,26 +1978,19 @@ gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos)
       demux->common.offset += length + needed;
       ret = gst_matroska_read_common_peek_id_length_pull (&demux->common,
           GST_ELEMENT_CAST (demux), &id, &length, &needed);
-      if (ret != GST_FLOW_OK) {
-        /* we skipped one byte in the reader above, need to accomodate for
-         * that when resuming skipping from the reader instead of reading a
-         * new chunk */
-        newpos += 1;
-        goto resume;
-      }
+      if (ret != GST_FLOW_OK)
+        goto next;
       GST_DEBUG_OBJECT (demux, "next element is %scluster",
           id == GST_MATROSKA_ID_CLUSTER ? "" : "not ");
       if (id == GST_MATROSKA_ID_CLUSTER)
         break;
-      /* not ok, resume
-       * we skipped one byte in the reader above, need to accomodate for
-       * that when resuming skipping from the reader instead of reading a
-       * new chunk */
-      newpos += 1;
-      goto resume;
+    next:
+      if (forward)
+        newpos += 1;
     } else {
       /* partial cluster id may have been in tail of buffer */
-      newpos += MAX (gst_byte_reader_get_remaining (&reader), 4) - 3;
+      newpos +=
+          forward ? MAX (gst_byte_reader_get_remaining (&reader), 4) - 3 : 3;
     }
   }
 
@@ -1809,19 +2014,18 @@ gst_matroska_demux_search_pos (GstMatroskaDemux * demux, GstClockTime time)
   GstMatroskaIndex *entry = NULL;
   GstMatroskaReadState current_state;
   GstClockTime otime, prev_cluster_time, current_cluster_time, cluster_time;
-  gint64 opos, newpos, startpos = 0, current_offset;
+  GstClockTime atime;
+  gint64 opos, newpos, current_offset;
   gint64 prev_cluster_offset = -1, current_cluster_offset, cluster_offset;
-  const guint chunk = 64 * 1024;
+  gint64 apos, maxpos;
+  guint64 cluster_size = 0;
   GstFlowReturn ret;
   guint64 length;
   guint32 id;
   guint needed;
 
-  /* (under)estimate new position, resync using cluster ebml id,
-   * and scan forward to appropriate cluster
-   * (and re-estimate if need to go backward) */
-
-  prev_cluster_time = GST_CLOCK_TIME_NONE;
+  /* estimate new position, resync using cluster ebml id,
+   * and bisect further or scan forward to appropriate cluster */
 
   /* store some current state */
   current_state = demux->common.state;
@@ -1833,77 +2037,78 @@ gst_matroska_demux_search_pos (GstMatroskaDemux * demux, GstClockTime time)
 
   demux->common.state = GST_MATROSKA_READ_STATE_SCANNING;
 
-  /* estimate using start and current position */
+  /* estimate using start and last known cluster */
   GST_OBJECT_LOCK (demux);
-  opos = demux->common.offset - demux->common.ebml_segment_start;
-  otime = demux->common.segment.position;
+  apos = demux->first_cluster_offset;
+  atime = demux->stream_start_time;
+  opos = demux->last_cluster_offset;
+  otime = demux->stream_last_time;
   GST_OBJECT_UNLOCK (demux);
 
   /* sanitize */
-  time = MAX (time, demux->stream_start_time);
+  time = MAX (time, atime);
+  otime = MAX (otime, atime);
+  opos = MAX (opos, apos);
+
+  maxpos = gst_matroska_read_common_get_length (&demux->common);
 
-  /* avoid division by zero in first estimation below */
-  if (otime <= demux->stream_start_time)
-    otime = time;
+  /* invariants;
+   * apos <= opos
+   * atime <= otime
+   * apos always refer to a cluster before target time;
+   * opos may or may not be after target time, but if it is once so,
+   * then also in next iteration
+   * */
 
 retry:
   GST_LOG_OBJECT (demux,
+      "apos: %" G_GUINT64_FORMAT ", atime: %" GST_TIME_FORMAT ", %"
+      GST_TIME_FORMAT " in stream time, "
       "opos: %" G_GUINT64_FORMAT ", otime: %" GST_TIME_FORMAT ", %"
       GST_TIME_FORMAT " in stream time (start %" GST_TIME_FORMAT "), time %"
-      GST_TIME_FORMAT, opos, GST_TIME_ARGS (otime),
-      GST_TIME_ARGS (otime - demux->stream_start_time),
+      GST_TIME_FORMAT, apos, GST_TIME_ARGS (atime),
+      GST_TIME_ARGS (atime - demux->stream_start_time), opos,
+      GST_TIME_ARGS (otime), GST_TIME_ARGS (otime - demux->stream_start_time),
       GST_TIME_ARGS (demux->stream_start_time), GST_TIME_ARGS (time));
 
-  if (otime <= demux->stream_start_time) {
-    newpos = 0;
+  g_assert (atime <= otime);
+  g_assert (apos <= opos);
+  if (time == GST_CLOCK_TIME_NONE) {
+    GST_DEBUG_OBJECT (demux, "searching last cluster");
+    newpos = maxpos;
+    if (newpos == -1) {
+      GST_DEBUG_OBJECT (demux, "unknown file size; bailing out");
+      goto exit;
+    }
+  } else if (otime <= atime) {
+    newpos = apos;
   } else {
-    newpos =
-        gst_util_uint64_scale (opos - demux->common.ebml_segment_start,
-        time - demux->stream_start_time,
-        otime - demux->stream_start_time) - chunk;
-    if (newpos < 0)
-      newpos = 0;
+    newpos = apos +
+        gst_util_uint64_scale (opos - apos, time - atime, otime - atime);
+    if (maxpos != -1 && newpos > maxpos)
+      newpos = maxpos;
   }
-  /* favour undershoot */
-  newpos = newpos * 90 / 100;
-  newpos += demux->common.ebml_segment_start;
 
   GST_DEBUG_OBJECT (demux,
       "estimated offset for %" GST_TIME_FORMAT ": %" G_GINT64_FORMAT,
       GST_TIME_ARGS (time), newpos);
 
-  /* and at least start scanning before previous scan start to avoid looping */
-  startpos = startpos * 90 / 100;
-  if (startpos && startpos < newpos)
-    newpos = startpos;
-
-  /* read in at newpos and scan for ebml cluster id */
-  startpos = newpos;
-  while (1) {
-
-    ret = gst_matroska_demux_search_cluster (demux, &newpos);
-    if (ret == GST_FLOW_EOS) {
-      /* heuristic HACK */
-      newpos = startpos * 80 / 100;
-      GST_DEBUG_OBJECT (demux, "EOS; "
-          "new estimated offset for %" GST_TIME_FORMAT ": %" G_GINT64_FORMAT,
-          GST_TIME_ARGS (time), newpos);
-      startpos = newpos;
-      continue;
-    } else if (ret != GST_FLOW_OK) {
+  /* search backwards */
+  if (newpos > apos) {
+    ret = gst_matroska_demux_search_cluster (demux, &newpos, FALSE);
+    if (ret != GST_FLOW_OK)
       goto exit;
-    } else {
-      break;
-    }
   }
 
   /* then start scanning and parsing for cluster time,
-   * re-estimate if overshoot, otherwise next cluster and so on */
+   * re-estimate if possible, otherwise next cluster and so on */
+  /* note that each re-estimate is entered with a change in apos or opos,
+   * avoiding infinite loop */
   demux->common.offset = newpos;
   demux->cluster_time = cluster_time = GST_CLOCK_TIME_NONE;
+  cluster_size = 0;
+  prev_cluster_time = GST_CLOCK_TIME_NONE;
   while (1) {
-    guint64 cluster_size = 0;
-
     /* peek and parse some elements */
     ret = gst_matroska_read_common_peek_id_length_pull (&demux->common,
         GST_ELEMENT_CAST (demux), &id, &length, &needed);
@@ -1930,6 +2135,12 @@ retry:
       GST_DEBUG_OBJECT (demux, "found cluster at offset %" G_GINT64_FORMAT
           " with time %" GST_TIME_FORMAT, cluster_offset,
           GST_TIME_ARGS (cluster_time));
+      if (time == GST_CLOCK_TIME_NONE) {
+        GST_DEBUG_OBJECT (demux, "found last cluster");
+        prev_cluster_time = cluster_time;
+        prev_cluster_offset = cluster_offset;
+        break;
+      }
       if (cluster_time > time) {
         GST_DEBUG_OBJECT (demux, "overshot target");
         /* cluster overshoots */
@@ -1950,6 +2161,30 @@ retry:
           goto retry;
         }
       } else {
+        /* cluster undershoots */
+        GST_DEBUG_OBJECT (demux, "undershot target");
+        /* ok if close enough */
+        if (GST_CLOCK_DIFF (cluster_time, time) < 5 * GST_SECOND) {
+          GST_DEBUG_OBJECT (demux, "target close enough");
+          prev_cluster_time = cluster_time;
+          prev_cluster_offset = cluster_offset;
+          break;
+        }
+        if (otime > time) {
+          /* we are in between atime and otime => can bisect if worthwhile */
+          if (prev_cluster_time != GST_CLOCK_TIME_NONE &&
+              cluster_time > prev_cluster_time &&
+              (GST_CLOCK_DIFF (prev_cluster_time, cluster_time) * 10 <
+                  GST_CLOCK_DIFF (cluster_time, time))) {
+            /* we moved at least one cluster forward,
+             * and it looks like target is still far away,
+             * let's estimate again */
+            GST_DEBUG_OBJECT (demux, "bisecting with new apos");
+            apos = cluster_offset;
+            atime = cluster_time;
+            goto retry;
+          }
+        }
         /* cluster undershoots, goto next one */
         prev_cluster_time = cluster_time;
         prev_cluster_offset = cluster_offset;
@@ -3532,7 +3767,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
         GST_DEBUG_OBJECT (demux,
             "using stored seek position %" GST_TIME_FORMAT,
             GST_TIME_ARGS (demux->common.segment.position));
-        clace_time = demux->common.segment.position + demux->stream_start_time;
+        clace_time = demux->common.segment.position;
         segment->position = GST_CLOCK_TIME_NONE;
       }
       segment->start = clace_time;
@@ -3577,7 +3812,8 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
         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));
+            !strcmp (stream->codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP9) ||
+            !strcmp (stream->codec_id, GST_MATROSKA_CODEC_ID_VIDEO_AV1));
       }
 
       /* If we're doing a keyframe-only trickmode, only push keyframes on video
@@ -4176,7 +4412,8 @@ gst_matroska_demux_check_parse_error (GstMatroskaDemux * demux)
      * search for cluster mark following current pos */
     pos = demux->common.offset;
     GST_WARNING_OBJECT (demux, "parse error, looking for next cluster");
-    if ((ret = gst_matroska_demux_search_cluster (demux, &pos)) != GST_FLOW_OK) {
+    if ((ret = gst_matroska_demux_search_cluster (demux, &pos, TRUE)) !=
+        GST_FLOW_OK) {
       /* did not work, give up */
       return ret;
     } else {
@@ -4456,6 +4693,26 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id,
                   == GST_MATROSKA_READ_STATE_HEADER)) {
             demux->common.state = GST_MATROSKA_READ_STATE_DATA;
             demux->first_cluster_offset = demux->common.offset;
+            if (!demux->streaming &&
+                !GST_CLOCK_TIME_IS_VALID (demux->common.segment.duration)) {
+              GstMatroskaIndex *last = NULL;
+
+              GST_DEBUG_OBJECT (demux,
+                  "estimating duration using last cluster");
+              if ((last = gst_matroska_demux_search_pos (demux,
+                          GST_CLOCK_TIME_NONE)) != NULL) {
+                demux->last_cluster_offset =
+                    last->pos + demux->common.ebml_segment_start;
+                demux->stream_last_time = last->time;
+                demux->common.segment.duration =
+                    demux->stream_last_time - demux->stream_start_time;
+                /* above estimate should not be taken all too strongly */
+                demux->invalid_duration = TRUE;
+                GST_DEBUG_OBJECT (demux,
+                    "estimated duration as %" GST_TIME_FORMAT,
+                    GST_TIME_ARGS (demux->common.segment.duration));
+              }
+            }
             GST_DEBUG_OBJECT (demux, "signaling no more pads");
             gst_element_no_more_pads (GST_ELEMENT (demux));
             /* send initial segment - we wait till we know the first
@@ -4487,6 +4744,12 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id,
             goto parse_failed;
           GST_DEBUG_OBJECT (demux, "ClusterTimeCode: %" G_GUINT64_FORMAT, num);
           demux->cluster_time = num;
+          /* track last cluster */
+          if (demux->cluster_offset > demux->last_cluster_offset) {
+            demux->last_cluster_offset = demux->cluster_offset;
+            demux->stream_last_time =
+                demux->cluster_time * demux->common.time_scale;
+          }
 #if 0
           if (demux->common.element_index) {
             if (demux->common.element_index_writer_id == -1)
@@ -5347,6 +5610,9 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext *
   } 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 if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_AV1)) {
+    caps = gst_caps_new_empty_simple ("video/x-av1");
+    *codec_name = g_strdup_printf ("AOM AV1");
   } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_PRORES)) {
     guint32 fourcc;
     const gchar *variant, *variant_descr = "";
@@ -5477,6 +5743,19 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext *
           GST_FLAG_SET_MASK_EXACT, NULL);
     }
 
+    if (videocontext->colorimetry.range != GST_VIDEO_COLOR_RANGE_UNKNOWN ||
+        videocontext->colorimetry.matrix != GST_VIDEO_COLOR_MATRIX_UNKNOWN ||
+        videocontext->colorimetry.transfer != GST_VIDEO_TRANSFER_UNKNOWN ||
+        videocontext->colorimetry.primaries !=
+        GST_VIDEO_COLOR_PRIMARIES_UNKNOWN) {
+      gchar *colorimetry =
+          gst_video_colorimetry_to_string (&videocontext->colorimetry);
+      gst_caps_set_simple (caps, "colorimetry", G_TYPE_STRING, colorimetry,
+          NULL);
+      GST_DEBUG ("setting colorimetry to %s", colorimetry);
+      g_free (colorimetry);
+    }
+
     caps = gst_caps_simplify (caps);
   }
 
@@ -5884,7 +6163,7 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext *
       guint sample_width;
       guint extra_data_size;
 
-      GST_ERROR ("real audio raversion:%d", raversion);
+      GST_DEBUG ("real audio raversion:%d", raversion);
       if (raversion == 8) {
         /* COOK */
         flavor = GST_READ_UINT16_BE (data + 22);
@@ -5894,7 +6173,7 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext *
         sample_width = GST_READ_UINT16_BE (data + 58);
         extra_data_size = GST_READ_UINT32_BE (data + 74);
 
-        GST_ERROR
+        GST_DEBUG
             ("flavor:%d, packet_size:%d, height:%d, leaf_size:%d, sample_width:%d, extra_data_size:%d",
             flavor, packet_size, height, leaf_size, sample_width,
             extra_data_size);
diff --git a/gst/matroska/matroska-demux.h b/gst/matroska/matroska-demux.h
index d8c2ffe27..2fe248b45 100644
--- a/gst/matroska/matroska-demux.h
+++ b/gst/matroska/matroska-demux.h
@@ -89,6 +89,10 @@ typedef struct _GstMatroskaDemux {
   GstClockTime             requested_seek_time;
   guint64                  seek_offset;
 
+  /* alternative duration; optionally obtained from last cluster */
+  guint64                  last_cluster_offset;
+  GstClockTime             stream_last_time;
+
   /* index stuff */
   gboolean                 seekable;
   gboolean                 building_index;
diff --git a/gst/matroska/matroska-ids.c b/gst/matroska/matroska-ids.c
index 1ef3e2630..3be3d276b 100644
--- a/gst/matroska/matroska-ids.c
+++ b/gst/matroska/matroska-ids.c
@@ -61,6 +61,11 @@ gst_matroska_track_init_video_context (GstMatroskaTrackContext ** p_context)
   video_context->earliest_time = GST_CLOCK_TIME_NONE;
   video_context->multiview_mode = GST_VIDEO_MULTIVIEW_MODE_NONE;
   video_context->multiview_flags = GST_VIDEO_MULTIVIEW_FLAGS_NONE;
+  video_context->colorimetry.range = GST_VIDEO_COLOR_RANGE_UNKNOWN;
+  video_context->colorimetry.matrix = GST_VIDEO_COLOR_MATRIX_UNKNOWN;
+  video_context->colorimetry.transfer = GST_VIDEO_TRANSFER_UNKNOWN;
+  video_context->colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_UNKNOWN;
+
 
   return TRUE;
 }
diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h
index a2171b37c..9a88010d0 100644
--- a/gst/matroska/matroska-ids.h
+++ b/gst/matroska/matroska-ids.h
@@ -139,6 +139,13 @@
 /* semi-draft */
 #define GST_MATROSKA_ID_VIDEOGAMMAVALUE            0x2FB523
 
+#define GST_MATROSKA_ID_VIDEOCOLOUR                0x55B0
+/* IDs in the Colour master*/
+#define GST_MATROSKA_ID_VIDEOMATRIXCOEFFICIENTS    0x55B1
+#define GST_MATROSKA_ID_VIDEORANGE                 0x55B9
+#define GST_MATROSKA_ID_VIDEOTRANSFERCHARACTERISTICS  0x55BA
+#define GST_MATROSKA_ID_VIDEOPRIMARIES             0x55BB
+
 /* IDs in the TrackAudio master */
 #define GST_MATROSKA_ID_AUDIOSAMPLINGFREQ          0xB5
 #define GST_MATROSKA_ID_AUDIOBITDEPTH              0x6264
@@ -297,6 +304,7 @@
 
 /* IDs in the ChapterAtom master */
 #define GST_MATROSKA_ID_CHAPTERUID                 0x73C4
+#define GST_MATROSKA_ID_CHAPTERSTRINGUID           0x5654
 #define GST_MATROSKA_ID_CHAPTERTIMESTART           0x91
 #define GST_MATROSKA_ID_CHAPTERTIMESTOP            0x92
 #define GST_MATROSKA_ID_CHAPTERFLAGHIDDEN          0x98
@@ -350,6 +358,7 @@
 #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_VIDEO_AV1          "V_AV1"
 #define GST_MATROSKA_CODEC_ID_VIDEO_MPEGH_HEVC   "V_MPEGH/ISO/HEVC"
 #define GST_MATROSKA_CODEC_ID_VIDEO_PRORES       "V_PRORES"
 
@@ -594,6 +603,7 @@ typedef struct _GstMatroskaTrackVideoContext {
   GstClockTime  earliest_time;
 
   GstBuffer     *dirac_unit;
+  GstVideoColorimetry colorimetry;
 } GstMatroskaTrackVideoContext;
 
 typedef struct _GstMatroskaTrackAudioContext {
@@ -616,9 +626,9 @@ typedef struct _GstMatroskaTrackSubtitleContext {
 
 typedef struct _GstMatroskaIndex {
   guint64        pos;      /* of the corresponding *cluster*! */
-  guint16        track;    /* reference to 'num' */
   GstClockTime   time;     /* in nanoseconds */
   guint32        block;    /* number of the block in the cluster */
+  guint16        track;    /* reference to 'num' */
 } GstMatroskaIndex;
 
 typedef struct _Wavpack4Header {
diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c
index 6af282bbc..fd09e2ef0 100644
--- a/gst/matroska/matroska-mux.c
+++ b/gst/matroska/matroska-mux.c
@@ -498,6 +498,7 @@ gst_matroska_mux_init (GstMatroskaMux * mux, gpointer g_class)
   mux->num_a_streams = 0;
   mux->num_t_streams = 0;
   mux->num_v_streams = 0;
+  mux->internal_toc = NULL;
 
   /* create used uid list */
   mux->used_uids = g_array_sized_new (FALSE, FALSE, sizeof (guint64), 10);
@@ -526,6 +527,11 @@ gst_matroska_mux_finalize (GObject * object)
 
   g_array_free (mux->used_uids, TRUE);
 
+  if (mux->internal_toc) {
+    gst_toc_unref (mux->internal_toc);
+    mux->internal_toc = NULL;
+  }
+
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -699,6 +705,10 @@ gst_matroska_mux_reset (GstElement * element)
 
   /* reset chapters */
   gst_toc_setter_reset (GST_TOC_SETTER (mux));
+  if (mux->internal_toc) {
+    gst_toc_unref (mux->internal_toc);
+    mux->internal_toc = NULL;
+  }
 
   mux->chapters_pos = 0;
 
@@ -715,7 +725,7 @@ gst_matroska_mux_reset (GstElement * element)
  *
  * handle events - copied from oggmux without understanding
  *
- * Returns: #TRUE on success.
+ * Returns: %TRUE on success.
  */
 static gboolean
 gst_matroska_mux_handle_src_event (GstPad * pad, GstObject * parent,
@@ -792,7 +802,7 @@ gst_matroska_mux_build_vobsub_private (GstMatroskaTrackContext * context,
  *
  * handle events - informational ones like tags
  *
- * Returns: #TRUE on success.
+ * Returns: %TRUE on success.
  */
 static gboolean
 gst_matroska_mux_handle_sink_event (GstCollectPads * pads,
@@ -948,7 +958,7 @@ gst_matroska_mux_set_codec_id (GstMatroskaTrackContext * context,
  *
  * Setcaps function for video sink pad.
  *
- * Returns: #TRUE on success.
+ * Returns: %TRUE on success.
  */
 static gboolean
 gst_matroska_mux_video_pad_setcaps (GstPad * pad, GstCaps * caps)
@@ -1200,6 +1210,8 @@ skip_details:
     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/x-av1")) {
+    gst_matroska_mux_set_codec_id (context, GST_MATROSKA_CODEC_ID_VIDEO_AV1);
   } else if (!strcmp (mimetype, "video/mpeg")) {
     gint mpegversion;
 
@@ -1760,7 +1772,7 @@ opus_make_codecdata (GstMatroskaTrackContext * context, GstCaps * caps)
  *
  * Setcaps function for audio sink pad.
  *
- * Returns: #TRUE on success.
+ * Returns: %TRUE on success.
  */
 static gboolean
 gst_matroska_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps)
@@ -2181,7 +2193,7 @@ refuse_caps:
  *
  * Setcaps function for subtitle sink pad.
  *
- * Returns: #TRUE on success.
+ * Returns: %TRUE on success.
  */
 static gboolean
 gst_matroska_mux_subtitle_pad_setcaps (GstPad * pad, GstCaps * caps)
@@ -2609,7 +2621,6 @@ gst_matroska_mux_track_header (GstMatroskaMux * mux,
   }
 }
 
-#if 0
 static void
 gst_matroska_mux_write_chapter_title (const gchar * title, GstEbmlWrite * ebml)
 {
@@ -2625,17 +2636,20 @@ gst_matroska_mux_write_chapter_title (const gchar * title, GstEbmlWrite * ebml)
   gst_ebml_write_master_finish (ebml, title_master);
 }
 
-static void
+static GstTocEntry *
 gst_matroska_mux_write_chapter (GstMatroskaMux * mux, GstTocEntry * edition,
     GstTocEntry * entry, GstEbmlWrite * ebml, guint64 * master_chapters,
     guint64 * master_edition)
 {
-  guint64 uid, master_chapteratom;
+  guint64 master_chapteratom;
   GList *cur;
-  GstTocEntry *cur_entry;
   guint count, i;
   gchar *title;
   gint64 start, stop;
+  guint64 uid;
+  gchar s_uid[32];
+  GstTocEntry *internal_chapter, *internal_nested;
+  GstTagList *tags;
 
   if (G_UNLIKELY (master_chapters != NULL && *master_chapters == 0))
     *master_chapters =
@@ -2643,78 +2657,111 @@ gst_matroska_mux_write_chapter (GstMatroskaMux * mux, GstTocEntry * edition,
 
   if (G_UNLIKELY (master_edition != NULL && *master_edition == 0)) {
     /* create uid for the parent */
-    uid = gst_matroska_mux_create_uid ();
-    g_free (edition->uid);
-    edition->uid = g_strdup_printf ("%" G_GUINT64_FORMAT, uid);
-
     *master_edition =
         gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_EDITIONENTRY);
 
-    gst_ebml_write_uint (ebml, GST_MATROSKA_ID_EDITIONUID, uid);
+    gst_ebml_write_uint (ebml, GST_MATROSKA_ID_EDITIONUID,
+        g_ascii_strtoull (gst_toc_entry_get_uid (edition), NULL, 10));
     gst_ebml_write_uint (ebml, GST_MATROSKA_ID_EDITIONFLAGHIDDEN, 0);
     gst_ebml_write_uint (ebml, GST_MATROSKA_ID_EDITIONFLAGDEFAULT, 0);
     gst_ebml_write_uint (ebml, GST_MATROSKA_ID_EDITIONFLAGORDERED, 0);
   }
 
-  uid = gst_matroska_mux_create_uid ();
   gst_toc_entry_get_start_stop_times (entry, &start, &stop);
+  tags = gst_toc_entry_get_tags (entry);
+  if (tags != NULL) {
+    tags = gst_tag_list_copy (tags);
+  }
+
+  /* build internal chapter */
+  uid = gst_matroska_mux_create_uid (mux);
+  g_snprintf (s_uid, sizeof (s_uid), "%" G_GINT64_FORMAT, uid);
+  internal_chapter = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, s_uid);
 
+  /* Write the chapter entry */
   master_chapteratom =
       gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_CHAPTERATOM);
-  g_free (entry->uid);
-  entry->uid = g_strdup_printf ("%" G_GUINT64_FORMAT, uid);
+
   gst_ebml_write_uint (ebml, GST_MATROSKA_ID_CHAPTERUID, uid);
+  /* Store the user provided UID in the ChapterStringUID */
+  gst_ebml_write_utf8 (ebml, GST_MATROSKA_ID_CHAPTERSTRINGUID,
+      gst_toc_entry_get_uid (entry));
   gst_ebml_write_uint (ebml, GST_MATROSKA_ID_CHAPTERTIMESTART, start);
   gst_ebml_write_uint (ebml, GST_MATROSKA_ID_CHAPTERTIMESTOP, stop);
   gst_ebml_write_uint (ebml, GST_MATROSKA_ID_CHAPTERFLAGHIDDEN, 0);
   gst_ebml_write_uint (ebml, GST_MATROSKA_ID_CHAPTERFLAGENABLED, 1);
 
-  cur = entry->subentries;
-  while (cur != NULL) {
-    cur_entry = cur->data;
-    gst_matroska_mux_write_chapter (mux, NULL, cur_entry, ebml, NULL, NULL);
-
-    cur = cur->next;
-  }
-
-  if (G_LIKELY (entry->tags != NULL)) {
-    count = gst_tag_list_get_tag_size (entry->tags, GST_TAG_TITLE);
+  /* write current ChapterDisplays before the nested chapters */
+  if (G_LIKELY (tags != NULL)) {
+    count = gst_tag_list_get_tag_size (tags, GST_TAG_TITLE);
 
     for (i = 0; i < count; ++i) {
-      gst_tag_list_get_string_index (entry->tags, GST_TAG_TITLE, i, &title);
+      gst_tag_list_get_string_index (tags, GST_TAG_TITLE, i, &title);
+      /* FIXME: handle ChapterLanguage entries */
       gst_matroska_mux_write_chapter_title (title, ebml);
       g_free (title);
     }
 
     /* remove title tag */
     if (G_LIKELY (count > 0))
-      gst_tag_list_remove_tag (entry->tags, GST_TAG_TITLE);
+      gst_tag_list_remove_tag (tags, GST_TAG_TITLE);
+
+    gst_toc_entry_set_tags (internal_chapter, tags);
+  }
+
+  /* Write nested chapters */
+  for (cur = gst_toc_entry_get_sub_entries (entry); cur != NULL;
+      cur = cur->next) {
+    internal_nested = gst_matroska_mux_write_chapter (mux, NULL, cur->data,
+        ebml, NULL, NULL);
+
+    gst_toc_entry_append_sub_entry (internal_chapter, internal_nested);
   }
 
   gst_ebml_write_master_finish (ebml, master_chapteratom);
+
+  return internal_chapter;
 }
 
-static void
+static GstTocEntry *
 gst_matroska_mux_write_chapter_edition (GstMatroskaMux * mux,
-    GstTocEntry * entry, GstEbmlWrite * ebml, guint64 * master_chapters)
+    GstTocEntry * edition, GList * chapters, GstEbmlWrite * ebml,
+    guint64 * master_chapters)
 {
   guint64 master_edition = 0;
+  gchar s_uid[32];
   GList *cur;
-  GstTocEntry *subentry;
+  GstTocEntry *internal_edition, *internal_chapter;
+  GstTagList *tags = NULL;
+
+  g_snprintf (s_uid, sizeof (s_uid), "%" G_GINT64_FORMAT,
+      gst_matroska_mux_create_uid (mux));
 
-  cur = gst_toc_entry_get_sub_entries (entry);
-  while (cur != NULL) {
-    subentry = cur->data;
-    gst_matroska_mux_write_chapter (mux, entry, subentry, ebml, master_chapters,
-        &master_edition);
+  if (edition != NULL) {
+    /* Edition entry defined, get its tags */
+    tags = gst_toc_entry_get_tags (edition);
+    if (tags != NULL) {
+      tags = gst_tag_list_copy (tags);
+    }
+  }
 
-    cur = cur->next;
+  internal_edition = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, s_uid);
+  if (tags != NULL) {
+    gst_toc_entry_set_tags (internal_edition, tags);
+  }
+
+  for (cur = g_list_first (chapters); cur != NULL; cur = cur->next) {
+    internal_chapter = gst_matroska_mux_write_chapter (mux, internal_edition,
+        cur->data, ebml, master_chapters, &master_edition);
+
+    gst_toc_entry_append_sub_entry (internal_edition, internal_chapter);
   }
 
   if (G_LIKELY (master_edition != 0))
     gst_ebml_write_master_finish (ebml, master_edition);
+
+  return internal_edition;
 }
-#endif
 
 /**
  * gst_matroska_mux_start:
@@ -2745,9 +2792,7 @@ gst_matroska_mux_start (GstMatroskaMux * mux, GstMatroskaPad * first_pad,
   guint32 segment_uid[4];
   GTimeVal time = { 0, 0 };
   gchar s_id[32];
-#if 0
   GstToc *toc;
-#endif
 
   /* if not streaming, check if downstream is seekable */
   if (!mux->ebml_write->streamable) {
@@ -2930,77 +2975,66 @@ gst_matroska_mux_start (GstMatroskaMux * mux, GstMatroskaPad * first_pad,
   }
   gst_ebml_write_master_finish (ebml, master);
 
-  /* FIXME: Check if we get a TOC that is supported by Matroska
-   * and clean up the code below */
-#if 0
   /* chapters */
   toc = gst_toc_setter_get_toc (GST_TOC_SETTER (mux));
   if (toc != NULL && !mux->ebml_write->streamable) {
     guint64 master_chapters = 0;
-    GstTocEntry *toc_entry;
-    GList *cur, *to_write = NULL;
-    gint64 start, stop;
+    GstTocEntry *internal_edition;
+    GList *cur, *chapters;
 
     GST_DEBUG ("Writing chapters");
 
-    /* check whether we have editions or chapters at the root level */
-    toc_entry = toc->entries->data;
-
-    if (toc_entry->type != GST_TOC_ENTRY_TYPE_EDITION) {
-      toc_entry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, "");
-      gst_toc_entry_set_start_stop_times (toc_entry, -1, -1);
-
-      /* aggregate all chapters without root edition */
-      cur = gst_toc_get_entries (toc);
-      while (cur != NULL) {
-        toc_entry->subentries =
-            g_list_prepend (toc_entry->subentries, cur->data);
-        cur = cur->next;
+    /* There are two UIDs for Chapters:
+     * - The ChapterUID is a mandatory unsigned integer which internally
+     * refers to a given chapter. Except for the title & language which use
+     * dedicated fields, this UID can also be used to add tags to the Chapter.
+     * The tags come in a separate section of the container.
+     * - The ChapterStringUID is an optional UTF-8 string which also uniquely
+     * refers to a chapter but from an external perspective. It can act as a
+     * "WebVTT cue identifier" which "can be used to reference a specific cue,
+     * for example from script or CSS".
+     *
+     * The ChapterUID will be generated and checked for unicity, while the
+     * ChapterStringUID will receive the user defined UID.
+     *
+     * In order to be able to refer to chapters from the tags section,
+     * we must maintain an internal Toc tree with the generated ChapterUID
+     * (see gst_matroska_mux_write_toc_entry_tags) */
+
+    /* Check whether we have editions or chapters at the root level. */
+    cur = gst_toc_get_entries (toc);
+    if (cur != NULL) {
+      mux->chapters_pos = ebml->pos;
+
+      mux->internal_toc = gst_toc_new (GST_TOC_SCOPE_GLOBAL);
+
+      if (gst_toc_entry_get_entry_type (cur->data) ==
+          GST_TOC_ENTRY_TYPE_EDITION) {
+        /* Editions at the root level */
+        for (; cur != NULL; cur = cur->next) {
+          chapters = gst_toc_entry_get_sub_entries (cur->data);
+          internal_edition = gst_matroska_mux_write_chapter_edition (mux,
+              cur->data, chapters, ebml, &master_chapters);
+          gst_toc_append_entry (mux->internal_toc, internal_edition);
+        }
+      } else {
+        /* Chapters at the root level */
+        internal_edition = gst_matroska_mux_write_chapter_edition (mux,
+            NULL, cur, ebml, &master_chapters);
+        gst_toc_append_entry (mux->internal_toc, internal_edition);
       }
 
-      gst_toc_entry_get_start_stop_times (((GstTocEntry *)
-              toc_entry->subentries->data), &start, NULL);
-      toc_entry->subentries = g_list_reverse (toc_entry->subentries);
-      gst_toc_entry_get_start_stop_times (((GstTocEntry *)
-              toc_entry->subentries->data), NULL, &stop);
-      gst_toc_entry_set_start_stop_times (toc_entry, start, stop);
-
-      to_write = g_list_append (to_write, toc_entry);
-    } else {
-      toc_entry = NULL;
-      to_write = toc->entries;
-    }
-
-    /* finally write chapters */
-    mux->chapters_pos = ebml->pos;
-
-    cur = to_write;
-    while (cur != NULL) {
-      gst_matroska_mux_write_chapter_edition (mux, cur->data, ebml,
-          &master_chapters);
-      cur = cur->next;
-    }
-
-    /* close master element if any edition was written */
-    if (G_LIKELY (master_chapters != 0))
-      gst_ebml_write_master_finish (ebml, master_chapters);
-
-    if (toc_entry != NULL) {
-      g_list_free (toc_entry->subentries);
-      toc_entry->subentries = NULL;
-      gst_toc_entry_unref (toc_entry);
-      g_list_free (to_write);
+      /* close master element if any edition was written */
+      if (G_LIKELY (master_chapters != 0))
+        gst_ebml_write_master_finish (ebml, master_chapters);
     }
   }
-#endif
 
   /* lastly, flush the cache */
   gst_ebml_write_flush_cache (ebml, FALSE, 0);
 
-#if 0
   if (toc != NULL)
     gst_toc_unref (toc);
-#endif
 }
 
 /* TODO: more sensible tag mappings */
@@ -3146,19 +3180,21 @@ gst_matroska_mux_streams_have_tags (GstMatroskaMux * mux)
   return FALSE;
 }
 
-#if 0
 static void
 gst_matroska_mux_write_toc_entry_tags (GstMatroskaMux * mux,
-    const GstTocEntry * entry, guint64 * master_tags)
+    const GstTocEntry * entry, guint64 * master_tags, gboolean * has_tags)
 {
   guint64 master_tag, master_targets;
   GstEbmlWrite *ebml;
   GList *cur;
+  const GstTagList *tags;
 
   ebml = mux->ebml_write;
 
-  if (G_UNLIKELY (entry->tags != NULL
-          && !gst_matroska_mux_tag_list_is_empty (entry->tags))) {
+  tags = gst_toc_entry_get_tags (entry);
+  if (G_UNLIKELY (tags != NULL && !gst_matroska_mux_tag_list_is_empty (tags))) {
+    *has_tags = TRUE;
+
     if (*master_tags == 0) {
       mux->tags_pos = ebml->pos;
       *master_tags = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_TAGS);
@@ -3168,25 +3204,24 @@ gst_matroska_mux_write_toc_entry_tags (GstMatroskaMux * mux,
     master_targets =
         gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_TARGETS);
 
-    if (entry->type == GST_TOC_ENTRY_TYPE_EDITION)
+    if (gst_toc_entry_get_entry_type (entry) == GST_TOC_ENTRY_TYPE_EDITION)
       gst_ebml_write_uint (ebml, GST_MATROSKA_ID_TARGETEDITIONUID,
-          g_ascii_strtoull (entry->uid, NULL, 10));
+          g_ascii_strtoull (gst_toc_entry_get_uid (entry), NULL, 10));
     else
       gst_ebml_write_uint (ebml, GST_MATROSKA_ID_TARGETCHAPTERUID,
-          g_ascii_strtoull (entry->uid, NULL, 10));
+          g_ascii_strtoull (gst_toc_entry_get_uid (entry), NULL, 10));
 
     gst_ebml_write_master_finish (ebml, master_targets);
-    gst_tag_list_foreach (entry->tags, gst_matroska_mux_write_simple_tag, ebml);
+    gst_tag_list_foreach (tags, gst_matroska_mux_write_simple_tag, ebml);
     gst_ebml_write_master_finish (ebml, master_tag);
   }
 
-  cur = entry->subentries;
-  while (cur != NULL) {
-    gst_matroska_mux_write_toc_entry_tags (mux, cur->data, master_tags);
-    cur = cur->next;
+  for (cur = gst_toc_entry_get_sub_entries (entry); cur != NULL;
+      cur = cur->next) {
+    gst_matroska_mux_write_toc_entry_tags (mux, cur->data, master_tags,
+        has_tags);
   }
 }
-#endif
 
 /**
  * gst_matroska_mux_finish:
@@ -3201,8 +3236,10 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
   guint64 pos;
   guint64 duration = 0;
   GSList *collected;
-  const GstTagList *tags;
-  gboolean has_main_tags;
+  const GstTagList *tags, *toc_tags;
+  const GstToc *toc;
+  gboolean has_main_tags, toc_has_tags = FALSE;
+  GList *cur;
 
   /* finish last cluster */
   if (mux->cluster) {
@@ -3241,20 +3278,13 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
   /* tags */
   tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (mux));
   has_main_tags = tags != NULL && !gst_matroska_mux_tag_list_is_empty (tags);
+  toc = gst_toc_setter_get_toc (GST_TOC_SETTER (mux));
 
-  if (has_main_tags || gst_matroska_mux_streams_have_tags (mux)
-      || gst_toc_setter_get_toc (GST_TOC_SETTER (mux)) != NULL) {
+  if (has_main_tags || gst_matroska_mux_streams_have_tags (mux) || toc != NULL) {
     guint64 master_tags = 0, master_tag;
-#if 0
-    const GstToc *toc;
-#endif
 
     GST_DEBUG_OBJECT (mux, "Writing tags");
 
-#if 0
-    toc = gst_toc_setter_get_toc (GST_TOC_SETTER (mux));
-#endif
-
     if (has_main_tags) {
       /* TODO: maybe limit via the TARGETS id by looking at the source pad */
       mux->tags_pos = ebml->pos;
@@ -3263,23 +3293,23 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
 
       if (tags != NULL)
         gst_tag_list_foreach (tags, gst_matroska_mux_write_simple_tag, ebml);
-#if 0
-      if (toc != NULL)
-        gst_tag_list_foreach (toc->tags, gst_matroska_mux_write_simple_tag,
+      if (mux->internal_toc != NULL) {
+        toc_tags = gst_toc_get_tags (mux->internal_toc);
+        toc_has_tags = (toc_tags != NULL);
+        gst_tag_list_foreach (toc_tags, gst_matroska_mux_write_simple_tag,
             ebml);
-#endif
+      }
 
       gst_ebml_write_master_finish (ebml, master_tag);
     }
-#if 0
-    if (toc != NULL) {
-      cur = toc->entries;
-      while (cur != NULL) {
-        gst_matroska_mux_write_toc_entry_tags (mux, cur->data, &master_tags);
-        cur = cur->next;
+
+    if (mux->internal_toc != NULL) {
+      for (cur = gst_toc_get_entries (mux->internal_toc); cur != NULL;
+          cur = cur->next) {
+        gst_matroska_mux_write_toc_entry_tags (mux, cur->data, &master_tags,
+            &toc_has_tags);
       }
     }
-#endif
 
     if (master_tags == 0 && gst_matroska_mux_streams_have_tags (mux)) {
       mux->tags_pos = ebml->pos;
@@ -3305,8 +3335,7 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
       mux->info_pos - mux->segment_master);
   gst_ebml_replace_uint (ebml, mux->seekhead_pos + 60,
       mux->tracks_pos - mux->segment_master);
-  if (gst_toc_setter_get_toc (GST_TOC_SETTER (mux)) != NULL
-      && mux->chapters_pos > 0) {
+  if (toc != NULL && mux->chapters_pos > 0) {
     gst_ebml_replace_uint (ebml, mux->seekhead_pos + 88,
         mux->chapters_pos - mux->segment_master);
   } else {
@@ -3329,7 +3358,7 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
     gst_ebml_write_seek (ebml, my_pos);
   }
 
-  if (tags != NULL) {
+  if (tags != NULL || toc_has_tags) {
     gst_ebml_replace_uint (ebml, mux->seekhead_pos + 144,
         mux->tags_pos - mux->segment_master);
   } else {
@@ -3341,6 +3370,10 @@ gst_matroska_mux_finish (GstMatroskaMux * mux)
     gst_ebml_write_seek (ebml, my_pos);
   }
 
+  if (toc != NULL) {
+    gst_toc_unref (toc);
+  }
+
   /* loop tracks:
    * - first get the overall duration
    *   (a released track may have left a duration in here)
diff --git a/gst/matroska/matroska-mux.h b/gst/matroska/matroska-mux.h
index aaeeecdd1..728384066 100644
--- a/gst/matroska/matroska-mux.h
+++ b/gst/matroska/matroska-mux.h
@@ -135,6 +135,9 @@ struct _GstMatroskaMux {
   /* GstForceKeyUnit event */
   GstEvent       *force_key_unit_event;
 
+  /* Internal Toc (adjusted UIDs and title tags removed when processed) */
+  GstToc         *internal_toc;
+
   /* Flag to ease handling of WebM specifics */
   gboolean is_webm;
 
diff --git a/gst/matroska/matroska-read-common.c b/gst/matroska/matroska-read-common.c
index 39bc2dbe4..419ba7f95 100644
--- a/gst/matroska/matroska-read-common.c
+++ b/gst/matroska/matroska-read-common.c
@@ -731,18 +731,19 @@ gst_matroska_read_common_parse_attachments (GstMatroskaReadCommon * common,
 
 static void
 gst_matroska_read_common_parse_toc_tag (GstTocEntry * entry,
-    GArray * edition_targets, GArray * chapter_targtes, GstTagList * tags)
+    GstTocEntry * internal_entry, GArray * edition_targets,
+    GArray * chapter_targets, GstTagList * tags)
 {
   gchar *uid;
   guint i;
   guint64 tgt;
   GArray *targets;
-  GList *cur;
+  GList *cur, *internal_cur;
   GstTagList *etags;
 
   targets =
       (gst_toc_entry_get_entry_type (entry) ==
-      GST_TOC_ENTRY_TYPE_EDITION) ? edition_targets : chapter_targtes;
+      GST_TOC_ENTRY_TYPE_EDITION) ? edition_targets : chapter_targets;
 
   etags = gst_tag_list_new_empty ();
 
@@ -753,7 +754,7 @@ gst_matroska_read_common_parse_toc_tag (GstTocEntry * entry,
       gst_tag_list_insert (etags, tags, GST_TAG_MERGE_APPEND);
     else {
       uid = g_strdup_printf ("%" G_GUINT64_FORMAT, tgt);
-      if (g_strcmp0 (gst_toc_entry_get_uid (entry), uid) == 0)
+      if (g_strcmp0 (gst_toc_entry_get_uid (internal_entry), uid) == 0)
         gst_tag_list_insert (etags, tags, GST_TAG_MERGE_APPEND);
       g_free (uid);
     }
@@ -763,10 +764,12 @@ gst_matroska_read_common_parse_toc_tag (GstTocEntry * entry,
   gst_tag_list_unref (etags);
 
   cur = gst_toc_entry_get_sub_entries (entry);
-  while (cur != NULL) {
-    gst_matroska_read_common_parse_toc_tag (cur->data, edition_targets,
-        chapter_targtes, tags);
+  internal_cur = gst_toc_entry_get_sub_entries (internal_entry);
+  while (cur != NULL && internal_cur != NULL) {
+    gst_matroska_read_common_parse_toc_tag (cur->data, internal_cur->data,
+        edition_targets, chapter_targets, tags);
     cur = cur->next;
+    internal_cur = internal_cur->next;
   }
 }
 
@@ -954,16 +957,16 @@ gst_matroska_read_common_parse_chapter_titles (GstMatroskaReadCommon * common,
 
 static GstFlowReturn
 gst_matroska_read_common_parse_chapter_element (GstMatroskaReadCommon * common,
-    GstEbmlRead * ebml, GList ** subentries)
+    GstEbmlRead * ebml, GList ** subentries, GList ** internal_subentries)
 {
   guint32 id;
   guint64 start_time = -1, stop_time = -1;
   guint64 is_hidden = 0, is_enabled = 1, uid = 0;
   GstFlowReturn ret = GST_FLOW_OK;
-  GstTocEntry *chapter_info;
+  GstTocEntry *chapter_info, *internal_chapter_info;
   GstTagList *tags;
-  gchar *uid_str;
-  GList *subsubentries = NULL, *l;
+  gchar *uid_str, *string_uid = NULL;
+  GList *subsubentries = NULL, *internal_subsubentries = NULL, *l, *il;
 
   DEBUG_ELEMENT_START (common, ebml, "ChaptersElement");
 
@@ -983,6 +986,10 @@ gst_matroska_read_common_parse_chapter_element (GstMatroskaReadCommon * common,
         ret = gst_ebml_read_uint (ebml, &id, &uid);
         break;
 
+      case GST_MATROSKA_ID_CHAPTERSTRINGUID:
+        ret = gst_ebml_read_utf8 (ebml, &id, &string_uid);
+        break;
+
       case GST_MATROSKA_ID_CHAPTERTIMESTART:
         ret = gst_ebml_read_uint (ebml, &id, &start_time);
         break;
@@ -992,9 +999,8 @@ gst_matroska_read_common_parse_chapter_element (GstMatroskaReadCommon * common,
         break;
 
       case GST_MATROSKA_ID_CHAPTERATOM:
-        ret =
-            gst_matroska_read_common_parse_chapter_element (common, ebml,
-            &subsubentries);
+        ret = gst_matroska_read_common_parse_chapter_element (common, ebml,
+            &subsubentries, &internal_subsubentries);
         break;
 
       case GST_MATROSKA_ID_CHAPTERDISPLAY:
@@ -1021,15 +1027,29 @@ gst_matroska_read_common_parse_chapter_element (GstMatroskaReadCommon * common,
   if (uid == 0)
     uid = (((guint64) g_random_int ()) << 32) | g_random_int ();
   uid_str = g_strdup_printf ("%" G_GUINT64_FORMAT, uid);
-  chapter_info = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, uid_str);
+  if (string_uid != NULL) {
+    /* init toc with provided String UID */
+    chapter_info = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, string_uid);
+    g_free (string_uid);
+  } else {
+    /* No String UID provided => use the internal UID instead */
+    chapter_info = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, uid_str);
+  }
+  /* init internal toc with internal UID */
+  internal_chapter_info = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER,
+      uid_str);
   g_free (uid_str);
 
   gst_toc_entry_set_tags (chapter_info, tags);
   gst_toc_entry_set_start_stop_times (chapter_info, start_time, stop_time);
 
-  for (l = subsubentries; l; l = l->next)
+  for (l = subsubentries, il = internal_subsubentries;
+      l && il; l = l->next, il = il->next) {
     gst_toc_entry_append_sub_entry (chapter_info, l->data);
+    gst_toc_entry_append_sub_entry (internal_chapter_info, il->data);
+  }
   g_list_free (subsubentries);
+  g_list_free (internal_subsubentries);
 
   DEBUG_ELEMENT_STOP (common, ebml, "ChaptersElement", ret);
 
@@ -1038,21 +1058,25 @@ gst_matroska_read_common_parse_chapter_element (GstMatroskaReadCommon * common,
   if (is_hidden == 0 && is_enabled > 0 &&
       start_time != -1 && ret == GST_FLOW_OK) {
     *subentries = g_list_append (*subentries, chapter_info);
-  } else
+    *internal_subentries = g_list_append (*internal_subentries,
+        internal_chapter_info);
+  } else {
     gst_toc_entry_unref (chapter_info);
+    gst_toc_entry_unref (internal_chapter_info);
+  }
 
   return ret;
 }
 
 static GstFlowReturn
 gst_matroska_read_common_parse_chapter_edition (GstMatroskaReadCommon * common,
-    GstEbmlRead * ebml, GstToc * toc)
+    GstEbmlRead * ebml, GstToc * toc, GstToc * internal_toc)
 {
   guint32 id;
   guint64 is_hidden = 0, uid = 0;
   GstFlowReturn ret = GST_FLOW_OK;
-  GstTocEntry *edition_info;
-  GList *subentries = NULL, *l;
+  GstTocEntry *edition_info, *internal_edition_info;
+  GList *subentries = NULL, *internal_subentries = NULL, *l, *il;
   gchar *uid_str;
 
   DEBUG_ELEMENT_START (common, ebml, "ChaptersEdition");
@@ -1072,9 +1096,8 @@ gst_matroska_read_common_parse_chapter_edition (GstMatroskaReadCommon * common,
         break;
 
       case GST_MATROSKA_ID_CHAPTERATOM:
-        ret =
-            gst_matroska_read_common_parse_chapter_element (common, ebml,
-            &subentries);
+        ret = gst_matroska_read_common_parse_chapter_element (common, ebml,
+            &subentries, &internal_subentries);
         break;
 
       case GST_MATROSKA_ID_EDITIONFLAGHIDDEN:
@@ -1096,18 +1119,26 @@ gst_matroska_read_common_parse_chapter_edition (GstMatroskaReadCommon * common,
   uid_str = g_strdup_printf ("%" G_GUINT64_FORMAT, uid);
   edition_info = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, uid_str);
   gst_toc_entry_set_start_stop_times (edition_info, -1, -1);
+  internal_edition_info = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION,
+      uid_str);
   g_free (uid_str);
 
-  for (l = subentries; l; l = l->next)
+  for (l = subentries, il = internal_subentries; l && il;
+      l = l->next, il = il->next) {
     gst_toc_entry_append_sub_entry (edition_info, l->data);
+    gst_toc_entry_append_sub_entry (internal_edition_info, il->data);
+  }
   g_list_free (subentries);
+  g_list_free (internal_subentries);
 
-  if (is_hidden == 0 && subentries != NULL && ret == GST_FLOW_OK)
+  if (is_hidden == 0 && subentries != NULL && ret == GST_FLOW_OK) {
     gst_toc_append_entry (toc, edition_info);
-  else {
+    gst_toc_append_entry (internal_toc, internal_edition_info);
+  } else {
     GST_DEBUG_OBJECT (common->sinkpad,
         "Skipping empty or hidden edition in the chapters TOC");
     gst_toc_entry_unref (edition_info);
+    gst_toc_entry_unref (internal_edition_info);
   }
 
   return ret;
@@ -1119,7 +1150,7 @@ gst_matroska_read_common_parse_chapters (GstMatroskaReadCommon * common,
 {
   guint32 id;
   GstFlowReturn ret = GST_FLOW_OK;
-  GstToc *toc;
+  GstToc *toc, *internal_toc;
 
   DEBUG_ELEMENT_START (common, ebml, "Chapters");
 
@@ -1130,6 +1161,7 @@ gst_matroska_read_common_parse_chapters (GstMatroskaReadCommon * common,
 
   /* FIXME: create CURRENT toc as well */
   toc = gst_toc_new (GST_TOC_SCOPE_GLOBAL);
+  internal_toc = gst_toc_new (GST_TOC_SCOPE_GLOBAL);
 
   while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
     if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK)
@@ -1137,8 +1169,8 @@ gst_matroska_read_common_parse_chapters (GstMatroskaReadCommon * common,
 
     switch (id) {
       case GST_MATROSKA_ID_EDITIONENTRY:
-        ret =
-            gst_matroska_read_common_parse_chapter_edition (common, ebml, toc);
+        ret = gst_matroska_read_common_parse_chapter_edition (common, ebml,
+            toc, internal_toc);
         break;
 
       default:
@@ -1151,10 +1183,15 @@ gst_matroska_read_common_parse_chapters (GstMatroskaReadCommon * common,
   if (gst_toc_get_entries (toc) != NULL) {
     gst_matroska_read_common_postprocess_toc_entries (gst_toc_get_entries (toc),
         common->segment.duration, "");
+    /* no need to postprocess internal_toc as we don't need to keep track
+     * of start / end and tags (only UIDs) */
 
     common->toc = toc;
-  } else
+    common->internal_toc = internal_toc;
+  } else {
     gst_toc_unref (toc);
+    gst_toc_unref (internal_toc);
+  }
 
   common->chapters_parsed = TRUE;
 
@@ -2228,7 +2265,7 @@ gst_matroska_read_common_apply_target_type_foreach (const GstTagList * list,
         continue;
       } else if (ctx->target_type_value >= 50) {
         gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND,
-            GST_TAG_ALBUM, val_ref);
+            GST_TAG_TITLE, val_ref);
         continue;
       }
     } else if (strcmp (tag, GST_TAG_TITLE_SORTNAME) == 0) {
@@ -2238,19 +2275,19 @@ gst_matroska_read_common_apply_target_type_foreach (const GstTagList * list,
         continue;
       } else if (ctx->target_type_value >= 50) {
         gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND,
-            GST_TAG_ALBUM_SORTNAME, val_ref);
+            GST_TAG_TITLE_SORTNAME, val_ref);
         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_ref);
+            GST_TAG_ARTIST, val_ref);
         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_ref);
+            GST_TAG_ARTIST_SORTNAME, val_ref);
         continue;
       }
     } else if (strcmp (tag, GST_TAG_TRACK_COUNT) == 0) {
@@ -2311,7 +2348,7 @@ gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common,
   GstFlowReturn ret;
   GArray *chapter_targets, *edition_targets, *track_targets;
   GstTagList *taglist;
-  GList *cur;
+  GList *cur, *internal_cur;
   guint64 target_type_value = 50;
   gchar *target_type = NULL;
 
@@ -2371,10 +2408,12 @@ gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * 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);
+        internal_cur = gst_toc_get_entries (common->internal_toc);
+        while (cur != NULL && internal_cur != NULL) {
+          gst_matroska_read_common_parse_toc_tag (cur->data, internal_cur->data,
+              edition_targets, chapter_targets, taglist);
           cur = cur->next;
+          internal_cur = internal_cur->next;
         }
         common->toc_updated = TRUE;
       }
@@ -2858,6 +2897,9 @@ gst_matroska_read_common_init (GstMatroskaReadCommon * ctx)
   ctx->index = NULL;
   ctx->global_tags = NULL;
   ctx->adapter = gst_adapter_new ();
+  ctx->toc = NULL;
+  ctx->internal_toc = NULL;
+  ctx->toc_updated = FALSE;
   ctx->cached_track_taglists =
       g_hash_table_new_full (NULL, NULL, NULL,
       (GDestroyNotify) gst_tag_list_unref);
@@ -2876,6 +2918,17 @@ gst_matroska_read_common_finalize (GstMatroskaReadCommon * ctx)
     ctx->global_tags = NULL;
   }
 
+  if (ctx->toc) {
+    gst_toc_unref (ctx->toc);
+    ctx->toc = NULL;
+  }
+  if (ctx->internal_toc) {
+    gst_toc_unref (ctx->internal_toc);
+    ctx->internal_toc = NULL;
+  }
+
+  ctx->toc_updated = FALSE;
+
   g_object_unref (ctx->adapter);
   g_hash_table_remove_all (ctx->cached_track_taglists);
   g_hash_table_unref (ctx->cached_track_taglists);
@@ -2967,6 +3020,11 @@ gst_matroska_read_common_reset (GstElement * element,
     gst_toc_unref (ctx->toc);
     ctx->toc = NULL;
   }
+  if (ctx->internal_toc) {
+    gst_toc_unref (ctx->internal_toc);
+    ctx->internal_toc = NULL;
+  }
+  ctx->toc_updated = FALSE;
 }
 
 /* call with object lock held */
diff --git a/gst/matroska/matroska-read-common.h b/gst/matroska/matroska-read-common.h
index 717323a74..a6282d698 100644
--- a/gst/matroska/matroska-read-common.h
+++ b/gst/matroska/matroska-read-common.h
@@ -73,7 +73,11 @@ typedef struct _GstMatroskaReadCommon {
   GList                   *tags_parsed;
 
   /* chapters stuff */
+  /* Internal toc is used to keep track of the internal UID
+   * which are different from the external StringUID used
+   * in the user toc */
   GstToc                  *toc;
+  GstToc                  *internal_toc;
   gboolean                toc_updated;
 
   /* start-of-segment and length */
diff --git a/gst/matroska/webm-mux.c b/gst/matroska/webm-mux.c
index 81113ec92..85c8639f5 100644
--- a/gst/matroska/webm-mux.c
+++ b/gst/matroska/webm-mux.c
@@ -66,7 +66,7 @@ static GstStaticPadTemplate webm_videosink_templ =
     GST_PAD_SINK,
     GST_PAD_REQUEST,
     GST_STATIC_CAPS ("video/x-vp8, " COMMON_VIDEO_CAPS ";"
-        "video/x-vp9, " COMMON_VIDEO_CAPS)
+        "video/x-vp9, " COMMON_VIDEO_CAPS ";" "video/x-av1, " COMMON_VIDEO_CAPS)
     );
 
 static GstStaticPadTemplate webm_audiosink_templ =
diff --git a/gst/monoscope/Makefile.am b/gst/monoscope/Makefile.am
index 36d2ed6d2..a3da88410 100644
--- a/gst/monoscope/Makefile.am
+++ b/gst/monoscope/Makefile.am
@@ -7,4 +7,3 @@ noinst_HEADERS = gstmonoscope.h monoscope.h convolve.h
 libgstmonoscope_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS)
 libgstmonoscope_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
 libgstmonoscope_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstmonoscope_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
diff --git a/gst/monoscope/Makefile.in b/gst/monoscope/Makefile.in
index 95a3809b3..0ca6933a9 100644
--- a/gst/monoscope/Makefile.in
+++ b/gst/monoscope/Makefile.in
@@ -173,8 +173,8 @@ 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) \
+	$(AM_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@)
@@ -292,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -315,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -330,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -352,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -370,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -387,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -399,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -417,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -460,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -476,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -577,7 +613,6 @@ noinst_HEADERS = gstmonoscope.h monoscope.h convolve.h
 libgstmonoscope_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS)
 libgstmonoscope_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
 libgstmonoscope_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstmonoscope_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 all: all-am
 
 .SUFFIXES:
@@ -685,25 +720,25 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstmonoscope_la-gstmonoscope.lo: gstmonoscope.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -MT libgstmonoscope_la-gstmonoscope.lo -MD -MP -MF $(DEPDIR)/libgstmonoscope_la-gstmonoscope.Tpo -c -o libgstmonoscope_la-gstmonoscope.lo `test -f 'gstmonoscope.c' || echo '$(srcdir)/'`gstmonoscope.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -MT libgstmonoscope_la-gstmonoscope.lo -MD -MP -MF $(DEPDIR)/libgstmonoscope_la-gstmonoscope.Tpo -c -o libgstmonoscope_la-gstmonoscope.lo `test -f 'gstmonoscope.c' || echo '$(srcdir)/'`gstmonoscope.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmonoscope_la-gstmonoscope.Tpo $(DEPDIR)/libgstmonoscope_la-gstmonoscope.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmonoscope.c' object='libgstmonoscope_la-gstmonoscope.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 $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -c -o libgstmonoscope_la-gstmonoscope.lo `test -f 'gstmonoscope.c' || echo '$(srcdir)/'`gstmonoscope.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -c -o libgstmonoscope_la-gstmonoscope.lo `test -f 'gstmonoscope.c' || echo '$(srcdir)/'`gstmonoscope.c
 
 libgstmonoscope_la-monoscope.lo: monoscope.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -MT libgstmonoscope_la-monoscope.lo -MD -MP -MF $(DEPDIR)/libgstmonoscope_la-monoscope.Tpo -c -o libgstmonoscope_la-monoscope.lo `test -f 'monoscope.c' || echo '$(srcdir)/'`monoscope.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -MT libgstmonoscope_la-monoscope.lo -MD -MP -MF $(DEPDIR)/libgstmonoscope_la-monoscope.Tpo -c -o libgstmonoscope_la-monoscope.lo `test -f 'monoscope.c' || echo '$(srcdir)/'`monoscope.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmonoscope_la-monoscope.Tpo $(DEPDIR)/libgstmonoscope_la-monoscope.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='monoscope.c' object='libgstmonoscope_la-monoscope.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 $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -c -o libgstmonoscope_la-monoscope.lo `test -f 'monoscope.c' || echo '$(srcdir)/'`monoscope.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -c -o libgstmonoscope_la-monoscope.lo `test -f 'monoscope.c' || echo '$(srcdir)/'`monoscope.c
 
 libgstmonoscope_la-convolve.lo: convolve.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -MT libgstmonoscope_la-convolve.lo -MD -MP -MF $(DEPDIR)/libgstmonoscope_la-convolve.Tpo -c -o libgstmonoscope_la-convolve.lo `test -f 'convolve.c' || echo '$(srcdir)/'`convolve.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -MT libgstmonoscope_la-convolve.lo -MD -MP -MF $(DEPDIR)/libgstmonoscope_la-convolve.Tpo -c -o libgstmonoscope_la-convolve.lo `test -f 'convolve.c' || echo '$(srcdir)/'`convolve.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmonoscope_la-convolve.Tpo $(DEPDIR)/libgstmonoscope_la-convolve.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='convolve.c' object='libgstmonoscope_la-convolve.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 $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -c -o libgstmonoscope_la-convolve.lo `test -f 'convolve.c' || echo '$(srcdir)/'`convolve.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -c -o libgstmonoscope_la-convolve.lo `test -f 'convolve.c' || echo '$(srcdir)/'`convolve.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/multifile/Makefile.am b/gst/multifile/Makefile.am
index f7aa42a2a..e6e8a12da 100644
--- a/gst/multifile/Makefile.am
+++ b/gst/multifile/Makefile.am
@@ -14,7 +14,6 @@ libgstmultifile_la_SOURCES = \
 libgstmultifile_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
 libgstmultifile_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_API_VERSION@ $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS)
 libgstmultifile_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstmultifile_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstmultifilesrc.h gstmultifilesink.h gstsplitfilesrc.h gstsplitmuxsink.h \
 	gstsplitmuxsrc.h gstsplitmuxpartreader.h gstsplitutils.h patternspec.h
diff --git a/gst/multifile/Makefile.in b/gst/multifile/Makefile.in
index eb4340688..bb336fd87 100644
--- a/gst/multifile/Makefile.in
+++ b/gst/multifile/Makefile.in
@@ -184,8 +184,8 @@ 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) \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libgstmultifile_la_CFLAGS) $(CFLAGS) \
 	$(libgstmultifile_la_LDFLAGS) $(LDFLAGS) -o $@
 PROGRAMS = $(noinst_PROGRAMS)
 am_test_splitmux_part_reader_OBJECTS =  \
@@ -321,6 +321,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -344,6 +345,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -359,6 +362,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -381,10 +386,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -399,6 +411,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -416,6 +429,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -428,6 +443,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -446,6 +463,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -489,9 +509,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -505,11 +536,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -615,7 +651,6 @@ libgstmultifile_la_SOURCES = \
 libgstmultifile_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
 libgstmultifile_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_API_VERSION@ $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS)
 libgstmultifile_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstmultifile_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstmultifilesrc.h gstmultifilesink.h gstsplitfilesrc.h gstsplitmuxsink.h \
 	gstsplitmuxsrc.h gstsplitmuxpartreader.h gstsplitutils.h patternspec.h
 
@@ -760,67 +795,67 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstmultifile_la-gstmultifilesink.lo: gstmultifilesink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstmultifilesink.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstmultifilesink.Tpo -c -o libgstmultifile_la-gstmultifilesink.lo `test -f 'gstmultifilesink.c' || echo '$(srcdir)/'`gstmultifilesink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstmultifilesink.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstmultifilesink.Tpo -c -o libgstmultifile_la-gstmultifilesink.lo `test -f 'gstmultifilesink.c' || echo '$(srcdir)/'`gstmultifilesink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-gstmultifilesink.Tpo $(DEPDIR)/libgstmultifile_la-gstmultifilesink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmultifilesink.c' object='libgstmultifile_la-gstmultifilesink.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 $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstmultifilesink.lo `test -f 'gstmultifilesink.c' || echo '$(srcdir)/'`gstmultifilesink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstmultifilesink.lo `test -f 'gstmultifilesink.c' || echo '$(srcdir)/'`gstmultifilesink.c
 
 libgstmultifile_la-gstmultifilesrc.lo: gstmultifilesrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstmultifilesrc.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstmultifilesrc.Tpo -c -o libgstmultifile_la-gstmultifilesrc.lo `test -f 'gstmultifilesrc.c' || echo '$(srcdir)/'`gstmultifilesrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstmultifilesrc.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstmultifilesrc.Tpo -c -o libgstmultifile_la-gstmultifilesrc.lo `test -f 'gstmultifilesrc.c' || echo '$(srcdir)/'`gstmultifilesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-gstmultifilesrc.Tpo $(DEPDIR)/libgstmultifile_la-gstmultifilesrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmultifilesrc.c' object='libgstmultifile_la-gstmultifilesrc.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 $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstmultifilesrc.lo `test -f 'gstmultifilesrc.c' || echo '$(srcdir)/'`gstmultifilesrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstmultifilesrc.lo `test -f 'gstmultifilesrc.c' || echo '$(srcdir)/'`gstmultifilesrc.c
 
 libgstmultifile_la-gstmultifile.lo: gstmultifile.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstmultifile.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstmultifile.Tpo -c -o libgstmultifile_la-gstmultifile.lo `test -f 'gstmultifile.c' || echo '$(srcdir)/'`gstmultifile.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstmultifile.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstmultifile.Tpo -c -o libgstmultifile_la-gstmultifile.lo `test -f 'gstmultifile.c' || echo '$(srcdir)/'`gstmultifile.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-gstmultifile.Tpo $(DEPDIR)/libgstmultifile_la-gstmultifile.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmultifile.c' object='libgstmultifile_la-gstmultifile.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 $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstmultifile.lo `test -f 'gstmultifile.c' || echo '$(srcdir)/'`gstmultifile.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstmultifile.lo `test -f 'gstmultifile.c' || echo '$(srcdir)/'`gstmultifile.c
 
 libgstmultifile_la-gstsplitfilesrc.lo: gstsplitfilesrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstsplitfilesrc.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstsplitfilesrc.Tpo -c -o libgstmultifile_la-gstsplitfilesrc.lo `test -f 'gstsplitfilesrc.c' || echo '$(srcdir)/'`gstsplitfilesrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstsplitfilesrc.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstsplitfilesrc.Tpo -c -o libgstmultifile_la-gstsplitfilesrc.lo `test -f 'gstsplitfilesrc.c' || echo '$(srcdir)/'`gstsplitfilesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-gstsplitfilesrc.Tpo $(DEPDIR)/libgstmultifile_la-gstsplitfilesrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsplitfilesrc.c' object='libgstmultifile_la-gstsplitfilesrc.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 $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstsplitfilesrc.lo `test -f 'gstsplitfilesrc.c' || echo '$(srcdir)/'`gstsplitfilesrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstsplitfilesrc.lo `test -f 'gstsplitfilesrc.c' || echo '$(srcdir)/'`gstsplitfilesrc.c
 
 libgstmultifile_la-gstsplitmuxsink.lo: gstsplitmuxsink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstsplitmuxsink.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstsplitmuxsink.Tpo -c -o libgstmultifile_la-gstsplitmuxsink.lo `test -f 'gstsplitmuxsink.c' || echo '$(srcdir)/'`gstsplitmuxsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstsplitmuxsink.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstsplitmuxsink.Tpo -c -o libgstmultifile_la-gstsplitmuxsink.lo `test -f 'gstsplitmuxsink.c' || echo '$(srcdir)/'`gstsplitmuxsink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-gstsplitmuxsink.Tpo $(DEPDIR)/libgstmultifile_la-gstsplitmuxsink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsplitmuxsink.c' object='libgstmultifile_la-gstsplitmuxsink.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 $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstsplitmuxsink.lo `test -f 'gstsplitmuxsink.c' || echo '$(srcdir)/'`gstsplitmuxsink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstsplitmuxsink.lo `test -f 'gstsplitmuxsink.c' || echo '$(srcdir)/'`gstsplitmuxsink.c
 
 libgstmultifile_la-gstsplitmuxpartreader.lo: gstsplitmuxpartreader.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstsplitmuxpartreader.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstsplitmuxpartreader.Tpo -c -o libgstmultifile_la-gstsplitmuxpartreader.lo `test -f 'gstsplitmuxpartreader.c' || echo '$(srcdir)/'`gstsplitmuxpartreader.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstsplitmuxpartreader.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstsplitmuxpartreader.Tpo -c -o libgstmultifile_la-gstsplitmuxpartreader.lo `test -f 'gstsplitmuxpartreader.c' || echo '$(srcdir)/'`gstsplitmuxpartreader.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-gstsplitmuxpartreader.Tpo $(DEPDIR)/libgstmultifile_la-gstsplitmuxpartreader.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsplitmuxpartreader.c' object='libgstmultifile_la-gstsplitmuxpartreader.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 $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstsplitmuxpartreader.lo `test -f 'gstsplitmuxpartreader.c' || echo '$(srcdir)/'`gstsplitmuxpartreader.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstsplitmuxpartreader.lo `test -f 'gstsplitmuxpartreader.c' || echo '$(srcdir)/'`gstsplitmuxpartreader.c
 
 libgstmultifile_la-gstsplitmuxsrc.lo: gstsplitmuxsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstsplitmuxsrc.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstsplitmuxsrc.Tpo -c -o libgstmultifile_la-gstsplitmuxsrc.lo `test -f 'gstsplitmuxsrc.c' || echo '$(srcdir)/'`gstsplitmuxsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstsplitmuxsrc.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstsplitmuxsrc.Tpo -c -o libgstmultifile_la-gstsplitmuxsrc.lo `test -f 'gstsplitmuxsrc.c' || echo '$(srcdir)/'`gstsplitmuxsrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-gstsplitmuxsrc.Tpo $(DEPDIR)/libgstmultifile_la-gstsplitmuxsrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsplitmuxsrc.c' object='libgstmultifile_la-gstsplitmuxsrc.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 $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstsplitmuxsrc.lo `test -f 'gstsplitmuxsrc.c' || echo '$(srcdir)/'`gstsplitmuxsrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstsplitmuxsrc.lo `test -f 'gstsplitmuxsrc.c' || echo '$(srcdir)/'`gstsplitmuxsrc.c
 
 libgstmultifile_la-gstsplitutils.lo: gstsplitutils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstsplitutils.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstsplitutils.Tpo -c -o libgstmultifile_la-gstsplitutils.lo `test -f 'gstsplitutils.c' || echo '$(srcdir)/'`gstsplitutils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstsplitutils.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstsplitutils.Tpo -c -o libgstmultifile_la-gstsplitutils.lo `test -f 'gstsplitutils.c' || echo '$(srcdir)/'`gstsplitutils.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-gstsplitutils.Tpo $(DEPDIR)/libgstmultifile_la-gstsplitutils.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsplitutils.c' object='libgstmultifile_la-gstsplitutils.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 $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstsplitutils.lo `test -f 'gstsplitutils.c' || echo '$(srcdir)/'`gstsplitutils.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstsplitutils.lo `test -f 'gstsplitutils.c' || echo '$(srcdir)/'`gstsplitutils.c
 
 libgstmultifile_la-patternspec.lo: patternspec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-patternspec.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-patternspec.Tpo -c -o libgstmultifile_la-patternspec.lo `test -f 'patternspec.c' || echo '$(srcdir)/'`patternspec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-patternspec.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-patternspec.Tpo -c -o libgstmultifile_la-patternspec.lo `test -f 'patternspec.c' || echo '$(srcdir)/'`patternspec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-patternspec.Tpo $(DEPDIR)/libgstmultifile_la-patternspec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='patternspec.c' object='libgstmultifile_la-patternspec.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 $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-patternspec.lo `test -f 'patternspec.c' || echo '$(srcdir)/'`patternspec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-patternspec.lo `test -f 'patternspec.c' || echo '$(srcdir)/'`patternspec.c
 
 test_splitmux_part_reader-test-splitmuxpartreader.o: test-splitmuxpartreader.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_splitmux_part_reader_CFLAGS) $(CFLAGS) -MT test_splitmux_part_reader-test-splitmuxpartreader.o -MD -MP -MF $(DEPDIR)/test_splitmux_part_reader-test-splitmuxpartreader.Tpo -c -o test_splitmux_part_reader-test-splitmuxpartreader.o `test -f 'test-splitmuxpartreader.c' || echo '$(srcdir)/'`test-splitmuxpartreader.c
diff --git a/gst/multifile/gstmultifilesink.c b/gst/multifile/gstmultifilesink.c
index 902de28bf..d2a55ef96 100644
--- a/gst/multifile/gstmultifilesink.c
+++ b/gst/multifile/gstmultifilesink.c
@@ -40,7 +40,7 @@
  * The filename property should contain a string with a \%d placeholder that will
  * be substituted with the index for each filename.
  *
- * If the #GstMultiFileSink:post-messages property is #TRUE, it sends an application
+ * If the #GstMultiFileSink:post-messages property is %TRUE, it sends an application
  * message named
  * <classname>&quot;GstMultiFileSink&quot;</classname> after writing each
  * buffer.
@@ -109,7 +109,7 @@
  * <title>Example launch line</title>
  * |[
  * gst-launch-1.0 audiotestsrc ! multifilesink
- * gst-launch-1.0 videotestsrc ! multifilesink post-messages=true filename="frame%d"
+ * gst-launch-1.0 videotestsrc ! multifilesink post-messages=true location="frame%d"
  * ]|
  * </refsect2>
  */
@@ -285,8 +285,8 @@ gst_multi_file_sink_class_init (GstMultiFileSinkClass * klass)
    */
   g_object_class_install_property (gobject_class, PROP_MAX_FILE_DURATION,
       g_param_spec_uint64 ("max-file-duration", "Maximum File Duration",
-          "Maximum file duration before starting a new file in max-size mode",
-          0, G_MAXUINT64, DEFAULT_MAX_FILE_DURATION,
+          "Maximum file duration before starting a new file in max-size mode "
+          "(in nanoseconds)", 0, G_MAXUINT64, DEFAULT_MAX_FILE_DURATION,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
@@ -883,19 +883,6 @@ gst_multi_file_sink_render (GstBaseSink * bsink, GstBuffer * buffer)
   return flow;
 }
 
-static gboolean
-buffer_list_calc_size (GstBuffer ** buf, guint idx, gpointer data)
-{
-  guint *p_size = data;
-  gsize buf_size;
-
-  buf_size = gst_buffer_get_size (*buf);
-  GST_TRACE ("buffer %u has size %" G_GSIZE_FORMAT, idx, buf_size);
-  *p_size += buf_size;
-
-  return TRUE;
-}
-
 static gboolean
 buffer_list_copy_data (GstBuffer ** buf, guint idx, gpointer data)
 {
@@ -923,9 +910,9 @@ static GstFlowReturn
 gst_multi_file_sink_render_list (GstBaseSink * sink, GstBufferList * list)
 {
   GstBuffer *buf;
-  guint size = 0;
+  guint size;
 
-  gst_buffer_list_foreach (list, buffer_list_calc_size, &size);
+  size = gst_buffer_list_calculate_size (list);
   GST_LOG_OBJECT (sink, "total size of buffer list %p: %u", list, size);
 
   /* copy all buffers in the list into one single buffer, so we can use
diff --git a/gst/multifile/gstmultifilesrc.c b/gst/multifile/gstmultifilesrc.c
index fd2464246..3ad1a1b88 100644
--- a/gst/multifile/gstmultifilesrc.c
+++ b/gst/multifile/gstmultifilesrc.c
@@ -59,6 +59,8 @@ static void gst_multi_file_src_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
 static GstCaps *gst_multi_file_src_getcaps (GstBaseSrc * src, GstCaps * filter);
 static gboolean gst_multi_file_src_query (GstBaseSrc * src, GstQuery * query);
+static void gst_multi_file_src_uri_handler_init (gpointer g_iface,
+    gpointer iface_data);
 
 
 static GstStaticPadTemplate gst_multi_file_src_pad_template =
@@ -85,7 +87,9 @@ enum
 #define DEFAULT_INDEX 0
 
 #define gst_multi_file_src_parent_class parent_class
-G_DEFINE_TYPE (GstMultiFileSrc, gst_multi_file_src, GST_TYPE_PUSH_SRC);
+G_DEFINE_TYPE_WITH_CODE (GstMultiFileSrc, gst_multi_file_src, GST_TYPE_PUSH_SRC,
+    G_IMPLEMENT_INTERFACE (GST_TYPE_URI_HANDLER,
+        gst_multi_file_src_uri_handler_init));
 
 
 static gboolean
@@ -482,3 +486,87 @@ handle_error:
     return GST_FLOW_ERROR;
   }
 }
+
+static GstURIType
+gst_multi_file_src_uri_get_type (GType type)
+{
+  return GST_URI_SRC;
+}
+
+static const gchar *const *
+gst_multi_file_src_uri_get_protocols (GType type)
+{
+  static const gchar *protocols[] = { "multifile", NULL };
+
+  return (const gchar * const *) protocols;
+}
+
+static gchar *
+gst_multi_file_src_uri_get_uri (GstURIHandler * handler)
+{
+  GstMultiFileSrc *src = GST_MULTI_FILE_SRC (handler);
+  gchar *ret;
+
+  GST_OBJECT_LOCK (src);
+  if (src->filename != NULL) {
+    GstUri *uri = gst_uri_new ("multifle", NULL, NULL, GST_URI_NO_PORT,
+        src->filename, NULL, NULL);
+
+    ret = gst_uri_to_string (uri);
+    gst_uri_unref (uri);
+  } else {
+    ret = NULL;
+  }
+  GST_OBJECT_UNLOCK (src);
+
+  return ret;
+}
+
+static gboolean
+gst_multi_file_src_uri_set_uri (GstURIHandler * handler, const gchar * uri,
+    GError ** error)
+{
+  GstMultiFileSrc *src = GST_MULTI_FILE_SRC (handler);
+  GstUri *gsturi;
+  gchar *path;
+
+  gsturi = gst_uri_from_string (uri);
+  if (gsturi == NULL)
+    goto invalid_uri;
+
+  /* This should get us the unescaped path */
+  path = gst_uri_get_path (gsturi);
+  if (path == NULL)
+    goto invalid_uri;
+
+  GST_OBJECT_LOCK (src);
+  gst_multi_file_src_set_location (src, path);
+  GST_OBJECT_UNLOCK (src);
+
+  g_free (path);
+  gst_uri_unref (gsturi);
+
+  return TRUE;
+
+/* ERRORS */
+invalid_uri:
+  {
+    GST_WARNING_OBJECT (src, "Invalid multifile URI '%s'", uri);
+    g_set_error (error, GST_URI_ERROR, GST_URI_ERROR_BAD_URI,
+        "Invalid multifile URI");
+    if (gsturi)
+      gst_uri_unref (gsturi);
+    return FALSE;
+  }
+}
+
+static void
+gst_multi_file_src_uri_handler_init (gpointer g_iface, gpointer iface_data)
+{
+  GstURIHandlerInterface *iface = (GstURIHandlerInterface *) g_iface;
+
+  iface->get_type = gst_multi_file_src_uri_get_type;
+  iface->get_protocols = gst_multi_file_src_uri_get_protocols;
+  iface->get_uri = gst_multi_file_src_uri_get_uri;
+  iface->set_uri = gst_multi_file_src_uri_set_uri;
+}
diff --git a/gst/multifile/gstsplitmuxsink.c b/gst/multifile/gstsplitmuxsink.c
index 8bce2c80f..be37933f0 100644
--- a/gst/multifile/gstsplitmuxsink.c
+++ b/gst/multifile/gstsplitmuxsink.c
@@ -69,6 +69,8 @@ GST_DEBUG_CATEGORY_STATIC (splitmux_debug);
 #define GST_SPLITMUX_WAIT_OUTPUT(s) g_cond_wait (&(s)->output_cond, &(s)->lock)
 #define GST_SPLITMUX_BROADCAST_OUTPUT(s) g_cond_broadcast (&(s)->output_cond)
 
+static void split_now (GstSplitMuxSink * splitmux);
+
 enum
 {
   PROP_0,
@@ -79,6 +81,8 @@ enum
   PROP_SEND_KEYFRAME_REQUESTS,
   PROP_MAX_FILES,
   PROP_MUXER_OVERHEAD,
+  PROP_USE_ROBUST_MUXING,
+  PROP_ALIGNMENT_THRESHOLD,
   PROP_MUXER,
   PROP_SINK
 };
@@ -88,13 +92,16 @@ enum
 #define DEFAULT_MAX_FILES           0
 #define DEFAULT_MUXER_OVERHEAD      0.02
 #define DEFAULT_SEND_KEYFRAME_REQUESTS FALSE
+#define DEFAULT_ALIGNMENT_THRESHOLD 0
 #define DEFAULT_MUXER "mp4mux"
 #define DEFAULT_SINK "filesink"
+#define DEFAULT_USE_ROBUST_MUXING FALSE
 
 enum
 {
   SIGNAL_FORMAT_LOCATION,
   SIGNAL_FORMAT_LOCATION_FULL,
+  SIGNAL_SPLIT_NOW,
   SIGNAL_LAST
 };
 
@@ -250,7 +257,12 @@ gst_splitmux_sink_class_init (GstSplitMuxSinkClass * klass)
           "old files start to be deleted to make room for new ones.", 0,
           G_MAXUINT, DEFAULT_MAX_FILES,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
+  g_object_class_install_property (gobject_class, PROP_ALIGNMENT_THRESHOLD,
+      g_param_spec_uint64 ("alignment-threshold", "Alignment threshold (ns)",
+          "Allow non-reference streams to be that many ns before the reference"
+          " stream",
+          0, G_MAXUINT64, DEFAULT_ALIGNMENT_THRESHOLD,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   g_object_class_install_property (gobject_class, PROP_MUXER,
       g_param_spec_object ("muxer", "Muxer",
@@ -261,6 +273,17 @@ gst_splitmux_sink_class_init (GstSplitMuxSinkClass * klass)
           "The sink element (or element chain) to use (NULL = default filesink)",
           GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_USE_ROBUST_MUXING,
+      g_param_spec_boolean ("use-robust-muxing",
+          "Support robust-muxing mode of some muxers",
+          "Check if muxers support robust muxing via the reserved-max-duration and "
+          "reserved-duration-remaining properties and use them if so. "
+          "(Only present on qtmux and mp4mux for now). splitmuxsink may then also "
+          " create new fragments if the reserved header space is about to overflow. "
+          "Note this does not set reserved-moov-update-period - apps should do that manually",
+          DEFAULT_USE_ROBUST_MUXING,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   /**
    * GstSplitMuxSink::format-location:
    * @splitmux: the #GstSplitMuxSink
@@ -285,6 +308,23 @@ gst_splitmux_sink_class_init (GstSplitMuxSinkClass * klass)
       g_signal_new ("format-location-full", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_STRING, 2, G_TYPE_UINT,
       GST_TYPE_SAMPLE);
+
+  /**
+   * GstSplitMuxSink::split-now:
+   * @splitmux: the #GstSplitMuxSink
+   *
+   * When called by the user, this action signal splits the video file (and begins a new one) immediately.
+   *
+   *
+   * Since: 1.14
+   */
+
+  signals[SIGNAL_SPLIT_NOW] =
+      g_signal_new ("split-now", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstSplitMuxSinkClass,
+          split_now), NULL, NULL, NULL, G_TYPE_NONE, 0);
+
+  klass->split_now = split_now;
 }
 
 static void
@@ -301,10 +341,13 @@ gst_splitmux_sink_init (GstSplitMuxSink * splitmux)
   splitmux->max_files = DEFAULT_MAX_FILES;
   splitmux->send_keyframe_requests = DEFAULT_SEND_KEYFRAME_REQUESTS;
   splitmux->next_max_tc_time = GST_CLOCK_TIME_NONE;
+  splitmux->alignment_threshold = DEFAULT_ALIGNMENT_THRESHOLD;
+  splitmux->use_robust_muxing = DEFAULT_USE_ROBUST_MUXING;
 
   splitmux->threshold_timecode_str = NULL;
 
   GST_OBJECT_FLAG_SET (splitmux, GST_ELEMENT_FLAG_SINK);
+  splitmux->split_now = FALSE;
 }
 
 static void
@@ -362,6 +405,41 @@ gst_splitmux_sink_finalize (GObject * object)
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
+/*
+ * Set any time threshold to the muxer, if it has
+ * reserved-max-duration and reserved-duration-remaining
+ * properties. Called when creating/claiming the muxer
+ * in create_elements() */
+static void
+update_muxer_properties (GstSplitMuxSink * sink)
+{
+  GObjectClass *klass;
+  GstClockTime threshold_time;
+
+  sink->muxer_has_reserved_props = FALSE;
+  if (sink->muxer == NULL)
+    return;
+  klass = G_OBJECT_GET_CLASS (sink->muxer);
+  if (g_object_class_find_property (klass, "reserved-max-duration") == NULL)
+    return;
+  if (g_object_class_find_property (klass,
+          "reserved-duration-remaining") == NULL)
+    return;
+  sink->muxer_has_reserved_props = TRUE;
+
+  GST_LOG_OBJECT (sink, "Setting muxer reserved time to %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (sink->threshold_time));
+  GST_OBJECT_LOCK (sink);
+  threshold_time = sink->threshold_time;
+  GST_OBJECT_UNLOCK (sink);
+
+  if (threshold_time > 0) {
+    /* Tell the muxer how much space to reserve */
+    GstClockTime muxer_threshold = threshold_time;
+    g_object_set (sink->muxer, "reserved-max-duration", muxer_threshold, NULL);
+  }
+}
+
 static void
 gst_splitmux_sink_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec)
@@ -406,6 +484,18 @@ gst_splitmux_sink_set_property (GObject * object, guint prop_id,
       splitmux->mux_overhead = g_value_get_double (value);
       GST_OBJECT_UNLOCK (splitmux);
       break;
+    case PROP_USE_ROBUST_MUXING:
+      GST_OBJECT_LOCK (splitmux);
+      splitmux->use_robust_muxing = g_value_get_boolean (value);
+      GST_OBJECT_UNLOCK (splitmux);
+      if (splitmux->use_robust_muxing)
+        update_muxer_properties (splitmux);
+      break;
+    case PROP_ALIGNMENT_THRESHOLD:
+      GST_OBJECT_LOCK (splitmux);
+      splitmux->alignment_threshold = g_value_get_uint64 (value);
+      GST_OBJECT_UNLOCK (splitmux);
+      break;
     case PROP_SINK:
       GST_OBJECT_LOCK (splitmux);
       if (splitmux->provided_sink)
@@ -470,6 +560,16 @@ gst_splitmux_sink_get_property (GObject * object, guint prop_id,
       g_value_set_double (value, splitmux->mux_overhead);
       GST_OBJECT_UNLOCK (splitmux);
       break;
+    case PROP_USE_ROBUST_MUXING:
+      GST_OBJECT_LOCK (splitmux);
+      g_value_set_boolean (value, splitmux->use_robust_muxing);
+      GST_OBJECT_UNLOCK (splitmux);
+      break;
+    case PROP_ALIGNMENT_THRESHOLD:
+      GST_OBJECT_LOCK (splitmux);
+      g_value_set_uint64 (value, splitmux->alignment_threshold);
+      GST_OBJECT_UNLOCK (splitmux);
+      break;
     case PROP_SINK:
       GST_OBJECT_LOCK (splitmux);
       g_value_set_object (value, splitmux->provided_sink);
@@ -619,6 +719,19 @@ complete_or_wait_on_out (GstSplitMuxSink * splitmux, MqStreamCtx * ctx)
     /* When first starting up, the reference stream has to output
      * the first buffer to prepare the muxer and sink */
     gboolean can_output = (ctx->is_reference || splitmux->ready_for_output);
+    GstClockTimeDiff my_max_out_running_time = splitmux->max_out_running_time;
+
+    if (!(splitmux->max_out_running_time == 0 ||
+            splitmux->max_out_running_time == GST_CLOCK_STIME_NONE ||
+            splitmux->alignment_threshold == 0 ||
+            splitmux->max_out_running_time < splitmux->alignment_threshold)) {
+      my_max_out_running_time -= splitmux->alignment_threshold;
+      GST_LOG_OBJECT (ctx->srcpad,
+          "Max out running time currently %" GST_STIME_FORMAT
+          ", with threshold applied it is %" GST_STIME_FORMAT,
+          GST_STIME_ARGS (splitmux->max_out_running_time),
+          GST_STIME_ARGS (my_max_out_running_time));
+    }
 
     if (ctx->flushing
         || splitmux->output_state == SPLITMUX_OUTPUT_STATE_STOPPED)
@@ -627,11 +740,11 @@ complete_or_wait_on_out (GstSplitMuxSink * splitmux, MqStreamCtx * ctx)
     GST_LOG_OBJECT (ctx->srcpad,
         "Checking running time %" GST_STIME_FORMAT " against max %"
         GST_STIME_FORMAT, GST_STIME_ARGS (ctx->out_running_time),
-        GST_STIME_ARGS (splitmux->max_out_running_time));
+        GST_STIME_ARGS (my_max_out_running_time));
 
     if (can_output) {
       if (splitmux->max_out_running_time == GST_CLOCK_STIME_NONE ||
-          ctx->out_running_time < splitmux->max_out_running_time) {
+          ctx->out_running_time < my_max_out_running_time) {
         return;
       }
 
@@ -913,22 +1026,22 @@ handle_mq_output (GstPad * pad, GstPadProbeInfo * info, MqStreamCtx * ctx)
 
           if (ok)
             break;
+
         } else {
           break;
         }
         /* This is in the case the muxer doesn't allow this change of caps */
-
         GST_SPLITMUX_LOCK (splitmux);
         locked = TRUE;
         ctx->caps_change = TRUE;
-        splitmux->ready_for_output = FALSE;
 
         if (splitmux->output_state != SPLITMUX_OUTPUT_STATE_START_NEXT_FILE) {
-
+          GST_DEBUG_OBJECT (splitmux,
+              "New caps were not accepted. Switching output file");
           if (ctx->out_eos == FALSE) {
-            send_eos (splitmux, ctx);
+            splitmux->output_state = SPLITMUX_OUTPUT_STATE_ENDING_FILE;
+            GST_SPLITMUX_BROADCAST_OUTPUT (splitmux);
           }
-          splitmux->output_state = SPLITMUX_OUTPUT_STATE_START_NEXT_FILE;
         }
 
         /* Lets it fall through, if it fails again, then the muxer just can't
@@ -952,9 +1065,10 @@ handle_mq_output (GstPad * pad, GstPadProbeInfo * info, MqStreamCtx * ctx)
      * because it would cause a new file to be created without the first
      * buffer being available.
      */
-    if (ctx->caps_change && GST_EVENT_IS_STICKY (event))
-      return GST_PAD_PROBE_DROP;
-    else
+    if (ctx->caps_change && GST_EVENT_IS_STICKY (event)) {
+      gst_event_unref (event);
+      return GST_PAD_PROBE_HANDLED;
+    } else
       return GST_PAD_PROBE_PASS;
   }
 
@@ -1136,6 +1250,39 @@ bus_handler (GstBin * bin, GstMessage * message)
         }
       }
       break;
+    case GST_MESSAGE_WARNING:
+    {
+      GError *gerror = NULL;
+
+      gst_message_parse_warning (message, &gerror, NULL);
+
+      if (g_error_matches (gerror, GST_STREAM_ERROR, GST_STREAM_ERROR_FORMAT)) {
+        GList *item;
+        gboolean caps_change = FALSE;
+
+        GST_SPLITMUX_LOCK (splitmux);
+
+        for (item = splitmux->contexts; item; item = item->next) {
+          MqStreamCtx *ctx = item->data;
+
+          if (ctx->caps_change) {
+            caps_change = TRUE;
+            break;
+          }
+        }
+
+        GST_SPLITMUX_UNLOCK (splitmux);
+
+        if (caps_change) {
+          GST_LOG_OBJECT (splitmux,
+              "Ignoring warning change from child %" GST_PTR_FORMAT
+              " while switching caps", GST_MESSAGE_SRC (message));
+          gst_message_unref (message);
+          return;
+        }
+      }
+      break;
+    }
     default:
       break;
   }
@@ -1149,6 +1296,68 @@ ctx_set_unblock (MqStreamCtx * ctx)
   ctx->need_unblock = TRUE;
 }
 
+static gboolean
+need_new_fragment (GstSplitMuxSink * splitmux,
+    GstClockTime queued_time, GstClockTime queued_gop_time,
+    guint64 queued_bytes)
+{
+  guint64 thresh_bytes;
+  GstClockTime thresh_time;
+  gboolean check_robust_muxing;
+
+  GST_OBJECT_LOCK (splitmux);
+  thresh_bytes = splitmux->threshold_bytes;
+  thresh_time = splitmux->threshold_time;
+  check_robust_muxing = splitmux->use_robust_muxing
+      && splitmux->muxer_has_reserved_props;
+  GST_OBJECT_UNLOCK (splitmux);
+
+  /* Have we muxed anything into the new file at all? */
+  if (splitmux->fragment_total_bytes <= 0)
+    return FALSE;
+
+  /* User told us to split now */
+  if (g_atomic_int_get (&(splitmux->split_now)) == TRUE)
+    return TRUE;
+
+  if (thresh_bytes > 0 && queued_bytes >= thresh_bytes)
+    return TRUE;                /* Would overrun byte limit */
+
+  if (thresh_time > 0 && queued_time >= thresh_time)
+    return TRUE;                /* Would overrun byte limit */
+
+  /* Timecode-based threshold accounts for possible rounding errors:
+   * 5us should be bigger than all possible rounding errors but nowhere near
+   * big enough to skip to another frame */
+  if (splitmux->next_max_tc_time != GST_CLOCK_TIME_NONE &&
+      splitmux->reference_ctx->in_running_time >
+      splitmux->next_max_tc_time + 5 * GST_USECOND)
+    return TRUE;                /* Timecode threshold */
+
+  if (check_robust_muxing) {
+    GstClockTime mux_reserved_remain;
+
+    g_object_get (splitmux->muxer,
+        "reserved-duration-remaining", &mux_reserved_remain, NULL);
+
+    GST_LOG_OBJECT (splitmux,
+        "Muxer robust muxing report - %" G_GUINT64_FORMAT
+        " remaining. New GOP would enqueue %" G_GUINT64_FORMAT,
+        mux_reserved_remain, queued_gop_time);
+
+    if (queued_gop_time >= mux_reserved_remain) {
+      GST_INFO_OBJECT (splitmux,
+          "File is about to run out of header room - %" G_GUINT64_FORMAT
+          " remaining. New GOP would enqueue %" G_GUINT64_FORMAT
+          ". Switching to new file", mux_reserved_remain, queued_gop_time);
+      return TRUE;
+    }
+  }
+
+  /* Continue and mux this GOP */
+  return FALSE;
+}
+
 /* Called with splitmux lock held */
 /* Called when entering ProcessingCompleteGop state
  * Assess if mq contents overflowed the current file
@@ -1161,6 +1370,7 @@ handle_gathered_gop (GstSplitMuxSink * splitmux)
 {
   guint64 queued_bytes;
   GstClockTimeDiff queued_time = 0;
+  GstClockTimeDiff queued_gop_time = 0;
   GstClockTimeDiff new_out_ts = splitmux->reference_ctx->in_running_time;
   SplitMuxOutputCommand *cmd;
 
@@ -1172,12 +1382,24 @@ handle_gathered_gop (GstSplitMuxSink * splitmux)
    * stream cut-off anyway - so it forms the limit. */
   queued_bytes = splitmux->fragment_total_bytes + splitmux->gop_total_bytes;
   queued_time = splitmux->reference_ctx->in_running_time;
+  /* queued_gop_time tracks how much unwritten data there is waiting to
+   * be written to this fragment including this GOP */
+  if (splitmux->reference_ctx->out_running_time != GST_CLOCK_STIME_NONE)
+    queued_gop_time =
+        splitmux->reference_ctx->in_running_time -
+        splitmux->reference_ctx->out_running_time;
+  else
+    queued_gop_time =
+        splitmux->reference_ctx->in_running_time - splitmux->gop_start_time;
 
   GST_LOG_OBJECT (splitmux, " queued_bytes %" G_GUINT64_FORMAT, queued_bytes);
 
+  g_assert (queued_gop_time >= 0);
   g_assert (queued_time >= splitmux->fragment_start_time);
 
   queued_time -= splitmux->fragment_start_time;
+  if (queued_time < queued_gop_time)
+    queued_gop_time = queued_time;
 
   /* Expand queued bytes estimate by muxer overhead */
   queued_bytes += (queued_bytes * splitmux->mux_overhead);
@@ -1193,18 +1415,8 @@ handle_gathered_gop (GstSplitMuxSink * splitmux)
 
   /* Check for overrun - have we output at least one byte and overrun
    * either threshold? */
-  /* Timecode-based threshold accounts for possible rounding errors:
-   * 5us should be bigger than all possible rounding errors but nowhere near
-   * big enough to skip to another frame */
-  if ((splitmux->fragment_total_bytes > 0 &&
-          ((splitmux->threshold_bytes > 0 &&
-                  queued_bytes > splitmux->threshold_bytes) ||
-              (splitmux->threshold_time > 0 &&
-                  queued_time > splitmux->threshold_time) ||
-              (splitmux->next_max_tc_time != GST_CLOCK_TIME_NONE &&
-                  splitmux->reference_ctx->in_running_time >
-                  splitmux->next_max_tc_time + 5 * GST_USECOND)))) {
-
+  if (need_new_fragment (splitmux, queued_time, queued_gop_time, queued_bytes)) {
+    g_atomic_int_set (&(splitmux->split_now), FALSE);
     /* Tell the output side to start a new fragment */
     GST_INFO_OBJECT (splitmux,
         "This GOP (dur %" GST_STIME_FORMAT
@@ -1971,6 +2183,10 @@ create_muxer (GstSplitMuxSink * splitmux)
       splitmux->muxer = provided_muxer;
       gst_object_unref (provided_muxer);
     }
+
+    if (splitmux->use_robust_muxing) {
+      update_muxer_properties (splitmux);
+    }
   }
 
   return TRUE;
@@ -2197,6 +2413,7 @@ gst_splitmux_sink_change_state (GstElement * element, GstStateChange transition)
       break;
     }
     case GST_STATE_CHANGE_PAUSED_TO_READY:
+      g_atomic_int_set (&(splitmux->split_now), FALSE);
     case GST_STATE_CHANGE_READY_TO_NULL:
       GST_SPLITMUX_LOCK (splitmux);
       splitmux->output_state = SPLITMUX_OUTPUT_STATE_STOPPED;
@@ -2275,3 +2492,9 @@ gst_splitmux_sink_ensure_max_files (GstSplitMuxSink * splitmux)
     splitmux->fragment_id = 0;
   }
 }
+
+static void
+split_now (GstSplitMuxSink * splitmux)
+{
+  g_atomic_int_set (&(splitmux->split_now), TRUE);
+}
diff --git a/gst/multifile/gstsplitmuxsink.h b/gst/multifile/gstsplitmuxsink.h
index 31e50f627..aab90659b 100644
--- a/gst/multifile/gstsplitmuxsink.h
+++ b/gst/multifile/gstsplitmuxsink.h
@@ -118,6 +118,7 @@ struct _GstSplitMuxSink
   gboolean send_keyframe_requests;
   gchar *threshold_timecode_str;
   GstClockTime next_max_tc_time;
+  GstClockTime alignment_threshold;
 
   GstElement *muxer;
   GstElement *sink;
@@ -164,11 +165,19 @@ struct _GstSplitMuxSink
 
   gboolean need_async_start;
   gboolean async_pending;
+
+  gboolean use_robust_muxing;
+  gboolean muxer_has_reserved_props;
+
+  gboolean split_now;
 };
 
 struct _GstSplitMuxSinkClass
 {
   GstBinClass parent_class;
+
+  /* actions */
+  void     (*split_now)   (GstSplitMuxSink * splitmux);
 };
 
 G_END_DECLS
diff --git a/gst/multifile/gstsplitmuxsrc.c b/gst/multifile/gstsplitmuxsrc.c
index b27cf00c9..7f1ed653f 100644
--- a/gst/multifile/gstsplitmuxsrc.c
+++ b/gst/multifile/gstsplitmuxsrc.c
@@ -428,6 +428,7 @@ gst_splitmux_handle_event (GstSplitMuxSrc * splitmux,
       break;
     }
     case GST_EVENT_SEGMENT:{
+      GstClockTime duration;
       GstSegment seg;
 
       gst_event_copy_segment (event, &seg);
@@ -462,6 +463,15 @@ gst_splitmux_handle_event (GstSplitMuxSrc * splitmux,
         }
       }
 
+      GST_OBJECT_LOCK (splitmux);
+      duration = splitmux->total_duration;
+      GST_OBJECT_UNLOCK (splitmux);
+
+      if (duration > 0)
+        seg.duration = duration;
+      else
+        seg.duration = GST_CLOCK_TIME_NONE;
+
       GST_INFO_OBJECT (splitpad,
           "Forwarding segment %" GST_SEGMENT_FORMAT, &seg);
 
@@ -1211,18 +1221,21 @@ splitmux_src_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
       break;
     }
     case GST_QUERY_DURATION:{
+      GstClockTime duration;
       GstFormat fmt;
+
       gst_query_parse_duration (query, &fmt, NULL);
       if (fmt != GST_FORMAT_TIME)
         break;
 
       GST_OBJECT_LOCK (splitmux);
-      if (splitmux->total_duration > 0) {
-        gst_query_set_duration (query, GST_FORMAT_TIME,
-            splitmux->total_duration);
+      duration = splitmux->total_duration;
+      GST_OBJECT_UNLOCK (splitmux);
+
+      if (duration > 0 && duration != GST_CLOCK_TIME_NONE) {
+        gst_query_set_duration (query, GST_FORMAT_TIME, duration);
         ret = TRUE;
       }
-      GST_OBJECT_UNLOCK (splitmux);
       break;
     }
     case GST_QUERY_SEEKING:{
diff --git a/gst/multipart/Makefile.am b/gst/multipart/Makefile.am
index 5ab670e5c..8c730e87d 100644
--- a/gst/multipart/Makefile.am
+++ b/gst/multipart/Makefile.am
@@ -4,6 +4,5 @@ libgstmultipart_la_SOURCES = multipart.c multipartdemux.c multipartmux.c
 libgstmultipart_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS)
 libgstmultipart_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
 libgstmultipart_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstmultipart_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = multipartdemux.h multipartmux.h
diff --git a/gst/multipart/Makefile.in b/gst/multipart/Makefile.in
index ca9569b19..bcbfb613d 100644
--- a/gst/multipart/Makefile.in
+++ b/gst/multipart/Makefile.in
@@ -174,8 +174,8 @@ 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) \
+	$(AM_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@)
@@ -293,6 +293,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -316,6 +317,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -331,6 +334,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -353,10 +358,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -371,6 +383,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -388,6 +401,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -400,6 +415,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -418,6 +435,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -461,9 +481,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -477,11 +508,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -577,7 +613,6 @@ libgstmultipart_la_SOURCES = multipart.c multipartdemux.c multipartmux.c
 libgstmultipart_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS)
 libgstmultipart_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
 libgstmultipart_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstmultipart_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = multipartdemux.h multipartmux.h
 all: all-am
 
@@ -686,25 +721,25 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstmultipart_la-multipart.lo: multipart.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -MT libgstmultipart_la-multipart.lo -MD -MP -MF $(DEPDIR)/libgstmultipart_la-multipart.Tpo -c -o libgstmultipart_la-multipart.lo `test -f 'multipart.c' || echo '$(srcdir)/'`multipart.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -MT libgstmultipart_la-multipart.lo -MD -MP -MF $(DEPDIR)/libgstmultipart_la-multipart.Tpo -c -o libgstmultipart_la-multipart.lo `test -f 'multipart.c' || echo '$(srcdir)/'`multipart.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultipart_la-multipart.Tpo $(DEPDIR)/libgstmultipart_la-multipart.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='multipart.c' object='libgstmultipart_la-multipart.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 $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -c -o libgstmultipart_la-multipart.lo `test -f 'multipart.c' || echo '$(srcdir)/'`multipart.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -c -o libgstmultipart_la-multipart.lo `test -f 'multipart.c' || echo '$(srcdir)/'`multipart.c
 
 libgstmultipart_la-multipartdemux.lo: multipartdemux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -MT libgstmultipart_la-multipartdemux.lo -MD -MP -MF $(DEPDIR)/libgstmultipart_la-multipartdemux.Tpo -c -o libgstmultipart_la-multipartdemux.lo `test -f 'multipartdemux.c' || echo '$(srcdir)/'`multipartdemux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -MT libgstmultipart_la-multipartdemux.lo -MD -MP -MF $(DEPDIR)/libgstmultipart_la-multipartdemux.Tpo -c -o libgstmultipart_la-multipartdemux.lo `test -f 'multipartdemux.c' || echo '$(srcdir)/'`multipartdemux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultipart_la-multipartdemux.Tpo $(DEPDIR)/libgstmultipart_la-multipartdemux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='multipartdemux.c' object='libgstmultipart_la-multipartdemux.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 $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -c -o libgstmultipart_la-multipartdemux.lo `test -f 'multipartdemux.c' || echo '$(srcdir)/'`multipartdemux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -c -o libgstmultipart_la-multipartdemux.lo `test -f 'multipartdemux.c' || echo '$(srcdir)/'`multipartdemux.c
 
 libgstmultipart_la-multipartmux.lo: multipartmux.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -MT libgstmultipart_la-multipartmux.lo -MD -MP -MF $(DEPDIR)/libgstmultipart_la-multipartmux.Tpo -c -o libgstmultipart_la-multipartmux.lo `test -f 'multipartmux.c' || echo '$(srcdir)/'`multipartmux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -MT libgstmultipart_la-multipartmux.lo -MD -MP -MF $(DEPDIR)/libgstmultipart_la-multipartmux.Tpo -c -o libgstmultipart_la-multipartmux.lo `test -f 'multipartmux.c' || echo '$(srcdir)/'`multipartmux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultipart_la-multipartmux.Tpo $(DEPDIR)/libgstmultipart_la-multipartmux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='multipartmux.c' object='libgstmultipart_la-multipartmux.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 $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -c -o libgstmultipart_la-multipartmux.lo `test -f 'multipartmux.c' || echo '$(srcdir)/'`multipartmux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -c -o libgstmultipart_la-multipartmux.lo `test -f 'multipartmux.c' || echo '$(srcdir)/'`multipartmux.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/replaygain/Makefile.am b/gst/replaygain/Makefile.am
index 87f64c32c..c8e240695 100644
--- a/gst/replaygain/Makefile.am
+++ b/gst/replaygain/Makefile.am
@@ -12,7 +12,6 @@ libgstreplaygain_la_LIBADD  = \
 	$(GST_PLUGINS_BASE_LIBS) -lgstpbutils-$(GST_API_VERSION) -lgstaudio-$(GST_API_VERSION)\
 	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 libgstreplaygain_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstreplaygain_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 # headers we need but don't want installed
 noinst_HEADERS =         \
diff --git a/gst/replaygain/Makefile.in b/gst/replaygain/Makefile.in
index e4420c9b7..229669c4b 100644
--- a/gst/replaygain/Makefile.in
+++ b/gst/replaygain/Makefile.in
@@ -177,8 +177,8 @@ 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) \
+	$(AM_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@)
@@ -296,6 +296,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -319,6 +320,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -334,6 +337,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -356,10 +361,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -374,6 +386,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -391,6 +404,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -403,6 +418,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -421,6 +438,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -464,9 +484,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -480,11 +511,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -591,7 +627,6 @@ libgstreplaygain_la_LIBADD = \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 
 libgstreplaygain_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstreplaygain_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 # headers we need but don't want installed
 noinst_HEADERS = \
@@ -710,39 +745,39 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstreplaygain_la-gstrganalysis.lo: gstrganalysis.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-gstrganalysis.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-gstrganalysis.Tpo -c -o libgstreplaygain_la-gstrganalysis.lo `test -f 'gstrganalysis.c' || echo '$(srcdir)/'`gstrganalysis.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-gstrganalysis.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-gstrganalysis.Tpo -c -o libgstreplaygain_la-gstrganalysis.lo `test -f 'gstrganalysis.c' || echo '$(srcdir)/'`gstrganalysis.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreplaygain_la-gstrganalysis.Tpo $(DEPDIR)/libgstreplaygain_la-gstrganalysis.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrganalysis.c' object='libgstreplaygain_la-gstrganalysis.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 $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-gstrganalysis.lo `test -f 'gstrganalysis.c' || echo '$(srcdir)/'`gstrganalysis.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-gstrganalysis.lo `test -f 'gstrganalysis.c' || echo '$(srcdir)/'`gstrganalysis.c
 
 libgstreplaygain_la-gstrglimiter.lo: gstrglimiter.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-gstrglimiter.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-gstrglimiter.Tpo -c -o libgstreplaygain_la-gstrglimiter.lo `test -f 'gstrglimiter.c' || echo '$(srcdir)/'`gstrglimiter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-gstrglimiter.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-gstrglimiter.Tpo -c -o libgstreplaygain_la-gstrglimiter.lo `test -f 'gstrglimiter.c' || echo '$(srcdir)/'`gstrglimiter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreplaygain_la-gstrglimiter.Tpo $(DEPDIR)/libgstreplaygain_la-gstrglimiter.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrglimiter.c' object='libgstreplaygain_la-gstrglimiter.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 $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-gstrglimiter.lo `test -f 'gstrglimiter.c' || echo '$(srcdir)/'`gstrglimiter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-gstrglimiter.lo `test -f 'gstrglimiter.c' || echo '$(srcdir)/'`gstrglimiter.c
 
 libgstreplaygain_la-gstrgvolume.lo: gstrgvolume.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-gstrgvolume.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-gstrgvolume.Tpo -c -o libgstreplaygain_la-gstrgvolume.lo `test -f 'gstrgvolume.c' || echo '$(srcdir)/'`gstrgvolume.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-gstrgvolume.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-gstrgvolume.Tpo -c -o libgstreplaygain_la-gstrgvolume.lo `test -f 'gstrgvolume.c' || echo '$(srcdir)/'`gstrgvolume.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreplaygain_la-gstrgvolume.Tpo $(DEPDIR)/libgstreplaygain_la-gstrgvolume.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrgvolume.c' object='libgstreplaygain_la-gstrgvolume.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 $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-gstrgvolume.lo `test -f 'gstrgvolume.c' || echo '$(srcdir)/'`gstrgvolume.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-gstrgvolume.lo `test -f 'gstrgvolume.c' || echo '$(srcdir)/'`gstrgvolume.c
 
 libgstreplaygain_la-replaygain.lo: replaygain.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-replaygain.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-replaygain.Tpo -c -o libgstreplaygain_la-replaygain.lo `test -f 'replaygain.c' || echo '$(srcdir)/'`replaygain.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-replaygain.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-replaygain.Tpo -c -o libgstreplaygain_la-replaygain.lo `test -f 'replaygain.c' || echo '$(srcdir)/'`replaygain.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreplaygain_la-replaygain.Tpo $(DEPDIR)/libgstreplaygain_la-replaygain.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='replaygain.c' object='libgstreplaygain_la-replaygain.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 $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-replaygain.lo `test -f 'replaygain.c' || echo '$(srcdir)/'`replaygain.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-replaygain.lo `test -f 'replaygain.c' || echo '$(srcdir)/'`replaygain.c
 
 libgstreplaygain_la-rganalysis.lo: rganalysis.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-rganalysis.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-rganalysis.Tpo -c -o libgstreplaygain_la-rganalysis.lo `test -f 'rganalysis.c' || echo '$(srcdir)/'`rganalysis.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-rganalysis.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-rganalysis.Tpo -c -o libgstreplaygain_la-rganalysis.lo `test -f 'rganalysis.c' || echo '$(srcdir)/'`rganalysis.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreplaygain_la-rganalysis.Tpo $(DEPDIR)/libgstreplaygain_la-rganalysis.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rganalysis.c' object='libgstreplaygain_la-rganalysis.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 $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-rganalysis.lo `test -f 'rganalysis.c' || echo '$(srcdir)/'`rganalysis.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-rganalysis.lo `test -f 'rganalysis.c' || echo '$(srcdir)/'`rganalysis.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/replaygain/gstrganalysis.c b/gst/replaygain/gstrganalysis.c
index a272c109d..214901d03 100644
--- a/gst/replaygain/gstrganalysis.c
+++ b/gst/replaygain/gstrganalysis.c
@@ -209,7 +209,7 @@ gst_rg_analysis_class_init (GstRgAnalysisClass * klass)
    * skip the processing of streams that already contain the necessary tags.
    * Data will flow as usual but the element will not consume CPU time and will
    * not generate result tags.  To enable possible skipping, set this property
-   * to #FALSE.
+   * to %FALSE.
    *
    * If used in conjunction with <link linkend="GstRgAnalysis--num-tracks">album
    * processing</link>, the element will skip the number of remaining album
diff --git a/gst/rtp/Makefile.am b/gst/rtp/Makefile.am
index f5d3c9ab3..7b2afd534 100644
--- a/gst/rtp/Makefile.am
+++ b/gst/rtp/Makefile.am
@@ -54,6 +54,8 @@ libgstrtp_la_SOURCES = \
 	gstrtpjpegpay.c \
 	gstrtpklvdepay.c \
 	gstrtpklvpay.c \
+	gstrtpL8depay.c \
+	gstrtpL8pay.c \
 	gstrtpL16depay.c \
 	gstrtpL16pay.c \
 	gstrtpL24depay.c \
@@ -107,12 +109,13 @@ libgstrtp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 	$(GST_BASE_LIBS) $(GST_LIBS) \
 	$(LIBM)
 libgstrtp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) 
-libgstrtp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS =			\
 	dboolhuff.h \
 	fnv1hash.h \
 	gstrtpchannels.h \
+	gstrtpL8depay.h \
+	gstrtpL8pay.h \
 	gstrtpL16depay.h \
 	gstrtpL16pay.h \
 	gstrtpL24depay.h \
diff --git a/gst/rtp/Makefile.in b/gst/rtp/Makefile.in
index 122e54ec5..4cb04d161 100644
--- a/gst/rtp/Makefile.in
+++ b/gst/rtp/Makefile.in
@@ -195,7 +195,8 @@ am_libgstrtp_la_OBJECTS = libgstrtp_la-dboolhuff.lo \
 	libgstrtp_la-gstrtph265pay.lo libgstrtp_la-gstrtpj2kdepay.lo \
 	libgstrtp_la-gstrtpj2kpay.lo libgstrtp_la-gstrtpjpegdepay.lo \
 	libgstrtp_la-gstrtpjpegpay.lo libgstrtp_la-gstrtpklvdepay.lo \
-	libgstrtp_la-gstrtpklvpay.lo libgstrtp_la-gstrtpL16depay.lo \
+	libgstrtp_la-gstrtpklvpay.lo libgstrtp_la-gstrtpL8depay.lo \
+	libgstrtp_la-gstrtpL8pay.lo libgstrtp_la-gstrtpL16depay.lo \
 	libgstrtp_la-gstrtpL16pay.lo libgstrtp_la-gstrtpL24depay.lo \
 	libgstrtp_la-gstrtpL24pay.lo libgstrtp_la-gstasteriskh263.lo \
 	libgstrtp_la-gstrtpmp1sdepay.lo \
@@ -223,10 +224,9 @@ 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 $@
+libgstrtp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -344,6 +344,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -367,6 +368,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -382,6 +385,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -404,10 +409,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -422,6 +434,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -439,6 +452,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -451,6 +466,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -469,6 +486,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -512,9 +532,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -528,11 +559,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -678,6 +714,8 @@ libgstrtp_la_SOURCES = \
 	gstrtpjpegpay.c \
 	gstrtpklvdepay.c \
 	gstrtpklvpay.c \
+	gstrtpL8depay.c \
+	gstrtpL8pay.c \
 	gstrtpL16depay.c \
 	gstrtpL16pay.c \
 	gstrtpL24depay.c \
@@ -732,11 +770,12 @@ libgstrtp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 	$(LIBM)
 
 libgstrtp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) 
-libgstrtp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
 	dboolhuff.h \
 	fnv1hash.h \
 	gstrtpchannels.h \
+	gstrtpL8depay.h \
+	gstrtpL8pay.h \
 	gstrtpL16depay.h \
 	gstrtpL16pay.h \
 	gstrtpL24depay.h \
@@ -914,6 +953,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpL16pay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpL24depay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpL24pay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpL8depay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpL8pay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpac3depay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpac3pay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpamrdepay.Plo@am__quote@
@@ -1023,641 +1064,655 @@ distclean-compile:
 @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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='fnv1hash.c' object='libgstrtp_la-fnv1hash.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-fnv1hash.lo `test -f 'fnv1hash.c' || echo '$(srcdir)/'`fnv1hash.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-fnv1hash.lo `test -f 'fnv1hash.c' || echo '$(srcdir)/'`fnv1hash.c
 
 libgstrtp_la-gstrtp.lo: gstrtp.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-gstrtp.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtp.Tpo -c -o libgstrtp_la-gstrtp.lo `test -f 'gstrtp.c' || echo '$(srcdir)/'`gstrtp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtp.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtp.Tpo -c -o libgstrtp_la-gstrtp.lo `test -f 'gstrtp.c' || echo '$(srcdir)/'`gstrtp.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtp.Tpo $(DEPDIR)/libgstrtp_la-gstrtp.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtp.c' object='libgstrtp_la-gstrtp.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-gstrtp.lo `test -f 'gstrtp.c' || echo '$(srcdir)/'`gstrtp.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtp.lo `test -f 'gstrtp.c' || echo '$(srcdir)/'`gstrtp.c
 
 libgstrtp_la-gstrtpchannels.lo: gstrtpchannels.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-gstrtpchannels.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpchannels.Tpo -c -o libgstrtp_la-gstrtpchannels.lo `test -f 'gstrtpchannels.c' || echo '$(srcdir)/'`gstrtpchannels.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpchannels.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpchannels.Tpo -c -o libgstrtp_la-gstrtpchannels.lo `test -f 'gstrtpchannels.c' || echo '$(srcdir)/'`gstrtpchannels.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpchannels.Tpo $(DEPDIR)/libgstrtp_la-gstrtpchannels.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpchannels.c' object='libgstrtp_la-gstrtpchannels.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-gstrtpchannels.lo `test -f 'gstrtpchannels.c' || echo '$(srcdir)/'`gstrtpchannels.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpchannels.lo `test -f 'gstrtpchannels.c' || echo '$(srcdir)/'`gstrtpchannels.c
 
 libgstrtp_la-gstrtpac3depay.lo: gstrtpac3depay.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-gstrtpac3depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpac3depay.Tpo -c -o libgstrtp_la-gstrtpac3depay.lo `test -f 'gstrtpac3depay.c' || echo '$(srcdir)/'`gstrtpac3depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpac3depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpac3depay.Tpo -c -o libgstrtp_la-gstrtpac3depay.lo `test -f 'gstrtpac3depay.c' || echo '$(srcdir)/'`gstrtpac3depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpac3depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpac3depay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpac3depay.c' object='libgstrtp_la-gstrtpac3depay.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-gstrtpac3depay.lo `test -f 'gstrtpac3depay.c' || echo '$(srcdir)/'`gstrtpac3depay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpac3depay.lo `test -f 'gstrtpac3depay.c' || echo '$(srcdir)/'`gstrtpac3depay.c
 
 libgstrtp_la-gstrtpac3pay.lo: gstrtpac3pay.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-gstrtpac3pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpac3pay.Tpo -c -o libgstrtp_la-gstrtpac3pay.lo `test -f 'gstrtpac3pay.c' || echo '$(srcdir)/'`gstrtpac3pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpac3pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpac3pay.Tpo -c -o libgstrtp_la-gstrtpac3pay.lo `test -f 'gstrtpac3pay.c' || echo '$(srcdir)/'`gstrtpac3pay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpac3pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpac3pay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpac3pay.c' object='libgstrtp_la-gstrtpac3pay.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-gstrtpac3pay.lo `test -f 'gstrtpac3pay.c' || echo '$(srcdir)/'`gstrtpac3pay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpac3pay.lo `test -f 'gstrtpac3pay.c' || echo '$(srcdir)/'`gstrtpac3pay.c
 
 libgstrtp_la-gstrtpbvdepay.lo: gstrtpbvdepay.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-gstrtpbvdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpbvdepay.Tpo -c -o libgstrtp_la-gstrtpbvdepay.lo `test -f 'gstrtpbvdepay.c' || echo '$(srcdir)/'`gstrtpbvdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpbvdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpbvdepay.Tpo -c -o libgstrtp_la-gstrtpbvdepay.lo `test -f 'gstrtpbvdepay.c' || echo '$(srcdir)/'`gstrtpbvdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpbvdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpbvdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpbvdepay.c' object='libgstrtp_la-gstrtpbvdepay.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-gstrtpbvdepay.lo `test -f 'gstrtpbvdepay.c' || echo '$(srcdir)/'`gstrtpbvdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpbvdepay.lo `test -f 'gstrtpbvdepay.c' || echo '$(srcdir)/'`gstrtpbvdepay.c
 
 libgstrtp_la-gstrtpbvpay.lo: gstrtpbvpay.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-gstrtpbvpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpbvpay.Tpo -c -o libgstrtp_la-gstrtpbvpay.lo `test -f 'gstrtpbvpay.c' || echo '$(srcdir)/'`gstrtpbvpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpbvpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpbvpay.Tpo -c -o libgstrtp_la-gstrtpbvpay.lo `test -f 'gstrtpbvpay.c' || echo '$(srcdir)/'`gstrtpbvpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpbvpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpbvpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpbvpay.c' object='libgstrtp_la-gstrtpbvpay.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-gstrtpbvpay.lo `test -f 'gstrtpbvpay.c' || echo '$(srcdir)/'`gstrtpbvpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpbvpay.lo `test -f 'gstrtpbvpay.c' || echo '$(srcdir)/'`gstrtpbvpay.c
 
 libgstrtp_la-gstrtpceltdepay.lo: gstrtpceltdepay.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-gstrtpceltdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpceltdepay.Tpo -c -o libgstrtp_la-gstrtpceltdepay.lo `test -f 'gstrtpceltdepay.c' || echo '$(srcdir)/'`gstrtpceltdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpceltdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpceltdepay.Tpo -c -o libgstrtp_la-gstrtpceltdepay.lo `test -f 'gstrtpceltdepay.c' || echo '$(srcdir)/'`gstrtpceltdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpceltdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpceltdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpceltdepay.c' object='libgstrtp_la-gstrtpceltdepay.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-gstrtpceltdepay.lo `test -f 'gstrtpceltdepay.c' || echo '$(srcdir)/'`gstrtpceltdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpceltdepay.lo `test -f 'gstrtpceltdepay.c' || echo '$(srcdir)/'`gstrtpceltdepay.c
 
 libgstrtp_la-gstrtpceltpay.lo: gstrtpceltpay.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-gstrtpceltpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpceltpay.Tpo -c -o libgstrtp_la-gstrtpceltpay.lo `test -f 'gstrtpceltpay.c' || echo '$(srcdir)/'`gstrtpceltpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpceltpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpceltpay.Tpo -c -o libgstrtp_la-gstrtpceltpay.lo `test -f 'gstrtpceltpay.c' || echo '$(srcdir)/'`gstrtpceltpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpceltpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpceltpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpceltpay.c' object='libgstrtp_la-gstrtpceltpay.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-gstrtpceltpay.lo `test -f 'gstrtpceltpay.c' || echo '$(srcdir)/'`gstrtpceltpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpceltpay.lo `test -f 'gstrtpceltpay.c' || echo '$(srcdir)/'`gstrtpceltpay.c
 
 libgstrtp_la-gstrtpdvdepay.lo: gstrtpdvdepay.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-gstrtpdvdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpdvdepay.Tpo -c -o libgstrtp_la-gstrtpdvdepay.lo `test -f 'gstrtpdvdepay.c' || echo '$(srcdir)/'`gstrtpdvdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpdvdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpdvdepay.Tpo -c -o libgstrtp_la-gstrtpdvdepay.lo `test -f 'gstrtpdvdepay.c' || echo '$(srcdir)/'`gstrtpdvdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpdvdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpdvdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpdvdepay.c' object='libgstrtp_la-gstrtpdvdepay.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-gstrtpdvdepay.lo `test -f 'gstrtpdvdepay.c' || echo '$(srcdir)/'`gstrtpdvdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpdvdepay.lo `test -f 'gstrtpdvdepay.c' || echo '$(srcdir)/'`gstrtpdvdepay.c
 
 libgstrtp_la-gstrtpdvpay.lo: gstrtpdvpay.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-gstrtpdvpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpdvpay.Tpo -c -o libgstrtp_la-gstrtpdvpay.lo `test -f 'gstrtpdvpay.c' || echo '$(srcdir)/'`gstrtpdvpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpdvpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpdvpay.Tpo -c -o libgstrtp_la-gstrtpdvpay.lo `test -f 'gstrtpdvpay.c' || echo '$(srcdir)/'`gstrtpdvpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpdvpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpdvpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpdvpay.c' object='libgstrtp_la-gstrtpdvpay.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-gstrtpdvpay.lo `test -f 'gstrtpdvpay.c' || echo '$(srcdir)/'`gstrtpdvpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpdvpay.lo `test -f 'gstrtpdvpay.c' || echo '$(srcdir)/'`gstrtpdvpay.c
 
 libgstrtp_la-gstrtpgstdepay.lo: gstrtpgstdepay.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-gstrtpgstdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpgstdepay.Tpo -c -o libgstrtp_la-gstrtpgstdepay.lo `test -f 'gstrtpgstdepay.c' || echo '$(srcdir)/'`gstrtpgstdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpgstdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpgstdepay.Tpo -c -o libgstrtp_la-gstrtpgstdepay.lo `test -f 'gstrtpgstdepay.c' || echo '$(srcdir)/'`gstrtpgstdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpgstdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpgstdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpgstdepay.c' object='libgstrtp_la-gstrtpgstdepay.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-gstrtpgstdepay.lo `test -f 'gstrtpgstdepay.c' || echo '$(srcdir)/'`gstrtpgstdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpgstdepay.lo `test -f 'gstrtpgstdepay.c' || echo '$(srcdir)/'`gstrtpgstdepay.c
 
 libgstrtp_la-gstrtpgstpay.lo: gstrtpgstpay.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-gstrtpgstpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpgstpay.Tpo -c -o libgstrtp_la-gstrtpgstpay.lo `test -f 'gstrtpgstpay.c' || echo '$(srcdir)/'`gstrtpgstpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpgstpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpgstpay.Tpo -c -o libgstrtp_la-gstrtpgstpay.lo `test -f 'gstrtpgstpay.c' || echo '$(srcdir)/'`gstrtpgstpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpgstpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpgstpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpgstpay.c' object='libgstrtp_la-gstrtpgstpay.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-gstrtpgstpay.lo `test -f 'gstrtpgstpay.c' || echo '$(srcdir)/'`gstrtpgstpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpgstpay.lo `test -f 'gstrtpgstpay.c' || echo '$(srcdir)/'`gstrtpgstpay.c
 
 libgstrtp_la-gstrtpilbcdepay.lo: gstrtpilbcdepay.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-gstrtpilbcdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpilbcdepay.Tpo -c -o libgstrtp_la-gstrtpilbcdepay.lo `test -f 'gstrtpilbcdepay.c' || echo '$(srcdir)/'`gstrtpilbcdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpilbcdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpilbcdepay.Tpo -c -o libgstrtp_la-gstrtpilbcdepay.lo `test -f 'gstrtpilbcdepay.c' || echo '$(srcdir)/'`gstrtpilbcdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpilbcdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpilbcdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpilbcdepay.c' object='libgstrtp_la-gstrtpilbcdepay.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-gstrtpilbcdepay.lo `test -f 'gstrtpilbcdepay.c' || echo '$(srcdir)/'`gstrtpilbcdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpilbcdepay.lo `test -f 'gstrtpilbcdepay.c' || echo '$(srcdir)/'`gstrtpilbcdepay.c
 
 libgstrtp_la-gstrtpilbcpay.lo: gstrtpilbcpay.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-gstrtpilbcpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpilbcpay.Tpo -c -o libgstrtp_la-gstrtpilbcpay.lo `test -f 'gstrtpilbcpay.c' || echo '$(srcdir)/'`gstrtpilbcpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpilbcpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpilbcpay.Tpo -c -o libgstrtp_la-gstrtpilbcpay.lo `test -f 'gstrtpilbcpay.c' || echo '$(srcdir)/'`gstrtpilbcpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpilbcpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpilbcpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpilbcpay.c' object='libgstrtp_la-gstrtpilbcpay.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-gstrtpilbcpay.lo `test -f 'gstrtpilbcpay.c' || echo '$(srcdir)/'`gstrtpilbcpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpilbcpay.lo `test -f 'gstrtpilbcpay.c' || echo '$(srcdir)/'`gstrtpilbcpay.c
 
 libgstrtp_la-gstrtpmpadepay.lo: gstrtpmpadepay.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-gstrtpmpadepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmpadepay.Tpo -c -o libgstrtp_la-gstrtpmpadepay.lo `test -f 'gstrtpmpadepay.c' || echo '$(srcdir)/'`gstrtpmpadepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmpadepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmpadepay.Tpo -c -o libgstrtp_la-gstrtpmpadepay.lo `test -f 'gstrtpmpadepay.c' || echo '$(srcdir)/'`gstrtpmpadepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmpadepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmpadepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmpadepay.c' object='libgstrtp_la-gstrtpmpadepay.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-gstrtpmpadepay.lo `test -f 'gstrtpmpadepay.c' || echo '$(srcdir)/'`gstrtpmpadepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmpadepay.lo `test -f 'gstrtpmpadepay.c' || echo '$(srcdir)/'`gstrtpmpadepay.c
 
 libgstrtp_la-gstrtpmpapay.lo: gstrtpmpapay.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-gstrtpmpapay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmpapay.Tpo -c -o libgstrtp_la-gstrtpmpapay.lo `test -f 'gstrtpmpapay.c' || echo '$(srcdir)/'`gstrtpmpapay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmpapay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmpapay.Tpo -c -o libgstrtp_la-gstrtpmpapay.lo `test -f 'gstrtpmpapay.c' || echo '$(srcdir)/'`gstrtpmpapay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmpapay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmpapay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmpapay.c' object='libgstrtp_la-gstrtpmpapay.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-gstrtpmpapay.lo `test -f 'gstrtpmpapay.c' || echo '$(srcdir)/'`gstrtpmpapay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmpapay.lo `test -f 'gstrtpmpapay.c' || echo '$(srcdir)/'`gstrtpmpapay.c
 
 libgstrtp_la-gstrtpmparobustdepay.lo: gstrtpmparobustdepay.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-gstrtpmparobustdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmparobustdepay.Tpo -c -o libgstrtp_la-gstrtpmparobustdepay.lo `test -f 'gstrtpmparobustdepay.c' || echo '$(srcdir)/'`gstrtpmparobustdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmparobustdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmparobustdepay.Tpo -c -o libgstrtp_la-gstrtpmparobustdepay.lo `test -f 'gstrtpmparobustdepay.c' || echo '$(srcdir)/'`gstrtpmparobustdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmparobustdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmparobustdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmparobustdepay.c' object='libgstrtp_la-gstrtpmparobustdepay.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-gstrtpmparobustdepay.lo `test -f 'gstrtpmparobustdepay.c' || echo '$(srcdir)/'`gstrtpmparobustdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmparobustdepay.lo `test -f 'gstrtpmparobustdepay.c' || echo '$(srcdir)/'`gstrtpmparobustdepay.c
 
 libgstrtp_la-gstrtpmpvdepay.lo: gstrtpmpvdepay.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-gstrtpmpvdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmpvdepay.Tpo -c -o libgstrtp_la-gstrtpmpvdepay.lo `test -f 'gstrtpmpvdepay.c' || echo '$(srcdir)/'`gstrtpmpvdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmpvdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmpvdepay.Tpo -c -o libgstrtp_la-gstrtpmpvdepay.lo `test -f 'gstrtpmpvdepay.c' || echo '$(srcdir)/'`gstrtpmpvdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmpvdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmpvdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmpvdepay.c' object='libgstrtp_la-gstrtpmpvdepay.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-gstrtpmpvdepay.lo `test -f 'gstrtpmpvdepay.c' || echo '$(srcdir)/'`gstrtpmpvdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmpvdepay.lo `test -f 'gstrtpmpvdepay.c' || echo '$(srcdir)/'`gstrtpmpvdepay.c
 
 libgstrtp_la-gstrtpmpvpay.lo: gstrtpmpvpay.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-gstrtpmpvpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmpvpay.Tpo -c -o libgstrtp_la-gstrtpmpvpay.lo `test -f 'gstrtpmpvpay.c' || echo '$(srcdir)/'`gstrtpmpvpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmpvpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmpvpay.Tpo -c -o libgstrtp_la-gstrtpmpvpay.lo `test -f 'gstrtpmpvpay.c' || echo '$(srcdir)/'`gstrtpmpvpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmpvpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmpvpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmpvpay.c' object='libgstrtp_la-gstrtpmpvpay.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-gstrtpmpvpay.lo `test -f 'gstrtpmpvpay.c' || echo '$(srcdir)/'`gstrtpmpvpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmpvpay.lo `test -f 'gstrtpmpvpay.c' || echo '$(srcdir)/'`gstrtpmpvpay.c
 
 libgstrtp_la-gstrtppcmadepay.lo: gstrtppcmadepay.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-gstrtppcmadepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtppcmadepay.Tpo -c -o libgstrtp_la-gstrtppcmadepay.lo `test -f 'gstrtppcmadepay.c' || echo '$(srcdir)/'`gstrtppcmadepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtppcmadepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtppcmadepay.Tpo -c -o libgstrtp_la-gstrtppcmadepay.lo `test -f 'gstrtppcmadepay.c' || echo '$(srcdir)/'`gstrtppcmadepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtppcmadepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtppcmadepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtppcmadepay.c' object='libgstrtp_la-gstrtppcmadepay.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-gstrtppcmadepay.lo `test -f 'gstrtppcmadepay.c' || echo '$(srcdir)/'`gstrtppcmadepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtppcmadepay.lo `test -f 'gstrtppcmadepay.c' || echo '$(srcdir)/'`gstrtppcmadepay.c
 
 libgstrtp_la-gstrtppcmudepay.lo: gstrtppcmudepay.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-gstrtppcmudepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtppcmudepay.Tpo -c -o libgstrtp_la-gstrtppcmudepay.lo `test -f 'gstrtppcmudepay.c' || echo '$(srcdir)/'`gstrtppcmudepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtppcmudepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtppcmudepay.Tpo -c -o libgstrtp_la-gstrtppcmudepay.lo `test -f 'gstrtppcmudepay.c' || echo '$(srcdir)/'`gstrtppcmudepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtppcmudepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtppcmudepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtppcmudepay.c' object='libgstrtp_la-gstrtppcmudepay.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-gstrtppcmudepay.lo `test -f 'gstrtppcmudepay.c' || echo '$(srcdir)/'`gstrtppcmudepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtppcmudepay.lo `test -f 'gstrtppcmudepay.c' || echo '$(srcdir)/'`gstrtppcmudepay.c
 
 libgstrtp_la-gstrtppcmupay.lo: gstrtppcmupay.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-gstrtppcmupay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtppcmupay.Tpo -c -o libgstrtp_la-gstrtppcmupay.lo `test -f 'gstrtppcmupay.c' || echo '$(srcdir)/'`gstrtppcmupay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtppcmupay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtppcmupay.Tpo -c -o libgstrtp_la-gstrtppcmupay.lo `test -f 'gstrtppcmupay.c' || echo '$(srcdir)/'`gstrtppcmupay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtppcmupay.Tpo $(DEPDIR)/libgstrtp_la-gstrtppcmupay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtppcmupay.c' object='libgstrtp_la-gstrtppcmupay.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-gstrtppcmupay.lo `test -f 'gstrtppcmupay.c' || echo '$(srcdir)/'`gstrtppcmupay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtppcmupay.lo `test -f 'gstrtppcmupay.c' || echo '$(srcdir)/'`gstrtppcmupay.c
 
 libgstrtp_la-gstrtppcmapay.lo: gstrtppcmapay.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-gstrtppcmapay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtppcmapay.Tpo -c -o libgstrtp_la-gstrtppcmapay.lo `test -f 'gstrtppcmapay.c' || echo '$(srcdir)/'`gstrtppcmapay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtppcmapay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtppcmapay.Tpo -c -o libgstrtp_la-gstrtppcmapay.lo `test -f 'gstrtppcmapay.c' || echo '$(srcdir)/'`gstrtppcmapay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtppcmapay.Tpo $(DEPDIR)/libgstrtp_la-gstrtppcmapay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtppcmapay.c' object='libgstrtp_la-gstrtppcmapay.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-gstrtppcmapay.lo `test -f 'gstrtppcmapay.c' || echo '$(srcdir)/'`gstrtppcmapay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtppcmapay.lo `test -f 'gstrtppcmapay.c' || echo '$(srcdir)/'`gstrtppcmapay.c
 
 libgstrtp_la-gstrtpg722depay.lo: gstrtpg722depay.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-gstrtpg722depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg722depay.Tpo -c -o libgstrtp_la-gstrtpg722depay.lo `test -f 'gstrtpg722depay.c' || echo '$(srcdir)/'`gstrtpg722depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg722depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg722depay.Tpo -c -o libgstrtp_la-gstrtpg722depay.lo `test -f 'gstrtpg722depay.c' || echo '$(srcdir)/'`gstrtpg722depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg722depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg722depay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpg722depay.c' object='libgstrtp_la-gstrtpg722depay.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-gstrtpg722depay.lo `test -f 'gstrtpg722depay.c' || echo '$(srcdir)/'`gstrtpg722depay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg722depay.lo `test -f 'gstrtpg722depay.c' || echo '$(srcdir)/'`gstrtpg722depay.c
 
 libgstrtp_la-gstrtpg722pay.lo: gstrtpg722pay.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-gstrtpg722pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg722pay.Tpo -c -o libgstrtp_la-gstrtpg722pay.lo `test -f 'gstrtpg722pay.c' || echo '$(srcdir)/'`gstrtpg722pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg722pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg722pay.Tpo -c -o libgstrtp_la-gstrtpg722pay.lo `test -f 'gstrtpg722pay.c' || echo '$(srcdir)/'`gstrtpg722pay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg722pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg722pay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpg722pay.c' object='libgstrtp_la-gstrtpg722pay.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-gstrtpg722pay.lo `test -f 'gstrtpg722pay.c' || echo '$(srcdir)/'`gstrtpg722pay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg722pay.lo `test -f 'gstrtpg722pay.c' || echo '$(srcdir)/'`gstrtpg722pay.c
 
 libgstrtp_la-gstrtpg723depay.lo: gstrtpg723depay.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-gstrtpg723depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg723depay.Tpo -c -o libgstrtp_la-gstrtpg723depay.lo `test -f 'gstrtpg723depay.c' || echo '$(srcdir)/'`gstrtpg723depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg723depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg723depay.Tpo -c -o libgstrtp_la-gstrtpg723depay.lo `test -f 'gstrtpg723depay.c' || echo '$(srcdir)/'`gstrtpg723depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg723depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg723depay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpg723depay.c' object='libgstrtp_la-gstrtpg723depay.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-gstrtpg723depay.lo `test -f 'gstrtpg723depay.c' || echo '$(srcdir)/'`gstrtpg723depay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg723depay.lo `test -f 'gstrtpg723depay.c' || echo '$(srcdir)/'`gstrtpg723depay.c
 
 libgstrtp_la-gstrtpg723pay.lo: gstrtpg723pay.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-gstrtpg723pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg723pay.Tpo -c -o libgstrtp_la-gstrtpg723pay.lo `test -f 'gstrtpg723pay.c' || echo '$(srcdir)/'`gstrtpg723pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg723pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg723pay.Tpo -c -o libgstrtp_la-gstrtpg723pay.lo `test -f 'gstrtpg723pay.c' || echo '$(srcdir)/'`gstrtpg723pay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg723pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg723pay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpg723pay.c' object='libgstrtp_la-gstrtpg723pay.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-gstrtpg723pay.lo `test -f 'gstrtpg723pay.c' || echo '$(srcdir)/'`gstrtpg723pay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg723pay.lo `test -f 'gstrtpg723pay.c' || echo '$(srcdir)/'`gstrtpg723pay.c
 
 libgstrtp_la-gstrtpg726pay.lo: gstrtpg726pay.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-gstrtpg726pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg726pay.Tpo -c -o libgstrtp_la-gstrtpg726pay.lo `test -f 'gstrtpg726pay.c' || echo '$(srcdir)/'`gstrtpg726pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg726pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg726pay.Tpo -c -o libgstrtp_la-gstrtpg726pay.lo `test -f 'gstrtpg726pay.c' || echo '$(srcdir)/'`gstrtpg726pay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg726pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg726pay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpg726pay.c' object='libgstrtp_la-gstrtpg726pay.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-gstrtpg726pay.lo `test -f 'gstrtpg726pay.c' || echo '$(srcdir)/'`gstrtpg726pay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg726pay.lo `test -f 'gstrtpg726pay.c' || echo '$(srcdir)/'`gstrtpg726pay.c
 
 libgstrtp_la-gstrtpg726depay.lo: gstrtpg726depay.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-gstrtpg726depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg726depay.Tpo -c -o libgstrtp_la-gstrtpg726depay.lo `test -f 'gstrtpg726depay.c' || echo '$(srcdir)/'`gstrtpg726depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg726depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg726depay.Tpo -c -o libgstrtp_la-gstrtpg726depay.lo `test -f 'gstrtpg726depay.c' || echo '$(srcdir)/'`gstrtpg726depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg726depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg726depay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpg726depay.c' object='libgstrtp_la-gstrtpg726depay.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-gstrtpg726depay.lo `test -f 'gstrtpg726depay.c' || echo '$(srcdir)/'`gstrtpg726depay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg726depay.lo `test -f 'gstrtpg726depay.c' || echo '$(srcdir)/'`gstrtpg726depay.c
 
 libgstrtp_la-gstrtpg729pay.lo: gstrtpg729pay.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-gstrtpg729pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg729pay.Tpo -c -o libgstrtp_la-gstrtpg729pay.lo `test -f 'gstrtpg729pay.c' || echo '$(srcdir)/'`gstrtpg729pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg729pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg729pay.Tpo -c -o libgstrtp_la-gstrtpg729pay.lo `test -f 'gstrtpg729pay.c' || echo '$(srcdir)/'`gstrtpg729pay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg729pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg729pay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpg729pay.c' object='libgstrtp_la-gstrtpg729pay.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-gstrtpg729pay.lo `test -f 'gstrtpg729pay.c' || echo '$(srcdir)/'`gstrtpg729pay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg729pay.lo `test -f 'gstrtpg729pay.c' || echo '$(srcdir)/'`gstrtpg729pay.c
 
 libgstrtp_la-gstrtpg729depay.lo: gstrtpg729depay.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-gstrtpg729depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg729depay.Tpo -c -o libgstrtp_la-gstrtpg729depay.lo `test -f 'gstrtpg729depay.c' || echo '$(srcdir)/'`gstrtpg729depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg729depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg729depay.Tpo -c -o libgstrtp_la-gstrtpg729depay.lo `test -f 'gstrtpg729depay.c' || echo '$(srcdir)/'`gstrtpg729depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg729depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg729depay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpg729depay.c' object='libgstrtp_la-gstrtpg729depay.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-gstrtpg729depay.lo `test -f 'gstrtpg729depay.c' || echo '$(srcdir)/'`gstrtpg729depay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg729depay.lo `test -f 'gstrtpg729depay.c' || echo '$(srcdir)/'`gstrtpg729depay.c
 
 libgstrtp_la-gstrtpgsmdepay.lo: gstrtpgsmdepay.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-gstrtpgsmdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpgsmdepay.Tpo -c -o libgstrtp_la-gstrtpgsmdepay.lo `test -f 'gstrtpgsmdepay.c' || echo '$(srcdir)/'`gstrtpgsmdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpgsmdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpgsmdepay.Tpo -c -o libgstrtp_la-gstrtpgsmdepay.lo `test -f 'gstrtpgsmdepay.c' || echo '$(srcdir)/'`gstrtpgsmdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpgsmdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpgsmdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpgsmdepay.c' object='libgstrtp_la-gstrtpgsmdepay.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-gstrtpgsmdepay.lo `test -f 'gstrtpgsmdepay.c' || echo '$(srcdir)/'`gstrtpgsmdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpgsmdepay.lo `test -f 'gstrtpgsmdepay.c' || echo '$(srcdir)/'`gstrtpgsmdepay.c
 
 libgstrtp_la-gstrtpgsmpay.lo: gstrtpgsmpay.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-gstrtpgsmpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpgsmpay.Tpo -c -o libgstrtp_la-gstrtpgsmpay.lo `test -f 'gstrtpgsmpay.c' || echo '$(srcdir)/'`gstrtpgsmpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpgsmpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpgsmpay.Tpo -c -o libgstrtp_la-gstrtpgsmpay.lo `test -f 'gstrtpgsmpay.c' || echo '$(srcdir)/'`gstrtpgsmpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpgsmpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpgsmpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpgsmpay.c' object='libgstrtp_la-gstrtpgsmpay.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-gstrtpgsmpay.lo `test -f 'gstrtpgsmpay.c' || echo '$(srcdir)/'`gstrtpgsmpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpgsmpay.lo `test -f 'gstrtpgsmpay.c' || echo '$(srcdir)/'`gstrtpgsmpay.c
 
 libgstrtp_la-gstrtpamrdepay.lo: gstrtpamrdepay.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-gstrtpamrdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpamrdepay.Tpo -c -o libgstrtp_la-gstrtpamrdepay.lo `test -f 'gstrtpamrdepay.c' || echo '$(srcdir)/'`gstrtpamrdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpamrdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpamrdepay.Tpo -c -o libgstrtp_la-gstrtpamrdepay.lo `test -f 'gstrtpamrdepay.c' || echo '$(srcdir)/'`gstrtpamrdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpamrdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpamrdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpamrdepay.c' object='libgstrtp_la-gstrtpamrdepay.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-gstrtpamrdepay.lo `test -f 'gstrtpamrdepay.c' || echo '$(srcdir)/'`gstrtpamrdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpamrdepay.lo `test -f 'gstrtpamrdepay.c' || echo '$(srcdir)/'`gstrtpamrdepay.c
 
 libgstrtp_la-gstrtpamrpay.lo: gstrtpamrpay.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-gstrtpamrpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpamrpay.Tpo -c -o libgstrtp_la-gstrtpamrpay.lo `test -f 'gstrtpamrpay.c' || echo '$(srcdir)/'`gstrtpamrpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpamrpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpamrpay.Tpo -c -o libgstrtp_la-gstrtpamrpay.lo `test -f 'gstrtpamrpay.c' || echo '$(srcdir)/'`gstrtpamrpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpamrpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpamrpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpamrpay.c' object='libgstrtp_la-gstrtpamrpay.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-gstrtpamrpay.lo `test -f 'gstrtpamrpay.c' || echo '$(srcdir)/'`gstrtpamrpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpamrpay.lo `test -f 'gstrtpamrpay.c' || echo '$(srcdir)/'`gstrtpamrpay.c
 
 libgstrtp_la-gstrtph261pay.lo: gstrtph261pay.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-gstrtph261pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph261pay.Tpo -c -o libgstrtp_la-gstrtph261pay.lo `test -f 'gstrtph261pay.c' || echo '$(srcdir)/'`gstrtph261pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph261pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph261pay.Tpo -c -o libgstrtp_la-gstrtph261pay.lo `test -f 'gstrtph261pay.c' || echo '$(srcdir)/'`gstrtph261pay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph261pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph261pay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtph261pay.c' object='libgstrtp_la-gstrtph261pay.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-gstrtph261pay.lo `test -f 'gstrtph261pay.c' || echo '$(srcdir)/'`gstrtph261pay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph261pay.lo `test -f 'gstrtph261pay.c' || echo '$(srcdir)/'`gstrtph261pay.c
 
 libgstrtp_la-gstrtph261depay.lo: gstrtph261depay.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-gstrtph261depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph261depay.Tpo -c -o libgstrtp_la-gstrtph261depay.lo `test -f 'gstrtph261depay.c' || echo '$(srcdir)/'`gstrtph261depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph261depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph261depay.Tpo -c -o libgstrtp_la-gstrtph261depay.lo `test -f 'gstrtph261depay.c' || echo '$(srcdir)/'`gstrtph261depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph261depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph261depay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtph261depay.c' object='libgstrtp_la-gstrtph261depay.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-gstrtph261depay.lo `test -f 'gstrtph261depay.c' || echo '$(srcdir)/'`gstrtph261depay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph261depay.lo `test -f 'gstrtph261depay.c' || echo '$(srcdir)/'`gstrtph261depay.c
 
 libgstrtp_la-gstrtph263pdepay.lo: gstrtph263pdepay.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-gstrtph263pdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263pdepay.Tpo -c -o libgstrtp_la-gstrtph263pdepay.lo `test -f 'gstrtph263pdepay.c' || echo '$(srcdir)/'`gstrtph263pdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph263pdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263pdepay.Tpo -c -o libgstrtp_la-gstrtph263pdepay.lo `test -f 'gstrtph263pdepay.c' || echo '$(srcdir)/'`gstrtph263pdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph263pdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph263pdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtph263pdepay.c' object='libgstrtp_la-gstrtph263pdepay.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-gstrtph263pdepay.lo `test -f 'gstrtph263pdepay.c' || echo '$(srcdir)/'`gstrtph263pdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph263pdepay.lo `test -f 'gstrtph263pdepay.c' || echo '$(srcdir)/'`gstrtph263pdepay.c
 
 libgstrtp_la-gstrtph263ppay.lo: gstrtph263ppay.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-gstrtph263ppay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263ppay.Tpo -c -o libgstrtp_la-gstrtph263ppay.lo `test -f 'gstrtph263ppay.c' || echo '$(srcdir)/'`gstrtph263ppay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph263ppay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263ppay.Tpo -c -o libgstrtp_la-gstrtph263ppay.lo `test -f 'gstrtph263ppay.c' || echo '$(srcdir)/'`gstrtph263ppay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph263ppay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph263ppay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtph263ppay.c' object='libgstrtp_la-gstrtph263ppay.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-gstrtph263ppay.lo `test -f 'gstrtph263ppay.c' || echo '$(srcdir)/'`gstrtph263ppay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph263ppay.lo `test -f 'gstrtph263ppay.c' || echo '$(srcdir)/'`gstrtph263ppay.c
 
 libgstrtp_la-gstrtph263depay.lo: gstrtph263depay.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-gstrtph263depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263depay.Tpo -c -o libgstrtp_la-gstrtph263depay.lo `test -f 'gstrtph263depay.c' || echo '$(srcdir)/'`gstrtph263depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph263depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263depay.Tpo -c -o libgstrtp_la-gstrtph263depay.lo `test -f 'gstrtph263depay.c' || echo '$(srcdir)/'`gstrtph263depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph263depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph263depay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtph263depay.c' object='libgstrtp_la-gstrtph263depay.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-gstrtph263depay.lo `test -f 'gstrtph263depay.c' || echo '$(srcdir)/'`gstrtph263depay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph263depay.lo `test -f 'gstrtph263depay.c' || echo '$(srcdir)/'`gstrtph263depay.c
 
 libgstrtp_la-gstrtph263pay.lo: gstrtph263pay.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-gstrtph263pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263pay.Tpo -c -o libgstrtp_la-gstrtph263pay.lo `test -f 'gstrtph263pay.c' || echo '$(srcdir)/'`gstrtph263pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph263pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263pay.Tpo -c -o libgstrtp_la-gstrtph263pay.lo `test -f 'gstrtph263pay.c' || echo '$(srcdir)/'`gstrtph263pay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph263pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph263pay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtph263pay.c' object='libgstrtp_la-gstrtph263pay.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-gstrtph263pay.lo `test -f 'gstrtph263pay.c' || echo '$(srcdir)/'`gstrtph263pay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph263pay.lo `test -f 'gstrtph263pay.c' || echo '$(srcdir)/'`gstrtph263pay.c
 
 libgstrtp_la-gstrtph264depay.lo: gstrtph264depay.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-gstrtph264depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph264depay.Tpo -c -o libgstrtp_la-gstrtph264depay.lo `test -f 'gstrtph264depay.c' || echo '$(srcdir)/'`gstrtph264depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph264depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph264depay.Tpo -c -o libgstrtp_la-gstrtph264depay.lo `test -f 'gstrtph264depay.c' || echo '$(srcdir)/'`gstrtph264depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph264depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph264depay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtph264depay.c' object='libgstrtp_la-gstrtph264depay.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-gstrtph264depay.lo `test -f 'gstrtph264depay.c' || echo '$(srcdir)/'`gstrtph264depay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph264depay.lo `test -f 'gstrtph264depay.c' || echo '$(srcdir)/'`gstrtph264depay.c
 
 libgstrtp_la-gstrtph264pay.lo: gstrtph264pay.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-gstrtph264pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph264pay.Tpo -c -o libgstrtp_la-gstrtph264pay.lo `test -f 'gstrtph264pay.c' || echo '$(srcdir)/'`gstrtph264pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph264pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph264pay.Tpo -c -o libgstrtp_la-gstrtph264pay.lo `test -f 'gstrtph264pay.c' || echo '$(srcdir)/'`gstrtph264pay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph264pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph264pay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtph264pay.c' object='libgstrtp_la-gstrtph264pay.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-gstrtph264pay.lo `test -f 'gstrtph264pay.c' || echo '$(srcdir)/'`gstrtph264pay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph264pay.lo `test -f 'gstrtph264pay.c' || echo '$(srcdir)/'`gstrtph264pay.c
 
 libgstrtp_la-gstrtph265depay.lo: gstrtph265depay.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-gstrtph265depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph265depay.Tpo -c -o libgstrtp_la-gstrtph265depay.lo `test -f 'gstrtph265depay.c' || echo '$(srcdir)/'`gstrtph265depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph265depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph265depay.Tpo -c -o libgstrtp_la-gstrtph265depay.lo `test -f 'gstrtph265depay.c' || echo '$(srcdir)/'`gstrtph265depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph265depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph265depay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtph265depay.c' object='libgstrtp_la-gstrtph265depay.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-gstrtph265depay.lo `test -f 'gstrtph265depay.c' || echo '$(srcdir)/'`gstrtph265depay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph265depay.lo `test -f 'gstrtph265depay.c' || echo '$(srcdir)/'`gstrtph265depay.c
 
 libgstrtp_la-gstrtph265pay.lo: gstrtph265pay.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-gstrtph265pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph265pay.Tpo -c -o libgstrtp_la-gstrtph265pay.lo `test -f 'gstrtph265pay.c' || echo '$(srcdir)/'`gstrtph265pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph265pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph265pay.Tpo -c -o libgstrtp_la-gstrtph265pay.lo `test -f 'gstrtph265pay.c' || echo '$(srcdir)/'`gstrtph265pay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph265pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph265pay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtph265pay.c' object='libgstrtp_la-gstrtph265pay.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-gstrtph265pay.lo `test -f 'gstrtph265pay.c' || echo '$(srcdir)/'`gstrtph265pay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph265pay.lo `test -f 'gstrtph265pay.c' || echo '$(srcdir)/'`gstrtph265pay.c
 
 libgstrtp_la-gstrtpj2kdepay.lo: gstrtpj2kdepay.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-gstrtpj2kdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpj2kdepay.Tpo -c -o libgstrtp_la-gstrtpj2kdepay.lo `test -f 'gstrtpj2kdepay.c' || echo '$(srcdir)/'`gstrtpj2kdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpj2kdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpj2kdepay.Tpo -c -o libgstrtp_la-gstrtpj2kdepay.lo `test -f 'gstrtpj2kdepay.c' || echo '$(srcdir)/'`gstrtpj2kdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpj2kdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpj2kdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpj2kdepay.c' object='libgstrtp_la-gstrtpj2kdepay.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-gstrtpj2kdepay.lo `test -f 'gstrtpj2kdepay.c' || echo '$(srcdir)/'`gstrtpj2kdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpj2kdepay.lo `test -f 'gstrtpj2kdepay.c' || echo '$(srcdir)/'`gstrtpj2kdepay.c
 
 libgstrtp_la-gstrtpj2kpay.lo: gstrtpj2kpay.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-gstrtpj2kpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpj2kpay.Tpo -c -o libgstrtp_la-gstrtpj2kpay.lo `test -f 'gstrtpj2kpay.c' || echo '$(srcdir)/'`gstrtpj2kpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpj2kpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpj2kpay.Tpo -c -o libgstrtp_la-gstrtpj2kpay.lo `test -f 'gstrtpj2kpay.c' || echo '$(srcdir)/'`gstrtpj2kpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpj2kpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpj2kpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpj2kpay.c' object='libgstrtp_la-gstrtpj2kpay.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-gstrtpj2kpay.lo `test -f 'gstrtpj2kpay.c' || echo '$(srcdir)/'`gstrtpj2kpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpj2kpay.lo `test -f 'gstrtpj2kpay.c' || echo '$(srcdir)/'`gstrtpj2kpay.c
 
 libgstrtp_la-gstrtpjpegdepay.lo: gstrtpjpegdepay.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-gstrtpjpegdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpjpegdepay.Tpo -c -o libgstrtp_la-gstrtpjpegdepay.lo `test -f 'gstrtpjpegdepay.c' || echo '$(srcdir)/'`gstrtpjpegdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpjpegdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpjpegdepay.Tpo -c -o libgstrtp_la-gstrtpjpegdepay.lo `test -f 'gstrtpjpegdepay.c' || echo '$(srcdir)/'`gstrtpjpegdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpjpegdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpjpegdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpjpegdepay.c' object='libgstrtp_la-gstrtpjpegdepay.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-gstrtpjpegdepay.lo `test -f 'gstrtpjpegdepay.c' || echo '$(srcdir)/'`gstrtpjpegdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpjpegdepay.lo `test -f 'gstrtpjpegdepay.c' || echo '$(srcdir)/'`gstrtpjpegdepay.c
 
 libgstrtp_la-gstrtpjpegpay.lo: gstrtpjpegpay.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-gstrtpjpegpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpjpegpay.Tpo -c -o libgstrtp_la-gstrtpjpegpay.lo `test -f 'gstrtpjpegpay.c' || echo '$(srcdir)/'`gstrtpjpegpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpjpegpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpjpegpay.Tpo -c -o libgstrtp_la-gstrtpjpegpay.lo `test -f 'gstrtpjpegpay.c' || echo '$(srcdir)/'`gstrtpjpegpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpjpegpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpjpegpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpjpegpay.c' object='libgstrtp_la-gstrtpjpegpay.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-gstrtpjpegpay.lo `test -f 'gstrtpjpegpay.c' || echo '$(srcdir)/'`gstrtpjpegpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpjpegpay.lo `test -f 'gstrtpjpegpay.c' || echo '$(srcdir)/'`gstrtpjpegpay.c
 
 libgstrtp_la-gstrtpklvdepay.lo: gstrtpklvdepay.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-gstrtpklvdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpklvdepay.Tpo -c -o libgstrtp_la-gstrtpklvdepay.lo `test -f 'gstrtpklvdepay.c' || echo '$(srcdir)/'`gstrtpklvdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpklvdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpklvdepay.Tpo -c -o libgstrtp_la-gstrtpklvdepay.lo `test -f 'gstrtpklvdepay.c' || echo '$(srcdir)/'`gstrtpklvdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpklvdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpklvdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpklvdepay.c' object='libgstrtp_la-gstrtpklvdepay.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-gstrtpklvdepay.lo `test -f 'gstrtpklvdepay.c' || echo '$(srcdir)/'`gstrtpklvdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpklvdepay.lo `test -f 'gstrtpklvdepay.c' || echo '$(srcdir)/'`gstrtpklvdepay.c
 
 libgstrtp_la-gstrtpklvpay.lo: gstrtpklvpay.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-gstrtpklvpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpklvpay.Tpo -c -o libgstrtp_la-gstrtpklvpay.lo `test -f 'gstrtpklvpay.c' || echo '$(srcdir)/'`gstrtpklvpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpklvpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpklvpay.Tpo -c -o libgstrtp_la-gstrtpklvpay.lo `test -f 'gstrtpklvpay.c' || echo '$(srcdir)/'`gstrtpklvpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpklvpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpklvpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpklvpay.c' object='libgstrtp_la-gstrtpklvpay.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-gstrtpklvpay.lo `test -f 'gstrtpklvpay.c' || echo '$(srcdir)/'`gstrtpklvpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpklvpay.lo `test -f 'gstrtpklvpay.c' || echo '$(srcdir)/'`gstrtpklvpay.c
+
+libgstrtp_la-gstrtpL8depay.lo: gstrtpL8depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpL8depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL8depay.Tpo -c -o libgstrtp_la-gstrtpL8depay.lo `test -f 'gstrtpL8depay.c' || echo '$(srcdir)/'`gstrtpL8depay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpL8depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpL8depay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpL8depay.c' object='libgstrtp_la-gstrtpL8depay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL8depay.lo `test -f 'gstrtpL8depay.c' || echo '$(srcdir)/'`gstrtpL8depay.c
+
+libgstrtp_la-gstrtpL8pay.lo: gstrtpL8pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpL8pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL8pay.Tpo -c -o libgstrtp_la-gstrtpL8pay.lo `test -f 'gstrtpL8pay.c' || echo '$(srcdir)/'`gstrtpL8pay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpL8pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpL8pay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpL8pay.c' object='libgstrtp_la-gstrtpL8pay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL8pay.lo `test -f 'gstrtpL8pay.c' || echo '$(srcdir)/'`gstrtpL8pay.c
 
 libgstrtp_la-gstrtpL16depay.lo: gstrtpL16depay.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-gstrtpL16depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL16depay.Tpo -c -o libgstrtp_la-gstrtpL16depay.lo `test -f 'gstrtpL16depay.c' || echo '$(srcdir)/'`gstrtpL16depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpL16depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL16depay.Tpo -c -o libgstrtp_la-gstrtpL16depay.lo `test -f 'gstrtpL16depay.c' || echo '$(srcdir)/'`gstrtpL16depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpL16depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpL16depay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpL16depay.c' object='libgstrtp_la-gstrtpL16depay.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-gstrtpL16depay.lo `test -f 'gstrtpL16depay.c' || echo '$(srcdir)/'`gstrtpL16depay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL16depay.lo `test -f 'gstrtpL16depay.c' || echo '$(srcdir)/'`gstrtpL16depay.c
 
 libgstrtp_la-gstrtpL16pay.lo: gstrtpL16pay.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-gstrtpL16pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL16pay.Tpo -c -o libgstrtp_la-gstrtpL16pay.lo `test -f 'gstrtpL16pay.c' || echo '$(srcdir)/'`gstrtpL16pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpL16pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL16pay.Tpo -c -o libgstrtp_la-gstrtpL16pay.lo `test -f 'gstrtpL16pay.c' || echo '$(srcdir)/'`gstrtpL16pay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpL16pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpL16pay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpL16pay.c' object='libgstrtp_la-gstrtpL16pay.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-gstrtpL16pay.lo `test -f 'gstrtpL16pay.c' || echo '$(srcdir)/'`gstrtpL16pay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL16pay.lo `test -f 'gstrtpL16pay.c' || echo '$(srcdir)/'`gstrtpL16pay.c
 
 libgstrtp_la-gstrtpL24depay.lo: gstrtpL24depay.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-gstrtpL24depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL24depay.Tpo -c -o libgstrtp_la-gstrtpL24depay.lo `test -f 'gstrtpL24depay.c' || echo '$(srcdir)/'`gstrtpL24depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpL24depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL24depay.Tpo -c -o libgstrtp_la-gstrtpL24depay.lo `test -f 'gstrtpL24depay.c' || echo '$(srcdir)/'`gstrtpL24depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpL24depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpL24depay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpL24depay.c' object='libgstrtp_la-gstrtpL24depay.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-gstrtpL24depay.lo `test -f 'gstrtpL24depay.c' || echo '$(srcdir)/'`gstrtpL24depay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL24depay.lo `test -f 'gstrtpL24depay.c' || echo '$(srcdir)/'`gstrtpL24depay.c
 
 libgstrtp_la-gstrtpL24pay.lo: gstrtpL24pay.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-gstrtpL24pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL24pay.Tpo -c -o libgstrtp_la-gstrtpL24pay.lo `test -f 'gstrtpL24pay.c' || echo '$(srcdir)/'`gstrtpL24pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpL24pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL24pay.Tpo -c -o libgstrtp_la-gstrtpL24pay.lo `test -f 'gstrtpL24pay.c' || echo '$(srcdir)/'`gstrtpL24pay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpL24pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpL24pay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpL24pay.c' object='libgstrtp_la-gstrtpL24pay.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-gstrtpL24pay.lo `test -f 'gstrtpL24pay.c' || echo '$(srcdir)/'`gstrtpL24pay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL24pay.lo `test -f 'gstrtpL24pay.c' || echo '$(srcdir)/'`gstrtpL24pay.c
 
 libgstrtp_la-gstasteriskh263.lo: gstasteriskh263.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-gstasteriskh263.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstasteriskh263.Tpo -c -o libgstrtp_la-gstasteriskh263.lo `test -f 'gstasteriskh263.c' || echo '$(srcdir)/'`gstasteriskh263.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstasteriskh263.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstasteriskh263.Tpo -c -o libgstrtp_la-gstasteriskh263.lo `test -f 'gstasteriskh263.c' || echo '$(srcdir)/'`gstasteriskh263.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstasteriskh263.Tpo $(DEPDIR)/libgstrtp_la-gstasteriskh263.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstasteriskh263.c' object='libgstrtp_la-gstasteriskh263.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-gstasteriskh263.lo `test -f 'gstasteriskh263.c' || echo '$(srcdir)/'`gstasteriskh263.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstasteriskh263.lo `test -f 'gstasteriskh263.c' || echo '$(srcdir)/'`gstasteriskh263.c
 
 libgstrtp_la-gstrtpmp1sdepay.lo: gstrtpmp1sdepay.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-gstrtpmp1sdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp1sdepay.Tpo -c -o libgstrtp_la-gstrtpmp1sdepay.lo `test -f 'gstrtpmp1sdepay.c' || echo '$(srcdir)/'`gstrtpmp1sdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp1sdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp1sdepay.Tpo -c -o libgstrtp_la-gstrtpmp1sdepay.lo `test -f 'gstrtpmp1sdepay.c' || echo '$(srcdir)/'`gstrtpmp1sdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp1sdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp1sdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmp1sdepay.c' object='libgstrtp_la-gstrtpmp1sdepay.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-gstrtpmp1sdepay.lo `test -f 'gstrtpmp1sdepay.c' || echo '$(srcdir)/'`gstrtpmp1sdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp1sdepay.lo `test -f 'gstrtpmp1sdepay.c' || echo '$(srcdir)/'`gstrtpmp1sdepay.c
 
 libgstrtp_la-gstrtpmp2tdepay.lo: gstrtpmp2tdepay.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-gstrtpmp2tdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp2tdepay.Tpo -c -o libgstrtp_la-gstrtpmp2tdepay.lo `test -f 'gstrtpmp2tdepay.c' || echo '$(srcdir)/'`gstrtpmp2tdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp2tdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp2tdepay.Tpo -c -o libgstrtp_la-gstrtpmp2tdepay.lo `test -f 'gstrtpmp2tdepay.c' || echo '$(srcdir)/'`gstrtpmp2tdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp2tdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp2tdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmp2tdepay.c' object='libgstrtp_la-gstrtpmp2tdepay.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-gstrtpmp2tdepay.lo `test -f 'gstrtpmp2tdepay.c' || echo '$(srcdir)/'`gstrtpmp2tdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp2tdepay.lo `test -f 'gstrtpmp2tdepay.c' || echo '$(srcdir)/'`gstrtpmp2tdepay.c
 
 libgstrtp_la-gstrtpmp2tpay.lo: gstrtpmp2tpay.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-gstrtpmp2tpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp2tpay.Tpo -c -o libgstrtp_la-gstrtpmp2tpay.lo `test -f 'gstrtpmp2tpay.c' || echo '$(srcdir)/'`gstrtpmp2tpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp2tpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp2tpay.Tpo -c -o libgstrtp_la-gstrtpmp2tpay.lo `test -f 'gstrtpmp2tpay.c' || echo '$(srcdir)/'`gstrtpmp2tpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp2tpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp2tpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmp2tpay.c' object='libgstrtp_la-gstrtpmp2tpay.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-gstrtpmp2tpay.lo `test -f 'gstrtpmp2tpay.c' || echo '$(srcdir)/'`gstrtpmp2tpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp2tpay.lo `test -f 'gstrtpmp2tpay.c' || echo '$(srcdir)/'`gstrtpmp2tpay.c
 
 libgstrtp_la-gstrtpmp4vdepay.lo: gstrtpmp4vdepay.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-gstrtpmp4vdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4vdepay.Tpo -c -o libgstrtp_la-gstrtpmp4vdepay.lo `test -f 'gstrtpmp4vdepay.c' || echo '$(srcdir)/'`gstrtpmp4vdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp4vdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4vdepay.Tpo -c -o libgstrtp_la-gstrtpmp4vdepay.lo `test -f 'gstrtpmp4vdepay.c' || echo '$(srcdir)/'`gstrtpmp4vdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp4vdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp4vdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmp4vdepay.c' object='libgstrtp_la-gstrtpmp4vdepay.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-gstrtpmp4vdepay.lo `test -f 'gstrtpmp4vdepay.c' || echo '$(srcdir)/'`gstrtpmp4vdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4vdepay.lo `test -f 'gstrtpmp4vdepay.c' || echo '$(srcdir)/'`gstrtpmp4vdepay.c
 
 libgstrtp_la-gstrtpmp4vpay.lo: gstrtpmp4vpay.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-gstrtpmp4vpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4vpay.Tpo -c -o libgstrtp_la-gstrtpmp4vpay.lo `test -f 'gstrtpmp4vpay.c' || echo '$(srcdir)/'`gstrtpmp4vpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp4vpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4vpay.Tpo -c -o libgstrtp_la-gstrtpmp4vpay.lo `test -f 'gstrtpmp4vpay.c' || echo '$(srcdir)/'`gstrtpmp4vpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp4vpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp4vpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmp4vpay.c' object='libgstrtp_la-gstrtpmp4vpay.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-gstrtpmp4vpay.lo `test -f 'gstrtpmp4vpay.c' || echo '$(srcdir)/'`gstrtpmp4vpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4vpay.lo `test -f 'gstrtpmp4vpay.c' || echo '$(srcdir)/'`gstrtpmp4vpay.c
 
 libgstrtp_la-gstrtpmp4gdepay.lo: gstrtpmp4gdepay.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-gstrtpmp4gdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4gdepay.Tpo -c -o libgstrtp_la-gstrtpmp4gdepay.lo `test -f 'gstrtpmp4gdepay.c' || echo '$(srcdir)/'`gstrtpmp4gdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp4gdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4gdepay.Tpo -c -o libgstrtp_la-gstrtpmp4gdepay.lo `test -f 'gstrtpmp4gdepay.c' || echo '$(srcdir)/'`gstrtpmp4gdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp4gdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp4gdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmp4gdepay.c' object='libgstrtp_la-gstrtpmp4gdepay.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-gstrtpmp4gdepay.lo `test -f 'gstrtpmp4gdepay.c' || echo '$(srcdir)/'`gstrtpmp4gdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4gdepay.lo `test -f 'gstrtpmp4gdepay.c' || echo '$(srcdir)/'`gstrtpmp4gdepay.c
 
 libgstrtp_la-gstrtpmp4gpay.lo: gstrtpmp4gpay.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-gstrtpmp4gpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4gpay.Tpo -c -o libgstrtp_la-gstrtpmp4gpay.lo `test -f 'gstrtpmp4gpay.c' || echo '$(srcdir)/'`gstrtpmp4gpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp4gpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4gpay.Tpo -c -o libgstrtp_la-gstrtpmp4gpay.lo `test -f 'gstrtpmp4gpay.c' || echo '$(srcdir)/'`gstrtpmp4gpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp4gpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp4gpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmp4gpay.c' object='libgstrtp_la-gstrtpmp4gpay.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-gstrtpmp4gpay.lo `test -f 'gstrtpmp4gpay.c' || echo '$(srcdir)/'`gstrtpmp4gpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4gpay.lo `test -f 'gstrtpmp4gpay.c' || echo '$(srcdir)/'`gstrtpmp4gpay.c
 
 libgstrtp_la-gstrtpmp4adepay.lo: gstrtpmp4adepay.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-gstrtpmp4adepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4adepay.Tpo -c -o libgstrtp_la-gstrtpmp4adepay.lo `test -f 'gstrtpmp4adepay.c' || echo '$(srcdir)/'`gstrtpmp4adepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp4adepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4adepay.Tpo -c -o libgstrtp_la-gstrtpmp4adepay.lo `test -f 'gstrtpmp4adepay.c' || echo '$(srcdir)/'`gstrtpmp4adepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp4adepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp4adepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmp4adepay.c' object='libgstrtp_la-gstrtpmp4adepay.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-gstrtpmp4adepay.lo `test -f 'gstrtpmp4adepay.c' || echo '$(srcdir)/'`gstrtpmp4adepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4adepay.lo `test -f 'gstrtpmp4adepay.c' || echo '$(srcdir)/'`gstrtpmp4adepay.c
 
 libgstrtp_la-gstrtpmp4apay.lo: gstrtpmp4apay.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-gstrtpmp4apay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4apay.Tpo -c -o libgstrtp_la-gstrtpmp4apay.lo `test -f 'gstrtpmp4apay.c' || echo '$(srcdir)/'`gstrtpmp4apay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp4apay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4apay.Tpo -c -o libgstrtp_la-gstrtpmp4apay.lo `test -f 'gstrtpmp4apay.c' || echo '$(srcdir)/'`gstrtpmp4apay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp4apay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp4apay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmp4apay.c' object='libgstrtp_la-gstrtpmp4apay.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-gstrtpmp4apay.lo `test -f 'gstrtpmp4apay.c' || echo '$(srcdir)/'`gstrtpmp4apay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4apay.lo `test -f 'gstrtpmp4apay.c' || echo '$(srcdir)/'`gstrtpmp4apay.c
 
 libgstrtp_la-gstrtpopusdepay.lo: gstrtpopusdepay.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-gstrtpopusdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpopusdepay.Tpo -c -o libgstrtp_la-gstrtpopusdepay.lo `test -f 'gstrtpopusdepay.c' || echo '$(srcdir)/'`gstrtpopusdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpopusdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpopusdepay.Tpo -c -o libgstrtp_la-gstrtpopusdepay.lo `test -f 'gstrtpopusdepay.c' || echo '$(srcdir)/'`gstrtpopusdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpopusdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpopusdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpopusdepay.c' object='libgstrtp_la-gstrtpopusdepay.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-gstrtpopusdepay.lo `test -f 'gstrtpopusdepay.c' || echo '$(srcdir)/'`gstrtpopusdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpopusdepay.lo `test -f 'gstrtpopusdepay.c' || echo '$(srcdir)/'`gstrtpopusdepay.c
 
 libgstrtp_la-gstrtpopuspay.lo: gstrtpopuspay.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-gstrtpopuspay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpopuspay.Tpo -c -o libgstrtp_la-gstrtpopuspay.lo `test -f 'gstrtpopuspay.c' || echo '$(srcdir)/'`gstrtpopuspay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpopuspay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpopuspay.Tpo -c -o libgstrtp_la-gstrtpopuspay.lo `test -f 'gstrtpopuspay.c' || echo '$(srcdir)/'`gstrtpopuspay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpopuspay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpopuspay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpopuspay.c' object='libgstrtp_la-gstrtpopuspay.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-gstrtpopuspay.lo `test -f 'gstrtpopuspay.c' || echo '$(srcdir)/'`gstrtpopuspay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpopuspay.lo `test -f 'gstrtpopuspay.c' || echo '$(srcdir)/'`gstrtpopuspay.c
 
 libgstrtp_la-gstrtpqcelpdepay.lo: gstrtpqcelpdepay.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-gstrtpqcelpdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpqcelpdepay.Tpo -c -o libgstrtp_la-gstrtpqcelpdepay.lo `test -f 'gstrtpqcelpdepay.c' || echo '$(srcdir)/'`gstrtpqcelpdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpqcelpdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpqcelpdepay.Tpo -c -o libgstrtp_la-gstrtpqcelpdepay.lo `test -f 'gstrtpqcelpdepay.c' || echo '$(srcdir)/'`gstrtpqcelpdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpqcelpdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpqcelpdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpqcelpdepay.c' object='libgstrtp_la-gstrtpqcelpdepay.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-gstrtpqcelpdepay.lo `test -f 'gstrtpqcelpdepay.c' || echo '$(srcdir)/'`gstrtpqcelpdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpqcelpdepay.lo `test -f 'gstrtpqcelpdepay.c' || echo '$(srcdir)/'`gstrtpqcelpdepay.c
 
 libgstrtp_la-gstrtpqdmdepay.lo: gstrtpqdmdepay.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-gstrtpqdmdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpqdmdepay.Tpo -c -o libgstrtp_la-gstrtpqdmdepay.lo `test -f 'gstrtpqdmdepay.c' || echo '$(srcdir)/'`gstrtpqdmdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpqdmdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpqdmdepay.Tpo -c -o libgstrtp_la-gstrtpqdmdepay.lo `test -f 'gstrtpqdmdepay.c' || echo '$(srcdir)/'`gstrtpqdmdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpqdmdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpqdmdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpqdmdepay.c' object='libgstrtp_la-gstrtpqdmdepay.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-gstrtpqdmdepay.lo `test -f 'gstrtpqdmdepay.c' || echo '$(srcdir)/'`gstrtpqdmdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpsirenpay.c' object='libgstrtp_la-gstrtpsirenpay.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-gstrtpsirenpay.lo `test -f 'gstrtpsirenpay.c' || echo '$(srcdir)/'`gstrtpsirenpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsirenpay.lo `test -f 'gstrtpsirenpay.c' || echo '$(srcdir)/'`gstrtpsirenpay.c
 
 libgstrtp_la-gstrtpsirendepay.lo: gstrtpsirendepay.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-gstrtpsirendepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsirendepay.Tpo -c -o libgstrtp_la-gstrtpsirendepay.lo `test -f 'gstrtpsirendepay.c' || echo '$(srcdir)/'`gstrtpsirendepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpsirendepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsirendepay.Tpo -c -o libgstrtp_la-gstrtpsirendepay.lo `test -f 'gstrtpsirendepay.c' || echo '$(srcdir)/'`gstrtpsirendepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpsirendepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpsirendepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpsirendepay.c' object='libgstrtp_la-gstrtpsirendepay.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-gstrtpsirendepay.lo `test -f 'gstrtpsirendepay.c' || echo '$(srcdir)/'`gstrtpsirendepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsirendepay.lo `test -f 'gstrtpsirendepay.c' || echo '$(srcdir)/'`gstrtpsirendepay.c
 
 libgstrtp_la-gstrtpspeexdepay.lo: gstrtpspeexdepay.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-gstrtpspeexdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpspeexdepay.Tpo -c -o libgstrtp_la-gstrtpspeexdepay.lo `test -f 'gstrtpspeexdepay.c' || echo '$(srcdir)/'`gstrtpspeexdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpspeexdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpspeexdepay.Tpo -c -o libgstrtp_la-gstrtpspeexdepay.lo `test -f 'gstrtpspeexdepay.c' || echo '$(srcdir)/'`gstrtpspeexdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpspeexdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpspeexdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpspeexdepay.c' object='libgstrtp_la-gstrtpspeexdepay.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-gstrtpspeexdepay.lo `test -f 'gstrtpspeexdepay.c' || echo '$(srcdir)/'`gstrtpspeexdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpspeexdepay.lo `test -f 'gstrtpspeexdepay.c' || echo '$(srcdir)/'`gstrtpspeexdepay.c
 
 libgstrtp_la-gstrtpspeexpay.lo: gstrtpspeexpay.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-gstrtpspeexpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpspeexpay.Tpo -c -o libgstrtp_la-gstrtpspeexpay.lo `test -f 'gstrtpspeexpay.c' || echo '$(srcdir)/'`gstrtpspeexpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpspeexpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpspeexpay.Tpo -c -o libgstrtp_la-gstrtpspeexpay.lo `test -f 'gstrtpspeexpay.c' || echo '$(srcdir)/'`gstrtpspeexpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpspeexpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpspeexpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpspeexpay.c' object='libgstrtp_la-gstrtpspeexpay.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-gstrtpspeexpay.lo `test -f 'gstrtpspeexpay.c' || echo '$(srcdir)/'`gstrtpspeexpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpspeexpay.lo `test -f 'gstrtpspeexpay.c' || echo '$(srcdir)/'`gstrtpspeexpay.c
 
 libgstrtp_la-gstrtpsv3vdepay.lo: gstrtpsv3vdepay.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-gstrtpsv3vdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsv3vdepay.Tpo -c -o libgstrtp_la-gstrtpsv3vdepay.lo `test -f 'gstrtpsv3vdepay.c' || echo '$(srcdir)/'`gstrtpsv3vdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpsv3vdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsv3vdepay.Tpo -c -o libgstrtp_la-gstrtpsv3vdepay.lo `test -f 'gstrtpsv3vdepay.c' || echo '$(srcdir)/'`gstrtpsv3vdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpsv3vdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpsv3vdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpsv3vdepay.c' object='libgstrtp_la-gstrtpsv3vdepay.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-gstrtpsv3vdepay.lo `test -f 'gstrtpsv3vdepay.c' || echo '$(srcdir)/'`gstrtpsv3vdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsv3vdepay.lo `test -f 'gstrtpsv3vdepay.c' || echo '$(srcdir)/'`gstrtpsv3vdepay.c
 
 libgstrtp_la-gstrtptheoradepay.lo: gstrtptheoradepay.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-gstrtptheoradepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtptheoradepay.Tpo -c -o libgstrtp_la-gstrtptheoradepay.lo `test -f 'gstrtptheoradepay.c' || echo '$(srcdir)/'`gstrtptheoradepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtptheoradepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtptheoradepay.Tpo -c -o libgstrtp_la-gstrtptheoradepay.lo `test -f 'gstrtptheoradepay.c' || echo '$(srcdir)/'`gstrtptheoradepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtptheoradepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtptheoradepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtptheoradepay.c' object='libgstrtp_la-gstrtptheoradepay.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-gstrtptheoradepay.lo `test -f 'gstrtptheoradepay.c' || echo '$(srcdir)/'`gstrtptheoradepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtptheoradepay.lo `test -f 'gstrtptheoradepay.c' || echo '$(srcdir)/'`gstrtptheoradepay.c
 
 libgstrtp_la-gstrtptheorapay.lo: gstrtptheorapay.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-gstrtptheorapay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtptheorapay.Tpo -c -o libgstrtp_la-gstrtptheorapay.lo `test -f 'gstrtptheorapay.c' || echo '$(srcdir)/'`gstrtptheorapay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtptheorapay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtptheorapay.Tpo -c -o libgstrtp_la-gstrtptheorapay.lo `test -f 'gstrtptheorapay.c' || echo '$(srcdir)/'`gstrtptheorapay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtptheorapay.Tpo $(DEPDIR)/libgstrtp_la-gstrtptheorapay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtptheorapay.c' object='libgstrtp_la-gstrtptheorapay.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-gstrtptheorapay.lo `test -f 'gstrtptheorapay.c' || echo '$(srcdir)/'`gstrtptheorapay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtptheorapay.lo `test -f 'gstrtptheorapay.c' || echo '$(srcdir)/'`gstrtptheorapay.c
 
 libgstrtp_la-gstrtpvorbisdepay.lo: gstrtpvorbisdepay.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-gstrtpvorbisdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvorbisdepay.Tpo -c -o libgstrtp_la-gstrtpvorbisdepay.lo `test -f 'gstrtpvorbisdepay.c' || echo '$(srcdir)/'`gstrtpvorbisdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvorbisdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvorbisdepay.Tpo -c -o libgstrtp_la-gstrtpvorbisdepay.lo `test -f 'gstrtpvorbisdepay.c' || echo '$(srcdir)/'`gstrtpvorbisdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvorbisdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvorbisdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpvorbisdepay.c' object='libgstrtp_la-gstrtpvorbisdepay.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-gstrtpvorbisdepay.lo `test -f 'gstrtpvorbisdepay.c' || echo '$(srcdir)/'`gstrtpvorbisdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvorbisdepay.lo `test -f 'gstrtpvorbisdepay.c' || echo '$(srcdir)/'`gstrtpvorbisdepay.c
 
 libgstrtp_la-gstrtpvorbispay.lo: gstrtpvorbispay.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-gstrtpvorbispay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvorbispay.Tpo -c -o libgstrtp_la-gstrtpvorbispay.lo `test -f 'gstrtpvorbispay.c' || echo '$(srcdir)/'`gstrtpvorbispay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvorbispay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvorbispay.Tpo -c -o libgstrtp_la-gstrtpvorbispay.lo `test -f 'gstrtpvorbispay.c' || echo '$(srcdir)/'`gstrtpvorbispay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvorbispay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvorbispay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpvorbispay.c' object='libgstrtp_la-gstrtpvorbispay.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-gstrtpvorbispay.lo `test -f 'gstrtpvorbispay.c' || echo '$(srcdir)/'`gstrtpvorbispay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvp8pay.lo `test -f 'gstrtpvp8pay.c' || echo '$(srcdir)/'`gstrtpvp8pay.c
 
 libgstrtp_la-gstrtpvp9depay.lo: gstrtpvp9depay.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-gstrtpvp9depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvp9depay.Tpo -c -o libgstrtp_la-gstrtpvp9depay.lo `test -f 'gstrtpvp9depay.c' || echo '$(srcdir)/'`gstrtpvp9depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvp9depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvp9depay.Tpo -c -o libgstrtp_la-gstrtpvp9depay.lo `test -f 'gstrtpvp9depay.c' || echo '$(srcdir)/'`gstrtpvp9depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvp9depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvp9depay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpvp9depay.c' object='libgstrtp_la-gstrtpvp9depay.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-gstrtpvp9depay.lo `test -f 'gstrtpvp9depay.c' || echo '$(srcdir)/'`gstrtpvp9depay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvp9depay.lo `test -f 'gstrtpvp9depay.c' || echo '$(srcdir)/'`gstrtpvp9depay.c
 
 libgstrtp_la-gstrtpvp9pay.lo: gstrtpvp9pay.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-gstrtpvp9pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvp9pay.Tpo -c -o libgstrtp_la-gstrtpvp9pay.lo `test -f 'gstrtpvp9pay.c' || echo '$(srcdir)/'`gstrtpvp9pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvp9pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvp9pay.Tpo -c -o libgstrtp_la-gstrtpvp9pay.lo `test -f 'gstrtpvp9pay.c' || echo '$(srcdir)/'`gstrtpvp9pay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvp9pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvp9pay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpvp9pay.c' object='libgstrtp_la-gstrtpvp9pay.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-gstrtpvp9pay.lo `test -f 'gstrtpvp9pay.c' || echo '$(srcdir)/'`gstrtpvp9pay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvp9pay.lo `test -f 'gstrtpvp9pay.c' || echo '$(srcdir)/'`gstrtpvp9pay.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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpvrawdepay.c' object='libgstrtp_la-gstrtpvrawdepay.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-gstrtpvrawdepay.lo `test -f 'gstrtpvrawdepay.c' || echo '$(srcdir)/'`gstrtpvrawdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvrawdepay.lo `test -f 'gstrtpvrawdepay.c' || echo '$(srcdir)/'`gstrtpvrawdepay.c
 
 libgstrtp_la-gstrtpvrawpay.lo: gstrtpvrawpay.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-gstrtpvrawpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvrawpay.Tpo -c -o libgstrtp_la-gstrtpvrawpay.lo `test -f 'gstrtpvrawpay.c' || echo '$(srcdir)/'`gstrtpvrawpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvrawpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvrawpay.Tpo -c -o libgstrtp_la-gstrtpvrawpay.lo `test -f 'gstrtpvrawpay.c' || echo '$(srcdir)/'`gstrtpvrawpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvrawpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvrawpay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpvrawpay.c' object='libgstrtp_la-gstrtpvrawpay.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-gstrtpvrawpay.lo `test -f 'gstrtpvrawpay.c' || echo '$(srcdir)/'`gstrtpvrawpay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvrawpay.lo `test -f 'gstrtpvrawpay.c' || echo '$(srcdir)/'`gstrtpvrawpay.c
 
 libgstrtp_la-gstrtpstreampay.lo: gstrtpstreampay.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-gstrtpstreampay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpstreampay.Tpo -c -o libgstrtp_la-gstrtpstreampay.lo `test -f 'gstrtpstreampay.c' || echo '$(srcdir)/'`gstrtpstreampay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpstreampay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpstreampay.Tpo -c -o libgstrtp_la-gstrtpstreampay.lo `test -f 'gstrtpstreampay.c' || echo '$(srcdir)/'`gstrtpstreampay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpstreampay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpstreampay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpstreampay.c' object='libgstrtp_la-gstrtpstreampay.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-gstrtpstreampay.lo `test -f 'gstrtpstreampay.c' || echo '$(srcdir)/'`gstrtpstreampay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpstreampay.lo `test -f 'gstrtpstreampay.c' || echo '$(srcdir)/'`gstrtpstreampay.c
 
 libgstrtp_la-gstrtpstreamdepay.lo: gstrtpstreamdepay.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-gstrtpstreamdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpstreamdepay.Tpo -c -o libgstrtp_la-gstrtpstreamdepay.lo `test -f 'gstrtpstreamdepay.c' || echo '$(srcdir)/'`gstrtpstreamdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpstreamdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpstreamdepay.Tpo -c -o libgstrtp_la-gstrtpstreamdepay.lo `test -f 'gstrtpstreamdepay.c' || echo '$(srcdir)/'`gstrtpstreamdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpstreamdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpstreamdepay.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpstreamdepay.c' object='libgstrtp_la-gstrtpstreamdepay.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-gstrtpstreamdepay.lo `test -f 'gstrtpstreamdepay.c' || echo '$(srcdir)/'`gstrtpstreamdepay.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpstreamdepay.lo `test -f 'gstrtpstreamdepay.c' || echo '$(srcdir)/'`gstrtpstreamdepay.c
 
 libgstrtp_la-gstrtputils.lo: gstrtputils.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-gstrtputils.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtputils.Tpo -c -o libgstrtp_la-gstrtputils.lo `test -f 'gstrtputils.c' || echo '$(srcdir)/'`gstrtputils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtputils.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtputils.Tpo -c -o libgstrtp_la-gstrtputils.lo `test -f 'gstrtputils.c' || echo '$(srcdir)/'`gstrtputils.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtputils.Tpo $(DEPDIR)/libgstrtp_la-gstrtputils.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtputils.c' object='libgstrtp_la-gstrtputils.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-gstrtputils.lo `test -f 'gstrtputils.c' || echo '$(srcdir)/'`gstrtputils.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtputils.lo `test -f 'gstrtputils.c' || echo '$(srcdir)/'`gstrtputils.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/rtp/gstrtp.c b/gst/rtp/gstrtp.c
index 10fdbca1c..8b0ef582e 100644
--- a/gst/rtp/gstrtp.c
+++ b/gst/rtp/gstrtp.c
@@ -23,6 +23,8 @@
 
 #include <gst/tag/tag.h>
 
+#include "gstrtputils.h"
+
 #include "gstrtpac3depay.h"
 #include "gstrtpac3pay.h"
 #include "gstrtpbvdepay.h"
@@ -74,6 +76,8 @@
 #include "gstrtpjpegpay.h"
 #include "gstrtpklvdepay.h"
 #include "gstrtpklvpay.h"
+#include "gstrtpL8depay.h"
+#include "gstrtpL8pay.h"
 #include "gstrtpL16depay.h"
 #include "gstrtpL16pay.h"
 #include "gstrtpL24depay.h"
@@ -115,6 +119,11 @@ plugin_init (GstPlugin * plugin)
 {
   gst_tag_image_type_get_type ();
 
+  rtp_quark_meta_tag_video =
+      g_quark_from_static_string (GST_META_TAG_VIDEO_STR);
+  rtp_quark_meta_tag_audio =
+      g_quark_from_static_string (GST_META_TAG_AUDIO_STR);
+
   if (!gst_rtp_ac3_depay_plugin_init (plugin))
     return FALSE;
 
@@ -268,6 +277,12 @@ plugin_init (GstPlugin * plugin)
   if (!gst_rtp_klv_pay_plugin_init (plugin))
     return FALSE;
 
+  if (!gst_rtp_L8_pay_plugin_init (plugin))
+    return FALSE;
+
+  if (!gst_rtp_L8_depay_plugin_init (plugin))
+    return FALSE;
+
   if (!gst_rtp_L16_pay_plugin_init (plugin))
     return FALSE;
 
diff --git a/gst/rtp/gstrtpL16depay.c b/gst/rtp/gstrtpL16depay.c
index 6e81946d9..601f16edc 100644
--- a/gst/rtp/gstrtpL16depay.c
+++ b/gst/rtp/gstrtpL16depay.c
@@ -258,8 +258,7 @@ gst_rtp_L16_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
     goto reorder_failed;
   }
 
-  gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpL16depay), outbuf,
-      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  gst_rtp_drop_non_audio_meta (rtpL16depay, outbuf);
 
   return outbuf;
 
diff --git a/gst/rtp/gstrtpL24depay.c b/gst/rtp/gstrtpL24depay.c
index 9ec03499f..8b28ee831 100644
--- a/gst/rtp/gstrtpL24depay.c
+++ b/gst/rtp/gstrtpL24depay.c
@@ -230,8 +230,7 @@ gst_rtp_L24_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 
   outbuf = gst_buffer_make_writable (outbuf);
   if (outbuf) {
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpL24depay), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (rtpL24depay, outbuf);
   }
   if (rtpL24depay->order &&
       !gst_audio_buffer_reorder_channels (outbuf,
diff --git a/gst/rtp/gstrtpL8depay.c b/gst/rtp/gstrtpL8depay.c
new file mode 100644
index 000000000..5b9520a8d
--- /dev/null
+++ b/gst/rtp/gstrtpL8depay.c
@@ -0,0 +1,267 @@
+/* GStreamer
+ * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
+ * Copyright (C) <2015> GE Intelligent Platforms Embedded Systems, Inc.
+ *
+ * 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-rtpL8depay
+ * @see_also: rtpL8pay
+ *
+ * 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)L8, encoding-params=(string)1, channels=(int)1, payload=(int)96' ! rtpL8depay ! pulsesink
+ * ]| This example pipeline will depayload an RTP raw audio stream. Refer to
+ * the rtpL8pay example to create the RTP stream.
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+#include <stdlib.h>
+
+#include <gst/audio/audio.h>
+
+#include "gstrtpL8depay.h"
+#include "gstrtpchannels.h"
+
+GST_DEBUG_CATEGORY_STATIC (rtpL8depay_debug);
+#define GST_CAT_DEFAULT (rtpL8depay_debug)
+
+static GstStaticPadTemplate gst_rtp_L8_depay_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, "
+        "format = (string) U8, "
+        "layout = (string) interleaved, "
+        "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, MAX ]")
+    );
+
+static GstStaticPadTemplate gst_rtp_L8_depay_sink_template =
+    GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "media = (string) audio, clock-rate = (int) [ 1, MAX ], "
+        /* "channels = (int) [1, MAX]"  */
+        /* "emphasis = (string) ANY" */
+        /* "channel-order = (string) ANY" */
+        "encoding-name = (string) L8;")
+    );
+
+#define gst_rtp_L8_depay_parent_class parent_class
+G_DEFINE_TYPE (GstRtpL8Depay, gst_rtp_L8_depay, GST_TYPE_RTP_BASE_DEPAYLOAD);
+
+static gboolean gst_rtp_L8_depay_setcaps (GstRTPBaseDepayload * depayload,
+    GstCaps * caps);
+static GstBuffer *gst_rtp_L8_depay_process (GstRTPBaseDepayload * depayload,
+    GstBuffer * buf);
+
+static void
+gst_rtp_L8_depay_class_init (GstRtpL8DepayClass * klass)
+{
+  GstElementClass *gstelement_class;
+  GstRTPBaseDepayloadClass *gstrtpbasedepayload_class;
+
+  gstelement_class = (GstElementClass *) klass;
+  gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
+
+  gstrtpbasedepayload_class->set_caps = gst_rtp_L8_depay_setcaps;
+  gstrtpbasedepayload_class->process = gst_rtp_L8_depay_process;
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_rtp_L8_depay_src_template));
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_rtp_L8_depay_sink_template));
+
+  gst_element_class_set_static_metadata (gstelement_class,
+      "RTP audio depayloader", "Codec/Depayloader/Network/RTP",
+      "Extracts raw audio from RTP packets",
+      "Zeeshan Ali <zak147@yahoo.com>," "Wim Taymans <wim.taymans@gmail.com>, "
+      "GE Intelligent Platforms Embedded Systems, Inc.");
+
+  GST_DEBUG_CATEGORY_INIT (rtpL8depay_debug, "rtpL8depay", 0,
+      "Raw Audio RTP Depayloader");
+}
+
+static void
+gst_rtp_L8_depay_init (GstRtpL8Depay * rtpL8depay)
+{
+}
+
+static gint
+gst_rtp_L8_depay_parse_int (GstStructure * structure, const gchar * field,
+    gint def)
+{
+  const gchar *str;
+  gint res;
+
+  if ((str = gst_structure_get_string (structure, field)))
+    return atoi (str);
+
+  if (gst_structure_get_int (structure, field, &res))
+    return res;
+
+  return def;
+}
+
+static gboolean
+gst_rtp_L8_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
+{
+  GstStructure *structure;
+  GstRtpL8Depay *rtpL8depay;
+  gint clock_rate;
+  gint channels;
+  GstCaps *srccaps;
+  gboolean res;
+  const gchar *channel_order;
+  const GstRTPChannelOrder *order;
+  GstAudioInfo *info;
+
+  rtpL8depay = GST_RTP_L8_DEPAY (depayload);
+
+  structure = gst_caps_get_structure (caps, 0);
+
+  /* no fixed mapping, we need clock-rate */
+  channels = 0;
+  clock_rate = 0;
+
+  /* caps can overwrite defaults */
+  clock_rate = gst_rtp_L8_depay_parse_int (structure, "clock-rate", clock_rate);
+  if (clock_rate == 0)
+    goto no_clockrate;
+
+  channels =
+      gst_rtp_L8_depay_parse_int (structure, "encoding-params", channels);
+  if (channels == 0) {
+    channels = gst_rtp_L8_depay_parse_int (structure, "channels", channels);
+    if (channels == 0) {
+      /* channels defaults to 1 otherwise */
+      channels = 1;
+    }
+  }
+
+  depayload->clock_rate = clock_rate;
+
+  info = &rtpL8depay->info;
+  gst_audio_info_init (info);
+  info->finfo = gst_audio_format_get_info (GST_AUDIO_FORMAT_U8);
+  info->rate = clock_rate;
+  info->channels = channels;
+  info->bpf = (info->finfo->width / 8) * channels;
+
+  /* add channel positions */
+  channel_order = gst_structure_get_string (structure, "channel-order");
+
+  order = gst_rtp_channels_get_by_order (channels, channel_order);
+  rtpL8depay->order = order;
+  if (order) {
+    memcpy (info->position, order->pos,
+        sizeof (GstAudioChannelPosition) * channels);
+    gst_audio_channel_positions_to_valid_order (info->position, info->channels);
+  } else {
+    GST_ELEMENT_WARNING (rtpL8depay, STREAM, DECODE,
+        (NULL), ("Unknown channel order '%s' for %d channels",
+            GST_STR_NULL (channel_order), channels));
+    /* create default NONE layout */
+    gst_rtp_channels_create_default (channels, info->position);
+  }
+
+  srccaps = gst_audio_info_to_caps (info);
+  res = gst_pad_set_caps (depayload->srcpad, srccaps);
+  gst_caps_unref (srccaps);
+
+  return res;
+
+  /* ERRORS */
+no_clockrate:
+  {
+    GST_ERROR_OBJECT (depayload, "no clock-rate specified");
+    return FALSE;
+  }
+}
+
+static GstBuffer *
+gst_rtp_L8_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+{
+  GstRtpL8Depay *rtpL8depay;
+  GstBuffer *outbuf;
+  gint payload_len;
+  gboolean marker;
+  GstRTPBuffer rtp = { NULL };
+
+  rtpL8depay = GST_RTP_L8_DEPAY (depayload);
+
+  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+
+  if (payload_len <= 0)
+    goto empty_packet;
+
+  GST_DEBUG_OBJECT (rtpL8depay, "got payload of %d bytes", payload_len);
+
+  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
+  marker = gst_rtp_buffer_get_marker (&rtp);
+
+  if (marker) {
+    /* mark talk spurt with RESYNC */
+    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
+  }
+
+  outbuf = gst_buffer_make_writable (outbuf);
+  if (rtpL8depay->order &&
+      !gst_audio_buffer_reorder_channels (outbuf,
+          rtpL8depay->info.finfo->format, rtpL8depay->info.channels,
+          rtpL8depay->info.position, rtpL8depay->order->pos)) {
+    goto reorder_failed;
+  }
+
+  gst_rtp_buffer_unmap (&rtp);
+
+  return outbuf;
+
+  /* ERRORS */
+empty_packet:
+  {
+    GST_ELEMENT_WARNING (rtpL8depay, STREAM, DECODE,
+        ("Empty Payload."), (NULL));
+    gst_rtp_buffer_unmap (&rtp);
+    return NULL;
+  }
+reorder_failed:
+  {
+    GST_ELEMENT_ERROR (rtpL8depay, STREAM, DECODE,
+        ("Channel reordering failed."), (NULL));
+    gst_rtp_buffer_unmap (&rtp);
+    return NULL;
+  }
+}
+
+gboolean
+gst_rtp_L8_depay_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "rtpL8depay",
+      GST_RANK_SECONDARY, GST_TYPE_RTP_L8_DEPAY);
+}
diff --git a/gst/rtp/gstrtpL8depay.h b/gst/rtp/gstrtpL8depay.h
new file mode 100644
index 000000000..a2d9bec59
--- /dev/null
+++ b/gst/rtp/gstrtpL8depay.h
@@ -0,0 +1,65 @@
+/* GStreamer
+ * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
+ * Copyright (C) <2015> GE Intelligent Platforms Embedded Systems, Inc.
+ *
+ * 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_L8_DEPAY_H__
+#define __GST_RTP_L8_DEPAY_H__
+
+#include <gst/gst.h>
+#include <gst/rtp/gstrtpbasedepayload.h>
+#include <gst/audio/audio.h>
+
+#include "gstrtpchannels.h"
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_RTP_L8_DEPAY \
+  (gst_rtp_L8_depay_get_type())
+#define GST_RTP_L8_DEPAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_L8_DEPAY,GstRtpL8Depay))
+#define GST_RTP_L8_DEPAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_L8_DEPAY,GstRtpL8DepayClass))
+#define GST_IS_RTP_L8_DEPAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_L8_DEPAY))
+#define GST_IS_RTP_L8_DEPAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_L8_DEPAY))
+
+typedef struct _GstRtpL8Depay GstRtpL8Depay;
+typedef struct _GstRtpL8DepayClass GstRtpL8DepayClass;
+
+struct _GstRtpL8Depay
+{
+  GstRTPBaseDepayload depayload;
+
+  GstAudioInfo info;
+  const GstRTPChannelOrder *order;
+};
+
+struct _GstRtpL8DepayClass
+{
+  GstRTPBaseDepayloadClass parent_class;
+};
+
+GType gst_rtp_L8_depay_get_type (void);
+
+gboolean gst_rtp_L8_depay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+
+#endif /* __GST_RTP_L8_DEPAY_H__ */
diff --git a/gst/rtp/gstrtpL8pay.c b/gst/rtp/gstrtpL8pay.c
new file mode 100644
index 000000000..86e7b2222
--- /dev/null
+++ b/gst/rtp/gstrtpL8pay.c
@@ -0,0 +1,250 @@
+/* GStreamer
+ * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
+ * Copyright (C) <2015> GE Intelligent Platforms Embedded Systems, Inc.
+ *
+ * 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-rtpL8pay
+ * @see_also: rtpL8depay
+ *
+ * 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 ! rtpL8pay ! udpsink
+ * ]| This example pipeline will payload raw audio. Refer to
+ * the rtpL8depay example to depayload and play the RTP stream.
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include <string.h>
+
+#include <gst/audio/audio.h>
+#include <gst/rtp/gstrtpbuffer.h>
+
+#include "gstrtpL8pay.h"
+#include "gstrtpchannels.h"
+
+GST_DEBUG_CATEGORY_STATIC (rtpL8pay_debug);
+#define GST_CAT_DEFAULT (rtpL8pay_debug)
+
+static GstStaticPadTemplate gst_rtp_L8_pay_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, "
+        "format = (string) U8, "
+        "layout = (string) interleaved, "
+        "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, MAX ]")
+    );
+
+static GstStaticPadTemplate gst_rtp_L8_pay_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) [ 1, MAX ], "
+        "encoding-name = (string) L8, " "channels = (int) [ 1, MAX ];")
+    );
+
+static gboolean gst_rtp_L8_pay_setcaps (GstRTPBasePayload * basepayload,
+    GstCaps * caps);
+static GstCaps *gst_rtp_L8_pay_getcaps (GstRTPBasePayload * rtppayload,
+    GstPad * pad, GstCaps * filter);
+static GstFlowReturn
+gst_rtp_L8_pay_handle_buffer (GstRTPBasePayload * basepayload,
+    GstBuffer * buffer);
+
+#define gst_rtp_L8_pay_parent_class parent_class
+G_DEFINE_TYPE (GstRtpL8Pay, gst_rtp_L8_pay, GST_TYPE_RTP_BASE_AUDIO_PAYLOAD);
+
+static void
+gst_rtp_L8_pay_class_init (GstRtpL8PayClass * klass)
+{
+  GstElementClass *gstelement_class;
+  GstRTPBasePayloadClass *gstrtpbasepayload_class;
+
+  gstelement_class = (GstElementClass *) klass;
+  gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass;
+
+  gstrtpbasepayload_class->set_caps = gst_rtp_L8_pay_setcaps;
+  gstrtpbasepayload_class->get_caps = gst_rtp_L8_pay_getcaps;
+  gstrtpbasepayload_class->handle_buffer = gst_rtp_L8_pay_handle_buffer;
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_rtp_L8_pay_src_template));
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_rtp_L8_pay_sink_template));
+
+  gst_element_class_set_static_metadata (gstelement_class,
+      "RTP audio payloader", "Codec/Payloader/Network/RTP",
+      "Payload-encode Raw audio into RTP packets (RFC 3551)",
+      "Wim Taymans <wim.taymans@gmail.com>, "
+      "GE Intelligent Platforms Embedded Systems, Inc.");
+
+  GST_DEBUG_CATEGORY_INIT (rtpL8pay_debug, "rtpL8pay", 0, "L8 RTP Payloader");
+}
+
+static void
+gst_rtp_L8_pay_init (GstRtpL8Pay * rtpL8pay)
+{
+  GstRTPBaseAudioPayload *rtpbaseaudiopayload;
+
+  rtpbaseaudiopayload = GST_RTP_BASE_AUDIO_PAYLOAD (rtpL8pay);
+
+  /* tell rtpbaseaudiopayload that this is a sample based codec */
+  gst_rtp_base_audio_payload_set_sample_based (rtpbaseaudiopayload);
+}
+
+static gboolean
+gst_rtp_L8_pay_setcaps (GstRTPBasePayload * basepayload, GstCaps * caps)
+{
+  GstRtpL8Pay *rtpL8pay;
+  gboolean res;
+  gchar *params;
+  GstAudioInfo *info;
+  const GstRTPChannelOrder *order;
+  GstRTPBaseAudioPayload *rtpbaseaudiopayload;
+
+  rtpbaseaudiopayload = GST_RTP_BASE_AUDIO_PAYLOAD (basepayload);
+  rtpL8pay = GST_RTP_L8_PAY (basepayload);
+
+  info = &rtpL8pay->info;
+  gst_audio_info_init (info);
+  if (!gst_audio_info_from_caps (info, caps))
+    goto invalid_caps;
+
+  order = gst_rtp_channels_get_by_pos (info->channels, info->position);
+  rtpL8pay->order = order;
+
+  gst_rtp_base_payload_set_options (basepayload, "audio", TRUE, "L8",
+      info->rate);
+  params = g_strdup_printf ("%d", info->channels);
+
+  if (!order && info->channels > 2) {
+    GST_ELEMENT_WARNING (rtpL8pay, STREAM, DECODE,
+        (NULL), ("Unknown channel order for %d channels", info->channels));
+  }
+
+  if (order && order->name) {
+    res = gst_rtp_base_payload_set_outcaps (basepayload,
+        "encoding-params", G_TYPE_STRING, params, "channels", G_TYPE_INT,
+        info->channels, "channel-order", G_TYPE_STRING, order->name, NULL);
+  } else {
+    res = gst_rtp_base_payload_set_outcaps (basepayload,
+        "encoding-params", G_TYPE_STRING, params, "channels", G_TYPE_INT,
+        info->channels, NULL);
+  }
+
+  g_free (params);
+
+  /* octet-per-sample is # channels for L8 */
+  gst_rtp_base_audio_payload_set_sample_options (rtpbaseaudiopayload,
+      info->channels);
+
+  return res;
+
+  /* ERRORS */
+invalid_caps:
+  {
+    GST_DEBUG_OBJECT (rtpL8pay, "invalid caps");
+    return FALSE;
+  }
+}
+
+static GstCaps *
+gst_rtp_L8_pay_getcaps (GstRTPBasePayload * rtppayload, GstPad * pad,
+    GstCaps * filter)
+{
+  GstCaps *otherpadcaps;
+  GstCaps *caps;
+
+  caps = gst_pad_get_pad_template_caps (pad);
+
+  otherpadcaps = gst_pad_get_allowed_caps (rtppayload->srcpad);
+  if (otherpadcaps) {
+    if (!gst_caps_is_empty (otherpadcaps)) {
+      GstStructure *structure;
+      gint channels;
+      gint rate;
+
+      structure = gst_caps_get_structure (otherpadcaps, 0);
+      caps = gst_caps_make_writable (caps);
+
+      if (gst_structure_get_int (structure, "channels", &channels)) {
+        gst_caps_set_simple (caps, "channels", G_TYPE_INT, channels, NULL);
+      } else {
+        /* Support any number of channels, if not explicitly specified */
+        gst_structure_remove_field (structure, "channels");
+      }
+
+      if (gst_structure_get_int (structure, "clock-rate", &rate)) {
+        gst_caps_set_simple (caps, "rate", G_TYPE_INT, rate, NULL);
+      } else {
+        /* Support any rate, if not explicitly specified */
+        gst_structure_remove_field (structure, "rate");
+      }
+
+    }
+    gst_caps_unref (otherpadcaps);
+  }
+
+  if (filter) {
+    GstCaps *tcaps = caps;
+
+    caps = gst_caps_intersect_full (filter, tcaps, GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (tcaps);
+  }
+
+  return caps;
+}
+
+static GstFlowReturn
+gst_rtp_L8_pay_handle_buffer (GstRTPBasePayload * basepayload,
+    GstBuffer * buffer)
+{
+  GstRtpL8Pay *rtpL8pay;
+
+  rtpL8pay = GST_RTP_L8_PAY (basepayload);
+  buffer = gst_buffer_make_writable (buffer);
+
+  if (rtpL8pay->order &&
+      !gst_audio_buffer_reorder_channels (buffer, rtpL8pay->info.finfo->format,
+          rtpL8pay->info.channels, rtpL8pay->info.position,
+          rtpL8pay->order->pos)) {
+    return GST_FLOW_ERROR;
+  }
+
+  return GST_RTP_BASE_PAYLOAD_CLASS (parent_class)->handle_buffer (basepayload,
+      buffer);
+}
+
+gboolean
+gst_rtp_L8_pay_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "rtpL8pay",
+      GST_RANK_SECONDARY, GST_TYPE_RTP_L8_PAY);
+}
diff --git a/gst/rtp/gstrtpL8pay.h b/gst/rtp/gstrtpL8pay.h
new file mode 100644
index 000000000..183eb2fcf
--- /dev/null
+++ b/gst/rtp/gstrtpL8pay.h
@@ -0,0 +1,64 @@
+/* GStreamer
+ * Copyright (C) <2005> Wim Taymans <wim.taymans@gmail.com>
+ * Copyright (C) <2015> GE Intelligent Platforms Embedded Systems, Inc.
+ *
+ * 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_L8_PAY_H__
+#define __GST_RTP_L8_PAY_H__
+
+#include <gst/gst.h>
+#include <gst/rtp/gstrtpbaseaudiopayload.h>
+
+#include "gstrtpchannels.h"
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_RTP_L8_PAY \
+  (gst_rtp_L8_pay_get_type())
+#define GST_RTP_L8_PAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_L8_PAY,GstRtpL8Pay))
+#define GST_RTP_L8_PAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_L8_PAY,GstRtpL8PayClass))
+#define GST_IS_RTP_L8_PAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_L8_PAY))
+#define GST_IS_RTP_L8_PAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_L8_PAY))
+
+typedef struct _GstRtpL8Pay GstRtpL8Pay;
+typedef struct _GstRtpL8PayClass GstRtpL8PayClass;
+
+struct _GstRtpL8Pay
+{
+  GstRTPBaseAudioPayload payload;
+
+  GstAudioInfo info;
+  const GstRTPChannelOrder *order;
+};
+
+struct _GstRtpL8PayClass
+{
+  GstRTPBaseAudioPayloadClass parent_class;
+};
+
+GType gst_rtp_L8_pay_get_type (void);
+
+gboolean gst_rtp_L8_pay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+
+#endif /* __GST_RTP_L8_PAY_H__ */
diff --git a/gst/rtp/gstrtpac3depay.c b/gst/rtp/gstrtpac3depay.c
index 50342c8d7..ec2b3baa1 100644
--- a/gst/rtp/gstrtpac3depay.c
+++ b/gst/rtp/gstrtpac3depay.c
@@ -156,8 +156,7 @@ gst_rtp_ac3_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
   outbuf = gst_rtp_buffer_get_payload_subbuffer (rtp, 2, -1);
 
   if (outbuf) {
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpac3depay), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (rtpac3depay, outbuf);
     GST_DEBUG_OBJECT (rtpac3depay, "pushing buffer of size %" G_GSIZE_FORMAT,
         gst_buffer_get_size (outbuf));
   }
diff --git a/gst/rtp/gstrtpac3pay.c b/gst/rtp/gstrtpac3pay.c
index 021016def..57020dc4b 100644
--- a/gst/rtp/gstrtpac3pay.c
+++ b/gst/rtp/gstrtpac3pay.c
@@ -323,8 +323,8 @@ gst_rtp_ac3_pay_flush (GstRtpAC3Pay * rtpac3pay)
 
     payload_buffer =
         gst_adapter_take_buffer_fast (rtpac3pay->adapter, payload_len);
-    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpac3pay), outbuf, payload_buffer,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+
+    gst_rtp_copy_audio_meta (rtpac3pay, outbuf, payload_buffer);
 
     outbuf = gst_buffer_append (outbuf, payload_buffer);
 
diff --git a/gst/rtp/gstrtpamrdepay.c b/gst/rtp/gstrtpamrdepay.c
index 1c87a1a6e..7a7c79757 100644
--- a/gst/rtp/gstrtpamrdepay.c
+++ b/gst/rtp/gstrtpamrdepay.c
@@ -427,8 +427,7 @@ gst_rtp_amr_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
     GST_DEBUG_OBJECT (depayload, "pushing buffer of size %" G_GSIZE_FORMAT,
         gst_buffer_get_size (outbuf));
 
-    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpamrdepay), outbuf, rtp->buffer,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_copy_audio_meta (rtpamrdepay, outbuf, rtp->buffer);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpamrpay.c b/gst/rtp/gstrtpamrpay.c
index 300be8f80..5e70f0a44 100644
--- a/gst/rtp/gstrtpamrpay.c
+++ b/gst/rtp/gstrtpamrpay.c
@@ -392,8 +392,7 @@ gst_rtp_amr_pay_handle_buffer (GstRTPBasePayload * basepayload,
   gst_buffer_unmap (buffer, &map);
   gst_rtp_buffer_unmap (&rtp);
 
-  gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpamrpay), outbuf, buffer,
-      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  gst_rtp_copy_audio_meta (rtpamrpay, outbuf, buffer);
 
   gst_buffer_unref (buffer);
 
diff --git a/gst/rtp/gstrtpbvdepay.c b/gst/rtp/gstrtpbvdepay.c
index 0482382b4..a0faf8320 100644
--- a/gst/rtp/gstrtpbvdepay.c
+++ b/gst/rtp/gstrtpbvdepay.c
@@ -176,8 +176,7 @@ gst_rtp_bv_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
   }
 
   if (outbuf) {
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (depayload, outbuf);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpceltdepay.c b/gst/rtp/gstrtpceltdepay.c
index 3234c141f..97c17f013 100644
--- a/gst/rtp/gstrtpceltdepay.c
+++ b/gst/rtp/gstrtpceltdepay.c
@@ -260,8 +260,7 @@ gst_rtp_celt_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
         GST_TIME_ARGS (GST_BUFFER_PTS (outbuf)),
         GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf)));
 
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (depayload, outbuf);
 
     gst_rtp_base_depayload_push (depayload, outbuf);
   }
diff --git a/gst/rtp/gstrtpceltpay.c b/gst/rtp/gstrtpceltpay.c
index 1d5287ddf..c4988977e 100644
--- a/gst/rtp/gstrtpceltpay.c
+++ b/gst/rtp/gstrtpceltpay.c
@@ -362,8 +362,7 @@ gst_rtp_celt_pay_flush_queued (GstRtpCELTPay * rtpceltpay)
     gst_buffer_extract (buf, 0, payload, size);
     payload += size;
 
-    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpceltpay), outbuf, buf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_copy_audio_meta (rtpceltpay, outbuf, buf);
 
     gst_buffer_unref (buf);
   }
diff --git a/gst/rtp/gstrtpg722depay.c b/gst/rtp/gstrtpg722depay.c
index 846251e06..5a25eef52 100644
--- a/gst/rtp/gstrtpg722depay.c
+++ b/gst/rtp/gstrtpg722depay.c
@@ -240,8 +240,7 @@ gst_rtp_g722_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
   }
 
   if (outbuf) {
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpg722depay), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (rtpg722depay, outbuf);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpg722pay.c b/gst/rtp/gstrtpg722pay.c
index c2fe88d04..00b7f59a6 100644
--- a/gst/rtp/gstrtpg722pay.c
+++ b/gst/rtp/gstrtpg722pay.c
@@ -47,11 +47,13 @@ static GstStaticPadTemplate gst_rtp_g722_pay_src_template =
         "media = (string) \"audio\", "
         "encoding-name = (string) \"G722\", "
         "payload = (int) " GST_RTP_PAYLOAD_G722_STRING ", "
+        "encoding-params = (string) 1, "
         "clock-rate = (int) 8000; "
         "application/x-rtp, "
         "media = (string) \"audio\", "
         "encoding-name = (string) \"G722\", "
         "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
+        "encoding-params = (string) 1, "
         "clock-rate = (int) 8000")
     );
 
diff --git a/gst/rtp/gstrtpg723pay.c b/gst/rtp/gstrtpg723pay.c
index 2612218a3..cb6dff52a 100644
--- a/gst/rtp/gstrtpg723pay.c
+++ b/gst/rtp/gstrtpg723pay.c
@@ -164,8 +164,7 @@ gst_rtp_g723_pay_flush (GstRTPG723Pay * pay)
     pay->discont = FALSE;
   }
   gst_rtp_buffer_unmap (&rtp);
-  gst_rtp_copy_meta (GST_ELEMENT_CAST (pay), outbuf, payload_buf,
-      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  gst_rtp_copy_audio_meta (pay, outbuf, payload_buf);
 
   outbuf = gst_buffer_append (outbuf, payload_buf);
 
diff --git a/gst/rtp/gstrtpg726depay.c b/gst/rtp/gstrtpg726depay.c
index 41b87bbb0..7af1928aa 100644
--- a/gst/rtp/gstrtpg726depay.c
+++ b/gst/rtp/gstrtpg726depay.c
@@ -228,8 +228,7 @@ gst_rtp_g726_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
     outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
     if (!outbuf)
       goto bad_len;
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (depay), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (depay, outbuf);
   } else {
     guint8 *in, *out, tmp;
     guint len;
@@ -243,8 +242,7 @@ gst_rtp_g726_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
       goto bad_len;
     outbuf = gst_buffer_make_writable (outbuf);
 
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (depay), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (depay, outbuf);
 
     gst_buffer_map (outbuf, &map, GST_MAP_WRITE);
     out = map.data;
diff --git a/gst/rtp/gstrtpg729depay.c b/gst/rtp/gstrtpg729depay.c
index 065da2860..69c1c4dfc 100644
--- a/gst/rtp/gstrtpg729depay.c
+++ b/gst/rtp/gstrtpg729depay.c
@@ -202,8 +202,7 @@ gst_rtp_g729_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
     GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
-  gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
-      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  gst_rtp_drop_non_audio_meta (depayload, outbuf);
 
   GST_LOG_OBJECT (depayload, "pushing buffer of size %" G_GSIZE_FORMAT,
       gst_buffer_get_size (outbuf));
diff --git a/gst/rtp/gstrtpg729pay.c b/gst/rtp/gstrtpg729pay.c
index f327c8c7e..378fa64e0 100644
--- a/gst/rtp/gstrtpg729pay.c
+++ b/gst/rtp/gstrtpg729pay.c
@@ -190,8 +190,7 @@ gst_rtp_g729_pay_push (GstRTPG729Pay * rtpg729pay, GstBuffer * buf)
   gst_rtp_buffer_unmap (&rtp);
 
   /* append payload */
-  gst_rtp_copy_meta (GST_ELEMENT_CAST (basepayload), outbuf, buf,
-      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  gst_rtp_copy_audio_meta (basepayload, outbuf, buf);
   outbuf = gst_buffer_append (outbuf, buf);
 
   ret = gst_rtp_base_payload_push (basepayload, outbuf);
diff --git a/gst/rtp/gstrtpgsmdepay.c b/gst/rtp/gstrtpgsmdepay.c
index ddde3f0e6..c87c61852 100644
--- a/gst/rtp/gstrtpgsmdepay.c
+++ b/gst/rtp/gstrtpgsmdepay.c
@@ -138,8 +138,7 @@ gst_rtp_gsm_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
   }
 
   if (outbuf) {
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (depayload, outbuf);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpgsmpay.c b/gst/rtp/gstrtpgsmpay.c
index 05f19df79..aa239a8b0 100644
--- a/gst/rtp/gstrtpgsmpay.c
+++ b/gst/rtp/gstrtpgsmpay.c
@@ -151,8 +151,7 @@ gst_rtp_gsm_pay_handle_buffer (GstRTPBasePayload * basepayload,
   GST_BUFFER_PTS (outbuf) = timestamp;
   GST_BUFFER_DURATION (outbuf) = duration;
 
-  gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpgsmpay), outbuf, buffer,
-      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  gst_rtp_copy_audio_meta (rtpgsmpay, outbuf, buffer);
 
   /* append payload */
   outbuf = gst_buffer_append (outbuf, buffer);
diff --git a/gst/rtp/gstrtph261depay.c b/gst/rtp/gstrtph261depay.c
index e9040c915..5d372293c 100644
--- a/gst/rtp/gstrtph261depay.c
+++ b/gst/rtp/gstrtph261depay.c
@@ -170,8 +170,7 @@ skip:
 
       avail = gst_adapter_available (depay->adapter);
       outbuf = gst_adapter_take_buffer (depay->adapter, avail);
-      gst_rtp_drop_meta (GST_ELEMENT_CAST (depay), outbuf,
-          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+      gst_rtp_drop_non_video_meta (depay, outbuf);
 
       /* Note that the I flag does not mean intra frame, but that the entire
        * stream is intra coded. */
diff --git a/gst/rtp/gstrtph261pay.c b/gst/rtp/gstrtph261pay.c
index 4b040be10..b592d1158 100644
--- a/gst/rtp/gstrtph261pay.c
+++ b/gst/rtp/gstrtph261pay.c
@@ -850,8 +850,7 @@ gst_rtp_h261_pay_fragment_push (GstRtpH261Pay * pay, GstBuffer * buffer,
 
   gst_rtp_buffer_unmap (&rtp);
 
-  gst_rtp_copy_meta (GST_ELEMENT_CAST (pay), outbuf, buffer,
-      g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+  gst_rtp_copy_video_meta (pay, outbuf, buffer);
 
   return gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD_CAST (pay), outbuf);
 }
diff --git a/gst/rtp/gstrtph263depay.c b/gst/rtp/gstrtph263depay.c
index 7bc0021e4..296f91787 100644
--- a/gst/rtp/gstrtph263depay.c
+++ b/gst/rtp/gstrtph263depay.c
@@ -387,8 +387,7 @@ skip:
 
       GST_DEBUG ("Pushing out a buffer of %d bytes", avail);
 
-      gst_rtp_drop_meta (GST_ELEMENT_CAST (rtph263depay), outbuf,
-          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+      gst_rtp_drop_non_video_meta (rtph263depay, outbuf);
 
       gst_rtp_base_depayload_push (depayload, outbuf);
       rtph263depay->offset = 0;
diff --git a/gst/rtp/gstrtph263pay.c b/gst/rtp/gstrtph263pay.c
index 3bea9b0ec..4163bcde8 100644
--- a/gst/rtp/gstrtph263pay.c
+++ b/gst/rtp/gstrtph263pay.c
@@ -1320,9 +1320,8 @@ gst_rtp_h263_pay_push (GstRtpH263Pay * rtph263pay,
   gst_buffer_copy_into (package->outbuf, rtph263pay->current_buffer,
       GST_BUFFER_COPY_MEMORY, package->payload_start - rtph263pay->map.data,
       package->payload_len);
-  gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph263pay), package->outbuf,
-      rtph263pay->current_buffer,
-      g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+  gst_rtp_copy_video_meta (rtph263pay, package->outbuf,
+      rtph263pay->current_buffer);
 
   ret =
       gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (rtph263pay),
diff --git a/gst/rtp/gstrtph263pdepay.c b/gst/rtp/gstrtph263pdepay.c
index 82906148b..a1fc40c4a 100644
--- a/gst/rtp/gstrtph263pdepay.c
+++ b/gst/rtp/gstrtph263pdepay.c
@@ -331,8 +331,7 @@ gst_rtp_h263p_depay_process (GstRTPBaseDepayload * depayload,
       outbuf = gst_buffer_append (outbuf, padbuf);
     }
 
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtph263pdepay), outbuf,
-        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_drop_non_video_meta (rtph263pdepay, outbuf);
 
     return outbuf;
   } else {
diff --git a/gst/rtp/gstrtph263ppay.c b/gst/rtp/gstrtph263ppay.c
index b9bc45a6d..a73f00e37 100644
--- a/gst/rtp/gstrtph263ppay.c
+++ b/gst/rtp/gstrtph263ppay.c
@@ -753,8 +753,7 @@ gst_rtp_h263p_pay_flush (GstRtpH263PPay * rtph263ppay)
     gst_rtp_buffer_unmap (&rtp);
 
     payload_buf = gst_adapter_take_buffer_fast (rtph263ppay->adapter, towrite);
-    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph263ppay), outbuf, payload_buf,
-        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_copy_video_meta (rtph263ppay, outbuf, payload_buf);
     outbuf = gst_buffer_append (outbuf, payload_buf);
     avail -= towrite;
 
diff --git a/gst/rtp/gstrtph264depay.c b/gst/rtp/gstrtph264depay.c
index 83356cb3d..6ce38205c 100644
--- a/gst/rtp/gstrtph264depay.c
+++ b/gst/rtp/gstrtph264depay.c
@@ -137,7 +137,7 @@ gst_rtp_h264_depay_init (GstRtpH264Depay * rtph264depay)
 }
 
 static void
-gst_rtp_h264_depay_reset (GstRtpH264Depay * rtph264depay)
+gst_rtp_h264_depay_reset (GstRtpH264Depay * rtph264depay, gboolean hard)
 {
   gst_adapter_clear (rtph264depay->adapter);
   rtph264depay->wait_start = TRUE;
@@ -149,6 +149,14 @@ gst_rtp_h264_depay_reset (GstRtpH264Depay * rtph264depay)
   rtph264depay->new_codec_data = FALSE;
   g_ptr_array_set_size (rtph264depay->sps, 0);
   g_ptr_array_set_size (rtph264depay->pps, 0);
+
+  if (hard) {
+    if (rtph264depay->allocator != NULL) {
+      gst_object_unref (rtph264depay->allocator);
+      rtph264depay->allocator = NULL;
+    }
+    gst_allocation_params_init (&rtph264depay->params);
+  }
 }
 
 static void
@@ -261,13 +269,52 @@ parse_pps (GstMapInfo * map, guint32 * sps_id, guint32 * pps_id)
   return TRUE;
 }
 
+static gboolean
+gst_rtp_h264_depay_set_output_caps (GstRtpH264Depay * rtph264depay,
+    GstCaps * caps)
+{
+  GstAllocationParams params;
+  GstAllocator *allocator = NULL;
+  GstPad *srcpad;
+  gboolean res;
+
+  gst_allocation_params_init (&params);
+
+  srcpad = GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph264depay);
+
+  res = gst_pad_set_caps (srcpad, caps);
+
+  if (res) {
+    GstQuery *query;
+
+    query = gst_query_new_allocation (caps, TRUE);
+    if (!gst_pad_peer_query (srcpad, query)) {
+      GST_DEBUG_OBJECT (rtph264depay, "downstream ALLOCATION query failed");
+    }
+
+    if (gst_query_get_n_allocation_params (query) > 0) {
+      gst_query_parse_nth_allocation_param (query, 0, &allocator, &params);
+    }
+
+    gst_query_unref (query);
+  }
+
+  if (rtph264depay->allocator)
+    gst_object_unref (rtph264depay->allocator);
+
+  rtph264depay->allocator = allocator;
+  rtph264depay->params = params;
+
+  return res;
+}
 
 static gboolean
 gst_rtp_h264_set_src_caps (GstRtpH264Depay * rtph264depay)
 {
-  gboolean res;
+  gboolean res = TRUE;
   GstCaps *srccaps;
   GstCaps *old_caps;
+  GstPad *srcpad;
 
   if (!rtph264depay->byte_stream &&
       (!rtph264depay->new_codec_data ||
@@ -396,46 +443,12 @@ gst_rtp_h264_set_src_caps (GstRtpH264Depay * rtph264depay)
     }
   }
 
+  srcpad = GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph264depay);
 
-  old_caps =
-      gst_pad_get_current_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph264depay));
-
-  if (old_caps != NULL) {
-    /* Only update the caps if they are not equal. For
-     * AVC we don't update caps if only the codec_data
-     * changes. This is the same behaviour as in h264parse
-     */
-    if (rtph264depay->byte_stream) {
-      if (!gst_caps_is_equal (srccaps, old_caps))
-        res =
-            gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph264depay),
-            srccaps);
-      else
-        res = TRUE;
-    } else {
-      GstCaps *tmp_caps = gst_caps_copy (srccaps);
-      GstStructure *old_s, *tmp_s;
-
-      old_s = gst_caps_get_structure (old_caps, 0);
-      tmp_s = gst_caps_get_structure (tmp_caps, 0);
-      if (gst_structure_has_field (old_s, "codec_data"))
-        gst_structure_set_value (tmp_s, "codec_data",
-            gst_structure_get_value (old_s, "codec_data"));
-
-      if (!gst_caps_is_equal (old_caps, tmp_caps))
-        res =
-            gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph264depay),
-            srccaps);
-      else
-        res = TRUE;
+  old_caps = gst_pad_get_current_caps (srcpad);
 
-      gst_caps_unref (tmp_caps);
-    }
-    gst_caps_unref (old_caps);
-  } else {
-    res =
-        gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph264depay),
-        srccaps);
+  if (old_caps == NULL || !gst_caps_is_equal (srccaps, old_caps)) {
+    res = gst_rtp_h264_depay_set_output_caps (rtph264depay, srccaps);
   }
 
   gst_caps_unref (srccaps);
@@ -733,17 +746,71 @@ incomplete_caps:
   }
 }
 
+static GstBuffer *
+gst_rtp_h264_depay_allocate_output_buffer (GstRtpH264Depay * depay, gsize size)
+{
+  GstBuffer *buffer = NULL;
+
+  g_return_val_if_fail (size > 0, NULL);
+
+  GST_LOG_OBJECT (depay, "want output buffer of %u bytes", (guint) size);
+
+  buffer = gst_buffer_new_allocate (depay->allocator, size, &depay->params);
+  if (buffer == NULL) {
+    GST_INFO_OBJECT (depay, "couldn't allocate output buffer");
+    buffer = gst_buffer_new_allocate (NULL, size, NULL);
+  }
+
+  return buffer;
+}
+
 static GstBuffer *
 gst_rtp_h264_complete_au (GstRtpH264Depay * rtph264depay,
     GstClockTime * out_timestamp, gboolean * out_keyframe)
 {
-  guint outsize;
+  GstBufferList *list;
+  GstMapInfo outmap;
   GstBuffer *outbuf;
+  guint outsize, offset = 0;
+  gint b, n_bufs, m, n_mem;
 
   /* we had a picture in the adapter and we completed it */
   GST_DEBUG_OBJECT (rtph264depay, "taking completed AU");
   outsize = gst_adapter_available (rtph264depay->picture_adapter);
-  outbuf = gst_adapter_take_buffer (rtph264depay->picture_adapter, outsize);
+
+  outbuf = gst_rtp_h264_depay_allocate_output_buffer (rtph264depay, outsize);
+
+  if (outbuf == NULL)
+    return NULL;
+
+  if (!gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE))
+    return NULL;
+
+  list = gst_adapter_take_buffer_list (rtph264depay->picture_adapter, outsize);
+
+  n_bufs = gst_buffer_list_length (list);
+  for (b = 0; b < n_bufs; ++b) {
+    GstBuffer *buf = gst_buffer_list_get (list, b);
+
+    n_mem = gst_buffer_n_memory (buf);
+    for (m = 0; m < n_mem; ++m) {
+      GstMemory *mem = gst_buffer_peek_memory (buf, m);
+      gsize mem_size = gst_memory_get_sizes (mem, NULL, NULL);
+      GstMapInfo mem_map;
+
+      if (gst_memory_map (mem, &mem_map, GST_MAP_READ)) {
+        memcpy (outmap.data + offset, mem_map.data, mem_size);
+        gst_memory_unmap (mem, &mem_map);
+      } else {
+        memset (outmap.data + offset, 0, mem_size);
+      }
+      offset += mem_size;
+    }
+
+    gst_rtp_copy_video_meta (rtph264depay, outbuf, buf);
+  }
+  gst_buffer_list_unref (list);
+  gst_buffer_unmap (outbuf, &outmap);
 
   *out_timestamp = rtph264depay->last_ts;
   *out_keyframe = rtph264depay->last_keyframe;
@@ -758,7 +825,7 @@ gst_rtp_h264_complete_au (GstRtpH264Depay * rtph264depay,
  * so downstream waiting for keyframe can pick up at SPS/PPS/IDR */
 #define NAL_TYPE_IS_KEY(nt) (((nt) == 5) || ((nt) == 7) || ((nt) == 8))
 
-static GstBuffer *
+static void
 gst_rtp_h264_depay_handle_nal (GstRtpH264Depay * rtph264depay, GstBuffer * nal,
     GstClockTime in_timestamp, gboolean marker)
 {
@@ -788,7 +855,7 @@ gst_rtp_h264_depay_handle_nal (GstRtpH264Depay * rtph264depay, GstBuffer * nal,
               4, gst_buffer_get_size (nal) - 4));
       gst_buffer_unmap (nal, &map);
       gst_buffer_unref (nal);
-      return NULL;
+      return;
     } else if (rtph264depay->sps->len == 0 || rtph264depay->pps->len == 0) {
       /* Down push down any buffer in non-bytestream mode if the SPS/PPS haven't
        * go through yet
@@ -799,7 +866,7 @@ gst_rtp_h264_depay_handle_nal (GstRtpH264Depay * rtph264depay, GstBuffer * nal,
                   "all-headers", G_TYPE_BOOLEAN, TRUE, NULL)));
       gst_buffer_unmap (nal, &map);
       gst_buffer_unref (nal);
-      return NULL;
+      return;
     }
 
     if (rtph264depay->new_codec_data &&
@@ -863,17 +930,14 @@ gst_rtp_h264_depay_handle_nal (GstRtpH264Depay * rtph264depay, GstBuffer * nal,
     /* prepend codec_data */
     if (rtph264depay->codec_data) {
       GST_DEBUG_OBJECT (depayload, "prepending codec_data");
-      gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay),
-          rtph264depay->codec_data, outbuf,
-          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+      gst_rtp_copy_video_meta (rtph264depay, rtph264depay->codec_data, outbuf);
       outbuf = gst_buffer_append (rtph264depay->codec_data, outbuf);
       rtph264depay->codec_data = NULL;
       out_keyframe = TRUE;
     }
     outbuf = gst_buffer_make_writable (outbuf);
 
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtph264depay), outbuf,
-        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_drop_non_video_meta (rtph264depay, outbuf);
 
     GST_BUFFER_PTS (outbuf) = out_timestamp;
 
@@ -881,9 +945,11 @@ gst_rtp_h264_depay_handle_nal (GstRtpH264Depay * rtph264depay, GstBuffer * nal,
       GST_BUFFER_FLAG_UNSET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
     else
       GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
+
+    gst_rtp_base_depayload_push (depayload, outbuf);
   }
 
-  return outbuf;
+  return;
 
   /* ERRORS */
 short_nal:
@@ -891,13 +957,12 @@ short_nal:
     GST_WARNING_OBJECT (depayload, "dropping short NAL");
     gst_buffer_unmap (nal, &map);
     gst_buffer_unref (nal);
-    return NULL;
+    return;
   }
 }
 
-static GstBuffer *
-gst_rtp_h264_push_fragmentation_unit (GstRtpH264Depay * rtph264depay,
-    gboolean send)
+static void
+gst_rtp_h264_finish_fragmentation_unit (GstRtpH264Depay * rtph264depay)
 {
   guint outsize;
   GstMapInfo map;
@@ -922,14 +987,8 @@ gst_rtp_h264_push_fragmentation_unit (GstRtpH264Depay * rtph264depay,
 
   rtph264depay->current_fu_type = 0;
 
-  outbuf = gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf,
+  gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf,
       rtph264depay->fu_timestamp, rtph264depay->fu_marker);
-
-  if (send && outbuf) {
-    gst_rtp_base_depayload_push (GST_RTP_BASE_DEPAYLOAD (rtph264depay), outbuf);
-    outbuf = NULL;
-  }
-  return outbuf;
 }
 
 static GstBuffer *
@@ -991,7 +1050,7 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
      * when the FU ended) and send out what we gathered thusfar */
     if (G_UNLIKELY (rtph264depay->current_fu_type != 0 &&
             nal_unit_type != rtph264depay->current_fu_type))
-      gst_rtp_h264_push_fragmentation_unit (rtph264depay, TRUE);
+      gst_rtp_h264_finish_fragmentation_unit (rtph264depay);
 
     switch (nal_unit_type) {
       case 0:
@@ -1046,22 +1105,14 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
           memcpy (map.data + sizeof (sync_bytes), payload, nalu_size);
           gst_buffer_unmap (outbuf, &map);
 
-          gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), outbuf,
-              rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+          gst_rtp_copy_video_meta (rtph264depay, outbuf, rtp->buffer);
 
-          outbuf =
-              gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp,
+          gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp,
               marker);
-          if (outbuf)
-            gst_adapter_push (rtph264depay->adapter, outbuf);
 
           payload += nalu_size;
           payload_len -= nalu_size;
         }
-
-        outsize = gst_adapter_available (rtph264depay->adapter);
-        if (outsize > 0)
-          outbuf = gst_adapter_take_buffer (rtph264depay->adapter, outsize);
         break;
       }
       case 26:
@@ -1104,7 +1155,7 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
            * Assume that the remote payloader is buggy (doesn't set the end
            * bit) and send out what we've gathered thusfar */
           if (G_UNLIKELY (rtph264depay->current_fu_type != 0))
-            gst_rtp_h264_push_fragmentation_unit (rtph264depay, TRUE);
+            gst_rtp_h264_finish_fragmentation_unit (rtph264depay);
 
           rtph264depay->current_fu_type = nal_unit_type;
           rtph264depay->fu_timestamp = timestamp;
@@ -1128,8 +1179,7 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
           map.data[sizeof (sync_bytes)] = nal_header;
           gst_buffer_unmap (outbuf, &map);
 
-          gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), outbuf,
-              rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+          gst_rtp_copy_video_meta (rtph264depay, outbuf, rtp->buffer);
 
           GST_DEBUG_OBJECT (rtph264depay, "queueing %d bytes", outsize);
 
@@ -1144,8 +1194,7 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
           outbuf = gst_buffer_new_and_alloc (outsize);
           gst_buffer_fill (outbuf, 0, payload, outsize);
 
-          gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), outbuf,
-              rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+          gst_rtp_copy_video_meta (rtph264depay, outbuf, rtp->buffer);
 
           GST_DEBUG_OBJECT (rtph264depay, "queueing %d bytes", outsize);
 
@@ -1158,7 +1207,7 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 
         /* if NAL unit ends, flush the adapter */
         if (E)
-          outbuf = gst_rtp_h264_push_fragmentation_unit (rtph264depay, FALSE);
+          gst_rtp_h264_finish_fragmentation_unit (rtph264depay);
         break;
       }
       default:
@@ -1182,17 +1231,15 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
         memcpy (map.data + sizeof (sync_bytes), payload, nalu_size);
         gst_buffer_unmap (outbuf, &map);
 
-        gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), outbuf,
-            rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+        gst_rtp_copy_video_meta (rtph264depay, outbuf, rtp->buffer);
 
-        outbuf = gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp,
-            marker);
+        gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp, marker);
         break;
       }
     }
   }
 
-  return outbuf;
+  return NULL;
 
   /* ERRORS */
 empty_packet:
@@ -1228,7 +1275,7 @@ gst_rtp_h264_depay_handle_event (GstRTPBaseDepayload * depay, GstEvent * event)
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_FLUSH_STOP:
-      gst_rtp_h264_depay_reset (rtph264depay);
+      gst_rtp_h264_depay_reset (rtph264depay, FALSE);
       break;
     default:
       break;
@@ -1251,7 +1298,7 @@ gst_rtp_h264_depay_change_state (GstElement * element,
     case GST_STATE_CHANGE_NULL_TO_READY:
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
-      gst_rtp_h264_depay_reset (rtph264depay);
+      gst_rtp_h264_depay_reset (rtph264depay, TRUE);
       break;
     default:
       break;
@@ -1260,6 +1307,9 @@ gst_rtp_h264_depay_change_state (GstElement * element,
   ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
 
   switch (transition) {
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      gst_rtp_h264_depay_reset (rtph264depay, TRUE);
+      break;
     case GST_STATE_CHANGE_READY_TO_NULL:
       break;
     default:
diff --git a/gst/rtp/gstrtph264depay.h b/gst/rtp/gstrtph264depay.h
index 4895236b8..ba413125a 100644
--- a/gst/rtp/gstrtph264depay.h
+++ b/gst/rtp/gstrtph264depay.h
@@ -66,6 +66,10 @@ struct _GstRtpH264Depay
   GPtrArray *sps;
   GPtrArray *pps;
   gboolean new_codec_data;
+
+  /* downstream allocator */
+  GstAllocator *allocator;
+  GstAllocationParams params;
 };
 
 struct _GstRtpH264DepayClass
diff --git a/gst/rtp/gstrtph264pay.c b/gst/rtp/gstrtph264pay.c
index 808eb1d62..73f080a7b 100644
--- a/gst/rtp/gstrtph264pay.c
+++ b/gst/rtp/gstrtph264pay.c
@@ -701,6 +701,10 @@ gst_rtp_h264_pay_decode_nal (GstRtpH264Pay * payloader,
   if (SPS_TYPE_ID == type || PPS_TYPE_ID == type) {
     GstBuffer *nal;
 
+    /* trailing 0x0 are not part of the SPS/PPS */
+    while (size > 0 && data[size - 1] == 0x0)
+      size--;
+
     /* encode the entire SPS NAL in base64 */
     GST_DEBUG ("Found %s %x %x %x Len=%u", type == SPS_TYPE_ID ? "SPS" : "PPS",
         (header >> 7), (header >> 5) & 3, type, size);
@@ -891,8 +895,7 @@ gst_rtp_h264_pay_payload_nal (GstRTPBasePayload * basepayload,
     gst_rtp_buffer_unmap (&rtp);
 
     /* insert payload memory block */
-    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264pay), outbuf, paybuf,
-        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_copy_video_meta (rtph264pay, outbuf, paybuf);
     outbuf = gst_buffer_append (outbuf, paybuf);
 
     /* push the buffer to the next element */
@@ -952,8 +955,7 @@ gst_rtp_h264_pay_payload_nal (GstRTPBasePayload * basepayload,
       gst_rtp_buffer_unmap (&rtp);
 
       /* insert payload memory block */
-      gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264pay), outbuf, paybuf,
-          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+      gst_rtp_copy_video_meta (rtph264pay, outbuf, paybuf);
       gst_buffer_copy_into (outbuf, paybuf, GST_BUFFER_COPY_MEMORY, pos,
           limitedSize);
 
diff --git a/gst/rtp/gstrtph265depay.c b/gst/rtp/gstrtph265depay.c
index 783ed1d45..9b53dfd66 100644
--- a/gst/rtp/gstrtph265depay.c
+++ b/gst/rtp/gstrtph265depay.c
@@ -36,7 +36,7 @@ GST_DEBUG_CATEGORY_STATIC (rtph265depay_debug);
 
 /* This is what we'll default to when downstream hasn't
  * expressed a restriction or preference via caps */
-#define DEFAULT_BYTE_STREAM   TRUE
+#define DEFAULT_STREAM_FORMAT GST_H265_STREAM_FORMAT_BYTESTREAM
 #define DEFAULT_ACCESS_UNIT   FALSE
 
 /* 3 zero bytes syncword */
@@ -46,11 +46,10 @@ static GstStaticPadTemplate gst_rtp_h265_depay_src_template =
     GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (
-        /* FIXME - hvc1 and hev1 formats are not supported yet */
-        /*"video/x-h265, "
-           "stream-format = (string) hvc1, alignment = (string) au; "
-           "video/x-h265, "
+    GST_STATIC_CAPS
+    ("video/x-h265, stream-format=(string)hvc1, alignment=(string)au; "
+        /* FIXME: hev1 format is not supported yet */
+        /* "video/x-h265, "
            "stream-format = (string) hev1, alignment = (string) au; " */
         "video/x-h265, "
         "stream-format = (string) byte-stream, alignment = (string) { nal, au }")
@@ -145,7 +144,9 @@ gst_rtp_h265_depay_init (GstRtpH265Depay * rtph265depay)
 {
   rtph265depay->adapter = gst_adapter_new ();
   rtph265depay->picture_adapter = gst_adapter_new ();
-  rtph265depay->byte_stream = DEFAULT_BYTE_STREAM;
+  rtph265depay->output_format = DEFAULT_STREAM_FORMAT;
+  rtph265depay->byte_stream =
+      (DEFAULT_STREAM_FORMAT == GST_H265_STREAM_FORMAT_BYTESTREAM);
   rtph265depay->stream_format = NULL;
   rtph265depay->merge = DEFAULT_ACCESS_UNIT;
   rtph265depay->vps = g_ptr_array_new_with_free_func (
@@ -157,7 +158,7 @@ gst_rtp_h265_depay_init (GstRtpH265Depay * rtph265depay)
 }
 
 static void
-gst_rtp_h265_depay_reset (GstRtpH265Depay * rtph265depay)
+gst_rtp_h265_depay_reset (GstRtpH265Depay * rtph265depay, gboolean hard)
 {
   gst_adapter_clear (rtph265depay->adapter);
   rtph265depay->wait_start = TRUE;
@@ -170,6 +171,14 @@ gst_rtp_h265_depay_reset (GstRtpH265Depay * rtph265depay)
   g_ptr_array_set_size (rtph265depay->vps, 0);
   g_ptr_array_set_size (rtph265depay->sps, 0);
   g_ptr_array_set_size (rtph265depay->pps, 0);
+
+  if (hard) {
+    if (rtph265depay->allocator != NULL) {
+      gst_object_unref (rtph265depay->allocator);
+      rtph265depay->allocator = NULL;
+    }
+    gst_allocation_params_init (&rtph265depay->params);
+  }
 }
 
 static void
@@ -182,8 +191,6 @@ gst_rtp_h265_depay_finalize (GObject * object)
   if (rtph265depay->codec_data)
     gst_buffer_unref (rtph265depay->codec_data);
 
-  g_free (rtph265depay->stream_format);
-
   g_object_unref (rtph265depay->adapter);
   g_object_unref (rtph265depay->picture_adapter);
 
@@ -194,11 +201,27 @@ gst_rtp_h265_depay_finalize (GObject * object)
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
+static inline const gchar *
+stream_format_get_nick (GstH265StreamFormat fmt)
+{
+  switch (fmt) {
+    case GST_H265_STREAM_FORMAT_BYTESTREAM:
+      return "byte-stream";
+    case GST_H265_STREAM_FORMAT_HVC1:
+      return "hvc1";
+    case GST_H265_STREAM_FORMAT_HEV1:
+      return "hev1";
+    default:
+      break;
+  }
+  return "unknown";
+}
+
 static void
 gst_rtp_h265_depay_negotiate (GstRtpH265Depay * rtph265depay)
 {
+  GstH265StreamFormat stream_format = GST_H265_STREAM_FORMAT_UNKNOWN;
   GstCaps *caps;
-  gint byte_stream = -1;
   gint merge = -1;
 
   caps =
@@ -212,15 +235,14 @@ gst_rtp_h265_depay_negotiate (GstRtpH265Depay * rtph265depay)
       const gchar *str = NULL;
 
       if ((str = gst_structure_get_string (s, "stream-format"))) {
-        g_free (rtph265depay->stream_format);
-        rtph265depay->stream_format = g_strdup (str);
+        rtph265depay->stream_format = g_intern_string (str);
 
         if (strcmp (str, "hev1") == 0) {
-          byte_stream = FALSE;
+          stream_format = GST_H265_STREAM_FORMAT_HEV1;
         } else if (strcmp (str, "hvc1") == 0) {
-          byte_stream = FALSE;
+          stream_format = GST_H265_STREAM_FORMAT_HVC1;
         } else if (strcmp (str, "byte-stream") == 0) {
-          byte_stream = TRUE;
+          stream_format = GST_H265_STREAM_FORMAT_BYTESTREAM;
         } else {
           GST_DEBUG_OBJECT (rtph265depay, "unknown stream-format: %s", str);
         }
@@ -239,17 +261,20 @@ gst_rtp_h265_depay_negotiate (GstRtpH265Depay * rtph265depay)
     gst_caps_unref (caps);
   }
 
-  if (byte_stream != -1) {
-    GST_DEBUG_OBJECT (rtph265depay, "downstream requires byte-stream %d",
-        byte_stream);
-    rtph265depay->byte_stream = byte_stream;
+  if (stream_format != GST_H265_STREAM_FORMAT_UNKNOWN) {
+    GST_DEBUG_OBJECT (rtph265depay, "downstream wants stream-format %s",
+        stream_format_get_nick (stream_format));
+    rtph265depay->output_format = stream_format;
   } else {
-    GST_DEBUG_OBJECT (rtph265depay, "defaulting to byte-stream %d",
-        DEFAULT_BYTE_STREAM);
-    g_free (rtph265depay->stream_format);
-    rtph265depay->stream_format = g_strdup ("byte-stream");
-    rtph265depay->byte_stream = DEFAULT_BYTE_STREAM;
+    GST_DEBUG_OBJECT (rtph265depay, "defaulting to output stream-format %s",
+        stream_format_get_nick (DEFAULT_STREAM_FORMAT));
+    rtph265depay->stream_format =
+        stream_format_get_nick (DEFAULT_STREAM_FORMAT);
+    rtph265depay->output_format = DEFAULT_STREAM_FORMAT;
   }
+  rtph265depay->byte_stream =
+      (rtph265depay->output_format == GST_H265_STREAM_FORMAT_BYTESTREAM);
+
   if (merge != -1) {
     GST_DEBUG_OBJECT (rtph265depay, "downstream requires merge %d", merge);
     rtph265depay->merge = merge;
@@ -266,6 +291,8 @@ parse_sps (GstMapInfo * map, guint32 * sps_id)
   GstBitReader br = GST_BIT_READER_INIT (map->data + 15,
       map->size - 15);
 
+  GST_MEMDUMP ("SPS", map->data, map->size);
+
   if (map->size < 16)
     return FALSE;
 
@@ -281,6 +308,8 @@ parse_pps (GstMapInfo * map, guint32 * sps_id, guint32 * pps_id)
   GstBitReader br = GST_BIT_READER_INIT (map->data + 2,
       map->size - 2);
 
+  GST_MEMDUMP ("PPS", map->data, map->size);
+
   if (map->size < 3)
     return FALSE;
 
@@ -292,13 +321,52 @@ parse_pps (GstMapInfo * map, guint32 * sps_id, guint32 * pps_id)
   return TRUE;
 }
 
+static gboolean
+gst_rtp_h265_depay_set_output_caps (GstRtpH265Depay * rtph265depay,
+    GstCaps * caps)
+{
+  GstAllocationParams params;
+  GstAllocator *allocator = NULL;
+  GstPad *srcpad;
+  gboolean res;
+
+  gst_allocation_params_init (&params);
+
+  srcpad = GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay);
+
+  res = gst_pad_set_caps (srcpad, caps);
+
+  if (res) {
+    GstQuery *query;
+
+    query = gst_query_new_allocation (caps, TRUE);
+    if (!gst_pad_peer_query (srcpad, query)) {
+      GST_DEBUG_OBJECT (rtph265depay, "downstream ALLOCATION query failed");
+    }
+
+    if (gst_query_get_n_allocation_params (query) > 0) {
+      gst_query_parse_nth_allocation_param (query, 0, &allocator, &params);
+    }
+
+    gst_query_unref (query);
+  }
+
+  if (rtph265depay->allocator)
+    gst_object_unref (rtph265depay->allocator);
+
+  rtph265depay->allocator = allocator;
+  rtph265depay->params = params;
+
+  return res;
+}
 
 static gboolean
 gst_rtp_h265_set_src_caps (GstRtpH265Depay * rtph265depay)
 {
-  gboolean res;
+  gboolean res, update_caps;
   GstCaps *old_caps;
   GstCaps *srccaps;
+  GstPad *srcpad;
 
   if (!rtph265depay->byte_stream &&
       (!rtph265depay->new_codec_data ||
@@ -319,7 +387,6 @@ gst_rtp_h265_set_src_caps (GstRtpH265Depay * rtph265depay)
     guint num_pps = rtph265depay->pps->len;
     GstMapInfo map, nalmap;
     guint8 *data;
-    gint nl;
     guint8 num_arrays = 0;
     guint new_size;
     GstBitReader br;
@@ -338,7 +405,7 @@ gst_rtp_h265_set_src_caps (GstRtpH265Depay * rtph265depay)
     len = 23;
 
     num_arrays = (num_vps > 0) + (num_sps > 0) + (num_pps > 0);
-    len += num_arrays;
+    len += 3 * num_arrays;
 
     /* add size of vps, sps & pps */
     for (i = 0; i < num_vps; i++)
@@ -394,8 +461,6 @@ gst_rtp_h265_set_src_caps (GstRtpH265Depay * rtph265depay)
 
     min_spatial_segmentation_idc = 0;   /* NOTE - we ignore this for now, but in a perfect world, we should continue parsing to obtain the real value */
 
-    nl = nalmap.size;
-
     gst_buffer_unmap (g_ptr_array_index (rtph265depay->sps, 0), &nalmap);
 
     /* HEVCDecoderConfigurationVersion = 1 */
@@ -427,9 +492,10 @@ gst_rtp_h265_set_src_caps (GstRtpH265Depay * rtph265depay)
      * numTemporalLayers (3 bits): number of temporal layers, value from SPS
      * TemporalIdNested (1 bit): sps_temporal_id_nesting_flag from SPS
      * lengthSizeMinusOne (2 bits): plus 1 indicates the length of the NALUnitLength */
-    data[21] =
-        0x00 | ((max_sub_layers_minus1 +
-            1) << 3) | (temporal_id_nesting_flag << 2) | (nl - 1);
+    /* we always output NALs with 4-byte nal unit length markers (or sync code) */
+    data[21] = rtph265depay->byte_stream ? 0x00 : 0x03;
+    data[21] |= ((max_sub_layers_minus1 + 1) << 3);
+    data[21] |= (temporal_id_nesting_flag << 2);
     GST_WRITE_UINT8 (data + 22, num_arrays);    /* numOfArrays */
 
     data += 23;
@@ -506,8 +572,9 @@ gst_rtp_h265_set_src_caps (GstRtpH265Depay * rtph265depay)
     gst_buffer_unref (codec_data);
   }
 
-  old_caps =
-      gst_pad_get_current_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay));
+  srcpad = GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay);
+
+  old_caps = gst_pad_get_current_caps (srcpad);
   if (old_caps != NULL) {
 
     /* Only update the caps if they are not equal. For
@@ -516,12 +583,7 @@ gst_rtp_h265_set_src_caps (GstRtpH265Depay * rtph265depay)
      * and gstrtph264depay
      */
     if (rtph265depay->byte_stream) {
-      if (!gst_caps_is_equal (srccaps, old_caps))
-        res =
-            gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay),
-            srccaps);
-      else
-        res = TRUE;
+      update_caps = !gst_caps_is_equal (srccaps, old_caps);
     } else {
       GstCaps *tmp_caps = gst_caps_copy (srccaps);
       GstStructure *old_s, *tmp_s;
@@ -532,26 +594,25 @@ gst_rtp_h265_set_src_caps (GstRtpH265Depay * rtph265depay)
         gst_structure_set_value (tmp_s, "codec_data",
             gst_structure_get_value (old_s, "codec_data"));
 
-      if (!gst_caps_is_equal (old_caps, tmp_caps))
-        res =
-            gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay),
-            srccaps);
-      else
-        res = TRUE;
-
+      update_caps = !gst_caps_is_equal (old_caps, tmp_caps);
       gst_caps_unref (tmp_caps);
     }
     gst_caps_unref (old_caps);
   } else {
-    res =
-        gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay),
-        srccaps);
+    update_caps = TRUE;
+  }
+
+  if (update_caps) {
+    res = gst_rtp_h265_depay_set_output_caps (rtph265depay, srccaps);
+  } else {
+    res = TRUE;
   }
 
   gst_caps_unref (srccaps);
 
   /* Insert SPS and PPS into the stream on next opportunity */
-  if (rtph265depay->sps->len > 0 || rtph265depay->pps->len > 0) {
+  if (rtph265depay->output_format != GST_H265_STREAM_FORMAT_HVC1
+      && (rtph265depay->sps->len > 0 || rtph265depay->pps->len > 0)) {
     gint i;
     GstBuffer *codec_data;
     GstMapInfo map;
@@ -847,6 +908,10 @@ gst_rtp_h265_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
       gint state = 0;
 
       nal_len = strlen (params[i]);
+      if (nal_len == 0) {
+        GST_WARNING_OBJECT (depayload, "empty param '%s' (#%d)", params[i], i);
+        continue;
+      }
       nal = gst_buffer_new_and_alloc (nal_len);
       gst_buffer_map (nal, &nalmap, GST_MAP_READWRITE);
 
@@ -885,17 +950,71 @@ incomplete_caps:
   }
 }
 
+static GstBuffer *
+gst_rtp_h265_depay_allocate_output_buffer (GstRtpH265Depay * depay, gsize size)
+{
+  GstBuffer *buffer = NULL;
+
+  g_return_val_if_fail (size > 0, NULL);
+
+  GST_LOG_OBJECT (depay, "want output buffer of %u bytes", (guint) size);
+
+  buffer = gst_buffer_new_allocate (depay->allocator, size, &depay->params);
+  if (buffer == NULL) {
+    GST_INFO_OBJECT (depay, "couldn't allocate output buffer");
+    buffer = gst_buffer_new_allocate (NULL, size, NULL);
+  }
+
+  return buffer;
+}
+
 static GstBuffer *
 gst_rtp_h265_complete_au (GstRtpH265Depay * rtph265depay,
     GstClockTime * out_timestamp, gboolean * out_keyframe)
 {
-  guint outsize;
+  GstBufferList *list;
+  GstMapInfo outmap;
   GstBuffer *outbuf;
+  guint outsize, offset = 0;
+  gint b, n_bufs, m, n_mem;
 
   /* we had a picture in the adapter and we completed it */
   GST_DEBUG_OBJECT (rtph265depay, "taking completed AU");
   outsize = gst_adapter_available (rtph265depay->picture_adapter);
-  outbuf = gst_adapter_take_buffer (rtph265depay->picture_adapter, outsize);
+
+  outbuf = gst_rtp_h265_depay_allocate_output_buffer (rtph265depay, outsize);
+
+  if (outbuf == NULL)
+    return NULL;
+
+  if (!gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE))
+    return NULL;
+
+  list = gst_adapter_take_buffer_list (rtph265depay->picture_adapter, outsize);
+
+  n_bufs = gst_buffer_list_length (list);
+  for (b = 0; b < n_bufs; ++b) {
+    GstBuffer *buf = gst_buffer_list_get (list, b);
+
+    n_mem = gst_buffer_n_memory (buf);
+    for (m = 0; m < n_mem; ++m) {
+      GstMemory *mem = gst_buffer_peek_memory (buf, m);
+      gsize mem_size = gst_memory_get_sizes (mem, NULL, NULL);
+      GstMapInfo mem_map;
+
+      if (gst_memory_map (mem, &mem_map, GST_MAP_READ)) {
+        memcpy (outmap.data + offset, mem_map.data, mem_size);
+        gst_memory_unmap (mem, &mem_map);
+      } else {
+        memset (outmap.data + offset, 0, mem_size);
+      }
+      offset += mem_size;
+    }
+
+    gst_rtp_copy_video_meta (rtph265depay, outbuf, buf);
+  }
+  gst_buffer_list_unref (list);
+  gst_buffer_unmap (outbuf, &outmap);
 
   *out_timestamp = rtph265depay->last_ts;
   *out_keyframe = rtph265depay->last_keyframe;
@@ -938,7 +1057,7 @@ gst_rtp_h265_complete_au (GstRtpH265Depay * rtph265depay,
 
 #define NAL_TYPE_IS_KEY(nt) (NAL_TYPE_IS_PARAMETER_SET(nt) || NAL_TYPE_IS_IRAP(nt))
 
-static GstBuffer *
+static void
 gst_rtp_h265_depay_handle_nal (GstRtpH265Depay * rtph265depay, GstBuffer * nal,
     GstClockTime in_timestamp, gboolean marker)
 {
@@ -969,7 +1088,7 @@ gst_rtp_h265_depay_handle_nal (GstRtpH265Depay * rtph265depay, GstBuffer * nal,
               4, gst_buffer_get_size (nal) - 4));
       gst_buffer_unmap (nal, &map);
       gst_buffer_unref (nal);
-      return NULL;
+      return;
     } else if (rtph265depay->sps->len == 0 || rtph265depay->pps->len == 0) {
       /* Down push down any buffer in non-bytestream mode if the SPS/PPS haven't
        * go through yet
@@ -980,7 +1099,7 @@ gst_rtp_h265_depay_handle_nal (GstRtpH265Depay * rtph265depay, GstBuffer * nal,
                   "all-headers", G_TYPE_BOOLEAN, TRUE, NULL)));
       gst_buffer_unmap (nal, &map);
       gst_buffer_unref (nal);
-      return NULL;
+      return;
     }
 
     if (rtph265depay->new_codec_data &&
@@ -1035,17 +1154,14 @@ gst_rtp_h265_depay_handle_nal (GstRtpH265Depay * rtph265depay, GstBuffer * nal,
     /* prepend codec_data */
     if (rtph265depay->codec_data) {
       GST_DEBUG_OBJECT (depayload, "prepending codec_data");
-      gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay),
-          rtph265depay->codec_data, outbuf,
-          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+      gst_rtp_copy_video_meta (rtph265depay, rtph265depay->codec_data, outbuf);
       outbuf = gst_buffer_append (rtph265depay->codec_data, outbuf);
       rtph265depay->codec_data = NULL;
       out_keyframe = TRUE;
     }
     outbuf = gst_buffer_make_writable (outbuf);
 
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtph265depay), outbuf,
-        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_drop_non_video_meta (rtph265depay, outbuf);
 
     GST_BUFFER_PTS (outbuf) = out_timestamp;
 
@@ -1053,9 +1169,11 @@ gst_rtp_h265_depay_handle_nal (GstRtpH265Depay * rtph265depay, GstBuffer * nal,
       GST_BUFFER_FLAG_UNSET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
     else
       GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
+
+    gst_rtp_base_depayload_push (depayload, outbuf);
   }
 
-  return outbuf;
+  return;
 
   /* ERRORS */
 short_nal:
@@ -1063,19 +1181,20 @@ short_nal:
     GST_WARNING_OBJECT (depayload, "dropping short NAL");
     gst_buffer_unmap (nal, &map);
     gst_buffer_unref (nal);
-    return NULL;
+    return;
   }
 }
 
-static GstBuffer *
-gst_rtp_h265_push_fragmentation_unit (GstRtpH265Depay * rtph265depay,
-    gboolean send)
+static void
+gst_rtp_h265_finish_fragmentation_unit (GstRtpH265Depay * rtph265depay)
 {
   guint outsize;
   GstMapInfo map;
   GstBuffer *outbuf;
 
   outsize = gst_adapter_available (rtph265depay->adapter);
+  g_assert (outsize >= 4);
+
   outbuf = gst_adapter_take_buffer (rtph265depay->adapter, outsize);
 
   gst_buffer_map (outbuf, &map, GST_MAP_WRITE);
@@ -1084,28 +1203,14 @@ gst_rtp_h265_push_fragmentation_unit (GstRtpH265Depay * rtph265depay,
   if (rtph265depay->byte_stream) {
     memcpy (map.data, sync_bytes, sizeof (sync_bytes));
   } else {
-    goto not_implemented;
+    GST_WRITE_UINT32_BE (map.data, outsize - 4);
   }
   gst_buffer_unmap (outbuf, &map);
 
   rtph265depay->current_fu_type = 0;
 
-  outbuf = gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf,
+  gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf,
       rtph265depay->fu_timestamp, rtph265depay->fu_marker);
-
-  if (send && outbuf) {
-    gst_rtp_base_depayload_push (GST_RTP_BASE_DEPAYLOAD (rtph265depay), outbuf);
-    outbuf = NULL;
-  }
-  return outbuf;
-
-not_implemented:
-  {
-    GST_ERROR_OBJECT (rtph265depay,
-        ("Only bytestream format is currently supported."));
-    gst_buffer_unmap (outbuf, &map);
-    return NULL;
-  }
 }
 
 static GstBuffer *
@@ -1180,7 +1285,7 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
      * when the FU ended) and send out what we gathered thusfar */
     if (G_UNLIKELY (rtph265depay->current_fu_type != 0 &&
             nal_unit_type != rtph265depay->current_fu_type))
-      gst_rtp_h265_push_fragmentation_unit (rtph265depay, TRUE);
+      gst_rtp_h265_finish_fragmentation_unit (rtph265depay);
 
     switch (nal_unit_type) {
       case 48:
@@ -1240,7 +1345,7 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
           if (rtph265depay->byte_stream) {
             memcpy (map.data, sync_bytes, sizeof (sync_bytes));
           } else {
-            goto not_implemented;
+            GST_WRITE_UINT32_BE (map.data, nalu_size);
           }
 
           /* strip NALU size */
@@ -1250,22 +1355,14 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
           memcpy (map.data + sizeof (sync_bytes), payload, nalu_size);
           gst_buffer_unmap (outbuf, &map);
 
-          gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), outbuf,
-              rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+          gst_rtp_copy_video_meta (rtph265depay, outbuf, rtp->buffer);
 
-          outbuf =
-              gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf, timestamp,
+          gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf, timestamp,
               marker);
-          if (outbuf)
-            gst_adapter_push (rtph265depay->adapter, outbuf);
 
           payload += nalu_size;
           payload_len -= nalu_size;
         }
-
-        outsize = gst_adapter_available (rtph265depay->adapter);
-        if (outsize > 0)
-          outbuf = gst_adapter_take_buffer (rtph265depay->adapter, outsize);
         break;
       }
       case 49:
@@ -1319,7 +1416,7 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
            * Assume that the remote payloader is buggy (doesn't set the end
            * bit) and send out what we've gathered thusfar */
           if (G_UNLIKELY (rtph265depay->current_fu_type != 0))
-            gst_rtp_h265_push_fragmentation_unit (rtph265depay, TRUE);
+            gst_rtp_h265_finish_fragmentation_unit (rtph265depay);
 
           rtph265depay->current_fu_type = nal_unit_type;
           rtph265depay->fu_timestamp = timestamp;
@@ -1342,13 +1439,18 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
           outbuf = gst_buffer_new_and_alloc (outsize);
 
           gst_buffer_map (outbuf, &map, GST_MAP_WRITE);
+          if (rtph265depay->byte_stream) {
+            GST_WRITE_UINT32_BE (map.data, 0x00000001);
+          } else {
+            /* will be fixed up in finish_fragmentation_unit() */
+            GST_WRITE_UINT32_BE (map.data, 0xffffffff);
+          }
           memcpy (map.data + sizeof (sync_bytes), payload, nalu_size);
-          map.data[sizeof (sync_bytes)] = nal_header >> 8;
-          map.data[sizeof (sync_bytes) + 1] = nal_header & 0xff;
+          map.data[4] = nal_header >> 8;
+          map.data[5] = nal_header & 0xff;
           gst_buffer_unmap (outbuf, &map);
 
-          gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), outbuf,
-              rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+          gst_rtp_copy_video_meta (rtph265depay, outbuf, rtp->buffer);
 
           GST_DEBUG_OBJECT (rtph265depay, "queueing %d bytes", outsize);
 
@@ -1367,8 +1469,7 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
           outbuf = gst_buffer_new_and_alloc (outsize);
           gst_buffer_fill (outbuf, 0, payload, outsize);
 
-          gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), outbuf,
-              rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+          gst_rtp_copy_video_meta (rtph265depay, outbuf, rtp->buffer);
 
           GST_DEBUG_OBJECT (rtph265depay, "queueing %d bytes", outsize);
 
@@ -1381,7 +1482,7 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 
         /* if NAL unit ends, flush the adapter */
         if (E) {
-          outbuf = gst_rtp_h265_push_fragmentation_unit (rtph265depay, FALSE);
+          gst_rtp_h265_finish_fragmentation_unit (rtph265depay);
           GST_DEBUG_OBJECT (rtph265depay, "End of Fragmentation Unit");
         }
         break;
@@ -1408,22 +1509,20 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
         if (rtph265depay->byte_stream) {
           memcpy (map.data, sync_bytes, sizeof (sync_bytes));
         } else {
-          goto not_implemented;
+          GST_WRITE_UINT32_BE (map.data, nalu_size);
         }
-        memcpy (map.data + sizeof (sync_bytes), payload, nalu_size);
+        memcpy (map.data + 4, payload, nalu_size);
         gst_buffer_unmap (outbuf, &map);
 
-        gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), outbuf,
-            rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+        gst_rtp_copy_video_meta (rtph265depay, outbuf, rtp->buffer);
 
-        outbuf = gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf, timestamp,
-            marker);
+        gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf, timestamp, marker);
         break;
       }
     }
   }
 
-  return outbuf;
+  return NULL;
 
   /* ERRORS */
 empty_packet:
@@ -1461,7 +1560,7 @@ gst_rtp_h265_depay_handle_event (GstRTPBaseDepayload * depay, GstEvent * event)
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_FLUSH_STOP:
-      gst_rtp_h265_depay_reset (rtph265depay);
+      gst_rtp_h265_depay_reset (rtph265depay, FALSE);
       break;
     default:
       break;
@@ -1484,7 +1583,7 @@ gst_rtp_h265_depay_change_state (GstElement * element,
     case GST_STATE_CHANGE_NULL_TO_READY:
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
-      gst_rtp_h265_depay_reset (rtph265depay);
+      gst_rtp_h265_depay_reset (rtph265depay, TRUE);
       break;
     default:
       break;
@@ -1493,6 +1592,9 @@ gst_rtp_h265_depay_change_state (GstElement * element,
   ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
 
   switch (transition) {
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      gst_rtp_h265_depay_reset (rtph265depay, TRUE);
+      break;
     case GST_STATE_CHANGE_READY_TO_NULL:
       break;
     default:
diff --git a/gst/rtp/gstrtph265depay.h b/gst/rtp/gstrtph265depay.h
index ecb910db6..cf1769454 100644
--- a/gst/rtp/gstrtph265depay.h
+++ b/gst/rtp/gstrtph265depay.h
@@ -56,7 +56,8 @@ struct _GstRtpH265Depay
 {
   GstRTPBaseDepayload depayload;
 
-  gchar *stream_format;
+  const gchar *stream_format;
+  GstH265StreamFormat output_format;  /* bytestream, hvc1 or hev1 */
   gboolean byte_stream;
 
   GstBuffer *codec_data;
@@ -80,6 +81,10 @@ struct _GstRtpH265Depay
   GPtrArray *sps;
   GPtrArray *pps;
   gboolean new_codec_data;
+
+  /* downstream allocator */
+  GstAllocator *allocator;
+  GstAllocationParams params;
 };
 
 struct _GstRtpH265DepayClass
diff --git a/gst/rtp/gstrtph265pay.c b/gst/rtp/gstrtph265pay.c
index 6eaf11578..9a597e060 100644
--- a/gst/rtp/gstrtph265pay.c
+++ b/gst/rtp/gstrtph265pay.c
@@ -733,7 +733,7 @@ next_start_code (const guint8 * data, guint size)
    * sense because our search 'alphabet' is binary - 0 & 1 only.
    * This allow us to simplify the general BM algorithm to a very
    * simple form. */
-  /* assume 1 is in the 3th byte */
+  /* assume 1 is in the 3rd byte */
   guint offset = 2;
 
   while (offset < size) {
@@ -785,6 +785,10 @@ gst_rtp_h265_pay_decode_nal (GstRtpH265Pay * payloader,
       || GST_H265_NAL_PPS == type) {
     GstBuffer *nal;
 
+    /* trailing 0x0 are not part of the VPS/SPS/PPS */
+    while (size > 0 && data[size - 1] == 0x0)
+      size--;
+
     /* encode the entire NAL in base64 */
     GST_DEBUG_OBJECT (payloader, "found %s (type 0x%x), size %u",
         type == GST_H265_NAL_VPS ? "VPS" : type == GST_H265_NAL_SPS ?
@@ -1001,8 +1005,7 @@ gst_rtp_h265_pay_payload_nal (GstRTPBasePayload * basepayload,
       GST_BUFFER_DTS (outbuf) = dts;
 
       /* insert payload memory block */
-      gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265pay), outbuf, paybuf,
-          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+      gst_rtp_copy_video_meta (rtph265pay, outbuf, paybuf);
       outbuf = gst_buffer_append (outbuf, paybuf);
 
       outlist = gst_buffer_list_new ();
@@ -1072,8 +1075,7 @@ gst_rtp_h265_pay_payload_nal (GstRTPBasePayload * basepayload,
         gst_rtp_buffer_unmap (&rtp);
 
         /* insert payload memory block */
-        gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265pay), outbuf, paybuf,
-            g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+        gst_rtp_copy_video_meta (rtph265pay, outbuf, paybuf);
         gst_buffer_copy_into (outbuf, paybuf, GST_BUFFER_COPY_MEMORY, pos,
             limitedSize);
         /* add the buffer to the buffer list */
diff --git a/gst/rtp/gstrtpilbcdepay.c b/gst/rtp/gstrtpilbcdepay.c
index 3df87d8b0..26de4837d 100644
--- a/gst/rtp/gstrtpilbcdepay.c
+++ b/gst/rtp/gstrtpilbcdepay.c
@@ -191,8 +191,7 @@ gst_rtp_ilbc_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
   }
 
   if (outbuf) {
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (depayload, outbuf);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpj2kdepay.c b/gst/rtp/gstrtpj2kdepay.c
index 6f1b1b2c2..c30dd34a6 100644
--- a/gst/rtp/gstrtpj2kdepay.c
+++ b/gst/rtp/gstrtpj2kdepay.c
@@ -431,8 +431,7 @@ gst_rtp_j2k_depay_flush_frame (GstRTPBaseDepayload * depayload)
 
     GST_DEBUG_OBJECT (rtpj2kdepay, "pushing buffer of %u bytes", avail);
     outbuf = gst_adapter_take_buffer (rtpj2kdepay->f_adapter, avail);
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload),
-        outbuf, g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_drop_non_video_meta (depayload, outbuf);
     ret = gst_rtp_base_depayload_push (depayload, outbuf);
   } else {
     GST_WARNING_OBJECT (rtpj2kdepay, "empty packet");
diff --git a/gst/rtp/gstrtpj2kpay.c b/gst/rtp/gstrtpj2kpay.c
index 41e5ea6b5..f1c6c03c2 100644
--- a/gst/rtp/gstrtpj2kpay.c
+++ b/gst/rtp/gstrtpj2kpay.c
@@ -506,8 +506,7 @@ gst_rtp_j2k_pay_handle_buffer (GstRTPBasePayload * basepayload,
       /* make subbuffer of j2k data */
       paybuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL,
           offset, data_size);
-      gst_rtp_copy_meta (GST_ELEMENT_CAST (basepayload), outbuf, paybuf,
-          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+      gst_rtp_copy_video_meta (basepayload, outbuf, paybuf);
       outbuf = gst_buffer_append (outbuf, paybuf);
 
       gst_buffer_list_add (list, outbuf);
diff --git a/gst/rtp/gstrtpjpegdepay.c b/gst/rtp/gstrtpjpegdepay.c
index c4e2e8ef5..59274f111 100644
--- a/gst/rtp/gstrtpjpegdepay.c
+++ b/gst/rtp/gstrtpjpegdepay.c
@@ -721,8 +721,7 @@ gst_rtp_jpeg_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
       rtpjpegdepay->discont = FALSE;
     }
 
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpjpegdepay), outbuf,
-        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_drop_non_video_meta (rtpjpegdepay, outbuf);
 
     GST_DEBUG_OBJECT (rtpjpegdepay, "returning %u bytes", avail);
   }
diff --git a/gst/rtp/gstrtpjpegpay.c b/gst/rtp/gstrtpjpegpay.c
index 7940cb6c8..fe9301684 100644
--- a/gst/rtp/gstrtpjpegpay.c
+++ b/gst/rtp/gstrtpjpegpay.c
@@ -895,8 +895,7 @@ gst_rtp_jpeg_pay_handle_buffer (GstRTPBasePayload * basepayload,
         jpeg_header_size + offset, payload_size);
 
     /* join memory parts */
-    gst_rtp_copy_meta (GST_ELEMENT_CAST (pay), outbuf, paybuf,
-        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_copy_video_meta (pay, outbuf, paybuf);
     outbuf = gst_buffer_append (outbuf, paybuf);
 
     GST_BUFFER_PTS (outbuf) = timestamp;
diff --git a/gst/rtp/gstrtpmp4adepay.c b/gst/rtp/gstrtpmp4adepay.c
index 5a5f34124..e537d2509 100644
--- a/gst/rtp/gstrtpmp4adepay.c
+++ b/gst/rtp/gstrtpmp4adepay.c
@@ -394,8 +394,7 @@ gst_rtp_mp4a_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
       avail -= skip;
 
       GST_BUFFER_PTS (tmp) = timestamp;
-      gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), tmp,
-          g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+      gst_rtp_drop_non_audio_meta (depayload, tmp);
       gst_rtp_base_depayload_push (depayload, tmp);
 
       /* shift ts for next buffers */
diff --git a/gst/rtp/gstrtpmp4apay.c b/gst/rtp/gstrtpmp4apay.c
index 64b4baad8..f822ddf4b 100644
--- a/gst/rtp/gstrtpmp4apay.c
+++ b/gst/rtp/gstrtpmp4apay.c
@@ -435,8 +435,7 @@ gst_rtp_mp4a_pay_handle_buffer (GstRTPBasePayload * basepayload,
         offset, payload_len);
 
     /* join memory parts */
-    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmp4apay), outbuf, paybuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_copy_audio_meta (rtpmp4apay, outbuf, paybuf);
     outbuf = gst_buffer_append (outbuf, paybuf);
     gst_buffer_list_add (list, outbuf);
     offset += payload_len;
diff --git a/gst/rtp/gstrtpmp4vdepay.c b/gst/rtp/gstrtpmp4vdepay.c
index 49b6f0f87..c860f88b8 100644
--- a/gst/rtp/gstrtpmp4vdepay.c
+++ b/gst/rtp/gstrtpmp4vdepay.c
@@ -187,8 +187,7 @@ gst_rtp_mp4v_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 
     GST_DEBUG ("gst_rtp_mp4v_depay_chain: pushing buffer of size %"
         G_GSIZE_FORMAT, gst_buffer_get_size (outbuf));
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpmp4vdepay), outbuf,
-        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_drop_non_video_meta (rtpmp4vdepay, outbuf);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpmp4vpay.c b/gst/rtp/gstrtpmp4vpay.c
index 671f353ef..5e89fd85c 100644
--- a/gst/rtp/gstrtpmp4vpay.c
+++ b/gst/rtp/gstrtpmp4vpay.c
@@ -287,8 +287,7 @@ gst_rtp_mp4v_pay_flush (GstRtpMP4VPay * rtpmp4vpay)
     gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
     gst_rtp_buffer_set_marker (&rtp, avail == 0);
     gst_rtp_buffer_unmap (&rtp);
-    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmp4vpay), outbuf, outbuf_data,
-        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_copy_video_meta (rtpmp4vpay, outbuf, outbuf_data);
     outbuf = gst_buffer_append (outbuf, outbuf_data);
 
     GST_BUFFER_PTS (outbuf) = rtpmp4vpay->first_timestamp;
diff --git a/gst/rtp/gstrtpmpadepay.c b/gst/rtp/gstrtpmpadepay.c
index d580770ae..18506db25 100644
--- a/gst/rtp/gstrtpmpadepay.c
+++ b/gst/rtp/gstrtpmpadepay.c
@@ -157,8 +157,7 @@ gst_rtp_mpa_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
       gst_buffer_get_size (outbuf));
 
   if (outbuf) {
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpmpadepay), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (rtpmpadepay, outbuf);
   }
 
   /* FIXME, we can push half mpeg frames when they are split over multiple
diff --git a/gst/rtp/gstrtpmpapay.c b/gst/rtp/gstrtpmpapay.c
index 6e6054de8..09fa8a843 100644
--- a/gst/rtp/gstrtpmpapay.c
+++ b/gst/rtp/gstrtpmpapay.c
@@ -243,8 +243,7 @@ gst_rtp_mpa_pay_flush (GstRtpMPAPay * rtpmpapay)
     gst_rtp_buffer_unmap (&rtp);
 
     paybuf = gst_adapter_take_buffer_fast (rtpmpapay->adapter, payload_len);
-    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmpapay), outbuf, paybuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_copy_audio_meta (rtpmpapay, outbuf, paybuf);
     outbuf = gst_buffer_append (outbuf, paybuf);
 
     GST_BUFFER_PTS (outbuf) = rtpmpapay->first_ts;
diff --git a/gst/rtp/gstrtpmpvdepay.c b/gst/rtp/gstrtpmpvdepay.c
index 81b5e2270..973194605 100644
--- a/gst/rtp/gstrtpmpvdepay.c
+++ b/gst/rtp/gstrtpmpvdepay.c
@@ -174,8 +174,7 @@ gst_rtp_mpv_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
       GST_DEBUG_OBJECT (rtpmpvdepay,
           "gst_rtp_mpv_depay_chain: pushing buffer of size %" G_GSIZE_FORMAT,
           gst_buffer_get_size (outbuf));
-      gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpmpvdepay), outbuf,
-          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+      gst_rtp_drop_non_video_meta (rtpmpvdepay, outbuf);
 
     }
   }
diff --git a/gst/rtp/gstrtpmpvpay.c b/gst/rtp/gstrtpmpvpay.c
index d16b3a009..eb73af25e 100644
--- a/gst/rtp/gstrtpmpvpay.c
+++ b/gst/rtp/gstrtpmpvpay.c
@@ -183,6 +183,10 @@ gst_rtp_mpv_pay_flush (GstRTPMPVPay * rtpmpvpay)
 
   ret = GST_FLOW_OK;
 
+  GST_DEBUG_OBJECT (rtpmpvpay, "available %u", avail);
+  if (avail == 0)
+    return GST_FLOW_OK;
+
   list =
       gst_buffer_list_new_sized (avail / (GST_RTP_BASE_PAYLOAD_MTU (rtpmpvpay) -
           RTP_HEADER_LEN) + 1);
@@ -228,10 +232,11 @@ gst_rtp_mpv_pay_flush (GstRTPMPVPay * rtpmpvpay)
     gst_rtp_buffer_unmap (&rtp);
 
     paybuf = gst_adapter_take_buffer_fast (rtpmpvpay->adapter, payload_len);
-    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmpvpay), outbuf, paybuf,
-        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_copy_video_meta (rtpmpvpay, outbuf, paybuf);
     outbuf = gst_buffer_append (outbuf, paybuf);
 
+    GST_DEBUG_OBJECT (rtpmpvpay, "Adding buffer");
+
     GST_BUFFER_PTS (outbuf) = rtpmpvpay->first_ts;
     gst_buffer_list_add (list, outbuf);
   }
diff --git a/gst/rtp/gstrtpopusdepay.c b/gst/rtp/gstrtpopusdepay.c
index afa6ba7e5..f672339f4 100644
--- a/gst/rtp/gstrtpopusdepay.c
+++ b/gst/rtp/gstrtpopusdepay.c
@@ -28,6 +28,7 @@
 #include <gst/rtp/gstrtpbuffer.h>
 #include <gst/audio/audio.h>
 #include "gstrtpopusdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpopusdepay_debug);
 #define GST_CAT_DEFAULT (rtpopusdepay_debug)
@@ -51,7 +52,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
     );
 
 static GstBuffer *gst_rtp_opus_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp_buffer);
 static gboolean gst_rtp_opus_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 
@@ -76,7 +77,7 @@ gst_rtp_opus_depay_class_init (GstRTPOpusDepayClass * klass)
       "Extracts Opus audio from RTP packets",
       "Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>");
 
-  gstbasertpdepayload_class->process = gst_rtp_opus_depay_process;
+  gstbasertpdepayload_class->process_rtp_packet = gst_rtp_opus_depay_process;
   gstbasertpdepayload_class->set_caps = gst_rtp_opus_depay_setcaps;
 
   GST_DEBUG_CATEGORY_INIT (rtpopusdepay_debug, "rtpopusdepay", 0,
@@ -138,38 +139,15 @@ gst_rtp_opus_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
   return ret;
 }
 
-static gboolean
-foreach_metadata (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
-{
-  GstRTPOpusDepay *depay = user_data;
-  const GstMetaInfo *info = (*meta)->info;
-  const gchar *const *tags = gst_meta_api_type_get_tags (info->api);
-
-  if (!tags || (g_strv_length ((gchar **) tags) == 1
-          && gst_meta_api_type_has_tag (info->api,
-              g_quark_from_string (GST_META_TAG_AUDIO_STR)))) {
-    GST_DEBUG_OBJECT (depay, "keeping metadata %s", g_type_name (info->api));
-  } else {
-    GST_DEBUG_OBJECT (depay, "dropping metadata %s", g_type_name (info->api));
-    *meta = NULL;
-  }
-
-  return TRUE;
-}
-
 static GstBuffer *
-gst_rtp_opus_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_opus_depay_process (GstRTPBaseDepayload * depayload,
+    GstRTPBuffer * rtp_buffer)
 {
   GstBuffer *outbuf;
-  GstRTPBuffer rtpbuf = { NULL, };
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtpbuf);
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtpbuf);
-  gst_rtp_buffer_unmap (&rtpbuf);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp_buffer);
 
-  outbuf = gst_buffer_make_writable (outbuf);
-  /* Filter away all metas that are not sensible to copy */
-  gst_buffer_foreach_meta (outbuf, foreach_metadata, depayload);
+  gst_rtp_drop_non_audio_meta (depayload, outbuf);
 
   return outbuf;
 }
diff --git a/gst/rtp/gstrtpopuspay.c b/gst/rtp/gstrtpopuspay.c
index 1a6eb805a..b61088565 100644
--- a/gst/rtp/gstrtpopuspay.c
+++ b/gst/rtp/gstrtpopuspay.c
@@ -29,6 +29,7 @@
 #include <gst/audio/audio.h>
 
 #include "gstrtpopuspay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpopuspay_debug);
 #define GST_CAT_DEFAULT (rtpopuspay_debug)
@@ -162,52 +163,21 @@ gst_rtp_opus_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
   return res;
 }
 
-typedef struct
-{
-  GstRtpOPUSPay *pay;
-  GstBuffer *outbuf;
-} CopyMetaData;
-
-static gboolean
-foreach_metadata (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
-{
-  CopyMetaData *data = user_data;
-  GstRtpOPUSPay *pay = data->pay;
-  GstBuffer *outbuf = data->outbuf;
-  const GstMetaInfo *info = (*meta)->info;
-  const gchar *const *tags = gst_meta_api_type_get_tags (info->api);
-
-  if (!tags || (g_strv_length ((gchar **) tags) == 1
-          && gst_meta_api_type_has_tag (info->api,
-              g_quark_from_string (GST_META_TAG_AUDIO_STR)))) {
-    GstMetaTransformCopy copy_data = { FALSE, 0, -1 };
-    GST_DEBUG_OBJECT (pay, "copy metadata %s", g_type_name (info->api));
-    /* simply copy then */
-    info->transform_func (outbuf, *meta, inbuf,
-        _gst_meta_transform_copy, &copy_data);
-  } else {
-    GST_DEBUG_OBJECT (pay, "not copying metadata %s", g_type_name (info->api));
-  }
-
-  return TRUE;
-}
-
 static GstFlowReturn
 gst_rtp_opus_pay_handle_buffer (GstRTPBasePayload * basepayload,
     GstBuffer * buffer)
 {
   GstBuffer *outbuf;
   GstClockTime pts, dts, duration;
-  CopyMetaData data;
 
   pts = GST_BUFFER_PTS (buffer);
   dts = GST_BUFFER_DTS (buffer);
   duration = GST_BUFFER_DURATION (buffer);
 
   outbuf = gst_rtp_buffer_new_allocate (0, 0, 0);
-  data.pay = GST_RTP_OPUS_PAY (basepayload);
-  data.outbuf = outbuf;
-  gst_buffer_foreach_meta (buffer, foreach_metadata, &data);
+
+  gst_rtp_copy_audio_meta (basepayload, outbuf, buffer);
+
   outbuf = gst_buffer_append (outbuf, buffer);
 
   GST_BUFFER_PTS (outbuf) = pts;
diff --git a/gst/rtp/gstrtppcmadepay.c b/gst/rtp/gstrtppcmadepay.c
index 6927962e2..476a20aad 100644
--- a/gst/rtp/gstrtppcmadepay.c
+++ b/gst/rtp/gstrtppcmadepay.c
@@ -150,8 +150,7 @@ gst_rtp_pcma_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
       GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
     }
 
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (depayload, outbuf);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtppcmudepay.c b/gst/rtp/gstrtppcmudepay.c
index a15aa1b31..1a06d187a 100644
--- a/gst/rtp/gstrtppcmudepay.c
+++ b/gst/rtp/gstrtppcmudepay.c
@@ -151,8 +151,7 @@ gst_rtp_pcmu_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
       GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
     }
 
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (depayload, outbuf);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpqcelpdepay.c b/gst/rtp/gstrtpqcelpdepay.c
index 924d71eff..cb5d9eb95 100644
--- a/gst/rtp/gstrtpqcelpdepay.c
+++ b/gst/rtp/gstrtpqcelpdepay.c
@@ -357,8 +357,7 @@ gst_rtp_qcelp_depay_process (GstRTPBaseDepayload * depayload,
     GST_BUFFER_PTS (outbuf) = timestamp;
     GST_BUFFER_DURATION (outbuf) = FRAME_DURATION;
 
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (depayload, outbuf);
 
     if (!depay->interleaved || index == 0) {
       /* not interleaved or first frame in packet, just push */
diff --git a/gst/rtp/gstrtpsbcdepay.c b/gst/rtp/gstrtpsbcdepay.c
index 02407b5c0..9549bb06a 100644
--- a/gst/rtp/gstrtpsbcdepay.c
+++ b/gst/rtp/gstrtpsbcdepay.c
@@ -53,9 +53,22 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
         "encoding-name = (string) SBC")
     );
 
+enum
+{
+  PROP_0,
+  PROP_IGNORE_TIMESTAMPS,
+  PROP_LAST
+};
+
+#define DEFAULT_IGNORE_TIMESTAMPS FALSE
+
 #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_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec);
+static void gst_rtp_sbc_depay_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec);
 static void gst_rtp_sbc_depay_finalize (GObject * object);
 
 static gboolean gst_rtp_sbc_depay_setcaps (GstRTPBaseDepayload * base,
@@ -72,6 +85,13 @@ gst_rtp_sbc_depay_class_init (GstRtpSbcDepayClass * klass)
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
   gobject_class->finalize = gst_rtp_sbc_depay_finalize;
+  gobject_class->set_property = gst_rtp_sbc_depay_set_property;
+  gobject_class->get_property = gst_rtp_sbc_depay_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_IGNORE_TIMESTAMPS,
+      g_param_spec_boolean ("ignore-timestamps", "Ignore Timestamps",
+          "Various statistics", DEFAULT_IGNORE_TIMESTAMPS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gstbasertpdepayload_class->set_caps = gst_rtp_sbc_depay_setcaps;
   gstbasertpdepayload_class->process_rtp_packet = gst_rtp_sbc_depay_process;
@@ -95,6 +115,9 @@ static void
 gst_rtp_sbc_depay_init (GstRtpSbcDepay * rtpsbcdepay)
 {
   rtpsbcdepay->adapter = gst_adapter_new ();
+  rtpsbcdepay->stream_align =
+      gst_audio_stream_align_new (48000, 40 * GST_MSECOND, 1 * GST_SECOND);
+  rtpsbcdepay->ignore_timestamps = DEFAULT_IGNORE_TIMESTAMPS;
 }
 
 static void
@@ -102,11 +125,44 @@ gst_rtp_sbc_depay_finalize (GObject * object)
 {
   GstRtpSbcDepay *depay = GST_RTP_SBC_DEPAY (object);
 
+  gst_audio_stream_align_free (depay->stream_align);
   gst_object_unref (depay->adapter);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
+static void
+gst_rtp_sbc_depay_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+  GstRtpSbcDepay *depay = GST_RTP_SBC_DEPAY (object);
+
+  switch (prop_id) {
+    case PROP_IGNORE_TIMESTAMPS:
+      depay->ignore_timestamps = g_value_get_boolean (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_rtp_sbc_depay_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec)
+{
+  GstRtpSbcDepay *depay = GST_RTP_SBC_DEPAY (object);
+
+  switch (prop_id) {
+    case PROP_IGNORE_TIMESTAMPS:
+      g_value_set_boolean (value, depay->ignore_timestamps);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
 /* 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
@@ -184,6 +240,9 @@ gst_rtp_sbc_depay_setcaps (GstRTPBaseDepayload * base, GstCaps * caps)
   if (oldcaps)
     gst_caps_unref (oldcaps);
 
+  /* Reset when the caps are changing */
+  gst_audio_stream_align_set_rate (depay->stream_align, depay->rate);
+
   return TRUE;
 
 bad_caps:
@@ -202,6 +261,9 @@ gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstRTPBuffer * rtp)
   guint8 nframes;
   guint8 *payload;
   guint payload_len;
+  gint samples = 0;
+
+  GstClockTime timestamp;
 
   GST_LOG_OBJECT (depay, "Got %" G_GSIZE_FORMAT " bytes",
       gst_buffer_get_size (rtp->buffer));
@@ -212,6 +274,27 @@ gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstRTPBuffer * rtp)
     goto bad_packet;
   }
 
+  timestamp = GST_BUFFER_DTS_OR_PTS (rtp->buffer);
+  if (depay->ignore_timestamps && timestamp == GST_CLOCK_TIME_NONE) {
+    GstClockTime initial_timestamp;
+    guint64 n_samples;
+
+    initial_timestamp =
+        gst_audio_stream_align_get_timestamp_at_discont (depay->stream_align);
+    n_samples =
+        gst_audio_stream_align_get_samples_since_discont (depay->stream_align);
+
+    if (initial_timestamp == GST_CLOCK_TIME_NONE) {
+      GST_ERROR_OBJECT (depay,
+          "Can only ignore timestamps on streams without valid initial timestamp");
+      return NULL;
+    }
+
+    timestamp =
+        initial_timestamp + gst_util_uint64_scale (n_samples, GST_SECOND,
+        depay->rate);
+  }
+
   payload = gst_rtp_buffer_get_payload (rtp);
   payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
@@ -243,16 +326,25 @@ gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstRTPBuffer * rtp)
     gst_adapter_push (depay->adapter, data);
 
     if (last) {
+      gint framelen, samples;
+      guint8 header[4];
+
       data = gst_adapter_take_buffer (depay->adapter,
           gst_adapter_available (depay->adapter));
-      gst_rtp_drop_meta (GST_ELEMENT_CAST (depay), data,
-          g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
-    } else
+      gst_rtp_drop_non_audio_meta (depay, data);
+
+      if (gst_buffer_extract (data, 0, &header, 4) != 4 ||
+          gst_rtp_sbc_depay_get_params (depay, header,
+              payload_len, &framelen, &samples) < 0) {
+        gst_buffer_unref (data);
+        goto bad_packet;
+      }
+    } else {
       data = NULL;
-
+    }
   } else {
     /* !fragment */
-    gint framelen, samples;
+    gint framelen;
 
     GST_LOG_OBJECT (depay, "Got %d frames", nframes);
 
@@ -262,6 +354,8 @@ gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstRTPBuffer * rtp)
       goto bad_packet;
     }
 
+    samples *= nframes;
+
     GST_LOG_OBJECT (depay, "Got payload of %d", payload_len);
 
     if (nframes * framelen > (gint) payload_len) {
@@ -272,6 +366,18 @@ gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstRTPBuffer * rtp)
     }
   }
 
+  if (depay->ignore_timestamps && data) {
+    GstClockTime duration;
+
+    gst_audio_stream_align_process (depay->stream_align,
+        GST_BUFFER_IS_DISCONT (rtp->buffer), timestamp, samples, &timestamp,
+        &duration, NULL);
+
+    GST_BUFFER_PTS (data) = timestamp;
+    GST_BUFFER_DTS (data) = GST_CLOCK_TIME_NONE;
+    GST_BUFFER_DURATION (data) = duration;
+  }
+
 out:
   return data;
 
diff --git a/gst/rtp/gstrtpsbcdepay.h b/gst/rtp/gstrtpsbcdepay.h
index 4147a31fd..9cac3add2 100644
--- a/gst/rtp/gstrtpsbcdepay.h
+++ b/gst/rtp/gstrtpsbcdepay.h
@@ -27,6 +27,7 @@
 #include <gst/gst.h>
 #include <gst/base/gstadapter.h>
 #include <gst/rtp/gstrtpbasedepayload.h>
+#include <gst/audio/audio.h>
 
 G_BEGIN_DECLS
 #define GST_TYPE_RTP_SBC_DEPAY \
@@ -50,6 +51,10 @@ struct _GstRtpSbcDepay
 
   int rate;
   GstAdapter *adapter;
+  gboolean ignore_timestamps;
+
+  /* Timestamp tracking when ignoring input timestamps */
+  GstAudioStreamAlign *stream_align;
 };
 
 struct _GstRtpSbcDepayClass
diff --git a/gst/rtp/gstrtpsbcpay.c b/gst/rtp/gstrtpsbcpay.c
index 794a817ed..1d2cbd409 100644
--- a/gst/rtp/gstrtpsbcpay.c
+++ b/gst/rtp/gstrtpsbcpay.c
@@ -178,52 +178,58 @@ gst_rtp_sbc_pay_flush_buffers (GstRtpSBCPay * sbcpay)
   guint frame_count;
   guint payload_length;
   struct rtp_payload *payload;
+  GstFlowReturn res;
 
   if (sbcpay->frame_length == 0) {
     GST_ERROR_OBJECT (sbcpay, "Frame length is 0");
     return GST_FLOW_ERROR;
   }
 
-  available = gst_adapter_available (sbcpay->adapter);
+  do {
+    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;
 
-  max_payload =
-      gst_rtp_buffer_calc_payload_len (GST_RTP_BASE_PAYLOAD_MTU (sbcpay) -
-      RTP_SBC_PAYLOAD_HEADER_SIZE, 0, 0);
+    outbuf = gst_rtp_buffer_new_allocate (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;
+    /* get payload */
+    gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
 
-  outbuf = gst_rtp_buffer_new_allocate (RTP_SBC_PAYLOAD_HEADER_SIZE, 0, 0);
+    gst_rtp_buffer_set_payload_type (&rtp, GST_RTP_BASE_PAYLOAD_PT (sbcpay));
 
-  /* get payload */
-  gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
+    /* 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_rtp_buffer_set_payload_type (&rtp, GST_RTP_BASE_PAYLOAD_PT (sbcpay));
+    gst_rtp_buffer_unmap (&rtp);
 
-  /* 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;
+    paybuf = gst_adapter_take_buffer_fast (sbcpay->adapter, payload_length);
+    gst_rtp_copy_audio_meta (sbcpay, outbuf, paybuf);
+    outbuf = gst_buffer_append (outbuf, paybuf);
 
-  gst_rtp_buffer_unmap (&rtp);
+    GST_BUFFER_PTS (outbuf) = sbcpay->last_timestamp;
+    GST_BUFFER_DURATION (outbuf) = frame_count * sbcpay->frame_duration;
+    GST_DEBUG_OBJECT (sbcpay, "Pushing %d bytes: %" GST_TIME_FORMAT,
+        payload_length, GST_TIME_ARGS (GST_BUFFER_PTS (outbuf)));
 
-  paybuf = gst_adapter_take_buffer_fast (sbcpay->adapter, payload_length);
-  gst_rtp_copy_meta (GST_ELEMENT_CAST (sbcpay), outbuf, paybuf,
-      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
-  outbuf = gst_buffer_append (outbuf, paybuf);
+    sbcpay->last_timestamp += frame_count * sbcpay->frame_duration;
 
-  GST_BUFFER_PTS (outbuf) = sbcpay->last_timestamp;
-  GST_BUFFER_DURATION (outbuf) = frame_count * sbcpay->frame_duration;
-  GST_DEBUG_OBJECT (sbcpay, "Pushing %d bytes: %" GST_TIME_FORMAT,
-      payload_length, GST_TIME_ARGS (GST_BUFFER_PTS (outbuf)));
+    res = gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (sbcpay), outbuf);
 
-  sbcpay->last_timestamp += frame_count * sbcpay->frame_duration;
+    /* try to send another RTP buffer if available data exceeds MTU size */
+  } while (res == GST_FLOW_OK);
 
-  return gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (sbcpay), outbuf);
+  return res;
 }
 
 static GstFlowReturn
diff --git a/gst/rtp/gstrtpsbcpay.h b/gst/rtp/gstrtpsbcpay.h
index 76ee66da3..e57022980 100644
--- a/gst/rtp/gstrtpsbcpay.h
+++ b/gst/rtp/gstrtpsbcpay.h
@@ -27,35 +27,35 @@
 G_BEGIN_DECLS
 
 #define GST_TYPE_RTP_SBC_PAY \
-	(gst_rtp_sbc_pay_get_type())
+  (gst_rtp_sbc_pay_get_type())
 #define GST_RTP_SBC_PAY(obj) \
-	(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_SBC_PAY,\
-		GstRtpSBCPay))
+  (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))
+  (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))
+  (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))
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_SBC_PAY))
 
 typedef struct _GstRtpSBCPay GstRtpSBCPay;
 typedef struct _GstRtpSBCPayClass GstRtpSBCPayClass;
 
 struct _GstRtpSBCPay {
-	GstRTPBasePayload base;
+  GstRTPBasePayload base;
 
-	GstAdapter *adapter;
-	GstClockTime last_timestamp;
+  GstAdapter *adapter;
+  GstClockTime last_timestamp;
 
-	guint frame_length;
-        GstClockTime frame_duration;
+  guint frame_length;
+  GstClockTime frame_duration;
 
-	guint min_frames;
+  guint min_frames;
 };
 
 struct _GstRtpSBCPayClass {
-	GstRTPBasePayloadClass parent_class;
+  GstRTPBasePayloadClass parent_class;
 };
 
 GType gst_rtp_sbc_pay_get_type(void);
diff --git a/gst/rtp/gstrtpsirendepay.c b/gst/rtp/gstrtpsirendepay.c
index 15b710950..f22726810 100644
--- a/gst/rtp/gstrtpsirendepay.c
+++ b/gst/rtp/gstrtpsirendepay.c
@@ -111,8 +111,7 @@ gst_rtp_siren_depay_process (GstRTPBaseDepayload * depayload,
   outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
 
   if (outbuf) {
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (depayload, outbuf);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpspeexdepay.c b/gst/rtp/gstrtpspeexdepay.c
index a6f389eed..a2c987bd6 100644
--- a/gst/rtp/gstrtpspeexdepay.c
+++ b/gst/rtp/gstrtpspeexdepay.c
@@ -212,8 +212,7 @@ gst_rtp_speex_depay_process (GstRTPBaseDepayload * depayload,
 
   if (outbuf) {
     GST_BUFFER_DURATION (outbuf) = 20 * GST_MSECOND;
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
-        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_drop_non_audio_meta (depayload, outbuf);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpspeexpay.c b/gst/rtp/gstrtpspeexpay.c
index 8dcd1f194..7816bd63c 100644
--- a/gst/rtp/gstrtpspeexpay.c
+++ b/gst/rtp/gstrtpspeexpay.c
@@ -289,8 +289,7 @@ gst_rtp_speex_pay_handle_buffer (GstRTPBasePayload * basepayload,
   GST_BUFFER_PTS (outbuf) = timestamp;
   GST_BUFFER_DURATION (outbuf) = duration;
 
-  gst_rtp_copy_meta (GST_ELEMENT_CAST (basepayload), outbuf, buffer,
-      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  gst_rtp_copy_audio_meta (basepayload, outbuf, buffer);
   outbuf = gst_buffer_append (outbuf, buffer);
   buffer = NULL;
 
diff --git a/gst/rtp/gstrtpsv3vdepay.c b/gst/rtp/gstrtpsv3vdepay.c
index 932eb1e64..3d091c2b8 100644
--- a/gst/rtp/gstrtpsv3vdepay.c
+++ b/gst/rtp/gstrtpsv3vdepay.c
@@ -265,8 +265,7 @@ gst_rtp_sv3v_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
       avail = gst_adapter_available (rtpsv3vdepay->adapter);
       GST_DEBUG ("Returning completed output buffer [%d bytes]", avail);
       outbuf = gst_adapter_take_buffer (rtpsv3vdepay->adapter, avail);
-      gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpsv3vdepay), outbuf,
-          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+      gst_rtp_drop_non_video_meta (rtpsv3vdepay, outbuf);
     }
   }
 
diff --git a/gst/rtp/gstrtptheorapay.c b/gst/rtp/gstrtptheorapay.c
index b6c5bde2d..f9839bced 100644
--- a/gst/rtp/gstrtptheorapay.c
+++ b/gst/rtp/gstrtptheorapay.c
@@ -335,8 +335,7 @@ gst_rtp_theora_pay_flush_packet (GstRtpTheoraPay * rtptheorapay)
 
   for (l = g_list_last (rtptheorapay->packet_buffers); l; l = l->prev) {
     GstBuffer *buf = GST_BUFFER_CAST (l->data);
-    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtptheorapay), rtptheorapay->packet,
-        buf, g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_copy_video_meta (rtptheorapay, rtptheorapay->packet, buf);
     gst_buffer_unref (buf);
   }
   g_list_free (rtptheorapay->packet_buffers);
diff --git a/gst/rtp/gstrtputils.c b/gst/rtp/gstrtputils.c
index 28735af11..044d1b30a 100644
--- a/gst/rtp/gstrtputils.c
+++ b/gst/rtp/gstrtputils.c
@@ -26,6 +26,9 @@ typedef struct
   GQuark copy_tag;
 } CopyMetaData;
 
+GQuark rtp_quark_meta_tag_video;
+GQuark rtp_quark_meta_tag_audio;
+
 static gboolean
 foreach_metadata_copy (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
 {
@@ -61,6 +64,20 @@ gst_rtp_copy_meta (GstElement * element, GstBuffer * outbuf, GstBuffer * inbuf,
   gst_buffer_foreach_meta (inbuf, foreach_metadata_copy, &data);
 }
 
+void
+gst_rtp_copy_video_meta (gpointer element, GstBuffer * outbuf,
+    GstBuffer * inbuf)
+{
+  gst_rtp_copy_meta (element, outbuf, inbuf, rtp_quark_meta_tag_video);
+}
+
+void
+gst_rtp_copy_audio_meta (gpointer element, GstBuffer * outbuf,
+    GstBuffer * inbuf)
+{
+  gst_rtp_copy_meta (element, outbuf, inbuf, rtp_quark_meta_tag_audio);
+}
+
 typedef struct
 {
   GstElement *element;
@@ -96,6 +113,18 @@ gst_rtp_drop_meta (GstElement * element, GstBuffer * buf, GQuark keep_tag)
   gst_buffer_foreach_meta (buf, foreach_metadata_drop, &data);
 }
 
+void
+gst_rtp_drop_non_audio_meta (gpointer element, GstBuffer * buf)
+{
+  gst_rtp_drop_meta (element, buf, rtp_quark_meta_tag_audio);
+}
+
+void
+gst_rtp_drop_non_video_meta (gpointer element, GstBuffer * buf)
+{
+  gst_rtp_drop_meta (element, buf, rtp_quark_meta_tag_video);
+}
+
 /* Stolen from bad/gst/mpegtsdemux/payloader_parsers.c */
 /* variable length Exp-Golomb parsing according to H.265 spec section 9.2*/
 gboolean
diff --git a/gst/rtp/gstrtputils.h b/gst/rtp/gstrtputils.h
index 3910aeb99..d5195f213 100644
--- a/gst/rtp/gstrtputils.h
+++ b/gst/rtp/gstrtputils.h
@@ -28,12 +28,27 @@ G_BEGIN_DECLS
 G_GNUC_INTERNAL
 void gst_rtp_copy_meta (GstElement * element, GstBuffer *outbuf, GstBuffer *inbuf, GQuark copy_tag);
 
+G_GNUC_INTERNAL
+void gst_rtp_copy_audio_meta (gpointer element, GstBuffer *outbuf, GstBuffer *inbuf);
+
+G_GNUC_INTERNAL
+void gst_rtp_copy_video_meta (gpointer element, GstBuffer *outbuf, GstBuffer *inbuf);
+
 G_GNUC_INTERNAL
 void gst_rtp_drop_meta (GstElement * element, GstBuffer *buf, GQuark keep_tag);
 
+G_GNUC_INTERNAL
+void gst_rtp_drop_non_audio_meta (gpointer element, GstBuffer * buf);
+
+G_GNUC_INTERNAL
+void gst_rtp_drop_non_video_meta (gpointer element, GstBuffer * buf);
+
 G_GNUC_INTERNAL
 gboolean gst_rtp_read_golomb (GstBitReader * br, guint32 * value);
 
+G_GNUC_INTERNAL extern GQuark rtp_quark_meta_tag_video;
+G_GNUC_INTERNAL extern GQuark rtp_quark_meta_tag_audio;
+
 G_END_DECLS
 
 #endif /* __GST_RTP_UTILS_H__ */
diff --git a/gst/rtp/gstrtpvorbisdepay.c b/gst/rtp/gstrtpvorbisdepay.c
index 762750a0a..d3618b975 100644
--- a/gst/rtp/gstrtpvorbisdepay.c
+++ b/gst/rtp/gstrtpvorbisdepay.c
@@ -134,6 +134,22 @@ gst_rtp_vorbis_depay_finalize (GObject * object)
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
+static gboolean
+gst_rtp_vorbis_depay_has_ident (GstRtpVorbisDepay * rtpvorbisdepay,
+    guint32 ident)
+{
+  GList *walk;
+
+  for (walk = rtpvorbisdepay->configs; walk; walk = g_list_next (walk)) {
+    GstRtpVorbisConfig *conf = (GstRtpVorbisConfig *) walk->data;
+
+    if (conf->ident == ident)
+      return TRUE;
+  }
+
+  return FALSE;
+}
+
 /* takes ownership of confbuf */
 static gboolean
 gst_rtp_vorbis_depay_parse_configuration (GstRtpVorbisDepay * rtpvorbisdepay,
@@ -228,6 +244,13 @@ gst_rtp_vorbis_depay_parse_configuration (GstRtpVorbisDepay * rtpvorbisdepay,
     if (size < length && size + 1 != length)
       goto too_small;
 
+    if (gst_rtp_vorbis_depay_has_ident (rtpvorbisdepay, ident)) {
+      size -= length;
+      data += length;
+      offset += length;
+      continue;
+    }
+
     /* read header sizes we read 2 sizes, the third size (for which we allocate
      * space) must be derived from the total packed header length. */
     h_sizes = g_newa (guint, n_headers + 1);
diff --git a/gst/rtp/gstrtpvorbispay.c b/gst/rtp/gstrtpvorbispay.c
index 24c8fbb12..b6bb507e9 100644
--- a/gst/rtp/gstrtpvorbispay.c
+++ b/gst/rtp/gstrtpvorbispay.c
@@ -330,8 +330,7 @@ gst_rtp_vorbis_pay_flush_packet (GstRtpVorbisPay * rtpvorbispay)
 
   for (l = g_list_last (rtpvorbispay->packet_buffers); l; l = l->prev) {
     GstBuffer *buf = GST_BUFFER_CAST (l->data);
-    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpvorbispay), rtpvorbispay->packet,
-        buf, g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_rtp_copy_audio_meta (rtpvorbispay, rtpvorbispay->packet, buf);
     gst_buffer_unref (buf);
   }
   g_list_free (rtpvorbispay->packet_buffers);
diff --git a/gst/rtp/gstrtpvp8depay.c b/gst/rtp/gstrtpvp8depay.c
index 9fb631a8c..7c0d707d0 100644
--- a/gst/rtp/gstrtpvp8depay.c
+++ b/gst/rtp/gstrtpvp8depay.c
@@ -186,8 +186,7 @@ gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depay, GstRTPBuffer * rtp)
     /* mark keyframes */
     out = gst_buffer_make_writable (out);
     /* Filter away all metas that are not sensible to copy */
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (self), out,
-        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_drop_non_video_meta (self, out);
     if ((header[0] & 0x01)) {
       GST_BUFFER_FLAG_SET (out, GST_BUFFER_FLAG_DELTA_UNIT);
 
diff --git a/gst/rtp/gstrtpvp8pay.c b/gst/rtp/gstrtpvp8pay.c
index c5494d0bc..964950208 100644
--- a/gst/rtp/gstrtpvp8pay.c
+++ b/gst/rtp/gstrtpvp8pay.c
@@ -439,8 +439,8 @@ gst_rtp_vp8_payload_next (GstRtpVP8Pay * self, GstBufferList * list,
       offset == self->partition_offset[partition], mark, buffer);
   sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, offset, available);
 
-  gst_rtp_copy_meta (GST_ELEMENT_CAST (self), header, buffer,
-      g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+  gst_rtp_copy_video_meta (self, header, buffer);
+
   out = gst_buffer_append (header, sub);
 
   gst_buffer_list_insert (list, -1, out);
diff --git a/gst/rtp/gstrtpvp9depay.c b/gst/rtp/gstrtpvp9depay.c
index 15cf9e29f..c61affca5 100644
--- a/gst/rtp/gstrtpvp9depay.c
+++ b/gst/rtp/gstrtpvp9depay.c
@@ -275,8 +275,7 @@ gst_rtp_vp9_depay_process (GstRTPBaseDepayload * depay, GstRTPBuffer * rtp)
     /* mark keyframes */
     out = gst_buffer_make_writable (out);
     /* Filter away all metas that are not sensible to copy */
-    gst_rtp_drop_meta (GST_ELEMENT_CAST (self), out,
-        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_rtp_drop_non_video_meta (self, out);
     if (!key_frame_first_layer) {
       GST_BUFFER_FLAG_SET (out, GST_BUFFER_FLAG_DELTA_UNIT);
 
diff --git a/gst/rtp/gstrtpvp9pay.c b/gst/rtp/gstrtpvp9pay.c
index 945affbce..a0b01e1b4 100644
--- a/gst/rtp/gstrtpvp9pay.c
+++ b/gst/rtp/gstrtpvp9pay.c
@@ -454,8 +454,8 @@ gst_rtp_vp9_payload_next (GstRtpVP9Pay * self, GstBufferList * list,
   header = gst_rtp_vp9_create_header_buffer (self, offset == 0, mark, buffer);
   sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, offset, available);
 
-  gst_rtp_copy_meta (GST_ELEMENT_CAST (self), header, buffer,
-      g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+  gst_rtp_copy_video_meta (self, header, buffer);
+
   out = gst_buffer_append (header, sub);
 
   gst_buffer_list_insert (list, -1, out);
diff --git a/gst/rtp/gstrtpvrawdepay.c b/gst/rtp/gstrtpvrawdepay.c
index 28848fbf0..a02bb519c 100644
--- a/gst/rtp/gstrtpvrawdepay.c
+++ b/gst/rtp/gstrtpvrawdepay.c
@@ -409,8 +409,7 @@ gst_rtp_vraw_depay_process_packet (GstRTPBaseDepayload * depayload,
   /* remember header position */
   headers = payload;
 
-  gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpvrawdepay), frame->buffer,
-      rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+  gst_rtp_copy_video_meta (rtpvrawdepay, frame->buffer, rtp->buffer);
 
   /* find data start */
   do {
diff --git a/gst/rtp/gstrtpvrawpay.c b/gst/rtp/gstrtpvrawpay.c
index 9368936b1..50a482066 100644
--- a/gst/rtp/gstrtpvrawpay.c
+++ b/gst/rtp/gstrtpvrawpay.c
@@ -560,9 +560,7 @@ gst_rtp_vraw_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer)
         gst_buffer_resize (out, 0, gst_buffer_get_size (out) - left);
       }
 
-      gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpvrawpay), out, buffer,
-          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
-
+      gst_rtp_copy_video_meta (rtpvrawpay, out, buffer);
 
       /* Now either push out the buffer directly */
       if (!use_buffer_lists) {
diff --git a/gst/rtp/meson.build b/gst/rtp/meson.build
index 46966332a..6f24152dd 100644
--- a/gst/rtp/meson.build
+++ b/gst/rtp/meson.build
@@ -54,6 +54,8 @@ rtp_sources = [
   'gstrtpj2kpay.c',
   'gstrtpjpegdepay.c',
   'gstrtpjpegpay.c',
+  'gstrtpL8depay.c',
+  'gstrtpL8pay.c',
   'gstrtpL16depay.c',
   'gstrtpL16pay.c',
   'gstrtpL24depay.c',
diff --git a/gst/rtpmanager/Makefile.am b/gst/rtpmanager/Makefile.am
index 222a8c7ec..598e61f12 100644
--- a/gst/rtpmanager/Makefile.am
+++ b/gst/rtpmanager/Makefile.am
@@ -37,4 +37,3 @@ libgstrtpmanager_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 	$(GST_NET_LIBS) -lgstrtp-@GST_API_VERSION@ \
 	$(GST_BASE_LIBS) $(GST_LIBS)
 libgstrtpmanager_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstrtpmanager_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
diff --git a/gst/rtpmanager/Makefile.in b/gst/rtpmanager/Makefile.in
index 87dd8bcbb..ca047dde6 100644
--- a/gst/rtpmanager/Makefile.in
+++ b/gst/rtpmanager/Makefile.in
@@ -187,8 +187,8 @@ 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) \
+	$(AM_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@)
@@ -306,6 +306,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -329,6 +330,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -344,6 +347,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -366,10 +371,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -384,6 +396,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -401,6 +414,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -413,6 +428,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -431,6 +448,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -474,9 +494,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -490,11 +521,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -625,7 +661,6 @@ libgstrtpmanager_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 	$(GST_BASE_LIBS) $(GST_LIBS)
 
 libgstrtpmanager_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstrtpmanager_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 all: all-am
 
 .SUFFIXES:
@@ -745,109 +780,109 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstrtpmanager_la-gstrtpmanager.lo: gstrtpmanager.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-gstrtpmanager.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpmanager.Tpo -c -o libgstrtpmanager_la-gstrtpmanager.lo `test -f 'gstrtpmanager.c' || echo '$(srcdir)/'`gstrtpmanager.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpmanager.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpmanager.Tpo -c -o libgstrtpmanager_la-gstrtpmanager.lo `test -f 'gstrtpmanager.c' || echo '$(srcdir)/'`gstrtpmanager.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpmanager.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpmanager.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmanager.c' object='libgstrtpmanager_la-gstrtpmanager.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-gstrtpmanager.lo `test -f 'gstrtpmanager.c' || echo '$(srcdir)/'`gstrtpmanager.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpmanager.lo `test -f 'gstrtpmanager.c' || echo '$(srcdir)/'`gstrtpmanager.c
 
 libgstrtpmanager_la-gstrtpbin.lo: gstrtpbin.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-gstrtpbin.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpbin.Tpo -c -o libgstrtpmanager_la-gstrtpbin.lo `test -f 'gstrtpbin.c' || echo '$(srcdir)/'`gstrtpbin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpbin.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpbin.Tpo -c -o libgstrtpmanager_la-gstrtpbin.lo `test -f 'gstrtpbin.c' || echo '$(srcdir)/'`gstrtpbin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpbin.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpbin.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpbin.c' object='libgstrtpmanager_la-gstrtpbin.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-gstrtpbin.lo `test -f 'gstrtpbin.c' || echo '$(srcdir)/'`gstrtpbin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpjitterbuffer.c' object='libgstrtpmanager_la-gstrtpjitterbuffer.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-gstrtpjitterbuffer.lo `test -f 'gstrtpjitterbuffer.c' || echo '$(srcdir)/'`gstrtpjitterbuffer.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(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_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpptdemux.c' object='libgstrtpmanager_la-gstrtpptdemux.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-gstrtpptdemux.lo `test -f 'gstrtpptdemux.c' || echo '$(srcdir)/'`gstrtpptdemux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpptdemux.lo `test -f 'gstrtpptdemux.c' || echo '$(srcdir)/'`gstrtpptdemux.c
 
 libgstrtpmanager_la-gstrtprtxqueue.lo: gstrtprtxqueue.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-gstrtprtxqueue.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtprtxqueue.Tpo -c -o libgstrtpmanager_la-gstrtprtxqueue.lo `test -f 'gstrtprtxqueue.c' || echo '$(srcdir)/'`gstrtprtxqueue.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtprtxqueue.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtprtxqueue.Tpo -c -o libgstrtpmanager_la-gstrtprtxqueue.lo `test -f 'gstrtprtxqueue.c' || echo '$(srcdir)/'`gstrtprtxqueue.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtprtxqueue.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtprtxqueue.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtprtxqueue.c' object='libgstrtpmanager_la-gstrtprtxqueue.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-gstrtprtxqueue.lo `test -f 'gstrtprtxqueue.c' || echo '$(srcdir)/'`gstrtprtxqueue.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtprtxqueue.lo `test -f 'gstrtprtxqueue.c' || echo '$(srcdir)/'`gstrtprtxqueue.c
 
 libgstrtpmanager_la-gstrtprtxreceive.lo: gstrtprtxreceive.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-gstrtprtxreceive.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtprtxreceive.Tpo -c -o libgstrtpmanager_la-gstrtprtxreceive.lo `test -f 'gstrtprtxreceive.c' || echo '$(srcdir)/'`gstrtprtxreceive.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtprtxreceive.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtprtxreceive.Tpo -c -o libgstrtpmanager_la-gstrtprtxreceive.lo `test -f 'gstrtprtxreceive.c' || echo '$(srcdir)/'`gstrtprtxreceive.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtprtxreceive.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtprtxreceive.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtprtxreceive.c' object='libgstrtpmanager_la-gstrtprtxreceive.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-gstrtprtxreceive.lo `test -f 'gstrtprtxreceive.c' || echo '$(srcdir)/'`gstrtprtxreceive.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtprtxreceive.lo `test -f 'gstrtprtxreceive.c' || echo '$(srcdir)/'`gstrtprtxreceive.c
 
 libgstrtpmanager_la-gstrtprtxsend.lo: gstrtprtxsend.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-gstrtprtxsend.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtprtxsend.Tpo -c -o libgstrtpmanager_la-gstrtprtxsend.lo `test -f 'gstrtprtxsend.c' || echo '$(srcdir)/'`gstrtprtxsend.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtprtxsend.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtprtxsend.Tpo -c -o libgstrtpmanager_la-gstrtprtxsend.lo `test -f 'gstrtprtxsend.c' || echo '$(srcdir)/'`gstrtprtxsend.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtprtxsend.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtprtxsend.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtprtxsend.c' object='libgstrtpmanager_la-gstrtprtxsend.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-gstrtprtxsend.lo `test -f 'gstrtprtxsend.c' || echo '$(srcdir)/'`gstrtprtxsend.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtprtxsend.lo `test -f 'gstrtprtxsend.c' || echo '$(srcdir)/'`gstrtprtxsend.c
 
 libgstrtpmanager_la-gstrtpssrcdemux.lo: gstrtpssrcdemux.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-gstrtpssrcdemux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Tpo -c -o libgstrtpmanager_la-gstrtpssrcdemux.lo `test -f 'gstrtpssrcdemux.c' || echo '$(srcdir)/'`gstrtpssrcdemux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpssrcdemux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Tpo -c -o libgstrtpmanager_la-gstrtpssrcdemux.lo `test -f 'gstrtpssrcdemux.c' || echo '$(srcdir)/'`gstrtpssrcdemux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpssrcdemux.c' object='libgstrtpmanager_la-gstrtpssrcdemux.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-gstrtpssrcdemux.lo `test -f 'gstrtpssrcdemux.c' || echo '$(srcdir)/'`gstrtpssrcdemux.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpssrcdemux.lo `test -f 'gstrtpssrcdemux.c' || echo '$(srcdir)/'`gstrtpssrcdemux.c
 
 libgstrtpmanager_la-rtpjitterbuffer.lo: rtpjitterbuffer.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-rtpjitterbuffer.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-rtpjitterbuffer.Tpo -c -o libgstrtpmanager_la-rtpjitterbuffer.lo `test -f 'rtpjitterbuffer.c' || echo '$(srcdir)/'`rtpjitterbuffer.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-rtpjitterbuffer.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-rtpjitterbuffer.Tpo -c -o libgstrtpmanager_la-rtpjitterbuffer.lo `test -f 'rtpjitterbuffer.c' || echo '$(srcdir)/'`rtpjitterbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-rtpjitterbuffer.Tpo $(DEPDIR)/libgstrtpmanager_la-rtpjitterbuffer.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rtpjitterbuffer.c' object='libgstrtpmanager_la-rtpjitterbuffer.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-rtpjitterbuffer.lo `test -f 'rtpjitterbuffer.c' || echo '$(srcdir)/'`rtpjitterbuffer.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-rtpjitterbuffer.lo `test -f 'rtpjitterbuffer.c' || echo '$(srcdir)/'`rtpjitterbuffer.c
 
 libgstrtpmanager_la-rtpsession.lo: rtpsession.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-rtpsession.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-rtpsession.Tpo -c -o libgstrtpmanager_la-rtpsession.lo `test -f 'rtpsession.c' || echo '$(srcdir)/'`rtpsession.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-rtpsession.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-rtpsession.Tpo -c -o libgstrtpmanager_la-rtpsession.lo `test -f 'rtpsession.c' || echo '$(srcdir)/'`rtpsession.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-rtpsession.Tpo $(DEPDIR)/libgstrtpmanager_la-rtpsession.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rtpsession.c' object='libgstrtpmanager_la-rtpsession.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-rtpsession.lo `test -f 'rtpsession.c' || echo '$(srcdir)/'`rtpsession.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-rtpsession.lo `test -f 'rtpsession.c' || echo '$(srcdir)/'`rtpsession.c
 
 libgstrtpmanager_la-rtpsource.lo: rtpsource.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-rtpsource.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-rtpsource.Tpo -c -o libgstrtpmanager_la-rtpsource.lo `test -f 'rtpsource.c' || echo '$(srcdir)/'`rtpsource.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-rtpsource.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-rtpsource.Tpo -c -o libgstrtpmanager_la-rtpsource.lo `test -f 'rtpsource.c' || echo '$(srcdir)/'`rtpsource.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-rtpsource.Tpo $(DEPDIR)/libgstrtpmanager_la-rtpsource.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rtpsource.c' object='libgstrtpmanager_la-rtpsource.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-rtpsource.lo `test -f 'rtpsource.c' || echo '$(srcdir)/'`rtpsource.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-rtpsource.lo `test -f 'rtpsource.c' || echo '$(srcdir)/'`rtpsource.c
 
 libgstrtpmanager_la-rtpstats.lo: rtpstats.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-rtpstats.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-rtpstats.Tpo -c -o libgstrtpmanager_la-rtpstats.lo `test -f 'rtpstats.c' || echo '$(srcdir)/'`rtpstats.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-rtpstats.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-rtpstats.Tpo -c -o libgstrtpmanager_la-rtpstats.lo `test -f 'rtpstats.c' || echo '$(srcdir)/'`rtpstats.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-rtpstats.Tpo $(DEPDIR)/libgstrtpmanager_la-rtpstats.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rtpstats.c' object='libgstrtpmanager_la-rtpstats.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-rtpstats.lo `test -f 'rtpstats.c' || echo '$(srcdir)/'`rtpstats.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-rtpstats.lo `test -f 'rtpstats.c' || echo '$(srcdir)/'`rtpstats.c
 
 libgstrtpmanager_la-gstrtpsession.lo: gstrtpsession.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-gstrtpsession.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpsession.Tpo -c -o libgstrtpmanager_la-gstrtpsession.lo `test -f 'gstrtpsession.c' || echo '$(srcdir)/'`gstrtpsession.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpsession.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpsession.Tpo -c -o libgstrtpmanager_la-gstrtpsession.lo `test -f 'gstrtpsession.c' || echo '$(srcdir)/'`gstrtpsession.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpsession.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpsession.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpsession.c' object='libgstrtpmanager_la-gstrtpsession.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-gstrtpsession.lo `test -f 'gstrtpsession.c' || echo '$(srcdir)/'`gstrtpsession.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpsession.lo `test -f 'gstrtpsession.c' || echo '$(srcdir)/'`gstrtpsession.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c
index 919477310..d848711a3 100644
--- a/gst/rtpmanager/gstrtpbin.c
+++ b/gst/rtpmanager/gstrtpbin.c
@@ -230,6 +230,10 @@ G_STMT_START {                                   \
 #define GST_RTP_BIN_SHUTDOWN_UNLOCK(bin)         \
   GST_RTP_BIN_DYN_UNLOCK (bin);                  \
 
+/* Minimum time offset to apply. This compensates for rounding errors in NTP to
+ * RTP timestamp conversions */
+#define MIN_TS_OFFSET (4 * GST_MSECOND)
+
 struct _GstRtpBinPrivate
 {
   GMutex bin_lock;
@@ -309,6 +313,8 @@ enum
 #define DEFAULT_MAX_MISORDER_TIME    2000
 #define DEFAULT_RFC7273_SYNC         FALSE
 #define DEFAULT_MAX_STREAMS          G_MAXUINT
+#define DEFAULT_MAX_TS_OFFSET_ADJUSTMENT G_GUINT64_CONSTANT(0)
+#define DEFAULT_MAX_TS_OFFSET        G_GINT64_CONSTANT(3000000000)
 
 enum
 {
@@ -333,7 +339,9 @@ enum
   PROP_MAX_DROPOUT_TIME,
   PROP_MAX_MISORDER_TIME,
   PROP_RFC7273_SYNC,
-  PROP_MAX_STREAMS
+  PROP_MAX_STREAMS,
+  PROP_MAX_TS_OFFSET_ADJUSTMENT,
+  PROP_MAX_TS_OFFSET
 };
 
 #define GST_RTP_BIN_RTCP_SYNC_TYPE (gst_rtp_bin_rtcp_sync_get_type())
@@ -857,6 +865,10 @@ bin_manage_element (GstRtpBin * bin, GstElement * element)
     GST_DEBUG_OBJECT (bin, "requested element %p already in bin", element);
   } else {
     GST_DEBUG_OBJECT (bin, "adding requested element %p", element);
+
+    if (g_object_is_floating (element))
+      element = gst_object_ref_sink (element);
+
     if (!gst_bin_add (GST_BIN_CAST (bin), element))
       goto add_failed;
     if (!gst_element_sync_state_with_parent (element))
@@ -872,6 +884,7 @@ bin_manage_element (GstRtpBin * bin, GstElement * element)
 add_failed:
   {
     GST_WARNING_OBJECT (bin, "unable to add element");
+    gst_object_unref (element);
     return FALSE;
   }
 }
@@ -886,10 +899,13 @@ remove_bin_element (GstElement * element, GstRtpBin * bin)
   if (find) {
     priv->elements = g_list_delete_link (priv->elements, find);
 
-    if (!g_list_find (priv->elements, element))
+    if (!g_list_find (priv->elements, element)) {
+      gst_element_set_locked_state (element, TRUE);
       gst_bin_remove (GST_BIN_CAST (bin), element);
-    else
-      gst_object_unref (element);
+      gst_element_set_state (element, GST_STATE_NULL);
+    }
+
+    gst_object_unref (element);
   }
 }
 
@@ -1259,7 +1275,8 @@ get_current_times (GstRtpBin * bin, GstClockTime * running_time,
 
 static void
 stream_set_ts_offset (GstRtpBin * bin, GstRtpBinStream * stream,
-    gint64 ts_offset, gboolean check)
+    gint64 ts_offset, gint64 max_ts_offset, gint64 min_ts_offset,
+    gboolean allow_positive_ts_offset)
 {
   gint64 prev_ts_offset;
 
@@ -1275,19 +1292,25 @@ stream_set_ts_offset (GstRtpBin * bin, GstRtpBinStream * stream,
         "ts-offset %" G_GINT64_FORMAT ", prev %" G_GINT64_FORMAT
         ", diff: %" G_GINT64_FORMAT, ts_offset, prev_ts_offset, diff);
 
-    if (check) {
-      /* only change diff when it changed more than 4 milliseconds. This
-       * compensates for rounding errors in NTP to RTP timestamp
-       * conversions */
-      if (ABS (diff) < 4 * GST_MSECOND) {
-        GST_DEBUG_OBJECT (bin, "offset too small, ignoring");
+    /* ignore minor offsets */
+    if (ABS (diff) < min_ts_offset) {
+      GST_DEBUG_OBJECT (bin, "offset too small, ignoring");
+      return;
+    }
+
+    /* sanity check offset */
+    if (max_ts_offset > 0) {
+      if (ts_offset > 0 && !allow_positive_ts_offset) {
+        GST_DEBUG_OBJECT (bin,
+            "offset is positive (clocks are out of sync), ignoring");
         return;
       }
-      if (ABS (diff) > (3 * GST_SECOND)) {
-        GST_WARNING_OBJECT (bin, "offset unusually large, ignoring");
+      if (ABS (ts_offset) > max_ts_offset) {
+        GST_DEBUG_OBJECT (bin, "offset too large, ignoring");
         return;
       }
     }
+
     g_object_set (stream->buffer, "ts-offset", ts_offset, NULL);
   }
   GST_DEBUG_OBJECT (bin, "stream SSRC %08x, delta %" G_GINT64_FORMAT,
@@ -1418,6 +1441,9 @@ gst_rtp_bin_associate (GstRtpBin * bin, GstRtpBinStream * stream, guint8 len,
     GST_DEBUG_OBJECT (bin,
         "local NTP time %" G_GUINT64_FORMAT ", SR NTP time %" G_GUINT64_FORMAT,
         local_ntpnstime, ntpnstime);
+    GST_DEBUG_OBJECT (bin,
+        "local running time %" G_GUINT64_FORMAT ", SR RTP running time %"
+        G_GUINT64_FORMAT, local_running_time, running_time);
     GST_DEBUG_OBJECT (bin,
         "NTP diff %" G_GINT64_FORMAT ", RT diff %" G_GINT64_FORMAT, ntpdiff,
         rtdiff);
@@ -1425,7 +1451,8 @@ gst_rtp_bin_associate (GstRtpBin * bin, GstRtpBinStream * stream, guint8 len,
     /* combine to get the final diff to apply to the running_time */
     stream->rt_delta = rtdiff - ntpdiff;
 
-    stream_set_ts_offset (bin, stream, stream->rt_delta, FALSE);
+    stream_set_ts_offset (bin, stream, stream->rt_delta, bin->max_ts_offset,
+        0, FALSE);
   } else {
     gint64 min, rtp_min, clock_base = stream->clock_base;
     gboolean all_sync, use_rtp;
@@ -1577,7 +1604,8 @@ gst_rtp_bin_associate (GstRtpBin * bin, GstRtpBinStream * stream, guint8 len,
       else
         ts_offset = ostream->rt_delta - min;
 
-      stream_set_ts_offset (bin, ostream, ts_offset, TRUE);
+      stream_set_ts_offset (bin, ostream, ts_offset, bin->max_ts_offset,
+          MIN_TS_OFFSET, TRUE);
     }
   }
   gst_rtp_bin_send_sync_event (stream);
@@ -1756,6 +1784,8 @@ create_stream (GstRtpBinSession * session, guint32 ssrc)
   g_object_set (buffer, "max-dropout-time", rtpbin->max_dropout_time,
       "max-misorder-time", rtpbin->max_misorder_time, NULL);
   g_object_set (buffer, "rfc7273-sync", rtpbin->rfc7273_sync, NULL);
+  g_object_set (buffer, "max-ts-offset-adjustment",
+      rtpbin->max_ts_offset_adjustment, NULL);
 
   g_signal_emit (rtpbin, gst_rtp_bin_signals[SIGNAL_NEW_JITTERBUFFER], 0,
       buffer, session->id, ssrc);
@@ -2490,6 +2520,36 @@ gst_rtp_bin_class_init (GstRtpBinClass * klass)
           0, G_MAXUINT, DEFAULT_MAX_STREAMS,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstRtpBin:max-ts-offset-adjustment:
+   *
+   * Syncing time stamps to NTP time adds a time offset. This parameter
+   * specifies the maximum number of nanoseconds per frame that this time offset
+   * may be adjusted with. This is used to avoid sudden large changes to time
+   * stamps.
+   */
+  g_object_class_install_property (gobject_class, PROP_MAX_TS_OFFSET_ADJUSTMENT,
+      g_param_spec_uint64 ("max-ts-offset-adjustment",
+          "Max Timestamp Offset Adjustment",
+          "The maximum number of nanoseconds per frame that time stamp offsets "
+          "may be adjusted (0 = no limit).", 0, G_MAXUINT64,
+          DEFAULT_MAX_TS_OFFSET_ADJUSTMENT, G_PARAM_READWRITE |
+          G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstRtpBin:max-ts-offset:
+   *
+   * Used to set an upper limit of how large a time offset may be. This
+   * is used to protect against unrealistic values as a result of either
+   * client,server or clock issues.
+   */
+  g_object_class_install_property (gobject_class, PROP_MAX_TS_OFFSET,
+      g_param_spec_int64 ("max-ts-offset", "Max TS Offset",
+          "The maximum absolute value of the time offset in (nanoseconds). "
+          "Note, if the ntp-sync parameter is set the default value is "
+          "changed to 0 (no limit)", 0, G_MAXINT64, DEFAULT_MAX_TS_OFFSET,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_rtp_bin_change_state);
   gstelement_class->request_new_pad =
       GST_DEBUG_FUNCPTR (gst_rtp_bin_request_new_pad);
@@ -2561,6 +2621,9 @@ gst_rtp_bin_init (GstRtpBin * rtpbin)
   rtpbin->max_misorder_time = DEFAULT_MAX_MISORDER_TIME;
   rtpbin->rfc7273_sync = DEFAULT_RFC7273_SYNC;
   rtpbin->max_streams = DEFAULT_MAX_STREAMS;
+  rtpbin->max_ts_offset_adjustment = DEFAULT_MAX_TS_OFFSET_ADJUSTMENT;
+  rtpbin->max_ts_offset = DEFAULT_MAX_TS_OFFSET;
+  rtpbin->max_ts_offset_is_set = FALSE;
 
   /* some default SDES entries */
   cname = g_strdup_printf ("user%u@host-%x", g_random_int (), g_random_int ());
@@ -2676,6 +2739,15 @@ gst_rtp_bin_set_property (GObject * object, guint prop_id,
       break;
     case PROP_NTP_SYNC:
       rtpbin->ntp_sync = g_value_get_boolean (value);
+      /* The default value of max_ts_offset depends on ntp_sync. If user
+       * hasn't set it then change default value */
+      if (!rtpbin->max_ts_offset_is_set) {
+        if (rtpbin->ntp_sync) {
+          rtpbin->max_ts_offset = 0;
+        } else {
+          rtpbin->max_ts_offset = DEFAULT_MAX_TS_OFFSET;
+        }
+      }
       break;
     case PROP_RTCP_SYNC:
       g_atomic_int_set (&rtpbin->rtcp_sync, g_value_get_enum (value));
@@ -2785,6 +2857,15 @@ gst_rtp_bin_set_property (GObject * object, guint prop_id,
     case PROP_MAX_STREAMS:
       rtpbin->max_streams = g_value_get_uint (value);
       break;
+    case PROP_MAX_TS_OFFSET_ADJUSTMENT:
+      rtpbin->max_ts_offset_adjustment = g_value_get_uint64 (value);
+      gst_rtp_bin_propagate_property_to_jitterbuffer (rtpbin,
+          "max-ts-offset-adjustment", value);
+      break;
+    case PROP_MAX_TS_OFFSET:
+      rtpbin->max_ts_offset = g_value_get_int64 (value);
+      rtpbin->max_ts_offset_is_set = TRUE;
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -2873,6 +2954,12 @@ gst_rtp_bin_get_property (GObject * object, guint prop_id,
     case PROP_MAX_STREAMS:
       g_value_set_uint (value, rtpbin->max_streams);
       break;
+    case PROP_MAX_TS_OFFSET_ADJUSTMENT:
+      g_value_set_uint64 (value, rtpbin->max_ts_offset_adjustment);
+      break;
+    case PROP_MAX_TS_OFFSET:
+      g_value_set_int64 (value, rtpbin->max_ts_offset);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
diff --git a/gst/rtpmanager/gstrtpbin.h b/gst/rtpmanager/gstrtpbin.h
index 384b76df9..5722a21e0 100644
--- a/gst/rtpmanager/gstrtpbin.h
+++ b/gst/rtpmanager/gstrtpbin.h
@@ -75,6 +75,9 @@ struct _GstRtpBin {
   guint32         max_misorder_time;
   gboolean        rfc7273_sync;
   guint           max_streams;
+  guint64         max_ts_offset_adjustment;
+  gint64          max_ts_offset;
+  gboolean        max_ts_offset_is_set;
 
   /* a list of session */
   GSList         *sessions;
diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c
index 64f05dc41..678210be9 100644
--- a/gst/rtpmanager/gstrtpjitterbuffer.c
+++ b/gst/rtpmanager/gstrtpjitterbuffer.c
@@ -131,6 +131,7 @@ enum
 #define DEFAULT_LATENCY_MS          200
 #define DEFAULT_DROP_ON_LATENCY     FALSE
 #define DEFAULT_TS_OFFSET           0
+#define DEFAULT_MAX_TS_OFFSET_ADJUSTMENT 0
 #define DEFAULT_DO_LOST             FALSE
 #define DEFAULT_MODE                RTP_JITTER_BUFFER_MODE_SLAVE
 #define DEFAULT_PERCENT             0
@@ -149,6 +150,7 @@ enum
 #define DEFAULT_MAX_DROPOUT_TIME    60000
 #define DEFAULT_MAX_MISORDER_TIME   2000
 #define DEFAULT_RFC7273_SYNC        FALSE
+#define DEFAULT_FASTSTART_MIN_PACKETS 0
 
 #define DEFAULT_AUTO_RTX_DELAY (20 * GST_MSECOND)
 #define DEFAULT_AUTO_RTX_TIMEOUT (40 * GST_MSECOND)
@@ -159,6 +161,7 @@ enum
   PROP_LATENCY,
   PROP_DROP_ON_LATENCY,
   PROP_TS_OFFSET,
+  PROP_MAX_TS_OFFSET_ADJUSTMENT,
   PROP_DO_LOST,
   PROP_MODE,
   PROP_PERCENT,
@@ -177,7 +180,8 @@ enum
   PROP_MAX_RTCP_RTP_TIME_DIFF,
   PROP_MAX_DROPOUT_TIME,
   PROP_MAX_MISORDER_TIME,
-  PROP_RFC7273_SYNC
+  PROP_RFC7273_SYNC,
+  PROP_FASTSTART_MIN_PACKETS
 };
 
 #define JBUF_LOCK(priv)   G_STMT_START {			\
@@ -279,6 +283,7 @@ struct _GstRtpJitterBufferPrivate
   guint64 latency_ns;
   gboolean drop_on_latency;
   gint64 ts_offset;
+  guint64 max_ts_offset_adjustment;
   gboolean do_lost;
   gboolean do_retransmission;
   gboolean rtx_next_seqnum;
@@ -294,6 +299,7 @@ struct _GstRtpJitterBufferPrivate
   gint max_rtcp_rtp_time_diff;
   guint32 max_dropout_time;
   guint32 max_misorder_time;
+  guint faststart_min_packets;
 
   /* the last seqnum we pushed out */
   guint32 last_popped_seqnum;
@@ -334,7 +340,7 @@ struct _GstRtpJitterBufferPrivate
   gint last_pt;
   gint32 clock_rate;
   gint64 clock_base;
-  gint64 prev_ts_offset;
+  gint64 ts_offset_remainder;
 
   /* when we are shutting down */
   GstFlowReturn srcresult;
@@ -365,6 +371,7 @@ struct _GstRtpJitterBufferPrivate
 
   /* for the jitter */
   GstClockTime last_dts;
+  GstClockTime last_pts;
   guint64 last_rtptime;
   GstClockTime avg_jitter;
 };
@@ -459,6 +466,8 @@ static gboolean gst_rtp_jitter_buffer_sink_event (GstPad * pad,
     GstObject * parent, GstEvent * event);
 static GstFlowReturn gst_rtp_jitter_buffer_chain (GstPad * pad,
     GstObject * parent, GstBuffer * buffer);
+static GstFlowReturn gst_rtp_jitter_buffer_chain_list (GstPad * pad,
+    GstObject * parent, GstBufferList * buffer_list);
 
 static gboolean gst_rtp_jitter_buffer_sink_rtcp_event (GstPad * pad,
     GstObject * parent, GstEvent * event);
@@ -546,6 +555,20 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass)
           G_MAXINT64, DEFAULT_TS_OFFSET,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstRtpJitterBuffer:max-ts-offset-adjustment:
+   *
+   * The maximum number of nanoseconds per frame that time offset may be
+   * adjusted with. This is used to avoid sudden large changes to time stamps.
+   */
+  g_object_class_install_property (gobject_class, PROP_MAX_TS_OFFSET_ADJUSTMENT,
+      g_param_spec_uint64 ("max-ts-offset-adjustment",
+          "Max Timestamp Offset Adjustment",
+          "The maximum number of nanoseconds per frame that time stamp "
+          "offsets may be adjusted (0 = no limit).", 0, G_MAXUINT64,
+          DEFAULT_MAX_TS_OFFSET_ADJUSTMENT, G_PARAM_READWRITE |
+          G_PARAM_STATIC_STRINGS));
+
   /**
    * GstRtpJitterBuffer:do-lost:
    *
@@ -851,6 +874,23 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass)
           "(requires clock and offset to be provided)", DEFAULT_RFC7273_SYNC,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstRtpJitterBuffer:faststart-min-packets
+   *
+   * The number of consecutive packets needed to start (set to 0 to
+   * disable faststart. The jitterbuffer will by default start after the
+   * latency has elapsed)
+   *
+   * Since: 1.14
+   */
+  g_object_class_install_property (gobject_class, PROP_FASTSTART_MIN_PACKETS,
+      g_param_spec_uint ("faststart-min-packets", "Faststart minimum packets",
+          "The number of consecutive packets needed to start (set to 0 to "
+          "disable faststart. The jitterbuffer will by default start after "
+          "the latency has elapsed)",
+          0, G_MAXUINT, DEFAULT_FASTSTART_MIN_PACKETS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   /**
    * GstRtpJitterBuffer::request-pt-map:
    * @buffer: the object which received the signal
@@ -960,6 +1000,8 @@ gst_rtp_jitter_buffer_init (GstRtpJitterBuffer * jitterbuffer)
   priv->latency_ms = DEFAULT_LATENCY_MS;
   priv->latency_ns = priv->latency_ms * GST_MSECOND;
   priv->drop_on_latency = DEFAULT_DROP_ON_LATENCY;
+  priv->ts_offset = DEFAULT_TS_OFFSET;
+  priv->max_ts_offset_adjustment = DEFAULT_MAX_TS_OFFSET_ADJUSTMENT;
   priv->do_lost = DEFAULT_DO_LOST;
   priv->do_retransmission = DEFAULT_DO_RETRANSMISSION;
   priv->rtx_next_seqnum = DEFAULT_RTX_NEXT_SEQNUM;
@@ -975,8 +1017,11 @@ gst_rtp_jitter_buffer_init (GstRtpJitterBuffer * jitterbuffer)
   priv->max_rtcp_rtp_time_diff = DEFAULT_MAX_RTCP_RTP_TIME_DIFF;
   priv->max_dropout_time = DEFAULT_MAX_DROPOUT_TIME;
   priv->max_misorder_time = DEFAULT_MAX_MISORDER_TIME;
+  priv->faststart_min_packets = DEFAULT_FASTSTART_MIN_PACKETS;
 
+  priv->ts_offset_remainder = 0;
   priv->last_dts = -1;
+  priv->last_pts = -1;
   priv->last_rtptime = -1;
   priv->avg_jitter = 0;
   priv->timers = g_array_new (FALSE, TRUE, sizeof (TimerData));
@@ -1012,6 +1057,8 @@ gst_rtp_jitter_buffer_init (GstRtpJitterBuffer * jitterbuffer)
 
   gst_pad_set_chain_function (priv->sinkpad,
       GST_DEBUG_FUNCPTR (gst_rtp_jitter_buffer_chain));
+  gst_pad_set_chain_list_function (priv->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_rtp_jitter_buffer_chain_list));
   gst_pad_set_event_function (priv->sinkpad,
       GST_DEBUG_FUNCPTR (gst_rtp_jitter_buffer_sink_event));
   gst_pad_set_query_function (priv->sinkpad,
@@ -1369,7 +1416,7 @@ gst_jitter_buffer_sink_parse_caps (GstRtpJitterBuffer * jitterbuffer,
   if (gst_structure_get_int (caps_struct, "payload", &payload) && pt != -1
       && payload != pt) {
     GST_ERROR_OBJECT (jitterbuffer,
-        "Got caps with wrong payload type (got %d, expected %d)", payload, pt);
+        "Got caps with wrong payload type (got %d, expected %d)", pt, payload);
     return FALSE;
   }
 
@@ -1550,7 +1597,7 @@ gst_rtp_jitter_buffer_flush_stop (GstRtpJitterBuffer * jitterbuffer)
   priv->srcresult = GST_FLOW_OK;
   gst_segment_init (&priv->segment, GST_FORMAT_TIME);
   priv->last_popped_seqnum = -1;
-  priv->last_out_time = -1;
+  priv->last_out_time = GST_CLOCK_TIME_NONE;
   priv->next_seqnum = -1;
   priv->seqnum_base = -1;
   priv->ips_rtptime = -1;
@@ -1969,6 +2016,32 @@ check_buffering_percent (GstRtpJitterBuffer * jitterbuffer, gint percent)
   return message;
 }
 
+static void
+update_offset (GstRtpJitterBuffer * jitterbuffer)
+{
+  GstRtpJitterBufferPrivate *priv;
+
+  priv = jitterbuffer->priv;
+
+  if (priv->ts_offset_remainder != 0) {
+    GST_DEBUG ("adjustment %" G_GUINT64_FORMAT " remain %" G_GINT64_FORMAT
+        " off %" G_GINT64_FORMAT, priv->max_ts_offset_adjustment,
+        priv->ts_offset_remainder, priv->ts_offset);
+    if (ABS (priv->ts_offset_remainder) > priv->max_ts_offset_adjustment) {
+      if (priv->ts_offset_remainder > 0) {
+        priv->ts_offset += priv->max_ts_offset_adjustment;
+        priv->ts_offset_remainder -= priv->max_ts_offset_adjustment;
+      } else {
+        priv->ts_offset -= priv->max_ts_offset_adjustment;
+        priv->ts_offset_remainder += priv->max_ts_offset_adjustment;
+      }
+    } else {
+      priv->ts_offset += priv->ts_offset_remainder;
+      priv->ts_offset_remainder = 0;
+    }
+  }
+}
+
 static GstClockTime
 apply_offset (GstRtpJitterBuffer * jitterbuffer, GstClockTime timestamp)
 {
@@ -2784,6 +2857,37 @@ gst_rtp_jitter_buffer_reset (GstRtpJitterBuffer * jitterbuffer,
   return ret;
 }
 
+static gboolean
+gst_rtp_jitter_buffer_fast_start (GstRtpJitterBuffer * jitterbuffer)
+{
+  GstRtpJitterBufferPrivate *priv;
+  RTPJitterBufferItem *item;
+  TimerData *timer;
+
+  priv = jitterbuffer->priv;
+
+  if (priv->faststart_min_packets == 0)
+    return FALSE;
+
+  item = rtp_jitter_buffer_peek (priv->jbuf);
+  if (!item)
+    return FALSE;
+
+  timer = find_timer (jitterbuffer, item->seqnum);
+  if (!timer || timer->type != TIMER_TYPE_DEADLINE)
+    return FALSE;
+
+  if (rtp_jitter_buffer_can_fast_start (priv->jbuf,
+          priv->faststart_min_packets)) {
+    GST_INFO_OBJECT (jitterbuffer, "We found %i consecutive packet, start now",
+        priv->faststart_min_packets);
+    timer->timeout = -1;
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
 static GstFlowReturn
 gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
     GstBuffer * buffer)
@@ -3096,6 +3200,10 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
     goto duplicate;
   }
 
+  /* Trigger fast start if needed */
+  if (gst_rtp_jitter_buffer_fast_start (jitterbuffer))
+    head = TRUE;
+
   /* update timers */
   update_timers (jitterbuffer, seqnum, dts, pts, do_next_seqnum,
       GST_BUFFER_IS_RETRANSMISSION (buffer), timer);
@@ -3195,6 +3303,31 @@ rtx_duplicate:
   }
 }
 
+/* FIXME: hopefully we can do something more efficient here, especially when
+ * all packets are in order and/or outside of the currently cached range.
+ * Still worthwhile to have it, avoids taking/releasing object lock and pad
+ * stream lock for every single buffer in the default chain_list fallback. */
+static GstFlowReturn
+gst_rtp_jitter_buffer_chain_list (GstPad * pad, GstObject * parent,
+    GstBufferList * buffer_list)
+{
+  GstFlowReturn flow_ret = GST_FLOW_OK;
+  guint i, n;
+
+  n = gst_buffer_list_length (buffer_list);
+  for (i = 0; i < n; ++i) {
+    GstBuffer *buf = gst_buffer_list_get (buffer_list, i);
+
+    flow_ret = gst_rtp_jitter_buffer_chain (pad, parent, gst_buffer_ref (buf));
+
+    if (flow_ret != GST_FLOW_OK)
+      break;
+  }
+  gst_buffer_list_unref (buffer_list);
+
+  return flow_ret;
+}
+
 static GstClockTime
 compute_elapsed (GstRtpJitterBuffer * jitterbuffer, RTPJitterBufferItem * item)
 {
@@ -3332,6 +3465,11 @@ pop_and_push_next (GstRtpJitterBuffer * jitterbuffer, guint seqnum)
           gst_segment_position_from_running_time (&priv->segment,
           GST_FORMAT_TIME, item->pts);
 
+      /* if this is a new frame, check if ts_offset needs to be updated */
+      if (pts != priv->last_pts) {
+        update_offset (jitterbuffer);
+      }
+
       /* apply timestamp with offset to buffer now */
       GST_BUFFER_DTS (outbuf) = apply_offset (jitterbuffer, dts);
       GST_BUFFER_PTS (outbuf) = apply_offset (jitterbuffer, pts);
@@ -3339,6 +3477,7 @@ pop_and_push_next (GstRtpJitterBuffer * jitterbuffer, guint seqnum)
       /* update the elapsed time when we need to check against the npt stop time. */
       update_estimated_eos (jitterbuffer, item);
 
+      priv->last_pts = pts;
       priv->last_out_time = GST_BUFFER_PTS (outbuf);
       break;
     case ITEM_TYPE_LOST:
@@ -4424,10 +4563,26 @@ gst_rtp_jitter_buffer_set_property (GObject * object,
       break;
     case PROP_TS_OFFSET:
       JBUF_LOCK (priv);
-      priv->ts_offset = g_value_get_int64 (value);
+      if (priv->max_ts_offset_adjustment != 0) {
+        gint64 new_offset = g_value_get_int64 (value);
+
+        if (new_offset > priv->ts_offset) {
+          priv->ts_offset_remainder = new_offset - priv->ts_offset;
+        } else {
+          priv->ts_offset_remainder = -(priv->ts_offset - new_offset);
+        }
+      } else {
+        priv->ts_offset = g_value_get_int64 (value);
+        priv->ts_offset_remainder = 0;
+      }
       priv->ts_discont = TRUE;
       JBUF_UNLOCK (priv);
       break;
+    case PROP_MAX_TS_OFFSET_ADJUSTMENT:
+      JBUF_LOCK (priv);
+      priv->max_ts_offset_adjustment = g_value_get_uint64 (value);
+      JBUF_UNLOCK (priv);
+      break;
     case PROP_DO_LOST:
       JBUF_LOCK (priv);
       priv->do_lost = g_value_get_boolean (value);
@@ -4514,6 +4669,11 @@ gst_rtp_jitter_buffer_set_property (GObject * object,
           g_value_get_boolean (value));
       JBUF_UNLOCK (priv);
       break;
+    case PROP_FASTSTART_MIN_PACKETS:
+      JBUF_LOCK (priv);
+      priv->faststart_min_packets = g_value_get_uint (value);
+      JBUF_UNLOCK (priv);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -4546,6 +4706,11 @@ gst_rtp_jitter_buffer_get_property (GObject * object,
       g_value_set_int64 (value, priv->ts_offset);
       JBUF_UNLOCK (priv);
       break;
+    case PROP_MAX_TS_OFFSET_ADJUSTMENT:
+      JBUF_LOCK (priv);
+      g_value_set_uint64 (value, priv->max_ts_offset_adjustment);
+      JBUF_UNLOCK (priv);
+      break;
     case PROP_DO_LOST:
       JBUF_LOCK (priv);
       g_value_set_boolean (value, priv->do_lost);
@@ -4650,6 +4815,11 @@ gst_rtp_jitter_buffer_get_property (GObject * object,
           rtp_jitter_buffer_get_rfc7273_sync (priv->jbuf));
       JBUF_UNLOCK (priv);
       break;
+    case PROP_FASTSTART_MIN_PACKETS:
+      JBUF_LOCK (priv);
+      g_value_set_uint (value, priv->faststart_min_packets);
+      JBUF_UNLOCK (priv);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
diff --git a/gst/rtpmanager/gstrtprtxreceive.c b/gst/rtpmanager/gstrtprtxreceive.c
index ce3466ec8..9a8a66697 100644
--- a/gst/rtpmanager/gstrtprtxreceive.c
+++ b/gst/rtpmanager/gstrtprtxreceive.c
@@ -339,8 +339,7 @@ gst_rtp_rtx_receive_src_event (GstPad * pad, GstObject * parent,
         if (!gst_structure_get_uint (s, "ssrc", &ssrc))
           ssrc = -1;
 
-        GST_DEBUG_OBJECT (rtx,
-            "request seqnum: %" G_GUINT32_FORMAT ", ssrc: %" G_GUINT32_FORMAT,
+        GST_DEBUG_OBJECT (rtx, "got rtx request for seqnum: %u, ssrc: %X",
             seqnum, ssrc);
 
         GST_OBJECT_LOCK (rtx);
@@ -356,8 +355,8 @@ gst_rtp_rtx_receive_src_event (GstPad * pad, GstObject * parent,
         if (g_hash_table_lookup_extended (rtx->ssrc2_ssrc1_map,
                 GUINT_TO_POINTER (ssrc), NULL, &ssrc2)
             && GPOINTER_TO_UINT (ssrc2) != GPOINTER_TO_UINT (ssrc)) {
-          GST_DEBUG_OBJECT (rtx, "Retransmited stream %" G_GUINT32_FORMAT
-              " already associated to its master", GPOINTER_TO_UINT (ssrc2));
+          GST_TRACE_OBJECT (rtx, "Retransmited stream %X already associated "
+              "to its master, %X", GPOINTER_TO_UINT (ssrc2), ssrc);
         } else {
           SsrcAssoc *assoc;
 
@@ -367,15 +366,18 @@ gst_rtp_rtx_receive_src_event (GstPad * pad, GstObject * parent,
           if (g_hash_table_lookup_extended (rtx->seqnum_ssrc1_map,
                   GUINT_TO_POINTER (seqnum), NULL, (gpointer *) & assoc)) {
             if (assoc->ssrc == ssrc) {
+              /* same seqnum, same ssrc */
+
               /* do nothing because we have already considered this request
                * The jitter may be too impatient of the rtx packet has been
                * lost too.
                * It does not mean we reject the event, we still want to forward
                * the request to the gstrtpsession to be translater into a FB NACK
                */
-              GST_DEBUG_OBJECT (rtx, "Duplicated request seqnum: %"
-                  G_GUINT32_FORMAT ", ssrc1: %" G_GUINT32_FORMAT, seqnum, ssrc);
+              GST_LOG_OBJECT (rtx, "Duplicate request: seqnum: %u, ssrc: %X",
+                  seqnum, ssrc);
             } else {
+              /* same seqnum, different ssrc */
 
               /* If the association attempt is larger than ASSOC_TIMEOUT,
                * then we give up on it, and try this one.
@@ -395,9 +397,10 @@ gst_rtp_rtx_receive_src_event (GstPad * pad, GstObject * parent,
                     GUINT_TO_POINTER (seqnum));
                 goto retransmit;
               } else {
-                GST_DEBUG_OBJECT (rtx,
-                    "reject request for seqnum %" G_GUINT32_FORMAT
-                    " of master stream %" G_GUINT32_FORMAT, seqnum, ssrc);
+                GST_INFO_OBJECT (rtx, "rejecting request for seqnum %u"
+                    " of master stream %X; there is already a pending request "
+                    "for the same seqnum on ssrc %X that has not expired",
+                    seqnum, ssrc, assoc->ssrc);
 
                 /* do not forward the event as we are rejecting this request */
                 GST_OBJECT_UNLOCK (rtx);
@@ -415,9 +418,8 @@ gst_rtp_rtx_receive_src_event (GstPad * pad, GstObject * parent,
           }
         }
 
-        GST_DEBUG_OBJECT (rtx,
-            "packet number %" G_GUINT32_FORMAT " of master stream %"
-            G_GUINT32_FORMAT " needs to be retransmitted", seqnum, ssrc);
+        GST_DEBUG_OBJECT (rtx, "packet number %u of master stream %X"
+            " needs to be retransmitted", seqnum, ssrc);
 
         GST_OBJECT_UNLOCK (rtx);
       }
@@ -573,14 +575,17 @@ gst_rtp_rtx_receive_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
         GPOINTER_TO_UINT (g_hash_table_lookup (rtx->rtx_pt_map,
             GUINT_TO_POINTER (payload_type)));
 
+    GST_DEBUG_OBJECT (rtx, "Got rtx packet: rtx seqnum %u, rtx ssrc %X, "
+        "rtx pt %u, orig seqnum %u, orig pt %u", seqnum, ssrc, payload_type,
+        orign_seqnum, origin_payload_type);
+
     /* first we check if we already have associated this retransmission stream
      * to a master stream */
     if (g_hash_table_lookup_extended (rtx->ssrc2_ssrc1_map,
             GUINT_TO_POINTER (ssrc), NULL, &ssrc1)) {
-      GST_DEBUG_OBJECT (rtx,
-          "packet is from retransmission stream %" G_GUINT32_FORMAT
-          " already associated to master stream %" G_GUINT32_FORMAT, ssrc,
-          GPOINTER_TO_UINT (ssrc1));
+      GST_TRACE_OBJECT (rtx,
+          "packet is from retransmission stream %X already associated to "
+          "master stream %X", ssrc, GPOINTER_TO_UINT (ssrc1));
       ssrc2 = ssrc;
     } else {
       SsrcAssoc *assoc;
@@ -590,17 +595,17 @@ gst_rtp_rtx_receive_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
        * history */
       if (g_hash_table_lookup_extended (rtx->seqnum_ssrc1_map,
               GUINT_TO_POINTER (orign_seqnum), NULL, (gpointer *) & assoc)) {
-        GST_DEBUG_OBJECT (rtx,
-            "associate retransmitted stream %" G_GUINT32_FORMAT
-            " to master stream %" G_GUINT32_FORMAT " thanks to packet %"
-            G_GUINT16_FORMAT "", ssrc, assoc->ssrc, orign_seqnum);
+        GST_LOG_OBJECT (rtx,
+            "associating retransmitted stream %X to master stream %X thanks "
+            "to rtx packet %u (orig seqnum %u)", ssrc, assoc->ssrc, seqnum,
+            orign_seqnum);
         ssrc1 = GUINT_TO_POINTER (assoc->ssrc);
         ssrc2 = ssrc;
 
         /* just put a guard */
         if (GPOINTER_TO_UINT (ssrc1) == ssrc2)
           GST_WARNING_OBJECT (rtx, "RTX receiver ssrc2_ssrc1_map bad state, "
-              "ssrc %" G_GUINT32_FORMAT " are the same\n", ssrc);
+              "master and rtx SSRCs are the same (%X)\n", ssrc);
 
         /* free the spot so that this seqnum can be used to do another
          * association */
@@ -620,9 +625,9 @@ gst_rtp_rtx_receive_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 
       } else {
         /* we are not able to associate this rtx packet with a master stream */
-        GST_DEBUG_OBJECT (rtx,
-            "drop rtx packet because its orign_seqnum %" G_GUINT16_FORMAT
-            " is not in pending retransmission requests", orign_seqnum);
+        GST_INFO_OBJECT (rtx,
+            "dropping rtx packet %u because its orig seqnum (%u) is not in our"
+            " pending retransmission requests", seqnum, orign_seqnum);
         drop = TRUE;
       }
     }
@@ -652,13 +657,13 @@ gst_rtp_rtx_receive_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
   /* push the packet */
   if (is_rtx) {
     gst_buffer_unref (buffer);
-    GST_LOG_OBJECT (rtx, "push packet seqnum:%" G_GUINT16_FORMAT
-        " from a restransmission stream ssrc2:%" G_GUINT32_FORMAT " (src %"
-        G_GUINT32_FORMAT ")", orign_seqnum, ssrc2, GPOINTER_TO_UINT (ssrc1));
+    GST_LOG_OBJECT (rtx, "pushing packet seqnum:%u from restransmission "
+        "stream ssrc: %X (master ssrc %X)", orign_seqnum, ssrc2,
+        GPOINTER_TO_UINT (ssrc1));
     ret = gst_pad_push (rtx->srcpad, new_buffer);
   } else {
-    GST_LOG_OBJECT (rtx, "push packet seqnum:%" G_GUINT16_FORMAT
-        " from a master stream ssrc: %" G_GUINT32_FORMAT, seqnum, ssrc);
+    GST_TRACE_OBJECT (rtx, "pushing packet seqnum:%u from master stream "
+        "ssrc: %X", seqnum, ssrc);
     ret = gst_pad_push (rtx->srcpad, buffer);
   }
 
diff --git a/gst/rtpmanager/gstrtprtxsend.c b/gst/rtpmanager/gstrtprtxsend.c
index dda58c85f..4329d8496 100644
--- a/gst/rtpmanager/gstrtprtxsend.c
+++ b/gst/rtpmanager/gstrtprtxsend.c
@@ -387,8 +387,8 @@ gst_rtp_rtx_buffer_new (GstRtpRtxSend * rtx, GstBuffer * buffer)
   fmtp = GPOINTER_TO_UINT (g_hash_table_lookup (rtx->rtx_pt_map,
           GUINT_TO_POINTER (gst_rtp_buffer_get_payload_type (&rtp))));
 
-  GST_DEBUG_OBJECT (rtx,
-      "retransmit seqnum: %" G_GUINT16_FORMAT ", ssrc: %" G_GUINT32_FORMAT,
+  GST_DEBUG_OBJECT (rtx, "creating rtx buffer, orig seqnum: %u, "
+      "rtx seqnum: %u, rtx ssrc: %X", gst_rtp_buffer_get_seq (&rtp),
       seqnum, ssrc);
 
   /* gst_rtp_buffer_map does not map the payload so do it now */
@@ -468,8 +468,7 @@ gst_rtp_rtx_send_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
         if (!gst_structure_get_uint (s, "ssrc", &ssrc))
           ssrc = -1;
 
-        GST_DEBUG_OBJECT (rtx,
-            "request seqnum: %" G_GUINT32_FORMAT ", ssrc: %" G_GUINT32_FORMAT,
+        GST_DEBUG_OBJECT (rtx, "got rtx request for seqnum: %u, ssrc: %X",
             seqnum, ssrc);
 
         GST_OBJECT_LOCK (rtx);
@@ -489,7 +488,7 @@ gst_rtp_rtx_send_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
               (GCompareDataFunc) buffer_queue_items_cmp, NULL);
           if (iter) {
             BufferQueueItem *item = g_sequence_get (iter);
-            GST_DEBUG_OBJECT (rtx, "found %" G_GUINT16_FORMAT, item->seqnum);
+            GST_LOG_OBJECT (rtx, "found %u", item->seqnum);
             rtx_buf = gst_rtp_rtx_buffer_new (rtx, item->buffer);
           }
         }
@@ -508,7 +507,7 @@ gst_rtp_rtx_send_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
         if (!gst_structure_get_uint (s, "ssrc", &ssrc))
           ssrc = -1;
 
-        GST_DEBUG_OBJECT (rtx, "collision ssrc: %" G_GUINT32_FORMAT, ssrc);
+        GST_DEBUG_OBJECT (rtx, "got ssrc collision, ssrc: %X", ssrc);
 
         GST_OBJECT_LOCK (rtx);
 
@@ -615,9 +614,8 @@ gst_rtp_rtx_send_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
         GST_WARNING_OBJECT (rtx, "Payload %d not in rtx-pt-map", payload);
 
       GST_DEBUG_OBJECT (rtx,
-          "got caps for payload: %d->%d, ssrc: %u->%" G_GUINT32_FORMAT ": %"
-          GST_PTR_FORMAT, payload, GPOINTER_TO_INT (rtx_payload), ssrc,
-          data->rtx_ssrc, caps);
+          "got caps for payload: %d->%d, ssrc: %u->%u : %" GST_PTR_FORMAT,
+          payload, GPOINTER_TO_INT (rtx_payload), ssrc, data->rtx_ssrc, caps);
 
       gst_structure_get_int (s, "clock-rate", &data->clock_rate);
 
@@ -694,9 +692,8 @@ process_buffer (GstRtpRtxSend * rtx, GstBuffer * buffer)
   rtptime = gst_rtp_buffer_get_timestamp (&rtp);
   gst_rtp_buffer_unmap (&rtp);
 
-  GST_TRACE_OBJECT (rtx,
-      "Processing buffer seqnum: %" G_GUINT16_FORMAT ", ssrc: %"
-      G_GUINT32_FORMAT, seqnum, ssrc);
+  GST_TRACE_OBJECT (rtx, "Processing buffer seqnum: %u, ssrc: %X", seqnum,
+      ssrc);
 
   /* do not store the buffer if it's payload type is unknown */
   if (g_hash_table_contains (rtx->rtx_pt_map, GUINT_TO_POINTER (payload_type))) {
diff --git a/gst/rtpmanager/rtpjitterbuffer.c b/gst/rtpmanager/rtpjitterbuffer.c
index a706d6283..f1187e2b6 100644
--- a/gst/rtpmanager/rtpjitterbuffer.c
+++ b/gst/rtpmanager/rtpjitterbuffer.c
@@ -1257,3 +1257,41 @@ rtp_jitter_buffer_get_sync (RTPJitterBuffer * jbuf, guint64 * rtptime,
   if (last_rtptime)
     *last_rtptime = jbuf->last_rtptime;
 }
+
+/**
+ * rtp_jitter_buffer_can_fast_start:
+ * @jbuf: an #RTPJitterBuffer
+ * @num_packets: Number of consecutive packets needed
+ *
+ * Check if in the queue if there is enough packets with consecutive seqnum in
+ * order to start delivering them.
+ *
+ * Returns: %TRUE if the required number of consecutive packets was found.
+ */
+gboolean
+rtp_jitter_buffer_can_fast_start (RTPJitterBuffer * jbuf, gint num_packet)
+{
+  gboolean ret = TRUE;
+  RTPJitterBufferItem *last_item = NULL, *item;
+  gint i;
+
+  if (rtp_jitter_buffer_num_packets (jbuf) < num_packet)
+    return FALSE;
+
+  item = rtp_jitter_buffer_peek (jbuf);
+  for (i = 0; i < num_packet; i++) {
+    if (G_LIKELY (last_item)) {
+      guint16 expected_seqnum = last_item->seqnum + 1;
+
+      if (expected_seqnum != item->seqnum) {
+        ret = FALSE;
+        break;
+      }
+    }
+
+    last_item = item;
+    item = (RTPJitterBufferItem *) last_item->next;
+  }
+
+  return ret;
+}
diff --git a/gst/rtpmanager/rtpjitterbuffer.h b/gst/rtpmanager/rtpjitterbuffer.h
index 4d3c6fe16..16db64472 100644
--- a/gst/rtpmanager/rtpjitterbuffer.h
+++ b/gst/rtpmanager/rtpjitterbuffer.h
@@ -192,4 +192,6 @@ void                  rtp_jitter_buffer_get_sync         (RTPJitterBuffer *jbuf,
 GstClockTime          rtp_jitter_buffer_calculate_pts    (RTPJitterBuffer * jbuf, GstClockTime dts, gboolean estimated_dts,
                                                           guint32 rtptime, GstClockTime base_time);
 
+gboolean              rtp_jitter_buffer_can_fast_start   (RTPJitterBuffer * jbuf, gint num_packet);
+
 #endif /* __RTP_JITTER_BUFFER_H__ */
diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c
index 2ed38973e..0b99d2383 100644
--- a/gst/rtpmanager/rtpsession.c
+++ b/gst/rtpmanager/rtpsession.c
@@ -2869,6 +2869,12 @@ rtp_session_process_rtcp (RTPSession * sess, GstBuffer * buffer,
       case GST_RTCP_TYPE_PSFB:
         rtp_session_process_feedback (sess, &packet, &pinfo, current_time);
         break;
+      case GST_RTCP_TYPE_XR:
+        /* FIXME: This block is added to downgrade warning level.
+         * Once the parser is implemented, it should be replaced with
+         * a proper process function. */
+        GST_DEBUG ("got RTCP XR packet, but ignored");
+        break;
       default:
         GST_WARNING ("got unknown RTCP packet type: %d", type);
         break;
@@ -3961,6 +3967,21 @@ update_generation (const gchar * key, RTPSource * source, ReportData * data)
   }
 }
 
+static gboolean
+rtp_session_are_all_sources_bye (RTPSession * sess)
+{
+  GHashTableIter iter;
+  RTPSource *src;
+
+  g_hash_table_iter_init (&iter, sess->ssrcs[sess->mask_idx]);
+  while (g_hash_table_iter_next (&iter, NULL, (gpointer *) & src)) {
+    if (src->internal && !src->sent_bye)
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
 /**
  * rtp_session_on_timeout:
  * @sess: an #RTPSession
@@ -4117,8 +4138,8 @@ done:
       GST_DEBUG ("%p, sending RTCP packet, avg size %u, %u", &sess->stats,
           sess->stats.avg_rtcp_packet_size, packet_size);
       result =
-          sess->callbacks.send_rtcp (sess, source, buffer, output->is_bye,
-          sess->send_rtcp_user_data);
+          sess->callbacks.send_rtcp (sess, source, buffer,
+          rtp_session_are_all_sources_bye (sess), sess->send_rtcp_user_data);
 
       RTP_SESSION_LOCK (sess);
       sess->stats.nacks_sent += data.nacked_seqnums;
diff --git a/gst/rtpmanager/rtpsource.c b/gst/rtpmanager/rtpsource.c
index e79fe0cfb..d726408c6 100644
--- a/gst/rtpmanager/rtpsource.c
+++ b/gst/rtpmanager/rtpsource.c
@@ -1280,7 +1280,8 @@ rtp_source_send_rtp (RTPSource * src, RTPPacketInfo * pinfo)
     return GST_FLOW_OK;
 
   if (src->pt_set && src->pt != pinfo->pt) {
-    GST_WARNING ("Changing pt from %u to %u for SSRC %u", src->pt, pinfo->pt, src->ssrc);
+    GST_WARNING ("Changing pt from %u to %u for SSRC %u", src->pt, pinfo->pt,
+        src->ssrc);
   }
 
   src->pt = pinfo->pt;
diff --git a/gst/rtsp/Makefile.am b/gst/rtsp/Makefile.am
index 267e49a8a..92a791e4f 100644
--- a/gst/rtsp/Makefile.am
+++ b/gst/rtsp/Makefile.am
@@ -8,7 +8,6 @@ libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(GST_BASE_LIBS) $(G
 		       -lgstrtp-@GST_API_VERSION@ -lgstrtsp-@GST_API_VERSION@ \
 		       -lgstsdp-@GST_API_VERSION@ $(GST_NET_LIBS) $(GST_LIBS)
 libgstrtsp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstrtsp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstrtspsrc.h     \
 		 gstrtsp.h        \
diff --git a/gst/rtsp/Makefile.in b/gst/rtsp/Makefile.in
index 676141e7e..6b47d859c 100644
--- a/gst/rtsp/Makefile.in
+++ b/gst/rtsp/Makefile.in
@@ -175,10 +175,9 @@ 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 $@
+libgstrtsp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -295,6 +294,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -318,6 +318,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -333,6 +335,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -355,10 +359,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -373,6 +384,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -390,6 +402,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -402,6 +416,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -420,6 +436,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -463,9 +482,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -479,11 +509,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -584,7 +619,6 @@ libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(GST_BASE_LIBS) $(G
 		       -lgstsdp-@GST_API_VERSION@ $(GST_NET_LIBS) $(GST_LIBS)
 
 libgstrtsp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstrtsp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstrtspsrc.h     \
 		 gstrtsp.h        \
 		 gstrtpdec.h      \
@@ -698,32 +732,32 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstrtsp_la-gstrtsp.lo: gstrtsp.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_la-gstrtsp.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_la-gstrtsp.Tpo -c -o libgstrtsp_la-gstrtsp.lo `test -f 'gstrtsp.c' || echo '$(srcdir)/'`gstrtsp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_la-gstrtsp.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_la-gstrtsp.Tpo -c -o libgstrtsp_la-gstrtsp.lo `test -f 'gstrtsp.c' || echo '$(srcdir)/'`gstrtsp.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_la-gstrtsp.Tpo $(DEPDIR)/libgstrtsp_la-gstrtsp.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtsp.c' object='libgstrtsp_la-gstrtsp.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 $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtsp.lo `test -f 'gstrtsp.c' || echo '$(srcdir)/'`gstrtsp.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtsp.lo `test -f 'gstrtsp.c' || echo '$(srcdir)/'`gstrtsp.c
 
 libgstrtsp_la-gstrtspsrc.lo: gstrtspsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_la-gstrtspsrc.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_la-gstrtspsrc.Tpo -c -o libgstrtsp_la-gstrtspsrc.lo `test -f 'gstrtspsrc.c' || echo '$(srcdir)/'`gstrtspsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_la-gstrtspsrc.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_la-gstrtspsrc.Tpo -c -o libgstrtsp_la-gstrtspsrc.lo `test -f 'gstrtspsrc.c' || echo '$(srcdir)/'`gstrtspsrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_la-gstrtspsrc.Tpo $(DEPDIR)/libgstrtsp_la-gstrtspsrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtspsrc.c' object='libgstrtsp_la-gstrtspsrc.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 $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtspsrc.lo `test -f 'gstrtspsrc.c' || echo '$(srcdir)/'`gstrtspsrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtspsrc.lo `test -f 'gstrtspsrc.c' || echo '$(srcdir)/'`gstrtspsrc.c
 
 libgstrtsp_la-gstrtpdec.lo: gstrtpdec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_la-gstrtpdec.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_la-gstrtpdec.Tpo -c -o libgstrtsp_la-gstrtpdec.lo `test -f 'gstrtpdec.c' || echo '$(srcdir)/'`gstrtpdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_la-gstrtpdec.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_la-gstrtpdec.Tpo -c -o libgstrtsp_la-gstrtpdec.lo `test -f 'gstrtpdec.c' || echo '$(srcdir)/'`gstrtpdec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_la-gstrtpdec.Tpo $(DEPDIR)/libgstrtsp_la-gstrtpdec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpdec.c' object='libgstrtsp_la-gstrtpdec.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 $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtpdec.lo `test -f 'gstrtpdec.c' || echo '$(srcdir)/'`gstrtpdec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtpdec.lo `test -f 'gstrtpdec.c' || echo '$(srcdir)/'`gstrtpdec.c
 
 libgstrtsp_la-gstrtspext.lo: gstrtspext.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_la-gstrtspext.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_la-gstrtspext.Tpo -c -o libgstrtsp_la-gstrtspext.lo `test -f 'gstrtspext.c' || echo '$(srcdir)/'`gstrtspext.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_la-gstrtspext.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_la-gstrtspext.Tpo -c -o libgstrtsp_la-gstrtspext.lo `test -f 'gstrtspext.c' || echo '$(srcdir)/'`gstrtspext.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_la-gstrtspext.Tpo $(DEPDIR)/libgstrtsp_la-gstrtspext.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtspext.c' object='libgstrtsp_la-gstrtspext.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 $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtspext.lo `test -f 'gstrtspext.c' || echo '$(srcdir)/'`gstrtspext.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtspext.lo `test -f 'gstrtspext.c' || echo '$(srcdir)/'`gstrtspext.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 87a21fa37..d63607396 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -124,6 +124,8 @@ enum
   SIGNAL_SELECT_STREAM,
   SIGNAL_NEW_MANAGER,
   SIGNAL_REQUEST_RTCP_KEY,
+  SIGNAL_ACCEPT_CERTIFICATE,
+  SIGNAL_BEFORE_SEND,
   LAST_SIGNAL
 };
 
@@ -172,6 +174,9 @@ enum _GstRtspSrcNtpTimeSource
   NTP_TIME_SOURCE_CLOCK_TIME
 };
 
+#define DEBUG_RTSP(__self,msg) gst_rtspsrc_print_rtsp_message (__self, msg)
+#define DEBUG_SDP(__self,msg) gst_rtspsrc_print_sdp_message (__self, msg)
+
 #define GST_TYPE_RTSP_SRC_NTP_TIME_SOURCE (gst_rtsp_src_ntp_time_source_get_type())
 static GType
 gst_rtsp_src_ntp_time_source_get_type (void)
@@ -228,6 +233,9 @@ gst_rtsp_src_ntp_time_source_get_type (void)
 #define DEFAULT_USER_AGENT       "GStreamer/" PACKAGE_VERSION
 #define DEFAULT_MAX_RTCP_RTP_TIME_DIFF 1000
 #define DEFAULT_RFC7273_SYNC         FALSE
+#define DEFAULT_MAX_TS_OFFSET_ADJUSTMENT   G_GUINT64_CONSTANT(0)
+#define DEFAULT_MAX_TS_OFFSET   G_GINT64_CONSTANT(3000000000)
+#define DEFAULT_VERSION         GST_RTSP_VERSION_1_0
 
 enum
 {
@@ -267,7 +275,10 @@ enum
   PROP_NTP_TIME_SOURCE,
   PROP_USER_AGENT,
   PROP_MAX_RTCP_RTP_TIME_DIFF,
-  PROP_RFC7273_SYNC
+  PROP_RFC7273_SYNC,
+  PROP_MAX_TS_OFFSET_ADJUSTMENT,
+  PROP_MAX_TS_OFFSET,
+  PROP_DEFAULT_VERSION,
 };
 
 #define GST_TYPE_RTSP_NAT_METHOD (gst_rtsp_nat_method_get_type())
@@ -326,7 +337,7 @@ static GstRTSPResult gst_rtspsrc_send_cb (GstRTSPExtension * ext,
 
 static GstRTSPResult gst_rtspsrc_open (GstRTSPSrc * src, gboolean async);
 static GstRTSPResult gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment,
-    gboolean async);
+    gboolean async, const gchar * seek_style);
 static GstRTSPResult gst_rtspsrc_pause (GstRTSPSrc * src, gboolean async);
 static GstRTSPResult gst_rtspsrc_close (GstRTSPSrc * src, gboolean async,
     gboolean only_close);
@@ -343,6 +354,10 @@ static gboolean gst_rtspsrc_push_event (GstRTSPSrc * src, GstEvent * event);
 static void gst_rtspsrc_connection_flush (GstRTSPSrc * src, gboolean flush);
 static GstRTSPResult gst_rtsp_conninfo_close (GstRTSPSrc * src,
     GstRTSPConnInfo * info, gboolean free);
+static void
+gst_rtspsrc_print_rtsp_message (GstRTSPSrc * src, const GstRTSPMessage * msg);
+static void
+gst_rtspsrc_print_sdp_message (GstRTSPSrc * src, const GstSDPMessage * msg);
 
 typedef struct
 {
@@ -423,6 +438,26 @@ select_stream_accum (GSignalInvocationHint * ihint,
   return myboolean;
 }
 
+static gboolean
+default_before_send (GstRTSPSrc * src, GstRTSPMessage * msg)
+{
+  GST_DEBUG_OBJECT (src, "default handler");
+  return TRUE;
+}
+
+static gboolean
+before_send_accum (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer data)
+{
+  gboolean myboolean;
+
+  myboolean = g_value_get_boolean (handler_return);
+  g_value_set_boolean (return_accu, myboolean);
+
+  /* prevent send if FALSE */
+  return myboolean;
+}
+
 static void
 gst_rtspsrc_class_init (GstRTSPSrcClass * klass)
 {
@@ -453,8 +488,10 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass)
 
   g_object_class_install_property (gobject_class, PROP_DEBUG,
       g_param_spec_boolean ("debug", "Debug",
-          "Dump request and response messages to stdout",
-          DEFAULT_DEBUG, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          "Dump request and response messages to stdout"
+          "(DEPRECATED: Printed all RTSP message to gstreamer log as 'log' level)",
+          DEFAULT_DEBUG,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_DEPRECATED));
 
   g_object_class_install_property (gobject_class, PROP_RETRY,
       g_param_spec_uint ("retry", "Retry",
@@ -748,6 +785,50 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass)
           "(requires clock and offset to be provided)", DEFAULT_RFC7273_SYNC,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstRTSPSrc:default-rtsp-version:
+   *
+   * The preferred RTSP version to use while negotiating the version with the server.
+   *
+   * Since: 1.14
+   */
+  g_object_class_install_property (gobject_class, PROP_DEFAULT_VERSION,
+      g_param_spec_enum ("default-rtsp-version",
+          "The RTSP version to try first",
+          "The RTSP version that should be tried first when negotiating version.",
+          GST_TYPE_RTSP_VERSION, DEFAULT_VERSION,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstRTSPSrc:max-ts-offset-adjustment:
+   *
+   * Syncing time stamps to NTP time adds a time offset. This parameter
+   * specifies the maximum number of nanoseconds per frame that this time offset
+   * may be adjusted with. This is used to avoid sudden large changes to time
+   * stamps.
+   */
+  g_object_class_install_property (gobject_class, PROP_MAX_TS_OFFSET_ADJUSTMENT,
+      g_param_spec_uint64 ("max-ts-offset-adjustment",
+          "Max Timestamp Offset Adjustment",
+          "The maximum number of nanoseconds per frame that time stamp offsets "
+          "may be adjusted (0 = no limit).", 0, G_MAXUINT64,
+          DEFAULT_MAX_TS_OFFSET_ADJUSTMENT, G_PARAM_READWRITE |
+          G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstRtpBin:max-ts-offset:
+   *
+   * Used to set an upper limit of how large a time offset may be. This
+   * is used to protect against unrealistic values as a result of either
+   * client,server or clock issues.
+   */
+  g_object_class_install_property (gobject_class, PROP_MAX_TS_OFFSET,
+      g_param_spec_int64 ("max-ts-offset", "Max TS Offset",
+          "The maximum absolute value of the time offset in (nanoseconds). "
+          "Note, if the ntp-sync parameter is set the default value is "
+          "changed to 0 (no limit)", 0, G_MAXINT64, DEFAULT_MAX_TS_OFFSET,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   /**
    * GstRTSPSrc::handle-request:
    * @rtspsrc: a #GstRTSPSrc
@@ -840,6 +921,50 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass)
       g_signal_new ("request-rtcp-key", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, GST_TYPE_CAPS, 1, G_TYPE_UINT);
 
+  /**
+   * GstRTSPSrc::accept-certificate:
+   * @rtspsrc: a #GstRTSPSrc
+   * @peer_cert: the peer's #GTlsCertificate
+   * @errors: the problems with @peer_cert
+   * @user_data: user data set when the signal handler was connected.
+   *
+   * This will directly map to #GTlsConnection 's "accept-certificate"
+   * signal and be performed after the default checks of #GstRTSPConnection
+   * (checking against the #GTlsDatabase with the given #GTlsCertificateFlags)
+   * have failed. If no #GTlsDatabase is set on this connection, only this
+   * signal will be emitted.
+   *
+   * Since: 1.14
+   */
+  gst_rtspsrc_signals[SIGNAL_ACCEPT_CERTIFICATE] =
+      g_signal_new ("accept-certificate", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, 0, g_signal_accumulator_true_handled, NULL, NULL,
+      G_TYPE_BOOLEAN, 3, G_TYPE_TLS_CONNECTION, G_TYPE_TLS_CERTIFICATE,
+      G_TYPE_TLS_CERTIFICATE_FLAGS);
+
+  /*
+   * GstRTSPSrc::before-send
+   * @rtspsrc: a #GstRTSPSrc
+   * @num: the stream number
+   *
+   * Emitted before each RTSP request is sent, in order to allow
+   * the application to modify send parameters or to skip the message entirely.
+   * This can be used, for example, to work with ONVIF Profile G servers,
+   * which need a different/additional range, rate-control, and intra/x
+   * parameters.
+   *
+   * Returns: %TRUE when the command should be sent, %FALSE when the
+   * command should be dropped.
+   *
+   * Since: 1.14
+   */
+  gst_rtspsrc_signals[SIGNAL_BEFORE_SEND] =
+      g_signal_new_class_handler ("before-send", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_FIRST | G_SIGNAL_RUN_CLEANUP,
+      (GCallback) default_before_send, before_send_accum, NULL,
+      g_cclosure_marshal_generic, G_TYPE_BOOLEAN,
+      1, GST_TYPE_RTSP_MESSAGE | G_SIGNAL_TYPE_STATIC_SCOPE);
+
   gstelement_class->send_event = gst_rtspsrc_send_event;
   gstelement_class->provide_clock = gst_rtspsrc_provide_clock;
   gstelement_class->change_state = gst_rtspsrc_change_state;
@@ -896,6 +1021,11 @@ gst_rtspsrc_init (GstRTSPSrc * src)
   src->user_agent = g_strdup (DEFAULT_USER_AGENT);
   src->max_rtcp_rtp_time_diff = DEFAULT_MAX_RTCP_RTP_TIME_DIFF;
   src->rfc7273_sync = DEFAULT_RFC7273_SYNC;
+  src->max_ts_offset_adjustment = DEFAULT_MAX_TS_OFFSET_ADJUSTMENT;
+  src->max_ts_offset = DEFAULT_MAX_TS_OFFSET;
+  src->max_ts_offset_is_set = FALSE;
+  src->default_version = DEFAULT_VERSION;
+  src->version = GST_RTSP_VERSION_INVALID;
 
   /* get a list of all extensions */
   src->extensions = gst_rtsp_ext_list_get ();
@@ -1152,6 +1282,15 @@ gst_rtspsrc_set_property (GObject * object, guint prop_id, const GValue * value,
       break;
     case PROP_NTP_SYNC:
       rtspsrc->ntp_sync = g_value_get_boolean (value);
+      /* The default value of max_ts_offset depends on ntp_sync. If user
+       * hasn't set it then change default value */
+      if (!rtspsrc->max_ts_offset_is_set) {
+        if (rtspsrc->ntp_sync) {
+          rtspsrc->max_ts_offset = 0;
+        } else {
+          rtspsrc->max_ts_offset = DEFAULT_MAX_TS_OFFSET;
+        }
+      }
       break;
     case PROP_USE_PIPELINE_CLOCK:
       rtspsrc->use_pipeline_clock = g_value_get_boolean (value);
@@ -1186,6 +1325,16 @@ gst_rtspsrc_set_property (GObject * object, guint prop_id, const GValue * value,
     case PROP_RFC7273_SYNC:
       rtspsrc->rfc7273_sync = g_value_get_boolean (value);
       break;
+    case PROP_MAX_TS_OFFSET_ADJUSTMENT:
+      rtspsrc->max_ts_offset_adjustment = g_value_get_uint64 (value);
+      break;
+    case PROP_MAX_TS_OFFSET:
+      rtspsrc->max_ts_offset = g_value_get_int64 (value);
+      rtspsrc->max_ts_offset_is_set = TRUE;
+      break;
+    case PROP_DEFAULT_VERSION:
+      rtspsrc->default_version = g_value_get_enum (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1335,6 +1484,15 @@ gst_rtspsrc_get_property (GObject * object, guint prop_id, GValue * value,
     case PROP_RFC7273_SYNC:
       g_value_set_boolean (value, rtspsrc->rfc7273_sync);
       break;
+    case PROP_MAX_TS_OFFSET_ADJUSTMENT:
+      g_value_set_uint64 (value, rtspsrc->max_ts_offset_adjustment);
+      break;
+    case PROP_MAX_TS_OFFSET:
+      g_value_set_int64 (value, rtspsrc->max_ts_offset);
+      break;
+    case PROP_DEFAULT_VERSION:
+      g_value_set_enum (value, rtspsrc->default_version);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1509,6 +1667,18 @@ gst_rtspsrc_collect_connections (GstRTSPSrc * src, const GstSDPMessage * sdp,
   }
 }
 
+static gchar *
+make_stream_id (GstRTSPStream * stream, const GstSDPMedia * media)
+{
+  gchar *stream_id =
+      g_strdup_printf ("%s:%d:%d:%s:%d", media->media, media->port,
+      media->num_ports, media->proto, stream->default_pt);
+
+  g_strcanon (stream_id, G_CSET_a_2_z G_CSET_A_2_Z G_CSET_DIGITS, ':');
+
+  return stream_id;
+}
+
 /*   m=<media> <UDP port> RTP/AVP <payload>
  */
 static void
@@ -1535,8 +1705,8 @@ gst_rtspsrc_collect_payloads (GstRTSPSrc * src, const GstSDPMessage * sdp,
   else
     goto unknown_proto;
 
-  if (gst_sdp_media_get_attribute_val (media, "sendonly") != NULL)
-    goto sendonly_media;
+  if (gst_sdp_media_get_attribute_val (media, "recvonly") != NULL)
+    goto recvonly_media;
 
   /* Parse global SDP attributes once */
   global_caps = gst_caps_new_empty_simple ("application/x-unknown");
@@ -1592,6 +1762,8 @@ gst_rtspsrc_collect_payloads (GstRTSPSrc * src, const GstSDPMessage * sdp,
     g_array_append_val (stream->ptmap, item);
   }
 
+  stream->stream_id = make_stream_id (stream, media);
+
   gst_caps_unref (global_caps);
   return;
 
@@ -1605,9 +1777,9 @@ unknown_proto:
     GST_ERROR_OBJECT (src, "unknown proto in media: '%s'", proto);
     return;
   }
-sendonly_media:
+recvonly_media:
   {
-    GST_DEBUG_OBJECT (src, "sendonly media ignored");
+    GST_DEBUG_OBJECT (src, "recvonly media ignored");
     return;
   }
 }
@@ -1666,6 +1838,7 @@ gst_rtspsrc_create_stream (GstRTSPSrc * src, GstSDPMessage * sdp, gint idx,
   stream->profile = GST_RTSP_PROFILE_AVP;
   stream->ptmap = g_array_new (FALSE, FALSE, sizeof (PtMapItem));
   stream->mikey = NULL;
+  stream->stream_id = NULL;
   g_mutex_init (&stream->conninfo.send_lock);
   g_mutex_init (&stream->conninfo.recv_lock);
   g_array_set_clear_func (stream->ptmap, (GDestroyNotify) clear_ptmap_item);
@@ -1750,6 +1923,7 @@ gst_rtspsrc_stream_free (GstRTSPSrc * src, GstRTSPStream * stream)
   g_free (stream->destination);
   g_free (stream->control_url);
   g_free (stream->conninfo.location);
+  g_free (stream->stream_id);
 
   for (i = 0; i < 2; i++) {
     if (stream->udpsrc[i]) {
@@ -2149,9 +2323,10 @@ gst_rtspsrc_perform_seek (GstRTSPSrc * src, GstEvent * event)
   gboolean playing;
   GstSegment seeksegment = { 0, };
   GList *walk;
+  const gchar *seek_style = NULL;
 
   if (event) {
-    GST_DEBUG_OBJECT (src, "doing seek with event");
+    GST_DEBUG_OBJECT (src, "doing seek with event %" GST_PTR_FORMAT, event);
 
     gst_event_parse_seek (event, &rate, &format, &flags,
         &cur_type, &cur, &stop_type, &stop);
@@ -2163,6 +2338,14 @@ gst_rtspsrc_perform_seek (GstRTSPSrc * src, GstEvent * event)
     /* we need TIME format */
     if (format != src->segment.format)
       goto no_format;
+
+    /* Check if we are not at all seekable */
+    if (src->seekable == -1.0)
+      goto not_seekable;
+
+    /* Additional seeking-to-beginning-only check */
+    if (src->seekable == 0.0 && cur != 0)
+      goto not_seekable;
   } else {
     GST_DEBUG_OBJECT (src, "doing seek without event");
     flags = 0;
@@ -2263,8 +2446,21 @@ gst_rtspsrc_perform_seek (GstRTSPSrc * src, GstEvent * event)
       && GST_STATE (src) == GST_STATE_PLAYING)
       || (GST_STATE_PENDING (src) == GST_STATE_PLAYING);
   GST_OBJECT_UNLOCK (src);
+
+  if (src->version >= GST_RTSP_VERSION_2_0) {
+    if (flags & GST_SEEK_FLAG_ACCURATE)
+      seek_style = "RAP";
+    else if (flags & GST_SEEK_FLAG_KEY_UNIT)
+      seek_style = "CoRAP";
+    else if (flags & GST_SEEK_FLAG_KEY_UNIT
+        && flags & GST_SEEK_FLAG_SNAP_BEFORE)
+      seek_style = "First-Prior";
+    else if (flags & GST_SEEK_FLAG_KEY_UNIT && flags & GST_SEEK_FLAG_SNAP_AFTER)
+      seek_style = "Next";
+  }
+
   if (playing)
-    gst_rtspsrc_play (src, &seeksegment, FALSE);
+    gst_rtspsrc_play (src, &seeksegment, FALSE, seek_style);
 
   GST_RTSP_STREAM_UNLOCK (src);
 
@@ -2281,6 +2477,11 @@ no_format:
     GST_DEBUG_OBJECT (src, "unsupported format given, seek aborted.");
     return FALSE;
   }
+not_seekable:
+  {
+    GST_DEBUG_OBJECT (src, "stream is not seekable");
+    return FALSE;
+  }
 }
 
 static gboolean
@@ -2324,6 +2525,34 @@ gst_rtspsrc_handle_src_event (GstPad * pad, GstObject * parent,
   return res;
 }
 
+static gboolean
+gst_rtspsrc_handle_src_sink_event (GstPad * pad, GstObject * parent,
+    GstEvent * event)
+{
+  GstRTSPStream *stream;
+
+  stream = gst_pad_get_element_private (pad);
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_STREAM_START:{
+      const gchar *upstream_id;
+      gchar *stream_id;
+
+      gst_event_parse_stream_start (event, &upstream_id);
+      stream_id = g_strdup_printf ("%s/%s", upstream_id, stream->stream_id);
+
+      gst_event_unref (event);
+      event = gst_event_new_stream_start (stream_id);
+      g_free (stream_id);
+      break;
+    }
+    default:
+      break;
+  }
+
+  return gst_pad_push_event (stream->srcpad, event);
+}
+
 /* this is the final event function we receive on the internal source pad when
  * we deal with TCP connections */
 static gboolean
@@ -2435,13 +2664,26 @@ gst_rtspsrc_handle_src_query (GstPad * pad, GstObject * parent,
       if (format == GST_FORMAT_TIME) {
         gboolean seekable =
             src->cur_protocols != GST_RTSP_LOWER_TRANS_UDP_MCAST;
+        GstClockTime start = 0, duration = src->segment.duration;
 
         /* seeking without duration is unlikely */
-        seekable = seekable && src->seekable && src->segment.duration &&
+        seekable = seekable && src->seekable >= 0.0 && src->segment.duration &&
             GST_CLOCK_TIME_IS_VALID (src->segment.duration);
 
-        gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, 0,
-            src->segment.duration);
+        if (seekable) {
+          if (src->seekable > 0.0) {
+            start = src->last_pos - src->seekable * GST_SECOND;
+          } else {
+            /* src->seekable == 0 means that we can only seek to 0 */
+            start = 0;
+            duration = 0;
+          }
+        }
+
+        GST_LOG_OBJECT (src, "seekable : %d", seekable);
+
+        gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, start,
+            duration);
         res = TRUE;
       }
       break;
@@ -2570,6 +2812,7 @@ new_manager_pad (GstElement * manager, GstPad * pad, GstRTSPSrc * src)
   GList *ostreams;
   GstRTSPStream *stream;
   gboolean all_added;
+  GstPad *internal_src;
 
   GST_DEBUG_OBJECT (src, "got new manager pad %" GST_PTR_FORMAT, pad);
 
@@ -2614,6 +2857,13 @@ new_manager_pad (GstElement * manager, GstPad * pad, GstRTSPSrc * src)
   gst_object_unref (template);
   g_free (name);
 
+  /* We intercept and modify the stream start event */
+  internal_src =
+      GST_PAD (gst_proxy_pad_get_internal (GST_PROXY_PAD (stream->srcpad)));
+  gst_pad_set_element_private (internal_src, stream);
+  gst_pad_set_event_function (internal_src, gst_rtspsrc_handle_src_sink_event);
+  gst_object_unref (internal_src);
+
   gst_pad_set_event_function (stream->srcpad, gst_rtspsrc_handle_src_event);
   gst_pad_set_query_function (stream->srcpad, gst_rtspsrc_handle_src_query);
   gst_pad_set_active (stream->srcpad, TRUE);
@@ -3123,6 +3373,23 @@ gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream,
             src->max_rtcp_rtp_time_diff, NULL);
       }
 
+      if (g_object_class_find_property (klass, "max-ts-offset-adjustment")) {
+        g_object_set (src->manager, "max-ts-offset-adjustment",
+            src->max_ts_offset_adjustment, NULL);
+      }
+
+      if (g_object_class_find_property (klass, "max-ts-offset")) {
+        gint64 max_ts_offset;
+
+        /* setting max-ts-offset in the manager has side effects so only do it
+         * if the value differs */
+        g_object_get (src->manager, "max-ts-offset", &max_ts_offset, NULL);
+        if (max_ts_offset != src->max_ts_offset) {
+          g_object_set (src->manager, "max-ts-offset", src->max_ts_offset,
+              NULL);
+        }
+      }
+
       /* buffer mode pauses are handled by adding offsets to buffer times,
        * but some depayloaders may have a hard time syncing output times
        * with such input times, e.g. container ones, most notably ASF */
@@ -3495,7 +3762,7 @@ gst_rtspsrc_stream_configure_mcast (GstRTSPSrc * src, GstRTSPStream * stream,
     gst_object_ref_sink (stream->udpsrc[1]);
 
     if (src->multi_iface != NULL)
-      g_object_set (G_OBJECT (stream->udpsrc[0]), "multicast-iface",
+      g_object_set (G_OBJECT (stream->udpsrc[1]), "multicast-iface",
           src->multi_iface, NULL);
 
     gst_element_set_state (stream->udpsrc[1], GST_STATE_READY);
@@ -4108,6 +4375,19 @@ gst_rtspsrc_push_event (GstRTSPSrc * src, GstEvent * event)
   return res;
 }
 
+static gboolean
+accept_certificate_cb (GTlsConnection * conn, GTlsCertificate * peer_cert,
+    GTlsCertificateFlags errors, gpointer user_data)
+{
+  GstRTSPSrc *src = user_data;
+  gboolean accept = FALSE;
+
+  g_signal_emit (src, gst_rtspsrc_signals[SIGNAL_ACCEPT_CERTIFICATE], 0, conn,
+      peer_cert, errors, &accept);
+
+  return accept;
+}
+
 static GstRTSPResult
 gst_rtsp_conninfo_connect (GstRTSPSrc * src, GstRTSPConnInfo * info,
     gboolean async)
@@ -4150,6 +4430,8 @@ gst_rtsp_conninfo_connect (GstRTSPSrc * src, GstRTSPConnInfo * info,
         if (src->tls_interaction)
           gst_rtsp_connection_set_tls_interaction (info->connection,
               src->tls_interaction);
+        gst_rtsp_connection_set_accept_certificate_func (info->connection,
+            accept_certificate_cb, src, NULL);
       }
 
       if (info->url->transports & GST_RTSP_LOWER_TRANS_HTTP)
@@ -4302,8 +4584,7 @@ gst_rtspsrc_handle_request (GstRTSPSrc * src, GstRTSPConnInfo * conninfo,
 
   GST_DEBUG_OBJECT (src, "got server request message");
 
-  if (src->debug)
-    gst_rtsp_message_dump (request);
+  DEBUG_RTSP (src, request);
 
   res = gst_rtsp_ext_list_receive_request (src->extensions, request);
 
@@ -4320,8 +4601,7 @@ gst_rtspsrc_handle_request (GstRTSPSrc * src, GstRTSPConnInfo * conninfo,
     g_signal_emit (src, gst_rtspsrc_signals[SIGNAL_HANDLE_REQUEST],
         0, request, &response);
 
-    if (src->debug)
-      gst_rtsp_message_dump (&response);
+    DEBUG_RTSP (src, &response);
 
     res = gst_rtspsrc_connection_send (src, conninfo, &response, NULL);
     if (res < 0)
@@ -4372,8 +4652,7 @@ gst_rtspsrc_send_keep_alive (GstRTSPSrc * src)
   if (res < 0)
     goto send_error;
 
-  if (src->debug)
-    gst_rtsp_message_dump (&request);
+  request.type_data.request.version = src->version;
 
   res = gst_rtspsrc_connection_send (src, &src->conninfo, &request, NULL);
   if (res < 0)
@@ -4691,8 +4970,7 @@ gst_rtspsrc_loop_interleaved (GstRTSPSrc * src)
       case GST_RTSP_MESSAGE_RESPONSE:
         /* we ignore response messages */
         GST_DEBUG_OBJECT (src, "ignoring response message");
-        if (src->debug)
-          gst_rtsp_message_dump (&message);
+        DEBUG_RTSP (src, &message);
         break;
       case GST_RTSP_MESSAGE_DATA:
         GST_DEBUG_OBJECT (src, "got data message");
@@ -4822,8 +5100,7 @@ gst_rtspsrc_loop_udp (GstRTSPSrc * src)
       case GST_RTSP_MESSAGE_RESPONSE:
         /* we ignore response and data messages */
         GST_DEBUG_OBJECT (src, "ignoring response message");
-        if (src->debug)
-          gst_rtsp_message_dump (&message);
+        DEBUG_RTSP (src, &message);
         if (message.type_data.response.code == GST_RTSP_STS_UNAUTHORIZED) {
           GST_DEBUG_OBJECT (src, "but is Unauthorized response ...");
           if (gst_rtspsrc_setup_auth (src, &message) && !(retry++)) {
@@ -4948,7 +5225,7 @@ gst_rtspsrc_reconnect (GstRTSPSrc * src, gboolean async)
     goto open_failed;
 
   /* start playback */
-  if (gst_rtspsrc_play (src, &src->segment, async) < 0)
+  if (gst_rtspsrc_play (src, &src->segment, async, NULL) < 0)
     goto play_failed;
 
 done:
@@ -5355,39 +5632,18 @@ no_user_pass:
 }
 
 static GstRTSPResult
-gst_rtspsrc_try_send (GstRTSPSrc * src, GstRTSPConnInfo * conninfo,
-    GstRTSPMessage * request, GstRTSPMessage * response,
-    GstRTSPStatusCode * code)
+gst_rtsp_src_receive_response (GstRTSPSrc * src, GstRTSPConnInfo * conninfo,
+    GstRTSPMessage * response, GstRTSPStatusCode * code)
 {
-  GstRTSPResult res;
   GstRTSPStatusCode thecode;
   gchar *content_base = NULL;
-  gint try = 0;
+  GstRTSPResult res = gst_rtspsrc_connection_receive (src, conninfo,
+      response, src->ptcp_timeout);
 
-again:
-  if (!src->short_header)
-    gst_rtsp_ext_list_before_send (src->extensions, request);
-
-  GST_DEBUG_OBJECT (src, "sending message");
-
-  if (src->debug)
-    gst_rtsp_message_dump (request);
-
-  res = gst_rtspsrc_connection_send (src, conninfo, request, src->ptcp_timeout);
-  if (res < 0)
-    goto send_error;
-
-  gst_rtsp_connection_reset_timeout (conninfo->connection);
-
-next:
-  res =
-      gst_rtspsrc_connection_receive (src, conninfo, response,
-      src->ptcp_timeout);
   if (res < 0)
     goto receive_error;
 
-  if (src->debug)
-    gst_rtsp_message_dump (response);
+  DEBUG_RTSP (src, response);
 
   switch (response->type) {
     case GST_RTSP_MESSAGE_REQUEST:
@@ -5396,7 +5652,9 @@ next:
         goto server_eof;
       else if (res < 0)
         goto handle_request_failed;
-      goto next;
+
+      /* Not a response, receive next message */
+      return gst_rtsp_src_receive_response (src, conninfo, response, code);
     case GST_RTSP_MESSAGE_RESPONSE:
       /* ok, a response is good */
       GST_DEBUG_OBJECT (src, "received response message");
@@ -5405,11 +5663,15 @@ next:
       /* get next response */
       GST_DEBUG_OBJECT (src, "handle data response message");
       gst_rtspsrc_handle_data (src, response);
-      goto next;
+
+      /* Not a response, receive next message */
+      return gst_rtsp_src_receive_response (src, conninfo, response, code);
     default:
       GST_WARNING_OBJECT (src, "ignoring unknown message type %d",
           response->type);
-      goto next;
+
+      /* Not a response, receive next message */
+      return gst_rtsp_src_receive_response (src, conninfo, response, code);
   }
 
   thecode = response->type_data.response.code;
@@ -5431,38 +5693,15 @@ next:
     g_free (src->content_base);
     src->content_base = g_strdup (content_base);
   }
-  gst_rtsp_ext_list_after_send (src->extensions, request, response);
 
   return GST_RTSP_OK;
 
   /* ERRORS */
-send_error:
-  {
-    gchar *str = gst_rtsp_strresult (res);
-
-    if (res != GST_RTSP_EINTR) {
-      GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL),
-          ("Could not send message. (%s)", str));
-    } else {
-      GST_WARNING_OBJECT (src, "send interrupted");
-    }
-    g_free (str);
-    return res;
-  }
 receive_error:
   {
     switch (res) {
       case GST_RTSP_EEOF:
-        GST_WARNING_OBJECT (src, "server closed connection");
-        if ((try == 0) && !src->interleaved && src->udp_reconnect) {
-          try++;
-          /* if reconnect succeeds, try again */
-          if ((res =
-                  gst_rtsp_conninfo_reconnect (src, &src->conninfo,
-                      FALSE)) == 0)
-            goto again;
-        }
-        /* only try once after reconnect, then fallthrough and error out */
+        return GST_RTSP_EEOF;
       default:
       {
         gchar *str = gst_rtsp_strresult (res);
@@ -5495,13 +5734,78 @@ server_eof:
   }
 }
 
+
+static GstRTSPResult
+gst_rtspsrc_try_send (GstRTSPSrc * src, GstRTSPConnInfo * conninfo,
+    GstRTSPMessage * request, GstRTSPMessage * response,
+    GstRTSPStatusCode * code)
+{
+  GstRTSPResult res;
+  gint try = 0;
+  gboolean allow_send = TRUE;
+
+again:
+  if (!src->short_header)
+    gst_rtsp_ext_list_before_send (src->extensions, request);
+
+  g_signal_emit (src, gst_rtspsrc_signals[SIGNAL_BEFORE_SEND], 0,
+      request, &allow_send);
+  if (!allow_send) {
+    GST_DEBUG_OBJECT (src, "skipping message, disabled by signal");
+    return GST_RTSP_OK;
+  }
+
+  GST_DEBUG_OBJECT (src, "sending message");
+
+  DEBUG_RTSP (src, request);
+
+  res = gst_rtspsrc_connection_send (src, conninfo, request, src->ptcp_timeout);
+  if (res < 0)
+    goto send_error;
+
+  gst_rtsp_connection_reset_timeout (conninfo->connection);
+  if (!response)
+    return res;
+
+  res = gst_rtsp_src_receive_response (src, conninfo, response, code);
+  if (res == GST_RTSP_EEOF) {
+    GST_WARNING_OBJECT (src, "server closed connection");
+    /* only try once after reconnect, then fallthrough and error out */
+    if ((try == 0) && !src->interleaved && src->udp_reconnect) {
+      try++;
+      /* if reconnect succeeds, try again */
+      if ((res = gst_rtsp_conninfo_reconnect (src, &src->conninfo, FALSE)) == 0)
+        goto again;
+    }
+  }
+  gst_rtsp_ext_list_after_send (src->extensions, request, response);
+
+  return res;
+
+send_error:
+  {
+    gchar *str = gst_rtsp_strresult (res);
+
+    if (res != GST_RTSP_EINTR) {
+      GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL),
+          ("Could not send message. (%s)", str));
+    } else {
+      GST_WARNING_OBJECT (src, "send interrupted");
+    }
+    g_free (str);
+    return res;
+  }
+}
+
 /**
  * gst_rtspsrc_send:
  * @src: the rtsp source
- * @conn: the connection to send on
+ * @conninfo: the connection information to send on
  * @request: must point to a valid request
  * @response: must point to an empty #GstRTSPMessage
  * @code: an optional code result
+ * @versions: List of versions to try, setting it back onto the @request message
+ *            if not set, `src->version` will be used as RTSP version.
  *
  * send @request and retrieve the response in @response. optionally @code can be
  * non-NULL in which case it will contain the status code of the response.
@@ -5521,13 +5825,14 @@ server_eof:
 static GstRTSPResult
 gst_rtspsrc_send (GstRTSPSrc * src, GstRTSPConnInfo * conninfo,
     GstRTSPMessage * request, GstRTSPMessage * response,
-    GstRTSPStatusCode * code)
+    GstRTSPStatusCode * code, GstRTSPVersion * versions)
 {
   GstRTSPStatusCode int_code = GST_RTSP_STS_OK;
   GstRTSPResult res = GST_RTSP_ERROR;
   gint count;
   gboolean retry;
   GstRTSPMethod method = GST_RTSP_INVALID;
+  gint version_retry = 0;
 
   count = 0;
   do {
@@ -5540,6 +5845,9 @@ gst_rtspsrc_send (GstRTSPSrc * src, GstRTSPConnInfo * conninfo,
     /* save method so we can disable it when the server complains */
     method = request->type_data.request.method;
 
+    if (!versions)
+      request->type_data.request.version = src->version;
+
     if ((res =
             gst_rtspsrc_try_send (src, conninfo, request, response,
                 &int_code)) < 0)
@@ -5554,6 +5862,20 @@ gst_rtspsrc_send (GstRTSPSrc * src, GstRTSPConnInfo * conninfo,
           retry = TRUE;
         }
         break;
+      case GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED:
+        GST_INFO_OBJECT (src, "Version %s not supported by the server",
+            versions ? gst_rtsp_version_as_text (versions[version_retry]) :
+            "unknown");
+        if (versions && versions[version_retry] != GST_RTSP_VERSION_INVALID) {
+          GST_INFO_OBJECT (src, "Unsupported version %s => trying %s",
+              gst_rtsp_version_as_text (request->type_data.request.version),
+              gst_rtsp_version_as_text (versions[version_retry]));
+          request->type_data.request.version = versions[version_retry];
+          retry = TRUE;
+          version_retry++;
+          break;
+        }
+        /* falltrough */
       default:
         break;
     }
@@ -5645,7 +5967,7 @@ static GstRTSPResult
 gst_rtspsrc_send_cb (GstRTSPExtension * ext, GstRTSPMessage * request,
     GstRTSPMessage * response, GstRTSPSrc * src)
 {
-  return gst_rtspsrc_send (src, &src->conninfo, request, response, NULL);
+  return gst_rtspsrc_send (src, &src->conninfo, request, response, NULL, NULL);
 }
 
 
@@ -5668,11 +5990,19 @@ gst_rtspsrc_parse_methods (GstRTSPSrc * src, GstRTSPMessage * response)
   while (TRUE) {
     respoptions = NULL;
     gst_rtsp_message_get_header (response, field, &respoptions, indx);
-    if (indx == 0 && !respoptions) {
-      /* if no Allow header was found then try the Public header... */
-      field = GST_RTSP_HDR_PUBLIC;
-      gst_rtsp_message_get_header (response, field, &respoptions, indx);
-    }
+    if (!respoptions)
+      break;
+
+    src->methods |= gst_rtsp_options_from_text (respoptions);
+
+    indx++;
+  }
+
+  indx = 0;
+  field = GST_RTSP_HDR_PUBLIC;
+  while (TRUE) {
+    respoptions = NULL;
+    gst_rtsp_message_get_header (response, field, &respoptions, indx);
     if (!respoptions)
       break;
 
@@ -5692,7 +6022,7 @@ gst_rtspsrc_parse_methods (GstRTSPSrc * src, GstRTSPMessage * response)
    * this */
   src->methods |= GST_RTSP_PLAY;
   /* also assume it will support Range */
-  src->seekable = TRUE;
+  src->seekable = G_MAXFLOAT;
 
   /* we need describe and setup */
   if (!(src->methods & GST_RTSP_DESCRIBE))
@@ -5871,10 +6201,14 @@ gst_rtspsrc_prepare_transports (GstRTSPStream * stream, gchar ** transports,
         g_string_append_printf (str, "%d", src->free_channel);
       else if (next[3] == '2')
         g_string_append_printf (str, "%d", src->free_channel + 1);
+
     }
 
     p = next + 4;
   }
+  if (src->version >= GST_RTSP_VERSION_2_0)
+    src->free_channel += 2;
+
   /* append final part */
   g_string_append (str, p);
 
@@ -5962,6 +6296,172 @@ gst_rtspsrc_stream_make_keymgmt (GstRTSPSrc * src, GstRTSPStream * stream)
   return result;
 }
 
+static GstRTSPResult
+gst_rtsp_src_setup_stream_from_response (GstRTSPSrc * src,
+    GstRTSPStream * stream, GstRTSPMessage * response,
+    GstRTSPLowerTrans * protocols, gint retry, gint * rtpport, gint * rtcpport)
+{
+  gchar *resptrans = NULL;
+  GstRTSPTransport transport = { 0 };
+
+  gst_rtsp_message_get_header (response, GST_RTSP_HDR_TRANSPORT, &resptrans, 0);
+  if (!resptrans) {
+    gst_rtspsrc_stream_free_udp (stream);
+    goto no_transport;
+  }
+
+  /* parse transport, go to next stream on parse error */
+  if (gst_rtsp_transport_parse (resptrans, &transport) != GST_RTSP_OK) {
+    GST_WARNING_OBJECT (src, "failed to parse transport %s", resptrans);
+    return GST_RTSP_ELAST;
+  }
+
+  /* update allowed transports for other streams. once the transport of
+   * one stream has been determined, we make sure that all other streams
+   * are configured in the same way */
+  switch (transport.lower_transport) {
+    case GST_RTSP_LOWER_TRANS_TCP:
+      GST_DEBUG_OBJECT (src, "stream %p as TCP interleaved", stream);
+      if (protocols)
+        *protocols = GST_RTSP_LOWER_TRANS_TCP;
+      src->interleaved = TRUE;
+      if (src->version < GST_RTSP_VERSION_2_0) {
+        /* update free channels */
+        src->free_channel = MAX (transport.interleaved.min, src->free_channel);
+        src->free_channel = MAX (transport.interleaved.max, src->free_channel);
+        src->free_channel++;
+      }
+      break;
+    case GST_RTSP_LOWER_TRANS_UDP_MCAST:
+      /* only allow multicast for other streams */
+      GST_DEBUG_OBJECT (src, "stream %p as UDP multicast", stream);
+      if (protocols)
+        *protocols = GST_RTSP_LOWER_TRANS_UDP_MCAST;
+      /* if the server selected our ports, increment our counters so that
+       * we select a new port later */
+      if (src->next_port_num == transport.port.min &&
+          src->next_port_num + 1 == transport.port.max) {
+        src->next_port_num += 2;
+      }
+      break;
+    case GST_RTSP_LOWER_TRANS_UDP:
+      /* only allow unicast for other streams */
+      GST_DEBUG_OBJECT (src, "stream %p as UDP unicast", stream);
+      if (protocols)
+        *protocols = GST_RTSP_LOWER_TRANS_UDP;
+      break;
+    default:
+      GST_DEBUG_OBJECT (src, "stream %p unknown transport %d", stream,
+          transport.lower_transport);
+      break;
+  }
+
+  if (!src->interleaved || !retry) {
+    /* now configure the stream with the selected transport */
+    if (!gst_rtspsrc_stream_configure_transport (stream, &transport)) {
+      GST_DEBUG_OBJECT (src,
+          "could not configure stream %p transport, skipping stream", stream);
+      goto done;
+    } else if (stream->udpsrc[0] && stream->udpsrc[1] && rtpport && rtcpport) {
+      /* retain the first allocated UDP port pair */
+      g_object_get (G_OBJECT (stream->udpsrc[0]), "port", rtpport, NULL);
+      g_object_get (G_OBJECT (stream->udpsrc[1]), "port", rtcpport, NULL);
+    }
+  }
+  /* we need to activate at least one stream when we detect activity */
+  src->need_activate = TRUE;
+
+  /* stream is setup now */
+  stream->setup = TRUE;
+  stream->waiting_setup_response = FALSE;
+
+  if (src->version >= GST_RTSP_VERSION_2_0) {
+    gchar *prop, *media_properties;
+    gchar **props;
+    gint i;
+
+    if (gst_rtsp_message_get_header (response, GST_RTSP_HDR_MEDIA_PROPERTIES,
+            &media_properties, 0) != GST_RTSP_OK) {
+      GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL),
+          ("Error: No MEDIA_PROPERTY header in a SETUP request in RTSP 2.0"
+              " - this header is mandatory."));
+
+      gst_rtsp_message_unset (response);
+      return GST_RTSP_ERROR;
+    }
+
+    props = g_strsplit (media_properties, ",", -2);
+    for (i = 0; props[i]; i++) {
+      prop = props[i];
+
+      while (*prop == ' ')
+        prop++;
+
+      if (strstr (prop, "Random-Access")) {
+        gchar **random_seekable_val = g_strsplit (prop, "=", 2);
+
+        if (!random_seekable_val[1])
+          src->seekable = G_MAXFLOAT;
+        else
+          src->seekable = g_ascii_strtod (random_seekable_val[1], NULL);
+
+        g_strfreev (random_seekable_val);
+      } else if (!g_strcmp0 (prop, "No-Seeking")) {
+        src->seekable = -1.0;
+      } else if (!g_strcmp0 (prop, "Beginning-Only")) {
+        src->seekable = 0.0;
+      }
+    }
+
+    g_strfreev (props);
+  }
+
+done:
+  /* clean up our transport struct */
+  gst_rtsp_transport_init (&transport);
+  /* clean up used RTSP messages */
+  gst_rtsp_message_unset (response);
+
+  return GST_RTSP_OK;
+
+no_transport:
+  {
+    GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS, (NULL),
+        ("Server did not select transport."));
+
+    gst_rtsp_message_unset (response);
+    return GST_RTSP_ERROR;
+  }
+}
+
+static GstRTSPResult
+gst_rtspsrc_setup_streams_end (GstRTSPSrc * src, gboolean async)
+{
+  GList *tmp;
+  GstRTSPConnInfo *conninfo;
+
+  g_assert (src->version >= GST_RTSP_VERSION_2_0);
+
+  conninfo = &src->conninfo;
+  for (tmp = src->streams; tmp; tmp = tmp->next) {
+    GstRTSPStream *stream = (GstRTSPStream *) tmp->data;
+    GstRTSPMessage response = { 0, };
+
+    if (!stream->waiting_setup_response)
+      continue;
+
+    if (!src->conninfo.connection)
+      conninfo = &((GstRTSPStream *) tmp->data)->conninfo;
+
+    gst_rtsp_src_receive_response (src, conninfo, &response, NULL);
+
+    gst_rtsp_src_setup_stream_from_response (src, stream,
+        &response, NULL, 0, NULL, NULL);
+  }
+
+  return GST_RTSP_OK;
+}
+
 /* Perform the SETUP request for all the streams.
  *
  * We ask the server for a specific transport, which initially includes all the
@@ -5971,11 +6471,14 @@ gst_rtspsrc_stream_make_keymgmt (GstRTSPSrc * src, GstRTSPStream * stream)
  * Once the server replied with a transport, we configure the other streams
  * with the same transport.
  *
- * This function will also configure the stream for the selected transport,
- * which basically means creating the pipeline.
+ * In case setup request are not pipelined, this function will also configure the
+ * stream for the selected transport, * which basically means creating the pipeline.
+ * Otherwise, the first stream is setup right away from the reply and a
+ * CMD_FINALIZE_SETUP command is set for the stream pipelines to happen on the
+ * remaining streams from the RTSP thread.
  */
 static GstRTSPResult
-gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async)
+gst_rtspsrc_setup_streams_start (GstRTSPSrc * src, gboolean async)
 {
   GList *walk;
   GstRTSPResult res = GST_RTSP_ERROR;
@@ -5988,6 +6491,7 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async)
   gint rtpport, rtcpport;
   GstRTSPUrl *url;
   gchar *hval;
+  gchar *pipelined_request_id = NULL;
 
   if (src->conninfo.connection) {
     url = gst_rtsp_connection_get_url (src->conninfo.connection);
@@ -6126,7 +6630,6 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async)
     }
 
     GST_DEBUG_OBJECT (src, "transport is now %s", GST_STR_NULL (transports));
-
     /* create SETUP request */
     res =
         gst_rtspsrc_init_request (src, &request, GST_RTSP_SETUP,
@@ -6136,6 +6639,17 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async)
       goto create_request_failed;
     }
 
+    if (src->version >= GST_RTSP_VERSION_2_0) {
+      if (!pipelined_request_id)
+        pipelined_request_id = g_strdup_printf ("%d",
+            g_random_int_range (0, G_MAXINT32));
+
+      gst_rtsp_message_add_header (&request, GST_RTSP_HDR_PIPELINED_REQUESTS,
+          pipelined_request_id);
+      gst_rtsp_message_add_header (&request, GST_RTSP_HDR_ACCEPT_RANGES,
+          "npt, clock, smpte, clock");
+    }
+
     /* select transport */
     gst_rtsp_message_take_header (&request, GST_RTSP_HDR_TRANSPORT, transports);
 
@@ -6158,7 +6672,9 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async)
               stream->id));
 
     /* handle the code ourselves */
-    res = gst_rtspsrc_send (src, conninfo, &request, &response, &code);
+    res =
+        gst_rtspsrc_send (src, conninfo, &request,
+        pipelined_request_id ? NULL : &response, &code, NULL);
     if (res < 0)
       goto send_error;
 
@@ -6198,106 +6714,50 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async)
         goto response_error;
     }
 
-    /* parse response transport */
-    {
-      gchar *resptrans = NULL;
-      GstRTSPTransport transport = { 0 };
-
-      gst_rtsp_message_get_header (&response, GST_RTSP_HDR_TRANSPORT,
-          &resptrans, 0);
-      if (!resptrans) {
-        gst_rtspsrc_stream_free_udp (stream);
-        goto no_transport;
-      }
-
-      /* parse transport, go to next stream on parse error */
-      if (gst_rtsp_transport_parse (resptrans, &transport) != GST_RTSP_OK) {
-        GST_WARNING_OBJECT (src, "failed to parse transport %s", resptrans);
-        goto next;
-      }
 
-      /* update allowed transports for other streams. once the transport of
-       * one stream has been determined, we make sure that all other streams
-       * are configured in the same way */
-      switch (transport.lower_transport) {
-        case GST_RTSP_LOWER_TRANS_TCP:
-          GST_DEBUG_OBJECT (src, "stream %p as TCP interleaved", stream);
-          protocols = GST_RTSP_LOWER_TRANS_TCP;
-          src->interleaved = TRUE;
-          /* update free channels */
-          src->free_channel =
-              MAX (transport.interleaved.min, src->free_channel);
-          src->free_channel =
-              MAX (transport.interleaved.max, src->free_channel);
-          src->free_channel++;
-          break;
-        case GST_RTSP_LOWER_TRANS_UDP_MCAST:
-          /* only allow multicast for other streams */
-          GST_DEBUG_OBJECT (src, "stream %p as UDP multicast", stream);
-          protocols = GST_RTSP_LOWER_TRANS_UDP_MCAST;
-          /* if the server selected our ports, increment our counters so that
-           * we select a new port later */
-          if (src->next_port_num == transport.port.min &&
-              src->next_port_num + 1 == transport.port.max) {
-            src->next_port_num += 2;
-          }
-          break;
-        case GST_RTSP_LOWER_TRANS_UDP:
-          /* only allow unicast for other streams */
-          GST_DEBUG_OBJECT (src, "stream %p as UDP unicast", stream);
-          protocols = GST_RTSP_LOWER_TRANS_UDP;
-          break;
+    if (!pipelined_request_id) {
+      /* parse response transport */
+      res = gst_rtsp_src_setup_stream_from_response (src, stream,
+          &response, &protocols, retry, &rtpport, &rtcpport);
+      switch (res) {
+        case GST_RTSP_ERROR:
+          goto cleanup_error;
+        case GST_RTSP_ELAST:
+          goto retry;
         default:
-          GST_DEBUG_OBJECT (src, "stream %p unknown transport %d", stream,
-              transport.lower_transport);
           break;
       }
-
-      if (!src->interleaved || !retry) {
-        /* now configure the stream with the selected transport */
-        if (!gst_rtspsrc_stream_configure_transport (stream, &transport)) {
-          GST_DEBUG_OBJECT (src,
-              "could not configure stream %p transport, skipping stream",
-              stream);
-          goto next;
-        } else if (stream->udpsrc[0] && stream->udpsrc[1]) {
-          /* retain the first allocated UDP port pair */
-          g_object_get (G_OBJECT (stream->udpsrc[0]), "port", &rtpport, NULL);
-          g_object_get (G_OBJECT (stream->udpsrc[1]), "port", &rtcpport, NULL);
-        }
-      }
-      /* we need to activate at least one streams when we detect activity */
+    } else {
+      stream->waiting_setup_response = TRUE;
+      /* we need to activate at least one stream when we detect activity */
       src->need_activate = TRUE;
+    }
 
-      /* stream is setup now */
-      stream->setup = TRUE;
-      {
-        GList *skip = walk;
+    {
+      GList *skip = walk;
 
-        while (TRUE) {
-          GstRTSPStream *sskip;
+      while (TRUE) {
+        GstRTSPStream *sskip;
 
-          skip = g_list_next (skip);
-          if (skip == NULL)
-            break;
+        skip = g_list_next (skip);
+        if (skip == NULL)
+          break;
 
-          sskip = (GstRTSPStream *) skip->data;
+        sskip = (GstRTSPStream *) skip->data;
 
-          /* skip all streams with the same control url */
-          if (g_str_equal (stream->conninfo.location, sskip->conninfo.location)) {
-            GST_DEBUG_OBJECT (src, "found stream %p with same control %s",
-                sskip, sskip->conninfo.location);
-            sskip->skipped = TRUE;
-          }
+        /* skip all streams with the same control url */
+        if (g_str_equal (stream->conninfo.location, sskip->conninfo.location)) {
+          GST_DEBUG_OBJECT (src, "found stream %p with same control %s",
+              sskip, sskip->conninfo.location);
+          sskip->skipped = TRUE;
         }
       }
-    next:
-      /* clean up our transport struct */
-      gst_rtsp_transport_init (&transport);
-      /* clean up used RTSP messages */
-      gst_rtsp_message_unset (&request);
-      gst_rtsp_message_unset (&response);
     }
+    gst_rtsp_message_unset (&request);
+  }
+
+  if (pipelined_request_id) {
+    gst_rtspsrc_setup_streams_end (src, TRUE);
   }
 
   /* store the transport protocol that was configured */
@@ -6305,6 +6765,9 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async)
 
   gst_rtsp_ext_list_stream_select (src->extensions, url);
 
+  if (pipelined_request_id)
+    g_free (pipelined_request_id);
+
   /* if there is nothing to activate, error out */
   if (!src->need_activate)
     goto nothing_to_activate;
@@ -6363,13 +6826,6 @@ send_error:
     g_free (str);
     goto cleanup_error;
   }
-no_transport:
-  {
-    GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS, (NULL),
-        ("Server did not select transport."));
-    res = GST_RTSP_ERROR;
-    goto cleanup_error;
-  }
 nothing_to_activate:
   {
     /* none of the available error codes is really right .. */
@@ -6388,6 +6844,8 @@ nothing_to_activate:
   }
 cleanup_error:
   {
+    if (pipelined_request_id)
+      g_free (pipelined_request_id);
     gst_rtsp_message_unset (&request);
     gst_rtsp_message_unset (&response);
     return res;
@@ -6540,8 +6998,7 @@ gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp,
   else
     src->props = gst_structure_new_empty ("RTSPProperties");
 
-  if (src->debug)
-    gst_sdp_message_dump (sdp);
+  DEBUG_SDP (src, sdp);
 
   gst_rtsp_ext_list_parse_sdp (src->extensions, sdp, src->props);
 
@@ -6619,7 +7076,7 @@ gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp,
   src->state = GST_RTSP_STATE_INIT;
 
   /* setup streams */
-  if ((res = gst_rtspsrc_setup_streams (src, async)) < 0)
+  if ((res = gst_rtspsrc_setup_streams_start (src, async)) < 0)
     goto setup_failed;
 
   /* reset our state */
@@ -6649,6 +7106,13 @@ gst_rtspsrc_retrieve_sdp (GstRTSPSrc * src, GstSDPMessage ** sdp,
   guint8 *data;
   guint size;
   gchar *respcont = NULL;
+  GstRTSPVersion versions[] =
+      { GST_RTSP_VERSION_2_0, GST_RTSP_VERSION_INVALID };
+
+  src->version = src->default_version;
+  if (src->default_version == GST_RTSP_VERSION_2_0) {
+    versions[0] = GST_RTSP_VERSION_1_0;
+  }
 
 restart:
   src->need_redirect = FALSE;
@@ -6664,7 +7128,7 @@ restart:
     goto connect_failed;
 
   /* create OPTIONS */
-  GST_DEBUG_OBJECT (src, "create options...");
+  GST_DEBUG_OBJECT (src, "create options... (%s)", async ? "async" : "sync");
   res =
       gst_rtspsrc_init_request (src, &request, GST_RTSP_OPTIONS,
       src->conninfo.url_str);
@@ -6672,6 +7136,7 @@ restart:
     goto create_request_failed;
 
   /* send OPTIONS */
+  request.type_data.request.version = src->version;
   GST_DEBUG_OBJECT (src, "send options...");
 
   if (async)
@@ -6679,8 +7144,13 @@ restart:
 
   if ((res =
           gst_rtspsrc_send (src, &src->conninfo, &request, &response,
-              NULL)) < 0)
+              NULL, versions)) < 0) {
     goto send_error;
+  }
+
+  src->version = request.type_data.request.version;
+  GST_INFO_OBJECT (src, "Now using version: %s",
+      gst_rtsp_version_as_text (src->version));
 
   /* parse OPTIONS */
   if (!gst_rtspsrc_parse_methods (src, &response))
@@ -6706,7 +7176,7 @@ restart:
 
   if ((res =
           gst_rtspsrc_send (src, &src->conninfo, &request, &response,
-              NULL)) < 0)
+              NULL, NULL)) < 0)
     goto send_error;
 
   /* we only perform redirect for describe and play, currently */
@@ -6928,7 +7398,8 @@ gst_rtspsrc_close (GstRTSPSrc * src, gboolean async, gboolean only_close)
     if (async)
       GST_ELEMENT_PROGRESS (src, CONTINUE, "close", ("Closing stream"));
 
-    if ((res = gst_rtspsrc_send (src, info, &request, &response, NULL)) < 0)
+    if ((res =
+            gst_rtspsrc_send (src, info, &request, &response, NULL, NULL)) < 0)
       goto send_error;
 
     /* FIXME, parse result? */
@@ -7181,7 +7652,8 @@ done:
 }
 
 static GstRTSPResult
-gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment, gboolean async)
+gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment, gboolean async,
+    const gchar * seek_style)
 {
   GstRTSPMessage request = { 0 };
   GstRTSPMessage response = { 0 };
@@ -7241,7 +7713,7 @@ restart:
     if (res < 0)
       goto create_request_failed;
 
-    if (src->need_range) {
+    if (src->need_range && src->seekable >= 0.0) {
       hval = gen_range_header (src, segment);
 
       gst_rtsp_message_take_header (&request, GST_RTSP_HDR_RANGE, hval);
@@ -7260,10 +7732,16 @@ restart:
         gst_rtsp_message_add_header (&request, GST_RTSP_HDR_SPEED, hval);
     }
 
+    if (seek_style)
+      gst_rtsp_message_add_header (&request, GST_RTSP_HDR_SEEK_STYLE,
+          seek_style);
+
     if (async)
       GST_ELEMENT_PROGRESS (src, CONTINUE, "request", ("Sending PLAY request"));
 
-    if ((res = gst_rtspsrc_send (src, conninfo, &request, &response, NULL)) < 0)
+    if ((res =
+            gst_rtspsrc_send (src, conninfo, &request, &response, NULL, NULL))
+        < 0)
       goto send_error;
 
     if (src->need_redirect) {
@@ -7281,9 +7759,14 @@ restart:
     /* seek may have silently failed as it is not supported */
     if (!(src->methods & GST_RTSP_PLAY)) {
       GST_DEBUG_OBJECT (src, "PLAY Range not supported; re-enable PLAY");
+
+      if (src->version >= GST_RTSP_VERSION_2_0 && src->seekable >= 0.0) {
+        GST_WARNING_OBJECT (src, "Server declared stream as seekable but"
+            " playing with range failed... Ignoring information.");
+      }
       /* obviously it is supported as we made it here */
       src->methods |= GST_RTSP_PLAY;
-      src->seekable = FALSE;
+      src->seekable = -1.0;
       /* but there is nothing to parse in the response,
        * so convey we have no idea and not to expect anything particular */
       clear_rtp_base (src, stream);
@@ -7467,7 +7950,9 @@ gst_rtspsrc_pause (GstRTSPSrc * src, gboolean async)
                 setup_url)) < 0)
       goto create_request_failed;
 
-    if ((res = gst_rtspsrc_send (src, conninfo, &request, &response, NULL)) < 0)
+    if ((res =
+            gst_rtspsrc_send (src, conninfo, &request, &response, NULL,
+                NULL)) < 0)
       goto send_error;
 
     gst_rtsp_message_unset (&request);
@@ -7637,7 +8122,7 @@ gst_rtspsrc_thread (GstRTSPSrc * src)
       gst_rtspsrc_open (src, TRUE);
       break;
     case CMD_PLAY:
-      gst_rtspsrc_play (src, &src->segment, TRUE);
+      gst_rtspsrc_play (src, &src->segment, TRUE, NULL);
       break;
     case CMD_PAUSE:
       gst_rtspsrc_pause (src, TRUE);
@@ -7966,3 +8451,305 @@ gst_rtspsrc_uri_handler_init (gpointer g_iface, gpointer iface_data)
   iface->get_uri = gst_rtspsrc_uri_get_uri;
   iface->set_uri = gst_rtspsrc_uri_set_uri;
 }
+
+typedef struct _RTSPKeyValue
+{
+  GstRTSPHeaderField field;
+  gchar *value;
+  gchar *custom_key;            /* custom header string (field is INVALID then) */
+} RTSPKeyValue;
+
+static void
+key_value_foreach (GArray * array, GFunc func, gpointer user_data)
+{
+  guint i;
+
+  g_return_if_fail (array != NULL);
+
+  for (i = 0; i < array->len; i++) {
+    (*func) (&g_array_index (array, RTSPKeyValue, i), user_data);
+  }
+}
+
+static void
+dump_key_value (gpointer data, gpointer user_data G_GNUC_UNUSED)
+{
+  RTSPKeyValue *key_value = (RTSPKeyValue *) data;
+  GstRTSPSrc *src = GST_RTSPSRC (user_data);
+  const gchar *key_string;
+
+  if (key_value->custom_key != NULL)
+    key_string = key_value->custom_key;
+  else
+    key_string = gst_rtsp_header_as_text (key_value->field);
+
+  GST_LOG_OBJECT (src, "   key: '%s', value: '%s'", key_string,
+      key_value->value);
+}
+
+static void
+gst_rtspsrc_print_rtsp_message (GstRTSPSrc * src, const GstRTSPMessage * msg)
+{
+  guint8 *data;
+  guint size;
+  GString *body_string = NULL;
+
+  g_return_if_fail (src != NULL);
+  g_return_if_fail (msg != NULL);
+
+  if (gst_debug_category_get_threshold (GST_CAT_DEFAULT) < GST_LEVEL_LOG)
+    return;
+
+  GST_LOG_OBJECT (src, "--------------------------------------------");
+  switch (msg->type) {
+    case GST_RTSP_MESSAGE_REQUEST:
+      GST_LOG_OBJECT (src, "RTSP request message %p", msg);
+      GST_LOG_OBJECT (src, " request line:");
+      GST_LOG_OBJECT (src, "   method: '%s'",
+          gst_rtsp_method_as_text (msg->type_data.request.method));
+      GST_LOG_OBJECT (src, "   uri:    '%s'", msg->type_data.request.uri);
+      GST_LOG_OBJECT (src, "   version: '%s'",
+          gst_rtsp_version_as_text (msg->type_data.request.version));
+      GST_LOG_OBJECT (src, " headers:");
+      key_value_foreach (msg->hdr_fields, dump_key_value, src);
+      GST_LOG_OBJECT (src, " body:");
+      gst_rtsp_message_get_body (msg, &data, &size);
+      if (size > 0) {
+        body_string = g_string_new_len ((const gchar *) data, size);
+        GST_LOG_OBJECT (src, " %s(%d)", body_string->str, size);
+        g_string_free (body_string, TRUE);
+        body_string = NULL;
+      }
+      break;
+    case GST_RTSP_MESSAGE_RESPONSE:
+      GST_LOG_OBJECT (src, "RTSP response message %p", msg);
+      GST_LOG_OBJECT (src, " status line:");
+      GST_LOG_OBJECT (src, "   code:   '%d'", msg->type_data.response.code);
+      GST_LOG_OBJECT (src, "   reason: '%s'", msg->type_data.response.reason);
+      GST_LOG_OBJECT (src, "   version: '%s",
+          gst_rtsp_version_as_text (msg->type_data.response.version));
+      GST_LOG_OBJECT (src, " headers:");
+      key_value_foreach (msg->hdr_fields, dump_key_value, src);
+      gst_rtsp_message_get_body (msg, &data, &size);
+      GST_LOG_OBJECT (src, " body: length %d", size);
+      if (size > 0) {
+        body_string = g_string_new_len ((const gchar *) data, size);
+        GST_LOG_OBJECT (src, " %s(%d)", body_string->str, size);
+        g_string_free (body_string, TRUE);
+        body_string = NULL;
+      }
+      break;
+    case GST_RTSP_MESSAGE_HTTP_REQUEST:
+      GST_LOG_OBJECT (src, "HTTP request message %p", msg);
+      GST_LOG_OBJECT (src, " request line:");
+      GST_LOG_OBJECT (src, "   method:  '%s'",
+          gst_rtsp_method_as_text (msg->type_data.request.method));
+      GST_LOG_OBJECT (src, "   uri:     '%s'", msg->type_data.request.uri);
+      GST_LOG_OBJECT (src, "   version: '%s'",
+          gst_rtsp_version_as_text (msg->type_data.request.version));
+      GST_LOG_OBJECT (src, " headers:");
+      key_value_foreach (msg->hdr_fields, dump_key_value, src);
+      GST_LOG_OBJECT (src, " body:");
+      gst_rtsp_message_get_body (msg, &data, &size);
+      if (size > 0) {
+        body_string = g_string_new_len ((const gchar *) data, size);
+        GST_LOG_OBJECT (src, " %s(%d)", body_string->str, size);
+        g_string_free (body_string, TRUE);
+        body_string = NULL;
+      }
+      break;
+    case GST_RTSP_MESSAGE_HTTP_RESPONSE:
+      GST_LOG_OBJECT (src, "HTTP response message %p", msg);
+      GST_LOG_OBJECT (src, " status line:");
+      GST_LOG_OBJECT (src, "   code:    '%d'", msg->type_data.response.code);
+      GST_LOG_OBJECT (src, "   reason:  '%s'", msg->type_data.response.reason);
+      GST_LOG_OBJECT (src, "   version: '%s'",
+          gst_rtsp_version_as_text (msg->type_data.response.version));
+      GST_LOG_OBJECT (src, " headers:");
+      key_value_foreach (msg->hdr_fields, dump_key_value, src);
+      gst_rtsp_message_get_body (msg, &data, &size);
+      GST_LOG_OBJECT (src, " body: length %d", size);
+      if (size > 0) {
+        body_string = g_string_new_len ((const gchar *) data, size);
+        GST_LOG_OBJECT (src, " %s(%d)", body_string->str, size);
+        g_string_free (body_string, TRUE);
+        body_string = NULL;
+      }
+      break;
+    case GST_RTSP_MESSAGE_DATA:
+      GST_LOG_OBJECT (src, "RTSP data message %p", msg);
+      GST_LOG_OBJECT (src, " channel: '%d'", msg->type_data.data.channel);
+      GST_LOG_OBJECT (src, " size:    '%d'", msg->body_size);
+      gst_rtsp_message_get_body (msg, &data, &size);
+      if (size > 0) {
+        body_string = g_string_new_len ((const gchar *) data, size);
+        GST_LOG_OBJECT (src, " %s(%d)", body_string->str, size);
+        g_string_free (body_string, TRUE);
+        body_string = NULL;
+      }
+      break;
+    default:
+      GST_LOG_OBJECT (src, "unsupported message type %d", msg->type);
+      break;
+  }
+  GST_LOG_OBJECT (src, "--------------------------------------------");
+}
+
+static void
+gst_rtspsrc_print_sdp_media (GstRTSPSrc * src, GstSDPMedia * media)
+{
+  GST_LOG_OBJECT (src, "   media:       '%s'", GST_STR_NULL (media->media));
+  GST_LOG_OBJECT (src, "   port:        '%u'", media->port);
+  GST_LOG_OBJECT (src, "   num_ports:   '%u'", media->num_ports);
+  GST_LOG_OBJECT (src, "   proto:       '%s'", GST_STR_NULL (media->proto));
+  if (media->fmts && media->fmts->len > 0) {
+    guint i;
+
+    GST_LOG_OBJECT (src, "   formats:");
+    for (i = 0; i < media->fmts->len; i++) {
+      GST_LOG_OBJECT (src, "    format  '%s'", g_array_index (media->fmts,
+              gchar *, i));
+    }
+  }
+  GST_LOG_OBJECT (src, "   information: '%s'",
+      GST_STR_NULL (media->information));
+  if (media->connections && media->connections->len > 0) {
+    guint i;
+
+    GST_LOG_OBJECT (src, "   connections:");
+    for (i = 0; i < media->connections->len; i++) {
+      GstSDPConnection *conn =
+          &g_array_index (media->connections, GstSDPConnection, i);
+
+      GST_LOG_OBJECT (src, "    nettype:      '%s'",
+          GST_STR_NULL (conn->nettype));
+      GST_LOG_OBJECT (src, "    addrtype:     '%s'",
+          GST_STR_NULL (conn->addrtype));
+      GST_LOG_OBJECT (src, "    address:      '%s'",
+          GST_STR_NULL (conn->address));
+      GST_LOG_OBJECT (src, "    ttl:          '%u'", conn->ttl);
+      GST_LOG_OBJECT (src, "    addr_number:  '%u'", conn->addr_number);
+    }
+  }
+  if (media->bandwidths && media->bandwidths->len > 0) {
+    guint i;
+
+    GST_LOG_OBJECT (src, "   bandwidths:");
+    for (i = 0; i < media->bandwidths->len; i++) {
+      GstSDPBandwidth *bw =
+          &g_array_index (media->bandwidths, GstSDPBandwidth, i);
+
+      GST_LOG_OBJECT (src, "    type:         '%s'", GST_STR_NULL (bw->bwtype));
+      GST_LOG_OBJECT (src, "    bandwidth:    '%u'", bw->bandwidth);
+    }
+  }
+  GST_LOG_OBJECT (src, "   key:");
+  GST_LOG_OBJECT (src, "    type:       '%s'", GST_STR_NULL (media->key.type));
+  GST_LOG_OBJECT (src, "    data:       '%s'", GST_STR_NULL (media->key.data));
+  if (media->attributes && media->attributes->len > 0) {
+    guint i;
+
+    GST_LOG_OBJECT (src, "   attributes:");
+    for (i = 0; i < media->attributes->len; i++) {
+      GstSDPAttribute *attr =
+          &g_array_index (media->attributes, GstSDPAttribute, i);
+
+      GST_LOG_OBJECT (src, "    attribute '%s' : '%s'", attr->key, attr->value);
+    }
+  }
+}
+
+void
+gst_rtspsrc_print_sdp_message (GstRTSPSrc * src, const GstSDPMessage * msg)
+{
+  g_return_if_fail (src != NULL);
+  g_return_if_fail (msg != NULL);
+
+  if (gst_debug_category_get_threshold (GST_CAT_DEFAULT) < GST_LEVEL_LOG)
+    return;
+
+  GST_LOG_OBJECT (src, "--------------------------------------------");
+  GST_LOG_OBJECT (src, "sdp packet %p:", msg);
+  GST_LOG_OBJECT (src, " version:       '%s'", GST_STR_NULL (msg->version));
+  GST_LOG_OBJECT (src, " origin:");
+  GST_LOG_OBJECT (src, "  username:     '%s'",
+      GST_STR_NULL (msg->origin.username));
+  GST_LOG_OBJECT (src, "  sess_id:      '%s'",
+      GST_STR_NULL (msg->origin.sess_id));
+  GST_LOG_OBJECT (src, "  sess_version: '%s'",
+      GST_STR_NULL (msg->origin.sess_version));
+  GST_LOG_OBJECT (src, "  nettype:      '%s'",
+      GST_STR_NULL (msg->origin.nettype));
+  GST_LOG_OBJECT (src, "  addrtype:     '%s'",
+      GST_STR_NULL (msg->origin.addrtype));
+  GST_LOG_OBJECT (src, "  addr:         '%s'", GST_STR_NULL (msg->origin.addr));
+  GST_LOG_OBJECT (src, " session_name:  '%s'",
+      GST_STR_NULL (msg->session_name));
+  GST_LOG_OBJECT (src, " information:   '%s'", GST_STR_NULL (msg->information));
+  GST_LOG_OBJECT (src, " uri:           '%s'", GST_STR_NULL (msg->uri));
+
+  if (msg->emails && msg->emails->len > 0) {
+    guint i;
+
+    GST_LOG_OBJECT (src, " emails:");
+    for (i = 0; i < msg->emails->len; i++) {
+      GST_LOG_OBJECT (src, "  email '%s'", g_array_index (msg->emails, gchar *,
+              i));
+    }
+  }
+  if (msg->phones && msg->phones->len > 0) {
+    guint i;
+
+    GST_LOG_OBJECT (src, " phones:");
+    for (i = 0; i < msg->phones->len; i++) {
+      GST_LOG_OBJECT (src, "  phone '%s'", g_array_index (msg->phones, gchar *,
+              i));
+    }
+  }
+  GST_LOG_OBJECT (src, " connection:");
+  GST_LOG_OBJECT (src, "  nettype:      '%s'",
+      GST_STR_NULL (msg->connection.nettype));
+  GST_LOG_OBJECT (src, "  addrtype:     '%s'",
+      GST_STR_NULL (msg->connection.addrtype));
+  GST_LOG_OBJECT (src, "  address:      '%s'",
+      GST_STR_NULL (msg->connection.address));
+  GST_LOG_OBJECT (src, "  ttl:          '%u'", msg->connection.ttl);
+  GST_LOG_OBJECT (src, "  addr_number:  '%u'", msg->connection.addr_number);
+  if (msg->bandwidths && msg->bandwidths->len > 0) {
+    guint i;
+
+    GST_LOG_OBJECT (src, " bandwidths:");
+    for (i = 0; i < msg->bandwidths->len; i++) {
+      GstSDPBandwidth *bw =
+          &g_array_index (msg->bandwidths, GstSDPBandwidth, i);
+
+      GST_LOG_OBJECT (src, "  type:         '%s'", GST_STR_NULL (bw->bwtype));
+      GST_LOG_OBJECT (src, "  bandwidth:    '%u'", bw->bandwidth);
+    }
+  }
+  GST_LOG_OBJECT (src, " key:");
+  GST_LOG_OBJECT (src, "  type:         '%s'", GST_STR_NULL (msg->key.type));
+  GST_LOG_OBJECT (src, "  data:         '%s'", GST_STR_NULL (msg->key.data));
+  if (msg->attributes && msg->attributes->len > 0) {
+    guint i;
+
+    GST_LOG_OBJECT (src, " attributes:");
+    for (i = 0; i < msg->attributes->len; i++) {
+      GstSDPAttribute *attr =
+          &g_array_index (msg->attributes, GstSDPAttribute, i);
+
+      GST_LOG_OBJECT (src, "  attribute '%s' : '%s'", attr->key, attr->value);
+    }
+  }
+  if (msg->medias && msg->medias->len > 0) {
+    guint i;
+
+    GST_LOG_OBJECT (src, " medias:");
+    for (i = 0; i < msg->medias->len; i++) {
+      GST_LOG_OBJECT (src, "  media %u:", i);
+      gst_rtspsrc_print_sdp_media (src, &g_array_index (msg->medias,
+              GstSDPMedia, i));
+    }
+  }
+  GST_LOG_OBJECT (src, "--------------------------------------------");
+}
diff --git a/gst/rtsp/gstrtspsrc.h b/gst/rtsp/gstrtspsrc.h
index 49d95c38a..57921d2e1 100644
--- a/gst/rtsp/gstrtspsrc.h
+++ b/gst/rtsp/gstrtspsrc.h
@@ -107,6 +107,7 @@ struct _GstRTSPStream {
   gboolean      eos;
   gboolean      discont;
   gboolean      need_caps;
+  gboolean      waiting_setup_response;
 
   /* for interleaved mode */
   guint8        channel[2];
@@ -161,6 +162,9 @@ struct _GstRTSPStream {
   gboolean      is_multicast;
   guint         ttl;
 
+  /* A unique and stable id we will use for the stream start event */
+  gchar *stream_id;
+
   GstStructure     *rtx_pt_map;
 };
 
@@ -247,6 +251,9 @@ struct _GstRTSPSrc {
   gchar            *user_agent;
   GstClockTime      max_rtcp_rtp_time_diff;
   gboolean          rfc7273_sync;
+  guint64           max_ts_offset_adjustment;
+  gint64            max_ts_offset;
+  gboolean          max_ts_offset_is_set;
 
   /* state */
   GstRTSPState       state;
@@ -263,7 +270,15 @@ struct _GstRTSPSrc {
   /* supported methods */
   gint               methods;
 
-  gboolean           seekable;
+  /* seekability
+   * -1.0 : Stream is not seekable
+   *  0.0 : seekable only to the beginning
+   * G_MAXFLOAT : Any value is possible
+   *
+   * Any other positive value indicates the longest duration
+   * between any two random access points
+   *  */
+  gfloat             seekable;
   GstClockTime       last_pos;
 
   /* session management */
@@ -276,6 +291,9 @@ struct _GstRTSPSrc {
 
   /* a list of RTSP extensions as GstElement */
   GstRTSPExtensionList  *extensions;
+
+  GstRTSPVersion default_version;
+  GstRTSPVersion version;
 };
 
 struct _GstRTSPSrcClass {
diff --git a/gst/shapewipe/Makefile.am b/gst/shapewipe/Makefile.am
index 6af16621c..2f3d93812 100644
--- a/gst/shapewipe/Makefile.am
+++ b/gst/shapewipe/Makefile.am
@@ -5,6 +5,5 @@ libgstshapewipe_la_SOURCES = gstshapewipe.c
 libgstshapewipe_la_CFLAGS = $(GIO_CFLAGS) $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS)
 libgstshapewipe_la_LIBADD = $(GIO_LIBS) $(GST_LIBS) $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_API_VERSION@
 libgstshapewipe_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstshapewipe_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstshapewipe.h
diff --git a/gst/shapewipe/Makefile.in b/gst/shapewipe/Makefile.in
index 3bad30c7b..882f17e9c 100644
--- a/gst/shapewipe/Makefile.in
+++ b/gst/shapewipe/Makefile.in
@@ -172,8 +172,8 @@ 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) \
+	$(AM_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@)
@@ -291,6 +291,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -314,6 +315,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -329,6 +332,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -351,10 +356,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -369,6 +381,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -386,6 +399,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -398,6 +413,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -416,6 +433,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -459,9 +479,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -475,11 +506,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -575,7 +611,6 @@ libgstshapewipe_la_SOURCES = gstshapewipe.c
 libgstshapewipe_la_CFLAGS = $(GIO_CFLAGS) $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS)
 libgstshapewipe_la_LIBADD = $(GIO_LIBS) $(GST_LIBS) $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_API_VERSION@
 libgstshapewipe_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstshapewipe_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstshapewipe.h
 all: all-am
 
@@ -682,11 +717,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstshapewipe_la-gstshapewipe.lo: gstshapewipe.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshapewipe_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshapewipe_la_CFLAGS) $(CFLAGS) -MT libgstshapewipe_la-gstshapewipe.lo -MD -MP -MF $(DEPDIR)/libgstshapewipe_la-gstshapewipe.Tpo -c -o libgstshapewipe_la-gstshapewipe.lo `test -f 'gstshapewipe.c' || echo '$(srcdir)/'`gstshapewipe.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshapewipe_la_CFLAGS) $(CFLAGS) -MT libgstshapewipe_la-gstshapewipe.lo -MD -MP -MF $(DEPDIR)/libgstshapewipe_la-gstshapewipe.Tpo -c -o libgstshapewipe_la-gstshapewipe.lo `test -f 'gstshapewipe.c' || echo '$(srcdir)/'`gstshapewipe.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstshapewipe_la-gstshapewipe.Tpo $(DEPDIR)/libgstshapewipe_la-gstshapewipe.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstshapewipe.c' object='libgstshapewipe_la-gstshapewipe.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 $(libgstshapewipe_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshapewipe_la_CFLAGS) $(CFLAGS) -c -o libgstshapewipe_la-gstshapewipe.lo `test -f 'gstshapewipe.c' || echo '$(srcdir)/'`gstshapewipe.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshapewipe_la_CFLAGS) $(CFLAGS) -c -o libgstshapewipe_la-gstshapewipe.lo `test -f 'gstshapewipe.c' || echo '$(srcdir)/'`gstshapewipe.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/smpte/Makefile.am b/gst/smpte/Makefile.am
index b104134cc..d5111b234 100644
--- a/gst/smpte/Makefile.am
+++ b/gst/smpte/Makefile.am
@@ -8,4 +8,3 @@ libgstsmpte_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 libgstsmpte_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(LIBM) \
 			-lgstvideo-$(GST_API_VERSION) 
 libgstsmpte_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstsmpte_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
diff --git a/gst/smpte/Makefile.in b/gst/smpte/Makefile.in
index 9706c3410..12822d7b3 100644
--- a/gst/smpte/Makefile.in
+++ b/gst/smpte/Makefile.in
@@ -175,9 +175,9 @@ 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_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
@@ -294,6 +294,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -317,6 +318,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -332,6 +335,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -354,10 +359,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -372,6 +384,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -389,6 +402,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -401,6 +416,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -419,6 +436,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -462,9 +482,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -478,11 +509,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -581,7 +617,6 @@ libgstsmpte_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(LIBM) \
 			-lgstvideo-$(GST_API_VERSION) 
 
 libgstsmpte_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstsmpte_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 all: all-am
 
 .SUFFIXES:
@@ -692,46 +727,46 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstsmpte_la-gstsmpte.lo: gstsmpte.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-gstsmpte.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-gstsmpte.Tpo -c -o libgstsmpte_la-gstsmpte.lo `test -f 'gstsmpte.c' || echo '$(srcdir)/'`gstsmpte.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-gstsmpte.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-gstsmpte.Tpo -c -o libgstsmpte_la-gstsmpte.lo `test -f 'gstsmpte.c' || echo '$(srcdir)/'`gstsmpte.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmpte_la-gstsmpte.Tpo $(DEPDIR)/libgstsmpte_la-gstsmpte.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsmpte.c' object='libgstsmpte_la-gstsmpte.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 $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-gstsmpte.lo `test -f 'gstsmpte.c' || echo '$(srcdir)/'`gstsmpte.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-gstsmpte.lo `test -f 'gstsmpte.c' || echo '$(srcdir)/'`gstsmpte.c
 
 libgstsmpte_la-gstmask.lo: gstmask.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-gstmask.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-gstmask.Tpo -c -o libgstsmpte_la-gstmask.lo `test -f 'gstmask.c' || echo '$(srcdir)/'`gstmask.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-gstmask.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-gstmask.Tpo -c -o libgstsmpte_la-gstmask.lo `test -f 'gstmask.c' || echo '$(srcdir)/'`gstmask.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmpte_la-gstmask.Tpo $(DEPDIR)/libgstsmpte_la-gstmask.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmask.c' object='libgstsmpte_la-gstmask.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 $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-gstmask.lo `test -f 'gstmask.c' || echo '$(srcdir)/'`gstmask.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-gstmask.lo `test -f 'gstmask.c' || echo '$(srcdir)/'`gstmask.c
 
 libgstsmpte_la-barboxwipes.lo: barboxwipes.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-barboxwipes.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-barboxwipes.Tpo -c -o libgstsmpte_la-barboxwipes.lo `test -f 'barboxwipes.c' || echo '$(srcdir)/'`barboxwipes.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-barboxwipes.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-barboxwipes.Tpo -c -o libgstsmpte_la-barboxwipes.lo `test -f 'barboxwipes.c' || echo '$(srcdir)/'`barboxwipes.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmpte_la-barboxwipes.Tpo $(DEPDIR)/libgstsmpte_la-barboxwipes.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='barboxwipes.c' object='libgstsmpte_la-barboxwipes.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 $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-barboxwipes.lo `test -f 'barboxwipes.c' || echo '$(srcdir)/'`barboxwipes.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-barboxwipes.lo `test -f 'barboxwipes.c' || echo '$(srcdir)/'`barboxwipes.c
 
 libgstsmpte_la-paint.lo: paint.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-paint.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-paint.Tpo -c -o libgstsmpte_la-paint.lo `test -f 'paint.c' || echo '$(srcdir)/'`paint.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-paint.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-paint.Tpo -c -o libgstsmpte_la-paint.lo `test -f 'paint.c' || echo '$(srcdir)/'`paint.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmpte_la-paint.Tpo $(DEPDIR)/libgstsmpte_la-paint.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='paint.c' object='libgstsmpte_la-paint.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 $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-paint.lo `test -f 'paint.c' || echo '$(srcdir)/'`paint.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-paint.lo `test -f 'paint.c' || echo '$(srcdir)/'`paint.c
 
 libgstsmpte_la-gstsmptealpha.lo: gstsmptealpha.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-gstsmptealpha.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-gstsmptealpha.Tpo -c -o libgstsmpte_la-gstsmptealpha.lo `test -f 'gstsmptealpha.c' || echo '$(srcdir)/'`gstsmptealpha.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-gstsmptealpha.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-gstsmptealpha.Tpo -c -o libgstsmpte_la-gstsmptealpha.lo `test -f 'gstsmptealpha.c' || echo '$(srcdir)/'`gstsmptealpha.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmpte_la-gstsmptealpha.Tpo $(DEPDIR)/libgstsmpte_la-gstsmptealpha.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsmptealpha.c' object='libgstsmpte_la-gstsmptealpha.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 $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-gstsmptealpha.lo `test -f 'gstsmptealpha.c' || echo '$(srcdir)/'`gstsmptealpha.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-gstsmptealpha.lo `test -f 'gstsmptealpha.c' || echo '$(srcdir)/'`gstsmptealpha.c
 
 libgstsmpte_la-plugin.lo: plugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-plugin.Tpo -c -o libgstsmpte_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-plugin.Tpo -c -o libgstsmpte_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmpte_la-plugin.Tpo $(DEPDIR)/libgstsmpte_la-plugin.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='plugin.c' object='libgstsmpte_la-plugin.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 $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/spectrum/Makefile.am b/gst/spectrum/Makefile.am
index 22633f835..dc0c9e44a 100644
--- a/gst/spectrum/Makefile.am
+++ b/gst/spectrum/Makefile.am
@@ -7,6 +7,5 @@ libgstspectrum_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 	-lgstfft-$(GST_API_VERSION) -lgstaudio-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 libgstspectrum_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstspectrum_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstspectrum.h
diff --git a/gst/spectrum/Makefile.in b/gst/spectrum/Makefile.in
index 6df8a7b32..05dd78376 100644
--- a/gst/spectrum/Makefile.in
+++ b/gst/spectrum/Makefile.in
@@ -173,8 +173,8 @@ 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) \
+	$(AM_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@)
@@ -292,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -315,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -330,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -352,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -370,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -387,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -399,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -417,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -460,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -476,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -581,7 +617,6 @@ libgstspectrum_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 
 libgstspectrum_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstspectrum_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstspectrum.h
 all: all-am
 
@@ -688,11 +723,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstspectrum_la-gstspectrum.lo: gstspectrum.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspectrum_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspectrum_la_CFLAGS) $(CFLAGS) -MT libgstspectrum_la-gstspectrum.lo -MD -MP -MF $(DEPDIR)/libgstspectrum_la-gstspectrum.Tpo -c -o libgstspectrum_la-gstspectrum.lo `test -f 'gstspectrum.c' || echo '$(srcdir)/'`gstspectrum.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspectrum_la_CFLAGS) $(CFLAGS) -MT libgstspectrum_la-gstspectrum.lo -MD -MP -MF $(DEPDIR)/libgstspectrum_la-gstspectrum.Tpo -c -o libgstspectrum_la-gstspectrum.lo `test -f 'gstspectrum.c' || echo '$(srcdir)/'`gstspectrum.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstspectrum_la-gstspectrum.Tpo $(DEPDIR)/libgstspectrum_la-gstspectrum.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstspectrum.c' object='libgstspectrum_la-gstspectrum.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 $(libgstspectrum_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspectrum_la_CFLAGS) $(CFLAGS) -c -o libgstspectrum_la-gstspectrum.lo `test -f 'gstspectrum.c' || echo '$(srcdir)/'`gstspectrum.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspectrum_la_CFLAGS) $(CFLAGS) -c -o libgstspectrum_la-gstspectrum.lo `test -f 'gstspectrum.c' || echo '$(srcdir)/'`gstspectrum.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/spectrum/gstspectrum.c b/gst/spectrum/gstspectrum.c
index 96331b6c4..4be896025 100644
--- a/gst/spectrum/gstspectrum.c
+++ b/gst/spectrum/gstspectrum.c
@@ -22,7 +22,7 @@
  * SECTION:element-spectrum
  *
  * The Spectrum element analyzes the frequency spectrum of an audio signal.
- * If the #GstSpectrum:post-messages property is #TRUE, it sends analysis results
+ * If the #GstSpectrum:post-messages property is %TRUE, it sends analysis results
  * as element messages named
  * <classname>&quot;spectrum&quot;</classname> after each interval of time given
  * by the #GstSpectrum:interval property.
diff --git a/gst/udp/Makefile.am b/gst/udp/Makefile.am
index 74579cd34..697405af4 100644
--- a/gst/udp/Makefile.am
+++ b/gst/udp/Makefile.am
@@ -5,7 +5,6 @@ libgstudp_la_SOURCES = gstudp.c gstudpsrc.c gstudpsink.c gstmultiudpsink.c gstdy
 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)
 
 noinst_HEADERS = gstudpsink.h gstudpsrc.h gstmultiudpsink.h gstdynudpsink.h gstudpnetutils.h
 
diff --git a/gst/udp/Makefile.in b/gst/udp/Makefile.in
index e1a0799be..33f637a98 100644
--- a/gst/udp/Makefile.in
+++ b/gst/udp/Makefile.in
@@ -175,10 +175,9 @@ 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 $@
+libgstudp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_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
@@ -295,6 +294,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -318,6 +318,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -333,6 +335,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -355,10 +359,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -373,6 +384,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -390,6 +402,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -402,6 +416,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -420,6 +436,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -463,9 +482,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -479,11 +509,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -579,7 +614,6 @@ libgstudp_la_SOURCES = gstudp.c gstudpsrc.c gstudpsink.c gstmultiudpsink.c gstdy
 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)
 noinst_HEADERS = gstudpsink.h gstudpsrc.h gstmultiudpsink.h gstdynudpsink.h gstudpnetutils.h
 EXTRA_DIST = README
 CLEANFILES = $(BUILT_SOURCES)
@@ -693,46 +727,46 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstudp_la-gstudp.lo: gstudp.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.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudp.Tpo -c -o libgstudp_la-gstudp.lo `test -f 'gstudp.c' || echo '$(srcdir)/'`gstudp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudp.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudp.Tpo -c -o libgstudp_la-gstudp.lo `test -f 'gstudp.c' || echo '$(srcdir)/'`gstudp.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudp.Tpo $(DEPDIR)/libgstudp_la-gstudp.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstudp.c' object='libgstudp_la-gstudp.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.lo `test -f 'gstudp.c' || echo '$(srcdir)/'`gstudp.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudp.lo `test -f 'gstudp.c' || echo '$(srcdir)/'`gstudp.c
 
 libgstudp_la-gstudpsrc.lo: gstudpsrc.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-gstudpsrc.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudpsrc.Tpo -c -o libgstudp_la-gstudpsrc.lo `test -f 'gstudpsrc.c' || echo '$(srcdir)/'`gstudpsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudpsrc.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudpsrc.Tpo -c -o libgstudp_la-gstudpsrc.lo `test -f 'gstudpsrc.c' || echo '$(srcdir)/'`gstudpsrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudpsrc.Tpo $(DEPDIR)/libgstudp_la-gstudpsrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstudpsrc.c' object='libgstudp_la-gstudpsrc.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-gstudpsrc.lo `test -f 'gstudpsrc.c' || echo '$(srcdir)/'`gstudpsrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudpsrc.lo `test -f 'gstudpsrc.c' || echo '$(srcdir)/'`gstudpsrc.c
 
 libgstudp_la-gstudpsink.lo: gstudpsink.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-gstudpsink.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudpsink.Tpo -c -o libgstudp_la-gstudpsink.lo `test -f 'gstudpsink.c' || echo '$(srcdir)/'`gstudpsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudpsink.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudpsink.Tpo -c -o libgstudp_la-gstudpsink.lo `test -f 'gstudpsink.c' || echo '$(srcdir)/'`gstudpsink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudpsink.Tpo $(DEPDIR)/libgstudp_la-gstudpsink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstudpsink.c' object='libgstudp_la-gstudpsink.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-gstudpsink.lo `test -f 'gstudpsink.c' || echo '$(srcdir)/'`gstudpsink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudpsink.lo `test -f 'gstudpsink.c' || echo '$(srcdir)/'`gstudpsink.c
 
 libgstudp_la-gstmultiudpsink.lo: gstmultiudpsink.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-gstmultiudpsink.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstmultiudpsink.Tpo -c -o libgstudp_la-gstmultiudpsink.lo `test -f 'gstmultiudpsink.c' || echo '$(srcdir)/'`gstmultiudpsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstmultiudpsink.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstmultiudpsink.Tpo -c -o libgstudp_la-gstmultiudpsink.lo `test -f 'gstmultiudpsink.c' || echo '$(srcdir)/'`gstmultiudpsink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstmultiudpsink.Tpo $(DEPDIR)/libgstudp_la-gstmultiudpsink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmultiudpsink.c' object='libgstudp_la-gstmultiudpsink.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-gstmultiudpsink.lo `test -f 'gstmultiudpsink.c' || echo '$(srcdir)/'`gstmultiudpsink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstmultiudpsink.lo `test -f 'gstmultiudpsink.c' || echo '$(srcdir)/'`gstmultiudpsink.c
 
 libgstudp_la-gstdynudpsink.lo: gstdynudpsink.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-gstdynudpsink.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstdynudpsink.Tpo -c -o libgstudp_la-gstdynudpsink.lo `test -f 'gstdynudpsink.c' || echo '$(srcdir)/'`gstdynudpsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstdynudpsink.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstdynudpsink.Tpo -c -o libgstudp_la-gstdynudpsink.lo `test -f 'gstdynudpsink.c' || echo '$(srcdir)/'`gstdynudpsink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstdynudpsink.Tpo $(DEPDIR)/libgstudp_la-gstdynudpsink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdynudpsink.c' object='libgstudp_la-gstdynudpsink.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-gstdynudpsink.lo `test -f 'gstdynudpsink.c' || echo '$(srcdir)/'`gstdynudpsink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstdynudpsink.lo `test -f 'gstdynudpsink.c' || echo '$(srcdir)/'`gstdynudpsink.c
 
 libgstudp_la-gstudpnetutils.lo: gstudpnetutils.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-gstudpnetutils.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudpnetutils.Tpo -c -o libgstudp_la-gstudpnetutils.lo `test -f 'gstudpnetutils.c' || echo '$(srcdir)/'`gstudpnetutils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudpnetutils.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudpnetutils.Tpo -c -o libgstudp_la-gstudpnetutils.lo `test -f 'gstudpnetutils.c' || echo '$(srcdir)/'`gstudpnetutils.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudpnetutils.Tpo $(DEPDIR)/libgstudp_la-gstudpnetutils.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstudpnetutils.c' object='libgstudp_la-gstudpnetutils.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-gstudpnetutils.lo `test -f 'gstudpnetutils.c' || echo '$(srcdir)/'`gstudpnetutils.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudpnetutils.lo `test -f 'gstudpnetutils.c' || echo '$(srcdir)/'`gstudpnetutils.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c
index 379986cae..8c69634a5 100644
--- a/gst/udp/gstmultiudpsink.c
+++ b/gst/udp/gstmultiudpsink.c
@@ -671,7 +671,7 @@ gst_udp_address_get_string (GSocketAddress * addr, gchar * s, gsize size)
 
 /* Wrapper around g_socket_send_messages() plus error handling (ignoring).
  * Returns FALSE if we got cancelled, otherwise TRUE. */
-static gboolean
+static GstFlowReturn
 gst_multiudpsink_send_messages (GstMultiUDPSink * sink, GSocket * socket,
     GstOutputMessage * messages, guint num_messages)
 {
@@ -690,8 +690,16 @@ gst_multiudpsink_send_messages (GstMultiUDPSink * sink, GSocket * socket,
       GstOutputMessage *msg;
 
       if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
+        GstFlowReturn flow_ret;
+
         g_clear_error (&err);
-        return FALSE;
+
+        flow_ret = gst_base_sink_wait_preroll (GST_BASE_SINK (sink));
+
+        if (flow_ret == GST_FLOW_OK)
+          continue;
+
+        return flow_ret;
       }
 
       err_idx = gst_udp_messsages_find_first_not_sent (messages, num_messages);
@@ -738,7 +746,7 @@ gst_multiudpsink_send_messages (GstMultiUDPSink * sink, GSocket * socket,
     num_messages -= ret;
   }
 
-  return TRUE;
+  return GST_FLOW_OK;
 }
 
 static GstFlowReturn
@@ -753,7 +761,6 @@ gst_multiudpsink_render_buffers (GstMultiUDPSink * sink, GstBuffer ** buffers,
   GstFlowReturn flow_ret;
   guint num_addr_v4, num_addr_v6;
   guint num_addr, num_msgs;
-  GError *err = NULL;
   guint i, j, mem;
   gsize size = 0;
   GList *l;
@@ -837,33 +844,28 @@ gst_multiudpsink_render_buffers (GstMultiUDPSink * sink, GstBuffer ** buffers,
   }
 
   /* now send it! */
-  {
-    gboolean ret;
 
-    /* no IPv4 socket? Send it all from the IPv6 socket then.. */
-    if (sink->used_socket == NULL) {
-      ret = gst_multiudpsink_send_messages (sink, sink->used_socket_v6,
-          msgs, num_msgs);
-    } else {
-      guint num_msgs_v4 = num_buffers * num_addr_v4;
-      guint num_msgs_v6 = num_buffers * num_addr_v6;
-
-      /* our client list is sorted with IPv4 clients first and IPv6 ones last */
-      ret = gst_multiudpsink_send_messages (sink, sink->used_socket,
-          msgs, num_msgs_v4);
-
-      if (!ret)
-        goto cancelled;
+  /* no IPv4 socket? Send it all from the IPv6 socket then.. */
+  if (sink->used_socket == NULL) {
+    flow_ret = gst_multiudpsink_send_messages (sink, sink->used_socket_v6,
+        msgs, num_msgs);
+  } else {
+    guint num_msgs_v4 = num_buffers * num_addr_v4;
+    guint num_msgs_v6 = num_buffers * num_addr_v6;
 
-      ret = gst_multiudpsink_send_messages (sink, sink->used_socket_v6,
-          msgs + num_msgs_v4, num_msgs_v6);
-    }
+    /* our client list is sorted with IPv4 clients first and IPv6 ones last */
+    flow_ret = gst_multiudpsink_send_messages (sink, sink->used_socket,
+        msgs, num_msgs_v4);
 
-    if (!ret)
+    if (flow_ret != GST_FLOW_OK)
       goto cancelled;
+
+    flow_ret = gst_multiudpsink_send_messages (sink, sink->used_socket_v6,
+        msgs + num_msgs_v4, num_msgs_v6);
   }
 
-  flow_ret = GST_FLOW_OK;
+  if (flow_ret != GST_FLOW_OK)
+    goto cancelled;
 
   /* now update stats */
   g_mutex_lock (&sink->client_lock);
@@ -901,8 +903,6 @@ no_clients:
 cancelled:
   {
     GST_INFO_OBJECT (sink, "cancelled");
-    g_clear_error (&err);
-    flow_ret = GST_FLOW_FLUSHING;
 
     g_mutex_lock (&sink->client_lock);
     for (i = 0; i < num_addr; ++i)
@@ -1052,8 +1052,10 @@ gst_multiudpsink_setup_qos_dscp (GstMultiUDPSink * sink, GSocket * socket)
       GST_ERROR_OBJECT (sink, "could not set TOS: %s", g_strerror (errno));
     }
 #ifdef IPV6_TCLASS
-    if (setsockopt (fd, IPPROTO_IPV6, IPV6_TCLASS, &tos, sizeof (tos)) < 0) {
-      GST_ERROR_OBJECT (sink, "could not set TCLASS: %s", g_strerror (errno));
+    if (g_socket_get_family (socket) == G_SOCKET_FAMILY_IPV6) {
+      if (setsockopt (fd, IPPROTO_IPV6, IPV6_TCLASS, &tos, sizeof (tos)) < 0) {
+        GST_ERROR_OBJECT (sink, "could not set TCLASS: %s", g_strerror (errno));
+      }
     }
 #endif
   }
@@ -1362,6 +1364,7 @@ gst_multiudpsink_start (GstBaseSink * bsink)
       }
 
       g_socket_bind (sink->used_socket, bind_addr, TRUE, &err);
+      g_object_unref (bind_addr);
       if (err != NULL)
         goto bind_error;
     } else {
diff --git a/gst/udp/gstudpsrc.c b/gst/udp/gstudpsrc.c
index 27045f497..fdeca5dad 100644
--- a/gst/udp/gstudpsrc.c
+++ b/gst/udp/gstudpsrc.c
@@ -57,7 +57,7 @@
  * off proprietary header, for example.
  *
  * The udpsrc is always a live source. It does however not provide a #GstClock,
- * this is left for upstream elements such as an RTP session manager or demuxer
+ * this is left for downstream elements such as an RTP session manager or demuxer
  * (such as an MPEG demuxer). As with all live sources, the captured buffers
  * will have their timestamp set to the current running time of the pipeline.
  *
@@ -1567,7 +1567,7 @@ bind_error:
 membership:
   {
     GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS, (NULL),
-        ("could add membership: %s", err->message));
+        ("could not add membership: %s", err->message));
     g_clear_error (&err);
     gst_udpsrc_close (src);
     return FALSE;
diff --git a/gst/videobox/Makefile.am b/gst/videobox/Makefile.am
index 5a945624a..f4b5a10c3 100644
--- a/gst/videobox/Makefile.am
+++ b/gst/videobox/Makefile.am
@@ -15,7 +15,6 @@ libgstvideobox_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 			   $(ORC_LIBS) \
 			   -lgstvideo-@GST_API_VERSION@
 libgstvideobox_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideobox_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstvideobox.h
 EXTRA_DIST += README
diff --git a/gst/videobox/Makefile.in b/gst/videobox/Makefile.in
index b629a54ec..67af5c1e8 100644
--- a/gst/videobox/Makefile.in
+++ b/gst/videobox/Makefile.in
@@ -198,8 +198,8 @@ 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) \
+	$(AM_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@)
@@ -319,6 +319,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -342,6 +343,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -357,6 +360,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -379,10 +384,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -397,6 +409,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -414,6 +427,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -426,6 +441,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -444,6 +461,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -487,9 +507,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -503,11 +534,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -623,7 +659,6 @@ libgstvideobox_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 			   -lgstvideo-@GST_API_VERSION@
 
 libgstvideobox_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideobox_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstvideobox.h
 all: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -733,18 +768,18 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstvideobox_la-gstvideobox.lo: gstvideobox.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -MT libgstvideobox_la-gstvideobox.lo -MD -MP -MF $(DEPDIR)/libgstvideobox_la-gstvideobox.Tpo -c -o libgstvideobox_la-gstvideobox.lo `test -f 'gstvideobox.c' || echo '$(srcdir)/'`gstvideobox.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -MT libgstvideobox_la-gstvideobox.lo -MD -MP -MF $(DEPDIR)/libgstvideobox_la-gstvideobox.Tpo -c -o libgstvideobox_la-gstvideobox.lo `test -f 'gstvideobox.c' || echo '$(srcdir)/'`gstvideobox.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideobox_la-gstvideobox.Tpo $(DEPDIR)/libgstvideobox_la-gstvideobox.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvideobox.c' object='libgstvideobox_la-gstvideobox.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 $(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -c -o libgstvideobox_la-gstvideobox.lo `test -f 'gstvideobox.c' || echo '$(srcdir)/'`gstvideobox.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -c -o libgstvideobox_la-gstvideobox.lo `test -f 'gstvideobox.c' || echo '$(srcdir)/'`gstvideobox.c
 
 libgstvideobox_la-tmp-orc.lo: tmp-orc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -MT libgstvideobox_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideobox_la-tmp-orc.Tpo -c -o libgstvideobox_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -MT libgstvideobox_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideobox_la-tmp-orc.Tpo -c -o libgstvideobox_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideobox_la-tmp-orc.Tpo $(DEPDIR)/libgstvideobox_la-tmp-orc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tmp-orc.c' object='libgstvideobox_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 $(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -c -o libgstvideobox_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -c -o libgstvideobox_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/videobox/gstvideoboxorc-dist.c b/gst/videobox/gstvideoboxorc-dist.c
index 098b4908e..8fef7a049 100644
--- a/gst/videobox/gstvideoboxorc-dist.c
+++ b/gst/videobox/gstvideoboxorc-dist.c
@@ -105,11 +105,11 @@ void video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
 #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 (orc_uint8) 255
+#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 (orc_uint16)65535
+#define ORC_UW_MAX 65535
 #define ORC_UW_MIN 0
 #define ORC_SL_MAX 2147483647
 #define ORC_SL_MIN (-1-ORC_SL_MAX)
diff --git a/gst/videocrop/Makefile.am b/gst/videocrop/Makefile.am
index a9b69cb47..3520c2133 100644
--- a/gst/videocrop/Makefile.am
+++ b/gst/videocrop/Makefile.am
@@ -8,6 +8,5 @@ libgstvideocrop_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
 	$(GST_PLUGINS_BASE_CFLAGS)
 libgstvideocrop_la_LIBADD = $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION)
 libgstvideocrop_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideocrop_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstvideocrop.h gstaspectratiocrop.h
diff --git a/gst/videocrop/Makefile.in b/gst/videocrop/Makefile.in
index 0316c2b0b..3e11fe16c 100644
--- a/gst/videocrop/Makefile.in
+++ b/gst/videocrop/Makefile.in
@@ -173,8 +173,8 @@ 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) \
+	$(AM_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@)
@@ -292,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -315,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -330,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -352,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -370,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -387,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -399,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -417,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -460,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -476,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -581,7 +617,6 @@ libgstvideocrop_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
 
 libgstvideocrop_la_LIBADD = $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION)
 libgstvideocrop_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideocrop_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstvideocrop.h gstaspectratiocrop.h
 all: all-am
 
@@ -689,18 +724,18 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstvideocrop_la-gstvideocrop.lo: gstvideocrop.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -MT libgstvideocrop_la-gstvideocrop.lo -MD -MP -MF $(DEPDIR)/libgstvideocrop_la-gstvideocrop.Tpo -c -o libgstvideocrop_la-gstvideocrop.lo `test -f 'gstvideocrop.c' || echo '$(srcdir)/'`gstvideocrop.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -MT libgstvideocrop_la-gstvideocrop.lo -MD -MP -MF $(DEPDIR)/libgstvideocrop_la-gstvideocrop.Tpo -c -o libgstvideocrop_la-gstvideocrop.lo `test -f 'gstvideocrop.c' || echo '$(srcdir)/'`gstvideocrop.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideocrop_la-gstvideocrop.Tpo $(DEPDIR)/libgstvideocrop_la-gstvideocrop.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvideocrop.c' object='libgstvideocrop_la-gstvideocrop.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 $(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -c -o libgstvideocrop_la-gstvideocrop.lo `test -f 'gstvideocrop.c' || echo '$(srcdir)/'`gstvideocrop.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -c -o libgstvideocrop_la-gstvideocrop.lo `test -f 'gstvideocrop.c' || echo '$(srcdir)/'`gstvideocrop.c
 
 libgstvideocrop_la-gstaspectratiocrop.lo: gstaspectratiocrop.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -MT libgstvideocrop_la-gstaspectratiocrop.lo -MD -MP -MF $(DEPDIR)/libgstvideocrop_la-gstaspectratiocrop.Tpo -c -o libgstvideocrop_la-gstaspectratiocrop.lo `test -f 'gstaspectratiocrop.c' || echo '$(srcdir)/'`gstaspectratiocrop.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -MT libgstvideocrop_la-gstaspectratiocrop.lo -MD -MP -MF $(DEPDIR)/libgstvideocrop_la-gstaspectratiocrop.Tpo -c -o libgstvideocrop_la-gstaspectratiocrop.lo `test -f 'gstaspectratiocrop.c' || echo '$(srcdir)/'`gstaspectratiocrop.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideocrop_la-gstaspectratiocrop.Tpo $(DEPDIR)/libgstvideocrop_la-gstaspectratiocrop.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstaspectratiocrop.c' object='libgstvideocrop_la-gstaspectratiocrop.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 $(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -c -o libgstvideocrop_la-gstaspectratiocrop.lo `test -f 'gstaspectratiocrop.c' || echo '$(srcdir)/'`gstaspectratiocrop.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -c -o libgstvideocrop_la-gstaspectratiocrop.lo `test -f 'gstaspectratiocrop.c' || echo '$(srcdir)/'`gstaspectratiocrop.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/videocrop/gstvideocrop.c b/gst/videocrop/gstvideocrop.c
index d9a8f1a27..31e7d6769 100644
--- a/gst/videocrop/gstvideocrop.c
+++ b/gst/videocrop/gstvideocrop.c
@@ -114,6 +114,13 @@ static gboolean gst_video_crop_set_info (GstVideoFilter * vfilter, GstCaps * in,
 static GstFlowReturn gst_video_crop_transform_frame (GstVideoFilter * vfilter,
     GstVideoFrame * in_frame, GstVideoFrame * out_frame);
 
+static gboolean gst_video_crop_decide_allocation (GstBaseTransform * trans,
+    GstQuery * query);
+static gboolean gst_video_crop_propose_allocation (GstBaseTransform * trans,
+    GstQuery * decide_query, GstQuery * query);
+static GstFlowReturn gst_video_crop_transform_ip (GstBaseTransform * trans,
+    GstBuffer * buf);
+
 static gboolean
 gst_video_crop_src_event (GstBaseTransform * trans, GstEvent * event)
 {
@@ -205,9 +212,16 @@ gst_video_crop_class_init (GstVideoCropClass * klass)
       "Crops video into a user-defined region",
       "Tim-Philipp Müller <tim centricular net>");
 
+  basetransform_class->transform_ip_on_passthrough = FALSE;
   basetransform_class->transform_caps =
       GST_DEBUG_FUNCPTR (gst_video_crop_transform_caps);
   basetransform_class->src_event = GST_DEBUG_FUNCPTR (gst_video_crop_src_event);
+  basetransform_class->decide_allocation =
+      GST_DEBUG_FUNCPTR (gst_video_crop_decide_allocation);
+  basetransform_class->propose_allocation =
+      GST_DEBUG_FUNCPTR (gst_video_crop_propose_allocation);
+  basetransform_class->transform_ip =
+      GST_DEBUG_FUNCPTR (gst_video_crop_transform_ip);
 
   vfilter_class->set_info = GST_DEBUG_FUNCPTR (gst_video_crop_set_info);
   vfilter_class->transform_frame =
@@ -227,7 +241,7 @@ gst_video_crop_init (GstVideoCrop * vcrop)
 
 static void
 gst_video_crop_transform_packed_complex (GstVideoCrop * vcrop,
-    GstVideoFrame * in_frame, GstVideoFrame * out_frame)
+    GstVideoFrame * in_frame, GstVideoFrame * out_frame, gint x, gint y)
 {
   guint8 *in_data, *out_data;
   guint i, dx;
@@ -280,7 +294,7 @@ gst_video_crop_transform_packed_complex (GstVideoCrop * vcrop,
 
 static void
 gst_video_crop_transform_packed_simple (GstVideoCrop * vcrop,
-    GstVideoFrame * in_frame, GstVideoFrame * out_frame)
+    GstVideoFrame * in_frame, GstVideoFrame * out_frame, gint x, gint y)
 {
   guint8 *in_data, *out_data;
   gint width, height;
@@ -296,8 +310,9 @@ gst_video_crop_transform_packed_simple (GstVideoCrop * vcrop,
   in_stride = GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 0);
   out_stride = GST_VIDEO_FRAME_PLANE_STRIDE (out_frame, 0);
 
-  in_data += vcrop->crop_top * in_stride;
-  in_data += vcrop->crop_left * GST_VIDEO_FRAME_COMP_PSTRIDE (in_frame, 0);
+  in_data += (vcrop->crop_top + y) * in_stride;
+  in_data +=
+      (vcrop->crop_left + x) * GST_VIDEO_FRAME_COMP_PSTRIDE (in_frame, 0);
 
   dx = width * GST_VIDEO_FRAME_COMP_PSTRIDE (out_frame, 0);
 
@@ -310,23 +325,24 @@ gst_video_crop_transform_packed_simple (GstVideoCrop * vcrop,
 
 static void
 gst_video_crop_transform_planar (GstVideoCrop * vcrop,
-    GstVideoFrame * in_frame, GstVideoFrame * out_frame)
+    GstVideoFrame * in_frame, GstVideoFrame * out_frame, gint x, gint y)
 {
   gint width, height;
+  gint crop_top, crop_left;
   guint8 *y_out, *u_out, *v_out;
   guint8 *y_in, *u_in, *v_in;
   guint i, dx;
 
   width = GST_VIDEO_FRAME_WIDTH (out_frame);
   height = GST_VIDEO_FRAME_HEIGHT (out_frame);
+  crop_left = vcrop->crop_left + x;
+  crop_top = vcrop->crop_top + y;
 
   /* Y plane */
   y_in = GST_VIDEO_FRAME_PLANE_DATA (in_frame, 0);
   y_out = GST_VIDEO_FRAME_PLANE_DATA (out_frame, 0);
 
-  y_in +=
-      (vcrop->crop_top * GST_VIDEO_FRAME_PLANE_STRIDE (in_frame,
-          0)) + vcrop->crop_left;
+  y_in += (crop_top * GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 0)) + crop_left;
   dx = width;
 
   for (i = 0; i < height; ++i) {
@@ -339,14 +355,14 @@ gst_video_crop_transform_planar (GstVideoCrop * vcrop,
   u_in = GST_VIDEO_FRAME_PLANE_DATA (in_frame, 1);
   u_out = GST_VIDEO_FRAME_PLANE_DATA (out_frame, 1);
 
-  u_in += (vcrop->crop_top / 2) * GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 1);
-  u_in += vcrop->crop_left / 2;
+  u_in += (crop_top / 2) * GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 1);
+  u_in += crop_left / 2;
 
   v_in = GST_VIDEO_FRAME_PLANE_DATA (in_frame, 2);
   v_out = GST_VIDEO_FRAME_PLANE_DATA (out_frame, 2);
 
-  v_in += (vcrop->crop_top / 2) * GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 2);
-  v_in += vcrop->crop_left / 2;
+  v_in += (crop_top / 2) * GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 2);
+  v_in += crop_left / 2;
 
   dx = GST_ROUND_UP_2 (width) / 2;
 
@@ -362,15 +378,18 @@ gst_video_crop_transform_planar (GstVideoCrop * vcrop,
 
 static void
 gst_video_crop_transform_semi_planar (GstVideoCrop * vcrop,
-    GstVideoFrame * in_frame, GstVideoFrame * out_frame)
+    GstVideoFrame * in_frame, GstVideoFrame * out_frame, gint x, gint y)
 {
   gint width, height;
+  gint crop_top, crop_left;
   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);
+  crop_left = vcrop->crop_left + x;
+  crop_top = vcrop->crop_top + y;
 
   /* Y plane */
   y_in = GST_VIDEO_FRAME_PLANE_DATA (in_frame, 0);
@@ -380,8 +399,7 @@ gst_video_crop_transform_semi_planar (GstVideoCrop * vcrop,
   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;
+  y_in += crop_top * GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 0) + crop_left;
   dx = width;
 
   for (i = 0; i < height; ++i) {
@@ -390,8 +408,8 @@ gst_video_crop_transform_semi_planar (GstVideoCrop * vcrop,
     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);
+  uv_in += (crop_top / 2) * GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 1);
+  uv_in += GST_ROUND_DOWN_2 (crop_left);
   dx = GST_ROUND_UP_2 (width);
 
   for (i = 0; i < GST_ROUND_UP_2 (height) / 2; i++) {
@@ -406,6 +424,8 @@ gst_video_crop_transform_frame (GstVideoFilter * vfilter,
     GstVideoFrame * in_frame, GstVideoFrame * out_frame)
 {
   GstVideoCrop *vcrop = GST_VIDEO_CROP (vfilter);
+  GstVideoCropMeta *meta = gst_buffer_get_video_crop_meta (in_frame->buffer);
+  gint x = 0, y = 0;
 
   if (G_UNLIKELY (vcrop->need_update)) {
     if (!gst_video_crop_set_info (vfilter, NULL, &vcrop->in_info, NULL,
@@ -414,18 +434,24 @@ gst_video_crop_transform_frame (GstVideoFilter * vfilter,
     }
   }
 
+  if (meta) {
+    x = meta->x;
+    y = meta->y;
+  }
+
   switch (vcrop->packing) {
     case VIDEO_CROP_PIXEL_FORMAT_PACKED_SIMPLE:
-      gst_video_crop_transform_packed_simple (vcrop, in_frame, out_frame);
+      gst_video_crop_transform_packed_simple (vcrop, in_frame, out_frame, x, y);
       break;
     case VIDEO_CROP_PIXEL_FORMAT_PACKED_COMPLEX:
-      gst_video_crop_transform_packed_complex (vcrop, in_frame, out_frame);
+      gst_video_crop_transform_packed_complex (vcrop, in_frame, out_frame, x,
+          y);
       break;
     case VIDEO_CROP_PIXEL_FORMAT_PLANAR:
-      gst_video_crop_transform_planar (vcrop, in_frame, out_frame);
+      gst_video_crop_transform_planar (vcrop, in_frame, out_frame, x, y);
       break;
     case VIDEO_CROP_PIXEL_FORMAT_SEMI_PLANAR:
-      gst_video_crop_transform_semi_planar (vcrop, in_frame, out_frame);
+      gst_video_crop_transform_semi_planar (vcrop, in_frame, out_frame, x, y);
       break;
     default:
       g_assert_not_reached ();
@@ -434,6 +460,84 @@ gst_video_crop_transform_frame (GstVideoFilter * vfilter,
   return GST_FLOW_OK;
 }
 
+static gboolean
+gst_video_crop_decide_allocation (GstBaseTransform * trans, GstQuery * query)
+{
+  GstVideoCrop *crop = GST_VIDEO_CROP (trans);
+  gboolean use_crop_meta;
+
+  use_crop_meta = (gst_query_find_allocation_meta (query,
+          GST_VIDEO_CROP_META_API_TYPE, NULL) &&
+      gst_query_find_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL));
+
+  if ((crop->crop_left | crop->crop_right | crop->crop_top | crop->
+          crop_bottom) == 0) {
+    GST_INFO_OBJECT (crop, "we are using passthrough");
+    gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (crop), TRUE);
+    gst_base_transform_set_in_place (GST_BASE_TRANSFORM (crop), FALSE);
+  } else if (use_crop_meta) {
+    GST_INFO_OBJECT (crop, "we are doing in-place transform using crop meta");
+    gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (crop), FALSE);
+    gst_base_transform_set_in_place (GST_BASE_TRANSFORM (crop), TRUE);
+  } else {
+    GST_INFO_OBJECT (crop, "we are not using passthrough");
+    gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (crop), FALSE);
+    gst_base_transform_set_in_place (GST_BASE_TRANSFORM (crop), FALSE);
+  }
+
+  return GST_BASE_TRANSFORM_CLASS (parent_class)->decide_allocation (trans,
+      query);
+}
+
+static gboolean
+gst_video_crop_propose_allocation (GstBaseTransform * trans,
+    GstQuery * decide_query, GstQuery * query)
+{
+  /* if we are not passthrough, we can handle video meta and crop meta */
+  if (decide_query) {
+    GST_DEBUG_OBJECT (trans, "Advertising video meta and crop meta support");
+    gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL);
+    gst_query_add_allocation_meta (query, GST_VIDEO_CROP_META_API_TYPE, NULL);
+  }
+
+  return GST_BASE_TRANSFORM_CLASS (parent_class)->propose_allocation (trans,
+      decide_query, query);
+}
+
+static GstFlowReturn
+gst_video_crop_transform_ip (GstBaseTransform * trans, GstBuffer * buf)
+{
+  GstVideoCrop *vcrop = GST_VIDEO_CROP (trans);
+  GstVideoMeta *video_meta;
+  GstVideoCropMeta *crop_meta;
+
+  GST_LOG_OBJECT (trans, "Transforming in-place");
+
+  /* The video meta is required since we are going to make the caps
+   * width/height smaller, which would not result in a usable GstVideoInfo for
+   * mapping the buffer. */
+  video_meta = gst_buffer_get_video_meta (buf);
+  if (!video_meta) {
+    video_meta = gst_buffer_add_video_meta (buf, GST_VIDEO_FRAME_FLAG_NONE,
+        GST_VIDEO_INFO_FORMAT (&vcrop->in_info), vcrop->in_info.width,
+        vcrop->in_info.height);
+  }
+
+  crop_meta = gst_buffer_get_video_crop_meta (buf);
+  if (!crop_meta) {
+    crop_meta = gst_buffer_add_video_crop_meta (buf);
+    crop_meta->width = vcrop->in_info.width;
+    crop_meta->height = vcrop->in_info.height;
+  }
+
+  crop_meta->x += vcrop->crop_left;
+  crop_meta->y += vcrop->crop_top;
+  crop_meta->width = GST_VIDEO_INFO_WIDTH (&vcrop->out_info);
+  crop_meta->height = GST_VIDEO_INFO_HEIGHT (&vcrop->out_info);
+
+  return GST_FLOW_OK;
+}
+
 static gint
 gst_video_crop_transform_dimension (gint val, gint delta)
 {
@@ -661,15 +765,6 @@ gst_video_crop_set_info (GstVideoFilter * vfilter, GstCaps * in,
     GST_LOG_OBJECT (crop, "incaps = %" GST_PTR_FORMAT ", outcaps = %"
         GST_PTR_FORMAT, in, out);
 
-  if ((crop->crop_left | crop->crop_right | crop->crop_top | crop->
-          crop_bottom) == 0) {
-    GST_LOG_OBJECT (crop, "we are using passthrough");
-    gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (crop), TRUE);
-  } else {
-    GST_LOG_OBJECT (crop, "we are not using passthrough");
-    gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (crop), FALSE);
-  }
-
   if (GST_VIDEO_INFO_IS_RGB (in_info)
       || GST_VIDEO_INFO_IS_GRAY (in_info)) {
     crop->packing = VIDEO_CROP_PIXEL_FORMAT_PACKED_SIMPLE;
@@ -706,6 +801,10 @@ gst_video_crop_set_info (GstVideoFilter * vfilter, GstCaps * in,
   crop->in_info = *in_info;
   crop->out_info = *out_info;
 
+  /* Ensure our decide_allocation will be called again */
+  gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (crop), FALSE);
+  gst_base_transform_set_in_place (GST_BASE_TRANSFORM (crop), FALSE);
+
   return TRUE;
 
   /* ERROR */
diff --git a/gst/videofilter/Makefile.am b/gst/videofilter/Makefile.am
index a0cae46b4..cb517fe9c 100644
--- a/gst/videofilter/Makefile.am
+++ b/gst/videofilter/Makefile.am
@@ -17,7 +17,6 @@ libgstvideofilter_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 			-lgstvideo-@GST_API_VERSION@ \
 			$(GST_BASE_LIBS) $(GST_LIBS)
 libgstvideofilter_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM)
-libgstvideofilter_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 gstvideoexample.c: $(srcdir)/make_filter $(srcdir)/gstvideotemplate.c
 	$(srcdir)/make_filter Videoexample $(srcdir)/gstvideotemplate.c
diff --git a/gst/videofilter/Makefile.in b/gst/videofilter/Makefile.in
index 617f9470b..f44ea569a 100644
--- a/gst/videofilter/Makefile.in
+++ b/gst/videofilter/Makefile.in
@@ -176,8 +176,8 @@ 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) \
+	$(AM_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@)
@@ -295,6 +295,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -318,6 +319,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -333,6 +336,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -355,10 +360,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -373,6 +385,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -390,6 +403,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -402,6 +417,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -420,6 +437,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -463,9 +483,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -479,11 +510,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -593,7 +629,6 @@ libgstvideofilter_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 			$(GST_BASE_LIBS) $(GST_LIBS)
 
 libgstvideofilter_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM)
-libgstvideofilter_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 all: all-am
 
 .SUFFIXES:
@@ -703,39 +738,39 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstvideofilter_la-plugin.lo: plugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-plugin.Tpo -c -o libgstvideofilter_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-plugin.Tpo -c -o libgstvideofilter_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofilter_la-plugin.Tpo $(DEPDIR)/libgstvideofilter_la-plugin.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='plugin.c' object='libgstvideofilter_la-plugin.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 $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 
 libgstvideofilter_la-gstvideoflip.lo: gstvideoflip.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-gstvideoflip.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-gstvideoflip.Tpo -c -o libgstvideofilter_la-gstvideoflip.lo `test -f 'gstvideoflip.c' || echo '$(srcdir)/'`gstvideoflip.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-gstvideoflip.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-gstvideoflip.Tpo -c -o libgstvideofilter_la-gstvideoflip.lo `test -f 'gstvideoflip.c' || echo '$(srcdir)/'`gstvideoflip.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofilter_la-gstvideoflip.Tpo $(DEPDIR)/libgstvideofilter_la-gstvideoflip.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvideoflip.c' object='libgstvideofilter_la-gstvideoflip.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 $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstvideoflip.lo `test -f 'gstvideoflip.c' || echo '$(srcdir)/'`gstvideoflip.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstvideoflip.lo `test -f 'gstvideoflip.c' || echo '$(srcdir)/'`gstvideoflip.c
 
 libgstvideofilter_la-gstvideobalance.lo: gstvideobalance.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-gstvideobalance.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-gstvideobalance.Tpo -c -o libgstvideofilter_la-gstvideobalance.lo `test -f 'gstvideobalance.c' || echo '$(srcdir)/'`gstvideobalance.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-gstvideobalance.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-gstvideobalance.Tpo -c -o libgstvideofilter_la-gstvideobalance.lo `test -f 'gstvideobalance.c' || echo '$(srcdir)/'`gstvideobalance.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofilter_la-gstvideobalance.Tpo $(DEPDIR)/libgstvideofilter_la-gstvideobalance.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvideobalance.c' object='libgstvideofilter_la-gstvideobalance.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 $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstvideobalance.lo `test -f 'gstvideobalance.c' || echo '$(srcdir)/'`gstvideobalance.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstvideobalance.lo `test -f 'gstvideobalance.c' || echo '$(srcdir)/'`gstvideobalance.c
 
 libgstvideofilter_la-gstgamma.lo: gstgamma.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-gstgamma.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-gstgamma.Tpo -c -o libgstvideofilter_la-gstgamma.lo `test -f 'gstgamma.c' || echo '$(srcdir)/'`gstgamma.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-gstgamma.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-gstgamma.Tpo -c -o libgstvideofilter_la-gstgamma.lo `test -f 'gstgamma.c' || echo '$(srcdir)/'`gstgamma.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofilter_la-gstgamma.Tpo $(DEPDIR)/libgstvideofilter_la-gstgamma.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgamma.c' object='libgstvideofilter_la-gstgamma.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 $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstgamma.lo `test -f 'gstgamma.c' || echo '$(srcdir)/'`gstgamma.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstgamma.lo `test -f 'gstgamma.c' || echo '$(srcdir)/'`gstgamma.c
 
 libgstvideofilter_la-gstvideomedian.lo: gstvideomedian.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-gstvideomedian.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-gstvideomedian.Tpo -c -o libgstvideofilter_la-gstvideomedian.lo `test -f 'gstvideomedian.c' || echo '$(srcdir)/'`gstvideomedian.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-gstvideomedian.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-gstvideomedian.Tpo -c -o libgstvideofilter_la-gstvideomedian.lo `test -f 'gstvideomedian.c' || echo '$(srcdir)/'`gstvideomedian.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofilter_la-gstvideomedian.Tpo $(DEPDIR)/libgstvideofilter_la-gstvideomedian.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvideomedian.c' object='libgstvideofilter_la-gstvideomedian.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 $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstvideomedian.lo `test -f 'gstvideomedian.c' || echo '$(srcdir)/'`gstvideomedian.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstvideomedian.lo `test -f 'gstvideomedian.c' || echo '$(srcdir)/'`gstvideomedian.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/videomixer/Makefile.am b/gst/videomixer/Makefile.am
index 425034246..b10289a82 100644
--- a/gst/videomixer/Makefile.am
+++ b/gst/videomixer/Makefile.am
@@ -15,7 +15,6 @@ libgstvideomixer_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 	-lgstvideo-@GST_API_VERSION@ \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS) $(LIBM)
 libgstvideomixer_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideomixer_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 # headers we need but don't want installed
 noinst_HEADERS = \
diff --git a/gst/videomixer/Makefile.in b/gst/videomixer/Makefile.in
index f88b7a0f9..444048ae1 100644
--- a/gst/videomixer/Makefile.in
+++ b/gst/videomixer/Makefile.in
@@ -199,8 +199,8 @@ 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) \
+	$(AM_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@)
@@ -320,6 +320,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -343,6 +344,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -358,6 +361,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -380,10 +385,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -398,6 +410,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -415,6 +428,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -427,6 +442,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -445,6 +462,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -488,9 +508,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -504,11 +535,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -623,7 +659,6 @@ libgstvideomixer_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 	$(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS) $(LIBM)
 
 libgstvideomixer_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideomixer_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 # headers we need but don't want installed
 noinst_HEADERS = \
@@ -740,25 +775,25 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstvideomixer_la-blend.lo: blend.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-blend.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-blend.Tpo -c -o libgstvideomixer_la-blend.lo `test -f 'blend.c' || echo '$(srcdir)/'`blend.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-blend.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-blend.Tpo -c -o libgstvideomixer_la-blend.lo `test -f 'blend.c' || echo '$(srcdir)/'`blend.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomixer_la-blend.Tpo $(DEPDIR)/libgstvideomixer_la-blend.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='blend.c' object='libgstvideomixer_la-blend.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-blend.lo `test -f 'blend.c' || echo '$(srcdir)/'`blend.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-blend.lo `test -f 'blend.c' || echo '$(srcdir)/'`blend.c
 
 libgstvideomixer_la-videomixer2.lo: videomixer2.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-videomixer2.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-videomixer2.Tpo -c -o libgstvideomixer_la-videomixer2.lo `test -f 'videomixer2.c' || echo '$(srcdir)/'`videomixer2.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-videomixer2.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-videomixer2.Tpo -c -o libgstvideomixer_la-videomixer2.lo `test -f 'videomixer2.c' || echo '$(srcdir)/'`videomixer2.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomixer_la-videomixer2.Tpo $(DEPDIR)/libgstvideomixer_la-videomixer2.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='videomixer2.c' object='libgstvideomixer_la-videomixer2.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 $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-videomixer2.lo `test -f 'videomixer2.c' || echo '$(srcdir)/'`videomixer2.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-videomixer2.lo `test -f 'videomixer2.c' || echo '$(srcdir)/'`videomixer2.c
 
 libgstvideomixer_la-tmp-orc.lo: tmp-orc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-tmp-orc.Tpo -c -o libgstvideomixer_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-tmp-orc.Tpo -c -o libgstvideomixer_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomixer_la-tmp-orc.Tpo $(DEPDIR)/libgstvideomixer_la-tmp-orc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tmp-orc.c' object='libgstvideomixer_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 $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/videomixer/videomixerorc-dist.c b/gst/videomixer/videomixerorc-dist.c
index 9216a8acd..7ddc1b080 100644
--- a/gst/videomixer/videomixerorc-dist.c
+++ b/gst/videomixer/videomixerorc-dist.c
@@ -117,11 +117,11 @@ void video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
 #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 (orc_uint8) 255
+#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 (orc_uint16)65535
+#define ORC_UW_MAX 65535
 #define ORC_UW_MIN 0
 #define ORC_SL_MAX 2147483647
 #define ORC_SL_MIN (-1-ORC_SL_MAX)
@@ -595,7 +595,7 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
     var39.x4[2] = p1;
     var39.x4[3] = p1;
     /* 16: loadpl */
-    var40.i = 0x000000ff;       /* 255 or 1.25987e-321f */
+    var40.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
 
     for (i = 0; i < n; i++) {
       /* 0: loadl */
@@ -721,7 +721,7 @@ _backup_video_mixer_orc_blend_argb (OrcExecutor * ORC_RESTRICT ex)
     var39.x4[2] = ex->params[24];
     var39.x4[3] = ex->params[24];
     /* 16: loadpl */
-    var40.i = 0x000000ff;       /* 255 or 1.25987e-321f */
+    var40.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
 
     for (i = 0; i < n; i++) {
       /* 0: loadl */
@@ -954,7 +954,7 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
     var40.x4[2] = p1;
     var40.x4[3] = p1;
     /* 17: loadpl */
-    var41.i = 0xff000000;       /* -16777216 or 2.11371e-314f */
+    var41.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
 
     for (i = 0; i < n; i++) {
       /* 0: loadl */
@@ -1083,7 +1083,7 @@ _backup_video_mixer_orc_blend_bgra (OrcExecutor * ORC_RESTRICT ex)
     var40.x4[2] = ex->params[24];
     var40.x4[3] = ex->params[24];
     /* 17: loadpl */
-    var41.i = 0xff000000;       /* -16777216 or 2.11371e-314f */
+    var41.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
 
     for (i = 0; i < n; i++) {
       /* 0: loadl */
@@ -1340,11 +1340,11 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
     var41.x4[2] = p1;
     var41.x4[3] = p1;
     /* 10: loadpl */
-    var53.i = 0xffffffff;       /* -1 or 2.122e-314f */
+    var53.i = (int) 0xffffffff; /* -1 or 2.122e-314f */
     /* 26: loadpl */
-    var42.i = 0xffffff00;       /* -256 or 2.122e-314f */
+    var42.i = (int) 0xffffff00; /* -256 or 2.122e-314f */
     /* 29: loadpl */
-    var43.i = 0x000000ff;       /* 255 or 1.25987e-321f */
+    var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
 
     for (i = 0; i < n; i++) {
       /* 0: loadl */
@@ -1548,11 +1548,11 @@ _backup_video_mixer_orc_overlay_argb (OrcExecutor * ORC_RESTRICT ex)
     var41.x4[2] = ex->params[24];
     var41.x4[3] = ex->params[24];
     /* 10: loadpl */
-    var53.i = 0xffffffff;       /* -1 or 2.122e-314f */
+    var53.i = (int) 0xffffffff; /* -1 or 2.122e-314f */
     /* 26: loadpl */
-    var42.i = 0xffffff00;       /* -256 or 2.122e-314f */
+    var42.i = (int) 0xffffff00; /* -256 or 2.122e-314f */
     /* 29: loadpl */
-    var43.i = 0x000000ff;       /* 255 or 1.25987e-321f */
+    var43.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
 
     for (i = 0; i < n; i++) {
       /* 0: loadl */
@@ -1900,11 +1900,11 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
     var42.x4[2] = p1;
     var42.x4[3] = p1;
     /* 11: loadpl */
-    var55.i = 0xffffffff;       /* -1 or 2.122e-314f */
+    var55.i = (int) 0xffffffff; /* -1 or 2.122e-314f */
     /* 28: loadpl */
-    var43.i = 0x00ffffff;       /* 16777215 or 8.28905e-317f */
+    var43.i = (int) 0x00ffffff; /* 16777215 or 8.28905e-317f */
     /* 31: loadpl */
-    var44.i = 0xff000000;       /* -16777216 or 2.11371e-314f */
+    var44.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
 
     for (i = 0; i < n; i++) {
       /* 0: loadl */
@@ -2114,11 +2114,11 @@ _backup_video_mixer_orc_overlay_bgra (OrcExecutor * ORC_RESTRICT ex)
     var42.x4[2] = ex->params[24];
     var42.x4[3] = ex->params[24];
     /* 11: loadpl */
-    var55.i = 0xffffffff;       /* -1 or 2.122e-314f */
+    var55.i = (int) 0xffffffff; /* -1 or 2.122e-314f */
     /* 28: loadpl */
-    var43.i = 0x00ffffff;       /* 16777215 or 8.28905e-317f */
+    var43.i = (int) 0x00ffffff; /* 16777215 or 8.28905e-317f */
     /* 31: loadpl */
-    var44.i = 0xff000000;       /* -16777216 or 2.11371e-314f */
+    var44.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
 
     for (i = 0; i < n; i++) {
       /* 0: loadl */
diff --git a/gst/wavenc/Makefile.am b/gst/wavenc/Makefile.am
index a25dd319d..1ee661d9d 100644
--- a/gst/wavenc/Makefile.am
+++ b/gst/wavenc/Makefile.am
@@ -12,6 +12,5 @@ libgstwavenc_la_LIBADD = 	\
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS)
 libgstwavenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstwavenc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstwavenc.h
diff --git a/gst/wavenc/Makefile.in b/gst/wavenc/Makefile.in
index a0e9291c1..f560fc76c 100644
--- a/gst/wavenc/Makefile.in
+++ b/gst/wavenc/Makefile.in
@@ -172,9 +172,9 @@ 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_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
@@ -291,6 +291,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -314,6 +315,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -329,6 +332,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -351,10 +356,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -369,6 +381,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -386,6 +399,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -398,6 +413,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -416,6 +433,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -459,9 +479,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -475,11 +506,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -585,7 +621,6 @@ libgstwavenc_la_LIBADD = \
 	$(GST_LIBS)
 
 libgstwavenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstwavenc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstwavenc.h
 all: all-am
 
@@ -692,11 +727,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstwavenc_la-gstwavenc.lo: gstwavenc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavenc_la_CFLAGS) $(CFLAGS) -MT libgstwavenc_la-gstwavenc.lo -MD -MP -MF $(DEPDIR)/libgstwavenc_la-gstwavenc.Tpo -c -o libgstwavenc_la-gstwavenc.lo `test -f 'gstwavenc.c' || echo '$(srcdir)/'`gstwavenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavenc_la_CFLAGS) $(CFLAGS) -MT libgstwavenc_la-gstwavenc.lo -MD -MP -MF $(DEPDIR)/libgstwavenc_la-gstwavenc.Tpo -c -o libgstwavenc_la-gstwavenc.lo `test -f 'gstwavenc.c' || echo '$(srcdir)/'`gstwavenc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavenc_la-gstwavenc.Tpo $(DEPDIR)/libgstwavenc_la-gstwavenc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwavenc.c' object='libgstwavenc_la-gstwavenc.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 $(libgstwavenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavenc_la_CFLAGS) $(CFLAGS) -c -o libgstwavenc_la-gstwavenc.lo `test -f 'gstwavenc.c' || echo '$(srcdir)/'`gstwavenc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavenc_la_CFLAGS) $(CFLAGS) -c -o libgstwavenc_la-gstwavenc.lo `test -f 'gstwavenc.c' || echo '$(srcdir)/'`gstwavenc.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/wavparse/Makefile.am b/gst/wavparse/Makefile.am
index 4d4247e27..6076c28a5 100644
--- a/gst/wavparse/Makefile.am
+++ b/gst/wavparse/Makefile.am
@@ -15,6 +15,5 @@ libgstwavparse_la_LIBADD = \
 	$(GST_LIBS) \
 	$(LIBM)
 libgstwavparse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstwavparse_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstwavparse.h
diff --git a/gst/wavparse/Makefile.in b/gst/wavparse/Makefile.in
index 43d497f9b..8bb1cee1d 100644
--- a/gst/wavparse/Makefile.in
+++ b/gst/wavparse/Makefile.in
@@ -173,8 +173,8 @@ 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) \
+	$(AM_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@)
@@ -292,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -315,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -330,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -352,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -370,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -387,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -399,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -417,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -460,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -476,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -589,7 +625,6 @@ libgstwavparse_la_LIBADD = \
 	$(LIBM)
 
 libgstwavparse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstwavparse_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstwavparse.h
 all: all-am
 
@@ -696,11 +731,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstwavparse_la-gstwavparse.lo: gstwavparse.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavparse_la_CFLAGS) $(CFLAGS) -MT libgstwavparse_la-gstwavparse.lo -MD -MP -MF $(DEPDIR)/libgstwavparse_la-gstwavparse.Tpo -c -o libgstwavparse_la-gstwavparse.lo `test -f 'gstwavparse.c' || echo '$(srcdir)/'`gstwavparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavparse_la_CFLAGS) $(CFLAGS) -MT libgstwavparse_la-gstwavparse.lo -MD -MP -MF $(DEPDIR)/libgstwavparse_la-gstwavparse.Tpo -c -o libgstwavparse_la-gstwavparse.lo `test -f 'gstwavparse.c' || echo '$(srcdir)/'`gstwavparse.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavparse_la-gstwavparse.Tpo $(DEPDIR)/libgstwavparse_la-gstwavparse.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwavparse.c' object='libgstwavparse_la-gstwavparse.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 $(libgstwavparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavparse_la_CFLAGS) $(CFLAGS) -c -o libgstwavparse_la-gstwavparse.lo `test -f 'gstwavparse.c' || echo '$(srcdir)/'`gstwavparse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavparse_la_CFLAGS) $(CFLAGS) -c -o libgstwavparse_la-gstwavparse.lo `test -f 'gstwavparse.c' || echo '$(srcdir)/'`gstwavparse.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/gst/y4m/Makefile.am b/gst/y4m/Makefile.am
index 844dadfe1..c6eb37b10 100644
--- a/gst/y4m/Makefile.am
+++ b/gst/y4m/Makefile.am
@@ -5,6 +5,5 @@ libgsty4menc_la_SOURCES = gsty4mencode.c
 libgsty4menc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 libgsty4menc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(GST_LIBS)
 libgsty4menc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgsty4menc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gsty4mencode.h
diff --git a/gst/y4m/Makefile.in b/gst/y4m/Makefile.in
index 525d1f427..d3e72b794 100644
--- a/gst/y4m/Makefile.in
+++ b/gst/y4m/Makefile.in
@@ -172,9 +172,9 @@ 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_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
@@ -291,6 +291,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -314,6 +315,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -329,6 +332,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -351,10 +356,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -369,6 +381,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -386,6 +399,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -398,6 +413,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -416,6 +433,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -459,9 +479,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -475,11 +506,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -575,7 +611,6 @@ libgsty4menc_la_SOURCES = gsty4mencode.c
 libgsty4menc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 libgsty4menc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(GST_LIBS)
 libgsty4menc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgsty4menc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gsty4mencode.h
 all: all-am
 
@@ -682,11 +717,11 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgsty4menc_la-gsty4mencode.lo: gsty4mencode.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsty4menc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsty4menc_la_CFLAGS) $(CFLAGS) -MT libgsty4menc_la-gsty4mencode.lo -MD -MP -MF $(DEPDIR)/libgsty4menc_la-gsty4mencode.Tpo -c -o libgsty4menc_la-gsty4mencode.lo `test -f 'gsty4mencode.c' || echo '$(srcdir)/'`gsty4mencode.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsty4menc_la_CFLAGS) $(CFLAGS) -MT libgsty4menc_la-gsty4mencode.lo -MD -MP -MF $(DEPDIR)/libgsty4menc_la-gsty4mencode.Tpo -c -o libgsty4menc_la-gsty4mencode.lo `test -f 'gsty4mencode.c' || echo '$(srcdir)/'`gsty4mencode.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsty4menc_la-gsty4mencode.Tpo $(DEPDIR)/libgsty4menc_la-gsty4mencode.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsty4mencode.c' object='libgsty4menc_la-gsty4mencode.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 $(libgsty4menc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsty4menc_la_CFLAGS) $(CFLAGS) -c -o libgsty4menc_la-gsty4mencode.lo `test -f 'gsty4mencode.c' || echo '$(srcdir)/'`gsty4mencode.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsty4menc_la_CFLAGS) $(CFLAGS) -c -o libgsty4menc_la-gsty4mencode.lo `test -f 'gsty4mencode.c' || echo '$(srcdir)/'`gsty4mencode.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/m4/Makefile.in b/m4/Makefile.in
index e3de22ddf..76d122a4e 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -205,6 +205,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -228,6 +229,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -243,6 +246,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -265,10 +270,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -283,6 +295,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -300,6 +313,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -312,6 +327,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -330,6 +347,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -373,9 +393,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -389,11 +420,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/meson.build b/meson.build
index 2f562635b..af8e284d0 100644
--- a/meson.build
+++ b/meson.build
@@ -1,16 +1,16 @@
-project('gst-plugins-good', 'c', 'cpp',
-  version : '1.12.4',
+project('gst-plugins-good', 'c',
+  version : '1.13.1',
   meson_version : '>= 0.36.0',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
 
 gst_version = meson.project_version()
 version_arr = gst_version.split('.')
-gst_version_major = version_arr[0]
-gst_version_minor = version_arr[1]
-gst_version_micro = version_arr[2]
-if version_arr.length() == 4
-  gst_version_nano = version_arr[3]
+gst_version_major = version_arr[0].to_int()
+gst_version_minor = version_arr[1].to_int()
+gst_version_micro = version_arr[2].to_int()
+ if version_arr.length() == 4
+  gst_version_nano = version_arr[3].to_int()
 else
   gst_version_nano = 0
 endif
@@ -42,6 +42,16 @@ else
   noseh_link_args = []
 endif
 
+# Symbol visibility
+if cc.has_argument('-fvisibility=hidden')
+  add_project_arguments('-fvisibility=hidden', language: 'c')
+endif
+
+# Disable strict aliasing
+if cc.has_argument('-fno-strict-aliasing')
+  add_project_arguments('-fno-strict-aliasing', language: 'c')
+endif
+
 cdata = configuration_data()
 
 check_headers = [
@@ -100,16 +110,11 @@ check_functions = [
   ['HAVE_ISINF', 'isinf', '#include<math.h>'],
 # check token HAVE_LIBV4L2
   ['HAVE_MMAP', 'mmap', '#include<sys/mman.h>'],
-# check token HAVE_OSS
-# check token HAVE_OSS4
-# check token HAVE_OSS_INCLUDE_IN_MACHINE
-# check token HAVE_OSS_INCLUDE_IN_ROOT
-# check token HAVE_OSS_INCLUDE_IN_SYS
+  ['HAVE_MMAP64', 'mmap64', '#include<sys/mman.h>'],
 # check token HAVE_OSX_AUDIO
 # check token HAVE_OSX_VIDEO
 # check token HAVE_RDTSC
   ['HAVE_SINH', 'sinh', '#include<math.h>'],
-# check token HAVE_SUNAUDIO
 # check token HAVE_WAVEFORM
 ]
 
@@ -126,6 +131,7 @@ cdata.set('SIZEOF_INT', cc.sizeof('int'))
 cdata.set('SIZEOF_LONG', cc.sizeof('long'))
 cdata.set('SIZEOF_SHORT', cc.sizeof('short'))
 cdata.set('SIZEOF_VOIDP', cc.sizeof('void*'))
+cdata.set('SIZEOF_OFF_T', cc.sizeof('off_t'))
 
 # Here be fixmes.
 # FIXME: check if this is correct
@@ -136,9 +142,20 @@ cdata.set('PACKAGE_VERSION', '"@0@"'.format(gst_version))
 cdata.set('GST_LICENSE', '"LGPL"')
 cdata.set('PACKAGE', '"gst-plugins-good"')
 cdata.set('GETTEXT_PACKAGE', '"gst-plugins-good-1.0"')
-cdata.set('PACKAGE_NAME', '"GStreamer Good Plug-ins"')
-cdata.set('GST_PACKAGE_NAME', '"GStreamer Good Plug-ins"')
-cdata.set('GST_PACKAGE_ORIGIN', '"Unknown package origin"') # FIXME: make configurable
+
+# GStreamer package name and origin url
+gst_package_name = get_option('with-package-name')
+if gst_package_name == ''
+  if gst_version_nano == 0
+    gst_package_name = 'GStreamer Good Plug-ins source release'
+  elif gst_version_nano == 1
+    gst_package_name = 'GStreamer Good Plug-ins git'
+  else
+    gst_package_name = 'GStreamer Good Plug-ins prerelease'
+  endif
+endif
+cdata.set_quoted('GST_PACKAGE_NAME', gst_package_name)
+cdata.set_quoted('GST_PACKAGE_ORIGIN', get_option('with-package-origin'))
 
 # Mandatory GST deps
 gst_dep = dependency('gstreamer-1.0', version : gst_req,
@@ -177,17 +194,50 @@ gsttag_dep = dependency('gstreamer-tag-1.0', version : gst_req,
 gstvideo_dep = dependency('gstreamer-video-1.0', version : gst_req,
     fallback : ['gst-plugins-base', 'video_dep'])
 
-zlib_dep = dependency('zlib')
-bz2lib = cc.find_library('bz2', required : false)
-gio_dep = dependency('gio-2.0', version : glib_req)
-glib_deps = [dependency('glib-2.0', version : glib_req),
-	     dependency('gobject-2.0', version : glib_req)]
+# GStreamer OpenGL
+gstgl_dep = dependency('gstreamer-gl-1.0', version : gst_req,
+    fallback : ['gst-plugins-base', 'gstgl_dep'], required: false)
 
-cdata.set('HAVE_ZLIB', 1)
-if bz2lib.found()
-  cdata.set('HAVE_BZ2', 1)
+build_gstgl = gstgl_dep.found() # FIXME: add option?
+
+if build_gstgl
+  if gstgl_dep.type_name() == 'pkgconfig'
+    gst_gl_apis = gstgl_dep.get_pkgconfig_variable('gl_apis').split()
+    gst_gl_winsys = gstgl_dep.get_pkgconfig_variable('gl_winsys').split()
+    gst_gl_platforms = gstgl_dep.get_pkgconfig_variable('gl_platforms').split()
+  else
+    gstbase = subproject('gst-plugins-base')
+    gst_gl_apis = gstbase.get_variable('enabled_gl_apis')
+    gst_gl_winsys = gstbase.get_variable('enabled_gl_winsys')
+    gst_gl_platforms = gstbase.get_variable('enabled_gl_platforms')
+  endif
+
+  message('GStreamer OpenGL window systems: @0@'.format(' '.join(gst_gl_winsys)))
+  message('GStreamer OpenGL platforms: @0@'.format(' '.join(gst_gl_platforms)))
+  message('GStreamer OpenGL apis: @0@'.format(' '.join(gst_gl_apis)))
+
+  foreach ws : ['x11', 'wayland', 'android', 'cocoa', 'eagl', 'win32', 'dispmanx', 'viv_fb']
+    set_variable('gst_gl_have_window_@0@'.format(ws), gst_gl_winsys.contains(ws))
+  endforeach
+
+  foreach p : ['glx', 'egl', 'cgl', 'eagl', 'wgl']
+    set_variable('gst_gl_have_platform_@0@'.format(p), gst_gl_platforms.contains(p))
+  endforeach
+
+  foreach api : ['opengl', 'gles2']
+    set_variable('gst_gl_have_api_@0@'.format(api), gst_gl_apis.contains(api))
+  endforeach
 endif
 
+zlib_dep = dependency('zlib', required : false)
+bz2lib = cc.find_library('bz2', required : false)
+glib_deps = [dependency('glib-2.0', version : glib_req, fallback: ['glib', 'libglib_dep']),
+             dependency('gobject-2.0', fallback: ['glib', 'libgobject_dep'])]
+gio_dep = dependency('gio-2.0', fallback: ['glib', 'libgio_dep'])
+
+cdata.set('HAVE_ZLIB', zlib_dep.found())
+cdata.set('HAVE_BZ2', bz2lib.found())
+
 # Check all of the things.
 # TODO: None of these are actually used yet because
 # the build files haven't been written
@@ -268,12 +318,14 @@ subdir('gst')
 subdir('sys')
 subdir('ext')
 subdir('tests')
-subdir('po')
 subdir('pkgconfig')
 
-configure_file(input : 'config.h.meson',
-  output : 'config.h',
-  configuration : cdata)
+# xgettext is optional (on Windows for instance)
+if find_program('xgettext', required : false).found()
+  subdir('po')
+endif
+
+configure_file(output : 'config.h', configuration : cdata)
 
-python3 = find_program('python3')
+python3 = import('python3').find_python()
 run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")')
diff --git a/meson_options.txt b/meson_options.txt
index c8117cccb..dccf42ef1 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -4,3 +4,7 @@ option('v4l2-probe', type : 'boolean', value : true)
 option('with-libv4l2', type : 'boolean', value : true)
 # Whether to use orc or not (auto will autodetect, yes will error out if not found)
 option('use_orc', type : 'combo', choices : ['yes', 'no', 'auto'], value : 'auto')
+option('with-package-name', type : 'string',
+       description : 'package name to use in plugins')
+option('with-package-origin', type : 'string', value : 'Unknown package origin',
+       description : 'package origin URL to use in plugins')
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index dc26e8eed..1801bab41 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -206,6 +206,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -229,6 +230,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -244,6 +247,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -266,10 +271,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -284,6 +296,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -301,6 +314,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -313,6 +328,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -331,6 +348,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -374,9 +394,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -390,11 +421,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/po/POTFILES.in b/po/POTFILES.in
index f4786e627..d99dfde4e 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,10 +2,12 @@ ext/flac/gstflacdec.c
 ext/jack/gstjackaudiosink.c
 ext/jack/gstjackaudiosrc.c
 ext/jpeg/gstjpegdec.c
+ext/lame/gstlamemp3enc.c
 ext/libpng/gstpngdec.c
 ext/pulse/pulsesink.c
 ext/shout2/gstshout2.c
 ext/soup/gstsouphttpsrc.c
+ext/twolame/gsttwolamemp2enc.c
 gst/audioparsers/gstwavpackparse.c
 gst/avi/gstavidemux.c
 gst/avi/gstavimux.c
@@ -18,8 +20,6 @@ sys/oss4/oss4-source.c
 sys/oss/gstosssink.c
 sys/oss/gstosssrc.c
 sys/osxaudio/gstosxaudioringbuffer.c
-sys/sunaudio/gstsunaudiomixeroptions.c
-sys/sunaudio/gstsunaudiomixertrack.c
 sys/v4l2/gstv4l2bufferpool.c
 sys/v4l2/gstv4l2object.c
 sys/v4l2/gstv4l2radio.c
@@ -27,5 +27,6 @@ sys/v4l2/gstv4l2sink.c
 sys/v4l2/gstv4l2src.c
 sys/v4l2/gstv4l2transform.c
 sys/v4l2/gstv4l2videodec.c
+sys/v4l2/gstv4l2videoenc.c
 sys/v4l2/v4l2_calls.c
 sys/ximage/gstximagesrc.c
diff --git a/po/af.gmo b/po/af.gmo
index f3454f7e28a47d17b7ff039be56a97ec0f95be64..4c375fd8b1dce338df3b87b4d7150158be87f1b3 100644
GIT binary patch
delta 96
zcmey!(#8^SPl#nI0}wC)u?!IF05K~N+W;{L1OTxa5C;OWBO?Pt2avV~;!{925P<<m
SFAPkaZL#r|6XRq(CK~|pWD36k

delta 205
zcmZo;`N&d#Pl#nI0}!wRu?!Hq05Lld=KwJXbO13I5O)GGNPG$qn*s40AZ7#N%RubN
z$iQ$5NOJ<Q3=>418j!XI^7Vi;NL?0?1}bA<0b&>c3dw*iW(JA)W+oTq7i8q;r84;D
s=Vg}U7flSXU<=F7Da}pY*zU|I=$n~cl%JNLp9hnle3H?Y9io5%08uL;5C8xG

diff --git a/po/af.po b/po/af.po
index 2dc64a667..2638b1990 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2004-03-18 14:16+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
@@ -22,6 +22,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -55,6 +65,9 @@ msgstr ""
 msgid "Server does not support seeking."
 msgstr ""
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Geen of ongeldige klanktoevoer, AVI-stroom sal korrup wees."
 
@@ -140,63 +153,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-#, fuzzy
-msgid "Record Source"
-msgstr "Neem op"
-
-msgid "Microphone"
-msgstr "Mikrofoon"
-
-#, fuzzy
-msgid "Line In"
-msgstr "Lyn-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 "Volume"
-
-msgid "Gain"
-msgstr ""
-
-msgid "Monitor"
-msgstr "Monitor"
-
-#, fuzzy
-msgid "Built-in Speaker"
-msgstr "Luidspreker"
-
-msgid "Headphone"
-msgstr ""
-
-msgid "Line Out"
-msgstr ""
-
-msgid "SPDIF Out"
-msgstr ""
-
-msgid "AUX 1 Out"
-msgstr ""
-
-msgid "AUX 2 Out"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Kon nie buffers vanaf toestel \"%s\" verkry nie."
@@ -217,6 +173,14 @@ msgstr ""
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Device '%s' is busy"
 msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie."
@@ -233,6 +197,14 @@ msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie."
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie."
+
 #, fuzzy, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Kon nie buffers vanaf toestel \"%s\" verkry nie."
@@ -313,6 +285,9 @@ msgstr ""
 msgid "Failed to process frame."
 msgstr ""
 
+msgid "Failed to start encoding thread."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -407,8 +382,25 @@ msgid "Cannot operate without a clock"
 msgstr ""
 
 #, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie."
+#~ msgid "Record Source"
+#~ msgstr "Neem op"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofoon"
+
+#, fuzzy
+#~ msgid "Line In"
+#~ msgstr "Lyn-in"
+
+#~ msgid "Volume"
+#~ msgstr "Volume"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#, fuzzy
+#~ msgid "Built-in Speaker"
+#~ msgstr "Luidspreker"
 
 #, fuzzy
 #~ msgid "Failed trying to get video frames from device '%s'."
diff --git a/po/az.gmo b/po/az.gmo
index 54c6b4028b36ce530205e60dea3f9a3f7296b3a4..4195847d7a5fd6f02ef39742edac919ceb7eacd8 100644
GIT binary patch
delta 96
zcmZ3*dWa?9o)F7a1|VPpVi_RT0b*7lwgF-g2moR;APxlLDn<r|4j^p@#LPeqKrR@7
T^uoZz*%ljbRWnXbW3mST-vtVv

delta 202
zcmX@avWm6-o)F7a1|VPsVi_QI0b+I_&H-W&=m26aAnpWWkoXiJHUr{0K+Fcjmw~v7
zk%8eBkmdm5P$r1FI3R5Y<fj2?79hP8NCTCD*+2>mfI>20i<v=O-^}Eq{DO@9yi^9?
u{JhMP{Gy2g7HnbpIi<O&8{2Cb1$;BJi}KU*^I+1GnV1|{gHO&ZW&i+S)F9UY

diff --git a/po/az.po b/po/az.po
index a90493c38..62c1d103f 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2004-03-19 18:29+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
@@ -23,6 +23,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -56,6 +66,9 @@ msgstr ""
 msgid "Server does not support seeking."
 msgstr ""
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Səhv ya da olmayan audio girişi, AVI yayımı pozulacaqdır."
 
@@ -141,63 +154,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-#, fuzzy
-msgid "Record Source"
-msgstr "Qeyd"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-#, fuzzy
-msgid "Line In"
-msgstr "Xətd-giriş"
-
-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 "Səs"
-
-msgid "Gain"
-msgstr ""
-
-msgid "Monitor"
-msgstr "Monitor"
-
-#, fuzzy
-msgid "Built-in Speaker"
-msgstr "Spiker"
-
-msgid "Headphone"
-msgstr ""
-
-msgid "Line Out"
-msgstr ""
-
-msgid "SPDIF Out"
-msgstr ""
-
-msgid "AUX 1 Out"
-msgstr ""
-
-msgid "AUX 2 Out"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "\"%s\" avadanlığından bufferlər alına bilmədi."
@@ -218,6 +174,14 @@ msgstr ""
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "\"%s\" avadanlığı capture avadanlığı deyil."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Device '%s' is busy"
 msgstr "\"%s\" avadanlığı capture avadanlığı deyil."
@@ -234,6 +198,14 @@ msgstr "\"%s\" avadanlığı capture avadanlığı deyil."
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "\"%s\" avadanlığı capture avadanlığı deyil."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "\"%s\" avadanlığı capture avadanlığı deyil."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "\"%s\" avadanlığı capture avadanlığı deyil."
+
 #, fuzzy, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "\"%s\" avadanlığından bufferlər alına bilmədi."
@@ -314,6 +286,9 @@ msgstr ""
 msgid "Failed to process frame."
 msgstr ""
 
+msgid "Failed to start encoding thread."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -408,8 +383,25 @@ msgid "Cannot operate without a clock"
 msgstr ""
 
 #, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "\"%s\" avadanlığı capture avadanlığı deyil."
+#~ msgid "Record Source"
+#~ msgstr "Qeyd"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#, fuzzy
+#~ msgid "Line In"
+#~ msgstr "Xətd-giriş"
+
+#~ msgid "Volume"
+#~ msgstr "Səs"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#, fuzzy
+#~ msgid "Built-in Speaker"
+#~ msgstr "Spiker"
 
 #, fuzzy
 #~ msgid "Failed trying to get video frames from device '%s'."
diff --git a/po/bg.gmo b/po/bg.gmo
index 0da7c34a2c349f61c0e5226f7ef799b944d372ca..0cc2f4222ddad3cc5899cdaf332ffec21298f763 100644
GIT binary patch
delta 2086
zcmYk-eN0t#9LMo5HxMq$GncCuh->m3V)B$+Qox5a5YQx0z&0$?OcTs%qzlYxv+2wo
zwSU@N4{J63!@4$U!xoMB!<B1prmJcHw3*AEmaMIs>-{<B#`<mF^ZNbH&OPV%`+dLX
z+*>1YXNHDvWX7K`S`U#&-1eCb<5&U*+GwKLEc^spaS{WVndDtxiuW>JflKg7tig9;
zUc*|(DSop;T!tasin)5!emYg0IE7_+8B6dVEXKlQ?|dtEF@7Eg@k{K+B{R*+@g%Ot
zajeD=v)07gaUSkKJ?9u!;sj=CsejN3b0RUtn_(&H2W`j<Z4mXtBd8mHhWFzg?8k7b
zSt-7P_u*;O^_NihiA(eDTZ9#iTTlyq5p%WGZ_!zf7jPx|(#=+33)Z27TH!@ph*PKs
zlw^1-=|PPT;cOg3P4o(C%l(;VO<0K<??g@PI1U%l8Kt8f-M}zrXOUm5Mdf-Gva9wu
zYK7ZS6FY(@aRPT?Z?@S2yo3+nT`a%_+$4-0sQV3YXvBj7_P>G7Bq#I(UyhgiYK$=M
zMK`xNpYeEX{43639140XtwE(^E9$!As4e~+RgAZ>66dl#=i|)QAh)oj5c|KEP5~vk
z7~jNo_$@YLB?a&_4&Vu$M_oU_tMW4bj7r(|e6xByhpX`y+=&fTU^|}1E%+Dq<0iI6
z#X2!e=M<g%u-O^BfUn`Uxn>)13P-Smeb)`X#-+H31n$8-xEcRMUB8h8D+T9KE53;x
zm_wd5k*Ba0KSoV(_$N9q(COt}+m4s<J8UfBW|&K9x8M-&#R+V~X7*Pe#Xh`_YcWE;
zy74d`#2@egK0|(9#ozHT4plH2z5g>v*h`$)5%WhJWc&ov*8{I$9X`skcH<$`#O~r7
z*hk@LEAL=0wk`BNW*?w-D89=3Zj7L6>?*2OlB!kA<iCcFa@UQj;$!$5##1?yIE9@!
z#=dDMGMLRe>_biLEC(*JoA?~&JxKcSb=-`9<HOj$$ZQ|Jk6l>KLpyoC?W3a;-(WG$
zkC^SpPF#l9@G;D5U>9%~?#3@rI~93|j|}Dz|248|oOatxj%kD@-%3z&)<mf3`O_^c
z*2_kHfMyd+)@`KGZF4xr6BM|yFn3E=qMCMLz1#B+K~NE<5Fzi>^pWg%-+v0)5{Vu{
z+o~#6(~fBMYSf}76A2p7!o+go9)cId{o1h^?nevUwwNQOG~Iaf+}+JX<zFpH>(}eF
zf~X_(YW%;YGw{VuP;Zt>bjQYmT5_Ax(n<J<)r9iBmY~Sp{|0dX9h<RH0~%Siwk8f8
z1gW=22;L$$*K06?m`Csm+YBN=sBQ3YkF%UI|0d@{f55rw|H%0&xj6c1a&5Ac8YqkQ
z2HuNv(t;IEd$22dE_l%wJrHX1Iq#NbJH`3s&f7(i=xBalTy$x{mK^8%+KthHy6ZmY
U+4@$euqxfTRev@*9yyxuFQXyjumAu6

delta 3032
zcmajgeN2^A9Ki7dzVIT-n;@d%;~ORd;^nPGc~MeO5CKJeA-&*LZ^FGu;1-b=G1Qo|
z#vSG#mUA}i4{N}cfe>gewMEP4X)E1o)N0k*T-kEVt=jtjo_lfBKb`TrpYxpiJm)#*
zch0$7dGY5~Ki62q<Ss?2CFT+>la!K%ucz`sNeNOa1XtoF%*H_MK>n25cm1aC`Z7k*
z-i={+8>QcS7>AEA8zY02N>j?E%Baks;iR`goyBynM{zOwO;ais<8cn=p#`gO8NQB7
zaS-G2J70ScqpsjO6%S(vZpXhc0k=+9s*?9B7nM{R?xTz_gwZU*<tQ&I!DMX1NbErk
zZ=nqEN0j@gg?b0L0_C|)DE%JA<=Bf>9K)wDm-H;;{mM>79ypEC(RGxLzsE!j4EN47
z9VG*MFdtvS4R`|!<h}@{GO!e7hNo~PdeDMDU^2!q3%TBat{5uKRAi)Xlo#K@TzufW
zPMYZ*SQ##%{RqkuoktBn$I19Rvb^dsvI@$djletA4CGHO;3EJtQT9+y6!~YFRe|q|
za+C*m;X*usGNTSWiyvYGRz@qe0!NWmQ-5L#2F>zzyb5I?>u^36qlR@z7wQbM3hM1y
z<UfbXRT{GJ5lTlXq(wHB6<6V_C@K92lkivH^}N|i@uv#-kPKF%to2!x`);Ca(ubIa
zvFv17f)bPicGN|s-%qJ_WD;r(XQc(VBKt}i$Tm>l`mTTTU8{NAOM5uVi%PH@U&cH%
z(2kMp=q_nTxi6A*v|t_{Mb`)w*+gqJrJlidEW+#P#E=C_ZN?TnfTL)|RMw{wyYK@3
zf>-biJGcY0*ho9@HnyV1#*ybQ;#v&itiB}Yzle&BhL2GmNG9*Hwx>{1HGn1f6Usm`
zIXmfi0%d?7;1NtD&$W07zrrxqs|p|BM%>7{$jrO27$Z1Z#d7}lQrS(z`&f$8$kTSL
z!V}ns?YNrJoWz@W8aFb^{df<XF`JDeUc<wf#@Uk>Ud9Yu#F=ZvohSpli*N9LmBh}G
zRNlf}7{^Z8iOoog)E8KRrA%A)!n;1NVI<d|An#OTD4Q>ox5@F!!eGotd9DO!;9g|4
zloMUD=ABgJSbd5QF(;FC!<47li1-I;Sj5ee$~u&e22eV_gR=SVBVDM(Ro>lRgRGi5
zhcDm_d>+%Xyi0x|i~O&rVajTyj$sj2;Abc=Ub4n}-Hh>E8+aTa<2r1~R%#pGz%q=^
z@ut|0vIJuogIjX>KZ1<UJkE1*Ga>uWEG(&6rt`UnAOU7!9A>HEb0$$pY%*KC8IdX*
z+$@s%SVA%oL>wX}7RG4KUfPO%UsTHbcMvk0`NVUC6qyzK&dh?WF?+>4&y!I0h-6JN
zB4xK1^OsGImK1)+%q5ZfR6>rdlmKELQAFetE?G}GeiMtVt(2XFq_32a4I_m^V*W(S
z29uIX>?1gJ=0C3~$cZ$6Qx+h5SA`R7A@iSBEiNHsnV*&X%LbA2oj|axPm1hlDF=xh
zLXPBksiHEQ;AEL4n9n&xC{ay>5S&W$zv2P(CuDz2Ec>|#lOO#pR3eCIB9D+V*~^np
zPL|qB#Q9oyjDMFs0o9AQRcb4>LWjyTD<w^hX3a9*WYK7HhX>9ITiax>ZA`K|wDNkJ
z^^mQ>y)@7hvd>nd6*-;t)z+Fr?vS8my+P^0u^X&*hbpjH_thVCI&7-Y(P(RMSZlR)
z`R=sHghfSmhfTUSl@}J<YZ{#1dyAb8d!w_#Qx*A+Uw~HbY-*^nx&NM-8onjJaJ@WK
zZdPPW$x)S|<xP%?t>sTf;AxK<^`BbdtZk~Zc}ik7`)79=?fQs*RWoO&^mBUuzZ)ig
zZ~5={7Pk=}?e2+9NbJ--MyuYfU)B5cVNLJV2aIF%J4kqlUVVhG2aGnp9&+DZxY`pn
zXSZMCTY8T?Mf0%U%~M9J(V_SA6c=WTJTG0+;&INkN2gt)+W~!u4!gOdPw5x+A>+7l
zipwGH8c=$t(P6aFYafln`iSK8OUoXMZypn7p!D-}HOQ?a#w)yMSQ@|_Cd2ilrhel;
zUlP*B9Vg`reNba~42}=|y3ElXmQfrxo+C5$6W*Yi4es1!QSSPT_u~I=w%)aJzm{3%
WsmsinGMl-{RL67CPkxR|Ce%NJvnr?n

diff --git a/po/bg.po b/po/bg.po
index d1680db98..ce4125bab 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-07 22:46+0200\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@ludost.net>\n"
@@ -26,6 +26,16 @@ msgstr "Сървърът Jack не е открит."
 msgid "Failed to decode JPEG image"
 msgstr "Неуспешно декодиране на изображение, формат JPEG."
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -56,6 +66,9 @@ msgstr "Сървърът изпрати лоши данни."
 msgid "Server does not support seeking."
 msgstr "Сървърът не поддържа търсене."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Аудио входът липсва или е грешен. Потокът с AVI ще бъде повреден."
 
@@ -150,60 +163,6 @@ msgstr "Устройството CoreAudio не е открито"
 msgid "CoreAudio device could not be opened"
 msgstr "Устройството CoreAudio не може да се отвори"
 
-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"
-
-msgid "Codec Loopback"
-msgstr "Обратна връзка на кодека"
-
-msgid "SunVTS Loopback"
-msgstr "Обратна връзка на SunVTS"
-
-msgid "Volume"
-msgstr "Сила на звука"
-
-msgid "Gain"
-msgstr "Усилване"
-
-msgid "Monitor"
-msgstr "Монитор"
-
-msgid "Built-in Speaker"
-msgstr "Вграден високоговорител"
-
-msgid "Headphone"
-msgstr "Слушалки"
-
-msgid "Line Out"
-msgstr "Изход"
-
-msgid "SPDIF Out"
-msgstr "Изход SPDIF"
-
-msgid "AUX 1 Out"
-msgstr "Изход AUX 1"
-
-msgid "AUX 2 Out"
-msgstr "Изход AUX 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Грешка при прочитане на %d байта от устройство „%s“."
@@ -225,6 +184,14 @@ msgstr "Драйверът за устройството „%s“ не подд
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Драйверът за устройството „%s“ не поддържа познат метод за В/И."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Кодерът устройството „%s“ не поддържа познати метод за вход."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Устройството „%s“ е заето"
@@ -241,6 +208,14 @@ msgstr "Устройството „%s“ не може да записва в 
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Устройството „%s“ не поддържа несъседни равнини"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Сървърът не поддържа търсене."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Устройството „%s“ не поддържа несъседни равнини"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Не могат да се получат параметрите на устройството „%s“."
@@ -322,6 +297,10 @@ msgstr "Неуспешно стартиране на нишката за дек
 msgid "Failed to process frame."
 msgstr "Неуспешна обработка на кадър."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Неуспешно стартиране на нишката за декодиране."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -423,3 +402,57 @@ msgstr ""
 
 msgid "Cannot operate without a clock"
 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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Обратна връзка на кодека"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "Обратна връзка на SunVTS"
+
+#~ msgid "Volume"
+#~ msgstr "Сила на звука"
+
+#~ msgid "Gain"
+#~ msgstr "Усилване"
+
+#~ msgid "Monitor"
+#~ msgstr "Монитор"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Вграден високоговорител"
+
+#~ msgid "Headphone"
+#~ msgstr "Слушалки"
+
+#~ msgid "Line Out"
+#~ msgstr "Изход"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "Изход SPDIF"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "Изход AUX 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "Изход AUX 2"
diff --git a/po/ca.gmo b/po/ca.gmo
index b17afae93e3d41a9d78120a04ff640be288a7f5e..4618d44261ec210fdb214c1014e5075f27c30ebd 100644
GIT binary patch
delta 1327
zcmY+^OGs2v7{Kvwa(qphZ}X9P&74uQDK$;Qe5I8{5g}Rhfbp@g@zrROZidK(RwOng
z(ZWR#QY+)OsExD<B8Wm;L}Wqh7Da^=O8vhx<D!G-{?0kxd(S=J`Ob_t+jYTDDb71W
z*+<<<ediEq#hX!FDDzH{P52noaRJSJxQ+gI+>1%kB01QC#ppv1-at3nk?{|BioP>O
z<dR5G&eCXS;5C+DVXVk$Jb@MX5Otzu+<~iDfcbGuf-P8tbGRMfVmbam{UCR|$YE^4
zBX}LFa0$zpUtBH`F9Wrx5BgCjo<*H-5gTwN(y!ha{($pX$oN&P#5qjCW#mu3anXrZ
zaRw_0V*p>_Zak16vWNMlk47HOqJ;~nq5iBl;4k!`d$Y)XJdPzeiM#Mgr2hr8=qDtK
z46=<LOs0P~DSY1}+)4jEYNVX}GkB1OhlYmKk2>KL*5Y&2(5+z;wy?YroWN=Pi+-F=
z718&sVLvvei5$Xt)CpHmBUHeu)H67VQ|ZLNnMPJd_yrfRmHvG!!mrqY>03lP@d|2g
ze8e`a%#7?Q>T^q|<GF;P1p}zhKgDXy$rh=>wurZ~iT^PMUNWE|$sl8Rht#01{3JfW
zd#EdJAoX<xi&%wmx#7L6M}2+(-FO@8@fmvYHy*_zGPxXwQQtEcj0`NJz95N2VCziL
z(CN`DqmlxWPt`)y&E&k(9NQ?=k1nRNQ|7b~VRI~XJNb4YHB63yDeROfK_c^C(X&mW
zo3A7K5>I9OOey86d7>*=FS<HTnviQ|<$5C4ODqj?P1r4y@%&VnlL6*r!8wWMs>e-N
z&rg6Un%(S(YzTKvE@)G;-J<Gg5KrNd$LbihRB622)iYoX_WDLUe4T!)I}jKMc<qZZ
zuGo~;{t;hqPnYEz9_X`%dd9lF_KSpZN2ooq)SgM4aM*>(*Bqga%<Ryglr%d(wayh9
Y%Pp`MbKf{Z{ycYRIWO6ESw9{B0MWINF8}}l

delta 2027
zcmZY9TWl0n7{KvwYo)fe&@Gl0dU2|h6_i4^<zmHcOSd<rK~hCxqGsA1aO`$wJDqJ(
z9$ce+&}uMd123kDkQj(YA6##VVk8hBd{Np&s1oCw4;W3nB$^oG|C^m98c+7@@0>F`
z=lY#3Bo>mn@9N4=3Tc?!On$gb#Kf1&`6AV>5xEtkcnh{-CC0*fXISsSdfJm%i;to9
zH-)YE0(RqBY{F}}RU{{WP>9iRM}^21d;obMGk6$Z!x{VqAH@{2*oL3r5&QwWu#Z{k
zKt689Jl=^Pp)Tke-i3)O#=>J5XM9<tpffs;!?=ng*j6pF8=uBbJdGW=f^jTkTXf)E
zr~}&AhbO}Nm#7o?4coD?hTmcWb#r~JWPF*YK%eqF*5ND2V&x37IC&G9lN7@CPf>sW
zIqC$L@f23B74h(O+=1)YiSS4Ua3>x@?e95cGvp=A-A>^o1q0tlJ;Se2U-%JY*usJK
z;2>_pXK_2e71mdABlYsA2&XBnn2E4z<Rhn8l}_Yb=m(*f>ezpMuuOw?_&xHGwd+Oh
z#x~Tm8p8q1pl<1VxD&79KCHa0cyvR!pZW=$!^`+8j<BjJ{06n3p$#GqE^c7|hba6>
zgAUl&P&}h_=ox&G_N$o0iN<0FXK|GJb=08R#quZc37o_WsKMF3i5rE_pvKe+>U+%u
zoVFj$Q5dA~F=_`9?#y0H;k~#NdIiU*M_WX0#wSr@!a_aE4C+oDM@~bQP`Cb_@cCz`
zG4%y9XIVxK_S|&}Z&2vs?&wynqDJWyfuXT*8h7J|s7Liv=wG;ldX-TexCiz6K90S(
zfO=al;e+@q#<91p*uRI=b8?P?&iq@{mHmwoyocOHE~Wb^=md0inlupg$n@&zL^K(}
zcX6e<JNJ><*r5MT)N9vAX70fxb^PFNYIK*8OR1WI?gGas9DNXMx*Ppu-9Bzu@UO^m
z{x4~OY7lFn>Cp_5HO4gQ_3I8w#of{IgS3xt79K>e-ULkqZx9Q*t(tBkb0dRo)N85d
zr$MPnV?`5jEL;jnkoDh?(+#eq#)2jd)>0y*<e*k`+coJqYuZEJs)bnlY|NOLH&p3=
z<cQH}j5=ZAVAc;x@lsRVpecX8yrFh~)=vA|ZO0hTSmu=F6;{ftDh>^swj(2!naVun
zI+lz&zU4V)+89Vuo-@;S$}oL*+L*PETOD%1b}a2VP{$gxCq1|L>X_@;zUvi!u3m^#
z7~^i%o3!%jny%<W$<ZNwX*?+KR$-}TF|y{co6b&Kg)QqAB6|iM-!oID5v)eWUC*~~
z)c*Y}{-0;@{LIG2{Ds<vy8g6p&RJQ*b|zgf<9eoFxKi6&wP`qOI`h(>_3X)P+Vo~+
zAjxlZiTV1b&D{qszU|nik&0Qx@uk#Y8MDPX1Pi?Q?oro~()#u`eHE!6aveW-&$Eu%
ivrK-PF7lU~WBHDjXj5s*!HRE8Ij9v9Ex(6rmwy0n^BS4}

diff --git a/po/ca.po b/po/ca.po
index 8e3184021..0930c6c94 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2012-01-01 14:19+0100\n"
 "Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
@@ -25,6 +25,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr "Ha fallat en descodificar la imatge JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -58,6 +68,9 @@ msgstr "El servidor ha enviat dades errònies."
 msgid "Server does not support seeking."
 msgstr "El servidor no ademet les cerques."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Manca o no és vàlida l'entrada d'àudio, el flux AVI estarà malmès."
 
@@ -155,62 +168,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-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"
-
-msgid "Gain"
-msgstr "Guany"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Altaveu incorporat"
-
-msgid "Headphone"
-msgstr "Auriculars"
-
-msgid "Line Out"
-msgstr "Línia de sortida"
-
-msgid "SPDIF Out"
-msgstr "Sortida SPDIF"
-
-msgid "AUX 1 Out"
-msgstr "Sortida AUX 1"
-
-msgid "AUX 2 Out"
-msgstr "Sortida AUX 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "S'ha produït un error al llegir %d bytes des del dispositiu «%s»."
@@ -235,6 +192,16 @@ msgstr ""
 "El controlador del dispositiu «%s» no és compatible amb cap mètode de "
 "captura conegut."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+"El dispositiu d'entrada de vídeo no ha acceptat el paràmetre nou de "
+"fotogrames per segon."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr ""
@@ -251,6 +218,14 @@ msgstr "El dispositiu «%s» no és un dispositiu de captura."
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "El dispositiu «%s» no és un dispositiu de sortida."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "El dispositiu «%s» no és un dispositiu de sortida."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "El dispositiu «%s» no és un dispositiu de sortida."
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "No s'han pogut obtenir els paràmetres del dispositiu «%s»"
@@ -357,6 +332,10 @@ msgstr "Ha fallat en descodificar la imatge JPEG"
 msgid "Failed to process frame."
 msgstr ""
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Ha fallat en descodificar la imatge JPEG"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -467,16 +446,68 @@ msgstr "Encara no es permet el canvi de la resolució en temps d'execució."
 msgid "Cannot operate without a clock"
 msgstr "No es pot operar sense un rellotge"
 
+#~ 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"
+
+#~ msgid "Gain"
+#~ msgstr "Guany"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Altaveu incorporat"
+
+#~ msgid "Headphone"
+#~ msgstr "Auriculars"
+
+#~ msgid "Line Out"
+#~ msgstr "Línia de sortida"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "Sortida SPDIF"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "Sortida AUX 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "Sortida AUX 2"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "S'ha produït un error intern de flux de dades."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "S'ha produït un error intern de flux de dades."
 
-#, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "El dispositiu «%s» no és un dispositiu de sortida."
-
 #~ msgid "Got unexpected frame size of %u instead of %u."
 #~ msgstr "S'ha obtingut una mida de fotograma inesperada de %u en lloc de %u."
 
diff --git a/po/cs.gmo b/po/cs.gmo
index 8409604d8b3f082525c833500ab8a4a304e534ee..065d21b2a7920210152a28f1b6d0bbd56b92ce00 100644
GIT binary patch
delta 2083
zcmY+_TWnNC9LMp0mrJ`VZK3VDy1jUSQnpxnp%*K+uDw8Q=~5J1Yz?GFYB3lEgU0x<
zi3AfhH8F!#dC(XV9_$lrNgyc(NaX>gCMHIBA@RW%(@3I{n4swQch14fg#Y=>%<i5u
z=Rf}`pO4?&m%UlC_yePj5EaBi#4L-mOSsU^<(n<T^VpA9Fpeb!!S_>G#kdEz;&a%7
zCqu7eE91hbSv7WH5+|@+k2*?c0~4QOEq;q@@ei!Q>R2$}k3)=);351PhjHtDX6tYY
z_uwUL#w4rO!ZNrTUqn6UeXPehEY++2O2=a&zc5%~3iX2lWQBGJ^}|WjjW6QE_#2L)
zS7esLH*pnCqrN|nx=&tlaNjjp$G8vmqOW1OQvDg7ZoGioF|ypO7yGac9qJ9QViVp*
zJz(vM;7vwQ<G1kvoJB44J5<V}C1z=?M~z=XE$ldE*U&jfM|*S=JuE9_f3X#{*S$zq
zZ7=E#UqCHv5~pwu594T=Sp&{vBi_Y_uz{O+xD$21m$`J{TXFKgiOv-!^n=L#!QMCH
zM#iJ)?=7xpd?_5?!Uq{A6TzFdptfWJ^}XY$6kkRa;{w*>O475G0v|-yX2VJHuhbu;
zB(>M4Q8&1T9^OHHUcrZLIEHEb2s`lxDuWdq9odP>&;)kjyQqwOgPZX$+=iPggRMN8
zrL&)jv-l2{Q?k$FDbxdt$e%v%K|OF9^`M`z1Is)<!`-+APoPfEbyTt0O0!2`Jt`CX
zk$-lA%O=du($Nop4=37K{uJZG*osjqWdnBLF3qF1WG?g;Dnm&sOXq(dGG(8j7JfN2
z#j3{{zlSRF+sJdXwuM8UX5x*|S=`9@Puzj+ybj5+W2jSc61DOL9K;l7Pv3tXRYNn_
zgg;^i6BGisvT@XXCQ-FBjnz8;U($J;iJ$N>Y~l4T;H&tt##B}s=dl@!$*cCX3-zY2
zAlqsm;x?Q?rTh*mgUu8ax3&W~fDX0LAFzq%TM4D9iEi}p2zKIBIDZ3m;}}onH?|AY
zm_<@(7cmbx6#q1`>ld6Rbaab}KBAwXbo}3g-v8gmG4`8|MlYd1Chh)Au;=P3b&Cn5
zQg5k+Zzt4LV0-*taN*SX$F2}LNdIfvA`Va1KQ8$UMu;bg452nebosrYqGR-zgkul8
ziA4l;>u-x{LVvXGHDyNGy4Uo7f$Bh8#ZLOIK<}?q_YgX6+OPk%<qRU>1X;EsVmKTN
zoeZ@nh}}e#*g<H!bXq6@|NjQ?PlxKOLj#(Mb|B4VC-EquB2=L~MGO)v2o)G7$d(du
zLhb1Q|GLc8MxS-3qjC3r^o+X}tI2&4YmK?0cx`Spek#uuC+b`#F_fE0T#e+8CC4Hz
vSy|ySm0!7oRZY2Ps^$t^XI*=4x~?zc3L0A6FEyp^K*L^F*|_dZqqpd9739us

delta 2885
zcmY+_e@xVM9LMpGpz=dR0TIN|FKQYB%5T$55KtgM)DtAs^ngR~&O16dR_46bW+_^8
z-J;d>4_3>~Myc4=ax4qVIoxt?m47t<ux0<W)yy`_YCT`yI~;v>?|XbcU%2n*^L>Bb
zpSyqep6d+WPM-djp?QeMh{Msw=)w;(d86gW8IynoSce-h76*`*2}Q<dBI6G*mFwqm
zE`E)=@AtR}@8bqci8rR$n4sBCCy@)Ug)f*vEMYu>%W&E(V={0#F2s#kh<h*_PvHvu
z4431b$n`i@-ORWMpT_~*iGSlt+%emj7UnlWIz?Q#g<4?(t67RUsEHbJ6~2NgcmXZ^
z3bnwysQ;feC%nMbsL$1*?t27t@FF_#Ha>ynq-P29n{GP#z)94NK1bd7N6f|8r0|oL
zpfa!*tMDbP#w%E(|4TNe6t|(C@E8{02o~Z`xC+yG3XQ8Vm`>*q9j!Ekn)oV~<1dkM
z-n{U_w&UYm??-LXX|(VrPRHMo?KKaOT`*A;0&|)~<YlsWi@`Oh8Y)XA|7^3ViTuHV
z`rs~Hg8NZVG=PKn1^TgNzA>wD0@*e55c4rEEqvp3sD)JGVr)PQ4<ffPZy>v1-cKX{
zWppla;VHb2x=}u9QBgT@9Ue!ebR6^W*T^_?fib*H4R6X|8)~lyQUCWPsz`ssV$7hD
zwFQl+19l{+PLwf6k*t}MoE7cu5GoUQQBQa;GB%mvaRRCqGLSW!Qq+W7(89y0`<%g2
zyn~d9SwMxCV-8ke&_hRi`f<c>QK^53mAHufDb;Pb9^b^x_zkMK=3B<Num%V4BixT`
zv%(V(q5gggHQ@$suK8ZZGM)dkbT)C}XM7s-I08z&8&&-wT!U9oDSUw3%j8k1+OkH}
z=T1b%*Km;W3}z|8)2M2{iQ9CYF9~hsPTL^onoboLhH(SlL*_6Atipv&5iesW<17wu
zH6BAvd;`ldk&Tv(xDHQYJx(CmH|fk;gQcj22XQO&o6B_cfdnc?#aE3=?F+aC&mn6v
ze_}jZq($c7EG$J$P=VB$*@t{5nM24|h&hh2_%6oadq|SZhZwA-bA!%C%%FlsaW}rB
zF{N6Lmr&>U4^)-MQV^PWJ*qfske6xZO__TYsaJCjwUDd08NWkqWhPIlt!c_<|H+Oy
z!G#9=1bLZg9$y(K=1t>HwD4`Lz)vIBAEIuY%LcP%(~IRegxZ=r7>5?Co`!1)Wm=2d
zLa6@i#)H{SPqUZMD%Di+YVCxMr?OQ?s9E-VIF;(MJN6Hij+-WR6H}XN>p<j!9#*YI
z^FK>e5{rrF2(>0cPqc&JTiCAPZj2^&5qfIXgxc;f_BWfdqn1WE>|Xeb#u@2r|5YpX
zL^%<BhBsCD)TTXCYbE%ivyaUZU7%4a_TH<Y)Km{0L^h$lpFwaS>=TlOI<iT`lY~y0
zhu|dIKh2wze@>NYBvumIv&p7?SL-6mh@Bcl+8$J;v;B6{Y0$Uf9HNa#AgDF_xb4R%
zVmmRlbuyT%gSeGWGQn?%eG0(-HItJ~)w+-1OVMsRzb14crfpeMi&bFNdd)_=(-`Qp
zdxevi3N0>$l48^5Rs^~|eR<tp%hBU<x?TRzirA5a4p+NX@ALJvIosW#gt+XBaV7B?
z)y{6Osc|_wdb)gGm#Ovkx%^(I$EvIf6{oCRTHoz;>Grmou%Wx%?+gELgU{RD=kt&3
zNjW<$#&Y-q{&rXBpLs<|TdQg}>q8E^qcyEcZJFZ;c$;@P9<5;HXzE1N%x0e_aL_f<
znBEpu)ZE(_=&|f)GtFb8Q%8^bh5!3YVd#8DW?HMWEzsfXcY4Q0Ex)VB@9PM-Sy$+K
z#`UB+Ux&->>mM7kdJn!h{<_;4y0x%y<l4gV*;%cw-mzhi%R4q~9G*aX*Vs^>+ZRc|
z*sv0CGJ9=453bLTTK!ss@(>w@7f3$beqX20YbLWXo?RD}+}h#y9k9I4F8|mNlQTys
uF}Gwv_zCT_JbDg$6spMeCpy9_w8DuB{gs<Day!?Gj<4}Jdr5R}pZO1Z)Q5@y

diff --git a/po/cs.po b/po/cs.po
index 282a1cb5e..1c12c6593 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-09-13 15:00+0200\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -28,6 +28,16 @@ msgstr "Server Jack nebyl nalezen"
 msgid "Failed to decode JPEG image"
 msgstr "Selhalo dekódování obrázku JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -58,6 +68,9 @@ msgstr "Server odeslal chybná data."
 msgid "Server does not support seeking."
 msgstr "Server nepodporuje přeskakování."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Žádný nebo neplatný zvukový vstup, proud AVI bude poškozen."
 
@@ -154,60 +167,6 @@ msgstr "Nebylo nalezeno zařízení CoreAudio"
 msgid "CoreAudio device could not be opened"
 msgstr "Nelze otevřít zařízení CoreAudio"
 
-msgid "Record Source"
-msgstr "Zdroj nahrávání"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "Line In"
-msgstr "Linkový vstup"
-
-msgid "Internal CD"
-msgstr "Interní CD"
-
-msgid "SPDIF In"
-msgstr "Vstup SPDIF"
-
-msgid "AUX 1 In"
-msgstr "Vstup AUX 1"
-
-msgid "AUX 2 In"
-msgstr "Vstup AUX 2"
-
-msgid "Codec Loopback"
-msgstr "Kodeková smyčka"
-
-msgid "SunVTS Loopback"
-msgstr "Smyčka SunVTS"
-
-msgid "Volume"
-msgstr "Hlasitost"
-
-msgid "Gain"
-msgstr "Zesílení"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Zabudovaný reproduktor"
-
-msgid "Headphone"
-msgstr "Sluchátko"
-
-msgid "Line Out"
-msgstr "Linkový výstup"
-
-msgid "SPDIF Out"
-msgstr "Výstup SPDIF"
-
-msgid "AUX 1 Out"
-msgstr "Výstup AUX 1"
-
-msgid "AUX 2 Out"
-msgstr "Výstup AUX 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Chyba při čtení %d bajtů na zařízení „%s“."
@@ -230,6 +189,14 @@ msgstr "Ovladač zařízení „%s“ nepodporuje V/V metodu %d"
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Ovladač zařízení „%s“ nepodporuje žádnou známou V/V metodu."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Kodér na zařízení „%s“ nepodporuje vstupní formát"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Zařízení „%s“ je zaneprázdněno"
@@ -246,6 +213,14 @@ msgstr "Zařízení „%s“ neumí zachytávat v tomto konkrétním formátu"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Zařízení „%s“ nepodporuje nesousedící složky obrazu"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Server nepodporuje přeskakování."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Zařízení „%s“ nepodporuje nesousedící složky obrazu"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Nezdařilo se zjištění parametrů na zařízení „%s“"
@@ -326,6 +301,10 @@ msgstr "Selhalo spuštění vlákna dekodéru."
 msgid "Failed to process frame."
 msgstr "Selhalo zpracování snímku."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Selhalo spuštění vlákna dekodéru."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -424,3 +403,57 @@ msgstr "Změna rozlišení za běhu zatím není podporována."
 
 msgid "Cannot operate without a clock"
 msgstr "Není možné fungovat bez hodin"
+
+#~ msgid "Record Source"
+#~ msgstr "Zdroj nahrávání"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "Line In"
+#~ msgstr "Linkový vstup"
+
+#~ msgid "Internal CD"
+#~ msgstr "Interní CD"
+
+#~ msgid "SPDIF In"
+#~ msgstr "Vstup SPDIF"
+
+#~ msgid "AUX 1 In"
+#~ msgstr "Vstup AUX 1"
+
+#~ msgid "AUX 2 In"
+#~ msgstr "Vstup AUX 2"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Kodeková smyčka"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "Smyčka SunVTS"
+
+#~ msgid "Volume"
+#~ msgstr "Hlasitost"
+
+#~ msgid "Gain"
+#~ msgstr "Zesílení"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Zabudovaný reproduktor"
+
+#~ msgid "Headphone"
+#~ msgstr "Sluchátko"
+
+#~ msgid "Line Out"
+#~ msgstr "Linkový výstup"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "Výstup SPDIF"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "Výstup AUX 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "Výstup AUX 2"
diff --git a/po/da.gmo b/po/da.gmo
index 0016e3561fe96ab733e1ce6241936fe3687dc8b4..0fc0b375c87dbdf7ec9730c644b345233e8370ea 100644
GIT binary patch
delta 2092
zcmY+^TWl0n9LMqhF0IRMZ_@6vQm71CpiAqPwk&FqvQUb&l@>%xZIhasB9~N35i~~Q
zs#SxDeSm>JLZFEnj4`l0ph2z;MxvNtykXM#VxriH@%Chl-{0(j@g)EGoHIL@bN>G`
z`(59+-I>YKyn{yTA?6TML9+~=&gVco6*4Qt53n6CVGK*B=dQ29I~liN6As`K9QXYO
zQ;dtkW|i2C<+v4R>s2Fk>N#;36L=LD;@`LcD<iq{?byY54-Vs}xCxsI%ogDocH?<$
zz;b4-iFM%J_!R0r`!I<USf-`^PRHRys3<qXD%1_@kQv%A>c&yjgU?|#{(=4I6q{Ay
zD|i>ai@N>_>N$au+;it+4dXV{LZ8LiO7#&stMMaz5QDdyt;IH6iY{t}m$452M7?0)
zjND3kP~$i74m^#T=$ELJhfB@Um_&_-P!l_VnfY{1(NT>i(ZOgL^~Dsb)@zZhS|4hK
z+ffr6#W9?~UDz8ntHmq082`b!Sj$5k>_k0pCx;dIdW`%pqjQN9x*<3-SNjHRWZa8h
zZSfw)=l$^woW;02o?Gb>R7tj?t~-EA@deaooWdl|BR!)5v-L<4ZE_a*Z>4jCr*Vzl
z&(>6GHlS+12h+F@SK?LF^-+FQiTZFJzKsrkg4%S~aVduRq_m0Cs0nUCWytl<U(C?y
z<ivH{jg1v%kK+5NO_k5n9>F9kl_RJZjC0WM7q9_;Mon-o7b!FSs8T(Ts`(+`i>Uj5
z#74}799B(d6)IIPplW#>m9k2fN7pvueYhL7i{JCThRYa-c$-q+jC$cPDpO;)0l&xf
zSWkK%z!4-989PTO&52)q>$qDf+J*PxQ6!so4K>lfP!n6s&Q%E>N9~b!unxaK)jprR
z>qWK5DH}wUct4VCJBBm${eSFVFo{k4kjKBzF>J<{@E25yhsbw5j-yuk6*6bb<869i
z73%&LRBB&EU4Ire!QXH>RxnTod$Er9+g^3>L!>M=g_?OGJ4Q2aMLlQ;b>mTN#?P?@
z%QzW8K8jmS_vsmG1w;waMzj-pN19O6`)@TqW3NRyDz*AEQO(tulh?Gl@(A{)R~~(~
z`qNU={^|C5xr5TJQWX(=IR9%}FlEhnyEMe0huBDT5Nch7R;fk>EJEaKKy!%I#598a
z=aomBu#~vjlxmgfX49^x!d|IJoY$sn{j2CIjrv|w-s%4i`jZIyLv6}pVv|1>DvR2~
zgg(<S@er|w(5_dx*d|`n-dIVj$PK+cvM$Y_lhDp?CD<e0_peW72B8hchPT@Y{v^Hj
zn6D^w6X7S^<KdY5b@+t)S!6->Oe7U?i(`pwZ|tprTN1BvJK|m0lkv;J>}%ye1>$Qq
zZy$7?**xG3J~z<+<kLI14er>sV@uLKJ7*%hzv9ILw;_?rzM1$T;J#eF$URd%lwDpE
Go%Sz6+0i!u

delta 2850
zcmYk-TWnNC9LMn~)ZQt*3KY;&E~N#^r58|?(xtT*+uD|evWf+_-P3m4Ww&m(gbHC%
zY*0j_uJT~y1&t<(3RENU0YMRBc+$kE5iwEVfsjCy2d|0W-|i`4vj6?eOn2wZ{AXtS
zqvxls(Mx&BuNz8$m_zKIYK%HArtn5tk#0;DuEZ9s!8AO8yiCk#A9mXBU?Kg-FbB_}
z#{C}e!CP2^`5DGk851=dsASWzKha?hVKwawxB!zfjVZzsoQ*E5z-}zVmvIq(h9&r`
z)1S_)yJ%P9lXw6(<G;8VH%>Fg!}Cp)N+lgXpk|oGZ06$<)Pve_89sygcpNSK3N^v2
zsLy9kPfTz*>U%AyarfX7Jb_-kgr!(Zdgk$b<ENr897GNDIcnhFa4DwcCRSRF%D^_P
z$6eTnr?E+&%QI#bcA{4J9InI(tiUU{3}><mwHq-ylgd+6G}9RB!RN6SuRHDXg2co&
z;6nO$ptk5uwD4O@#y^nlHGd+zV5V>oc&5olUZ$A0R9uZZL+c93Kih1YoIkixU)+N8
zuphOe19%9}U>H4j8?ziQAiHM%!4;T3BQfwA)I{p=UTi}Pw<ANCmylgBZ_gnA>!^H8
z#{+l^HP8yuqC@4yHTXO#rDw4mZ#eC_vy9<ons`$Ndr*6Q2=%!yP>1v;R$&n*SzFMK
zx?p>vR9;LnW*pgWlh0jg#s#Pq1W~El>9n7A+Akn;HLoGNWR9ZF&S}&cxs0`F=5k}e
zg`88f4>kU)s52A2NTry{LXN(Lji_5Nz}qU^kGfW;P%FEFN_{SQRlf_{aR4KD5;tMF
zl{n@5a3k%b$e&CS4`T>ZjHSB&wN#WkKf3TRk}dNK>J0paI+Sy0NEd2=K3s$2ct4&-
zrTA~u8Cgy`l<FgB;Wv06{*Jm;OBiga?!SkM_I@0-XJ?R?xxt%KRlt$&#I4wY$M8W+
zV)@EM4c21N@gt}ICa$L6;vi{DJgA9AP!szQn|QwYnTifq3Hi`{?Zh(NhkDQlsB3o(
zbvttSBR^th4yI!n>MT?u+iqH%{sBy*9d_J>skEO(E{r*dQ4RbSl^XmS-@`O!vlk~&
zTT{ix>$(h}emHhwI=+v3z$d88okFr}uA?TBL!R}$a@6>1QCqefHO{BXzgB*Yj<s0G
zC{&Fbm5IHMCs2pyGAbj<<WCcKp$6(leeVsd!}ItMX0kt;XeTD2(ys|<a*q%?fAPZS
z<7FD}+X(HOiXNuYOB4{zL<^x}#orTWMO79Z|3{@;qlXR=cNS$}(CKJ%^yvAI5}LJE
zxRp?eUm?`h(f!sc{lrva3(-JuzT)L^NBy#`cj`J1Zl|7tUZ<}8=f;~>qLzq0%$rTz
zS+bqRW5^F({Pc6H;zeoBB((1;Iv+lwjF?Z{MQ~2z|CowVS2CB-)vG50gto4WV2h&h
zpV@XAItMxflSMznDg(qiVzU}f>Bd=v&WK6|p)01t)<a|wY<c__t{<lm8;CngAB`Mc
zeBJ3hLRZ2?s3a%2{a#J&3F027hp+MP@_1^`f=wQ4rPUlXu6U(=G!m~>Om<aRbj5Ph
zX5_3N^#>y5{-EU^w!K4kIJPKlBFks@TCJhbaF4flD3+C8b|Sqxqo~pA51J<1>l+>j
z1#QzDjM(9zH(=G($Exxd&u{eyZ4Dn+4{Y=IhC_+ZwuOTJNGLqfo&Ro9s^t!ihI{SU
ze+8Af9reu(`jR_d(VUhQdZxQagIyclw`VXhUU*?jN>?Z_y4{{=pLs2*GqEav(C4gg
zG*PLrCc7#ux*F`kfVIQ+S%ER1w{K+F9|-z`+{xykuV<{k-;P)VU!EL{cmu4uqv&jQ
zU5Is;2PW6uJ$vm$$L#f)^BO{7eb5e!*rqAOfDt=j_l1H^3anmV?3I#LO2D8UpFyI=
z4BGrd;gCK#nSgU8SCdjkhWr7a9XnE5m6uqzW}T>w`eNUe4m%0BJ(Y?2vcjnutz*8C
K$XIyDHva=m-Dx%e

diff --git a/po/da.po b/po/da.po
index 1da0cb012..4d3b0a660 100644
--- a/po/da.po
+++ b/po/da.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-21 23:54+0200\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -27,6 +27,16 @@ msgstr "Jack-server blev ikke fundet"
 msgid "Failed to decode JPEG image"
 msgstr "Mislykkedes i at afkode JPEG-billede"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -58,6 +68,9 @@ msgstr "Server sendte ugyldige data."
 msgid "Server does not support seeking."
 msgstr "Server understøtter ikke søgning."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Ingen eller defekt inddatalyd, AVI-sekvens vil blive ødelagt."
 
@@ -157,60 +170,6 @@ msgstr "CoreAudio-enhed blev ikke fundet"
 msgid "CoreAudio device could not be opened"
 msgstr "CoreAudio-enhed kunne ikke åbnes"
 
-msgid "Record Source"
-msgstr "Optagelseskilde"
-
-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"
-
-msgid "Codec Loopback"
-msgstr "Codec-loopback"
-
-msgid "SunVTS Loopback"
-msgstr "SunVTS-loopback"
-
-msgid "Volume"
-msgstr "Lydstyrke"
-
-msgid "Gain"
-msgstr "Forhøjelse"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Indbygget højtaler"
-
-msgid "Headphone"
-msgstr "Hovedtelefon"
-
-msgid "Line Out"
-msgstr "Linje ud"
-
-msgid "SPDIF Out"
-msgstr "SPDIF ud"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 ud"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 ud"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Fejl ved læsning af %d byte på enhed »%s«."
@@ -232,6 +191,14 @@ msgstr "Driveren til enhed »%s« understøtter ikke IO-metoden %d"
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Driveren til enhed »%s« understøtter ingen kendt IO-metode."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Koder på enhed %s har ikke et understøttet inddataformat"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Enheden »%s« er optaget"
@@ -248,6 +215,14 @@ msgstr "Enheden »%s« kan ikke optage i det angivne format"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Enheden »%s« understøtter ikke planer, der ikke hænger sammen"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Server understøtter ikke søgning."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Enheden »%s« understøtter ikke planer, der ikke hænger sammen"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Kunne ikke hente parametre fra enhed »%s«"
@@ -330,6 +305,10 @@ msgstr "Kunne ikke starte afkodning af tråd."
 msgid "Failed to process frame."
 msgstr "Kunne ikke behandle billed."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Kunne ikke starte afkodning af tråd."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -426,3 +405,57 @@ 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"
+
+#~ msgid "Record Source"
+#~ msgstr "Optagelseskilde"
+
+#~ 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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Codec-loopback"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "SunVTS-loopback"
+
+#~ msgid "Volume"
+#~ msgstr "Lydstyrke"
+
+#~ msgid "Gain"
+#~ msgstr "Forhøjelse"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Indbygget højtaler"
+
+#~ msgid "Headphone"
+#~ msgstr "Hovedtelefon"
+
+#~ msgid "Line Out"
+#~ msgstr "Linje ud"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF ud"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 ud"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 ud"
diff --git a/po/de.gmo b/po/de.gmo
index fd512cd179e8e001c166aa21a5573c50b1d0b3c9..56d9343c911490368801ef52da8f3c87f935285d 100644
GIT binary patch
delta 2080
zcmYk+e`wTo9LMqZPS?Dfx9QDu?(F92Hn-K>+}xJA^3LX(-Ey1Srfwk41VxH85Q(yj
zN?C=3eCHziLuDdJ474jy&~jq_;g5l$S^Y7n{wWdyHU9{ap0DrsJMqKb_xOCi``-8a
z`Mf{x&t2IzGLV^wOg&_@KH_QOPQWaKXLI?Woz63xj%Tm~FJTlT)4cnuu#|BdF2}9d
zh$Fr~V-w?W(5xI=F^1c5u3q&Kodzx(#%jEQmG}@BVtL5B-hsW0cjGR+itBNCzS%Q4
zj2mzamtc%pYhs;PhHs+Ya}aCsA{J?>_vj?JkQer5ScUq+YGj7C3-!eVs0W|NXYoD`
zV4}dR3O~dJ_%-VOany5i3ccr6U=8CmYN2~@u2OxJ&PqIo?HHJ0whGhOj1Fprm$4rI
zMZKVMrnizl)c6yegJ)3_y@g77Fk+U%TGaS0)Wn7`Q$go69qrKsCU8~}`-@Gey<UZ6
z)i$A4xC1q@12~Kq@ons%WmbpdxELSdJgnm(3G6~WZzmr~+#e<XEp#q%L0<^W_V#`W
zE@Rw}?%v`e#$*2YA1q-UEB02}h}x3vsQZRcDZYRz#yePx^GVPB9J6j@&ej$q|GjiJ
zQj)6vlc*c7VG}+?6;%U;(1xGk3cT)H#Fun`4{D_!qrP_xb^ovUJSO7iF0{{g7?pt=
z89KY^L@3oE9K?4q&eLARFYz6`je6jkgqM*oP#L>`s-1hN3@n}R)xcKNR_#T;YDbVi
zJI@Dmx8E^^nMZyn$=y1?AK<6>1J+}jO3`tA4`0Az*o?pV&Y_}~GVbynL>=2PRA&Fg
z*D*<<4d4i_#9VG#rt_bs)5V2-zPC^}RPfd`?m!){?@$?-K&`x-i{03Rn%HsFg#SQg
zE=mEc#dX-A|0COOzaYD6cd<n0KTL%sxloCE!8SaJqxcnWBCjp@A8Id~ImDX4PSklm
z$_I0@an!^g;7iy-CBBUBqwfC^HQ@)C!gdO$mG|2q9i{#%QmB^C8QO?ts6E|_deI3~
zHUET4Z9Y#;;TFun*~DZc%WhUQ&L;|qG|@q*9#Vvw-v7AiNT_ja-5(&OOM9zEGTc_e
z=Tw5awdV+}tesHP<TkiH??a2x=?D`_`IAjsMImO~D$QfiN30_{2{o;-)$Mud4bji_
z#|c!brx4Vy`)j8yiV%}cH9)2xHx8Ctn4CyAtNO<@tzUbkeQzdocAsoB7zF$aWZepg
z_5N6>u+&s&uMt7wRYLo|hS0WAk8aZzuOO1%(EWj1onp{MsIXokC`#)gx`~+tr_BA$
zehQ<6nrdURO?Rq;TbxtDsB=5`jdLxuF#CO|DdZGHtF!&l<2g=YagEbi+?)Nj_;Mh-
yFSa@0#N%;ib6JV=M*MGQw6rmMxb$Y&`Mjnv`&UhUz^SflaQ4*g&qfxHPWc~6=F%wu

delta 2869
zcmY+_S!`5Q9LMp~QfLc9ODUzL6_}Q#vJ7;gAVs@Spe-%7v_K05aXQ?#V~3eC?Wim=
zNh3jsqRA+6jSmv#LBlde4Kbo3`hX9FM1{nVpkO3wFv5e0V*LK@+>&zA|NWeE=PqaY
zpWAo57kZ;tC#Sq(C;{RDV&52JbmGTx94IB}#<;K)o3IMg@G$acVov)lr~NMGaQ-At
z!mm-!{Q+m-9jwCa@y0AMCTiNKWN_kO;)FSh6|^tlY)qP9Og_%V0<6U{+=lb;B`n4>
zI2V6%&ZpDsO|;8#7aqnA{1@lrhKa^>@_rMgQqGCXs2;lL%`9AidQl55!ePwDQ|QL?
zs1E*ux_&}tqJxW3_cfuOyB`<eY4qY%d=P7xo+93F{8V(q^QZ@%MLqauT!?8|iIG;I
zW?(z6!o66JpJRirn{3QdT#p*zb6ARTEW;bP2=f?)+VvRCqq2vJdKyE$_#3Rj-<`H+
zN}^+JIEV93qL%1QbmJvV!Q064n!k}%Fv%nW?=%_6pDE;!ipx+rRGq{8v&^Q!`Jo+k
zV;2@-FKR@G@hE<QVeFi0%woKNteW`;OE5h*@!(2SN9u4Uu0uEOL>^&|Agf@G<ud=(
zR6gXy3cQ1QPzlqbr1D}V9zsp&SLnf8PJ8+^WB4--95jR7sI@+dy6#I<lKzQHFrQ4;
z611Q;*#0P$J4wbIKxW(QVXth$BdC$xaJ=o9G(B-X6FFt3BYiQIs0X)W1rB2;euAqp
zi_F&ZJFph}9itym(T%rIQ#FHw9#Dn4aR`^=8MJ4}vBaI2xd2A^{e65Hiwa3h{1_j>
za@KJ-?m|89H`Gj)lIhHJ)NG}qY<>YXb(c^h`VW-@xnv~oG?mCR%@))y*oQUvs^b-`
zqMc8M9>&e6?7xm$%Bg%D9>ywMihFIN>`N*SapI<95m!?+U8toPMju{5FFwNNU4?IB
zC0@rCoXJAV5bF1{xE50wE|-`V)C@e0%CXO|mG_%lRMfK?hOZt!gPOV%*oJ?g_G=9v
zgRwY><8im+v#1$+5lJI+99?)0Q}H6E;bo_N4arAy6Qk8s#*nJ&Ssk9lL-+<(k{DX^
z?=b@>v*(lxg*Xwr9Q~*fJ%v2e97iV0e207r%w5!sOy;7M*nw;C^%B-!H(uk=stXu?
z4f?PSkD=D|S7c|JVy0m;RwI*QUPHa`JZgLWg<7&=_F@h0#|d~AlTe-4l4<8WN+|#A
z!T{}}QEexdC7SlKsH*kXNE(SILd9(#6JJbK)gev4k}I9)Cq@?y<O%1*I>%1EUnA0J
zXA+MQDjNw_!E7M3ZyA{J6Jv-jLer-tRoR-r{<3L$RWw`eb}jLtQR1p7ANVAgW}=3O
zuH|46ql?yBWecIiT2B-aDw=LhsS-+snKe5IlHLC2r36*B*As<=mL-eO4pR;Uh&hCo
ziJXhtiPA!YO<-p|*hP7v(nnMi9cnmb8%`rg3%h7H=$nv9bQ3OuoU{Kc_F^*8MvN{!
zG$tv%?Zl%om8f;DNO2rNU&P0W8O{mq3KKh(+C6(?r@PeM7&NtZr6n?C*UCmtmAN?;
z%Sy|gv@+rk40-%Pcl&_l?YF|Q;<UJHhvjoOhe8A0USEIAl|Juudd2wsdapld8Z7UQ
zfxb}CGL69@D;)F&+;yvBOS0$BYW4>$J>FI?T<7<NLy2qGg@XQ}P&mFV`@N)8cY7!j
z_F1vJQ_8biS2eEDP3?9?eOi>$nb{r*Zrad(uLto1ITw=0Z3+b<JFR$2o;P_Jqw=iw
z2YbE2UU#WR=BbSgj%tnkR(9WSWw8_aGxGGC)$NVYdv`Mo4umaVpB0XOn?E)wyDr4o
zJ#FVc_4N<>`T~}}$BJJpNY5x}wR)|9X$lSW^qu=CY=xciTN?i5c@=Xs?2$ehr#DPN
ze>l_=3Yw7#aLq4E9=9uE1p-#AV&RGcd))VKOSGJuW1)oyvlBCMUw>lDJ)U@>XLyXu
N?)}iYW8r?w{10jzc!vN0

diff --git a/po/de.po b/po/de.po
index cb1aba0a6..d08c53317 100644
--- a/po/de.po
+++ b/po/de.po
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-26 19:59+0200\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -32,6 +32,16 @@ msgstr "Jack-Server nicht gefunden"
 msgid "Failed to decode JPEG image"
 msgstr "Dekodieren des JPEG-Bildes schlug fehl"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -64,6 +74,9 @@ msgstr "Server gab unbrauchbare Daten zurück."
 msgid "Server does not support seeking."
 msgstr "Suchlauf wird nicht vom Server unterstützt."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Kein oder ungültiger Eingabeton, der AVI-Strom wird fehlerhaft sein."
 
@@ -164,61 +177,6 @@ msgstr "CoreAudio-Gerät nicht gefunden"
 msgid "CoreAudio device could not be opened"
 msgstr "CoreAudio-Gerät konnte nicht 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"
-
-msgid "Codec Loopback"
-msgstr "Codec-Rückschleife"
-
-msgid "SunVTS Loopback"
-msgstr "SunVTS-Rückschleife"
-
-msgid "Volume"
-msgstr "Lautstärke"
-
-msgid "Gain"
-msgstr "Pegel"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Eingebauter Lautsprecher"
-
-msgid "Headphone"
-msgstr "Kopfhörer"
-
-# Hier ist mir noch nichts Besseres eingefallen.
-msgid "Line Out"
-msgstr "Ausgang"
-
-msgid "SPDIF Out"
-msgstr "SPDIF-Ausgang"
-
-msgid "AUX 1 Out"
-msgstr "AUX-Ausgang 1"
-
-msgid "AUX 2 Out"
-msgstr "AUX-Ausgang 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Fehler beim Lesen von %d Bytes von Gerät »%s«."
@@ -242,6 +200,14 @@ msgstr "Der Treiber von Gerät »%s« unterstützt nicht die EA-Methode %d"
 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"
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Der Kodierer auf Gerät %s hat kein unterstütztes Eingabeformat"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Gerät »%s« ist belegt"
@@ -258,6 +224,14 @@ msgstr "Das angegebene Format kann nicht vom Gerät »%s« ausgelesen werden"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Gerät »%s« unterstützt getrennte Ebenen"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Gerät »%s« unterstützt keine Videoaufnahme"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Gerät »%s« unterstützt keine Videoaufnahme"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Parameter konnten nicht von Gerät »%s« ausgelesen werden"
@@ -343,6 +317,10 @@ msgstr "Beginn der Dekodierung des JPEG-Bildes schlug fehl"
 msgid "Failed to process frame."
 msgstr "Verarbeiten des Einzelbilds schlug fehl."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Beginn der Dekodierung des JPEG-Bildes schlug fehl"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -446,15 +424,67 @@ 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 "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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Codec-Rückschleife"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "SunVTS-Rückschleife"
+
+#~ msgid "Volume"
+#~ msgstr "Lautstärke"
+
+#~ msgid "Gain"
+#~ msgstr "Pegel"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Eingebauter Lautsprecher"
+
+#~ msgid "Headphone"
+#~ msgstr "Kopfhörer"
+
+# Hier ist mir noch nichts Besseres eingefallen.
+#~ msgid "Line Out"
+#~ msgstr "Ausgang"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF-Ausgang"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX-Ausgang 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX-Ausgang 2"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Interner Datenstromfehler."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Interner Datenstromfehler."
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Gerät »%s« unterstützt keine Videoaufnahme"
-
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Es konnte keine Verbindung zum Audio-Server hergestellt werden"
 
diff --git a/po/el.gmo b/po/el.gmo
index 1f62c9ccd3a57dfe928741ce3cd2f5ae938d000f..20d30059a449431511bed4186d70584c8f4bf224 100644
GIT binary patch
delta 1319
zcmX}rTS!zv7{Kvwb#=YAUb<-4<7Ic%Of$2K6;x!oUA;sWU1&`q@4BX75?kOyWe>rk
z6oC&>ST9zbo(iOhpoAbQFaiyFNH8Krq=$Uy|DE0X*qPtVaQ4icnQ!jb{Hh2{rq~CB
z*i2bT`D7FE;*Cfu;;~&M0iWO!97XFnTupx#H)2wh$O<gOT=by_`_YYNc>D_<qi>HE
z=@1FXNg6c_yu&<nIYf?Q1s3B&)QKiA8y7GOGh&zo%P<FrF%#e82Ao4(kULgnAMVC-
zypEgjBNj2g#KnmeFt8o<k4>l(51~%@0e9l>aDPjDXaT3u#rPF0!C_3n3FId;R65ZD
z4q`Fe=*KZE#2twu>zQ9#Xsp2@G;kDktH0_4IFBB5FA^!m!<dKHa2-Ak_rGB}{X{2U
z$1!>^iT)p|0!&C2If~ox5Z=T<KaEKmN3fCQSKu>j!1z>=D(u1ze1l_Hx>)1~MzPAb
zIE(uH^Q9s$(X~wE5>BE1uRcv=KaOJ=X0pmhcs`x|KS3jHd1zuk_R)WZ2eF(39Kiv6
zfP2Wi%lH#@!q!zHXYn&O;#Lwxy@xvPWLx!p?O2WTSczUk<N)3=0-QIEDF$?lt208`
z-HT`F-@+mrXOGkLbICki@M01}U(||w@dfG&9VCQ)VKuhkZPe!-ZgvrU*n{KPjg<jr
zwYC=Z8kOdVFrO7`srBj=QAhz{4OVbER$}qd*0qg9cGkLf$*8wQ^GDyO`J=ah)Ua|4
ztl%WA2&9J_|IoV~M=7CjoDxgnxUI;iW&^BS5*i65Rtz0-&AR7&@c(eo(gY+8tc<r~
zJVk>I(>Ntj)WsCNyU`SlJPIiw5!xZx6e~2_4T>I>cwC(xqqfITWmi{SLz~gw?CYuZ
zooh1c{r)z8f!P=x=ScCkcKeze>I~n7wicta;bMJ(`8u)B7OZjRn}g1)Hq({--4^tw
c7Mgcc(~^QSSvh8F_FP1;*HdLqdqyJv0zrV5od5s;

delta 2118
zcmZY9eN2^A9Ki7(NFbL8kPM8(=N8IKiM(2w5()~K3=kBnt$BsJx&ikJ-fM$ZsGuWY
zwRT5qy-aLtHA~3d7~()yf4KFsb6YeQ%hjLGYNJ}UT7T5{_uNa`I@`IQbI$WT=k<5)
zQsdjL{ok&N8xv9u`7UxxtcVLo<M<(^#*5sFX}A)zF%fg4_2OuK3$CWU8dLEx)c!g!
z8;7tA-@z=riuoe_@&|=n8tzUI*?_x|2hxrE@pbIRU$7P1nMDE4;sLydrC7<VbRa+G
zU=Z)Y3#bdaig{S!U@UwROBi2<Dd>#mum%^g7M)2VoAGHZ#xq!m3s{1&Y>N(Djyj+R
zEAho>J&ZbmUvWKVCi5;<pl+@o6B%E6DbS}3;3|9xS**N;EKbfMbCOWB{SxZ?mr*D9
zCBA}*w~6%NIBvr96cHXt6&7I=YJVq?&5#l7Uq@k#f`wD4XLtqmgC8*$*K(j+a3>bv
zG2DpnMeB>WhI(9@2&XC8xDdmtkw@|;tGXQ>>5+lgq1N-$*?*l$1r55jwV033U<;nX
zdi)(nu$r$L@C$52i`jax8~5Tj*o}pEh<u9U_ycxih<t*rnUVLM%=RPdBWu|I=P1<Q
z8Ts%t+)aHO0kIQ@a1sqZiq8|$I`G#xi1}+p_TU6g;9vMIo+T2GVKdvS6Z{GfVueLK
z;pwQ3erM!C0JXy_*o==8qD?r7k6;Xu)PeO#Jjo1dtXxJtvPIORT0-U^899+7DMx*;
z0UdY<^;&k}6WBjYp*Tk5I(|<>7I#or8c%O}rUy|c(udm7=a`7!;V!(6I>Dm6$c{aW
zUDQ8D?WZVTB!I)%iyA;jp$|E#e)*X~84YdsMppJJG9S5*TuNR}+bC!>Yd~q@GvQVH
z>TS{nl4bu!ZjXcVLu5|QzVF2tN3JAu8uBn%$G7jMMt7{;5cx@ha<c9Kv18u`-RA9N
zVo11Q_AwAH|4W>Jy;D`FJEd`?JEdtQSr@BG1763s(^h_+<Q-(aTAB!Qd4SA`*l7j7
z+(`S+hh4Y-tg7uNA`eC-;DyT~6=Y)2j)izkBWvPR{!JPOdYj~yXw&AX_anzeM6ExP
zYaQyfRN21ofK_bOd837ffZr~aEH{-{GzI74GE#R0Je~fH9<SAW*zM|Y_k<SW90^S|
zE{|7g-LCe-Px-uVsq^~XJziI*RaH&-sH@Y{Zn^xvF6)S=&s`{cJYKi<Y^!6{d)j(@
zkx%P=UXS0`6Ix0dj7hMXeSw}fcd#?LG_A3^ZkK-4Y!~<{^k(vKO#FUdXQ0a++K_TB
zX6u-l3=f!j^P!mupRnvT-LxQc<MDj-aY=NQy11mY;=D047aj<|U}nwv@SyEEGiT;4
z8m3IhydOSABMrfyR%eCwrTv{!_L?~tKF)yjDCT8zk-|y37&J5HVt7={nD$3?inr`0
zwj{XMS<v#|$(Rt&&oj)dnb4ksH>wsxUkZ=fW1JN8hTYBa@aXbf#GE!4cs^&QLw(NQ
yVl&6hG;^KM??RD&!>6>@U{_8{R%BRvzLvd{H|^(q&Ic=!%@BJq$odD&wEP2p|B+Py

diff --git a/po/el.po b/po/el.po
index d9a7c2086..e273c1c2b 100644
--- a/po/el.po
+++ b/po/el.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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2012-05-05 19:05+0100\n"
 "Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -26,6 +26,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr "Αποτυχία αποκωδικοποίησης της εικόνας JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -58,6 +68,9 @@ msgstr "Ο διακομιστής έστειλε λάθος δεδομένα."
 msgid "Server does not support seeking."
 msgstr "Ο διακομιστής δεν υποστηρίζει αναζήτηση."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Καμία ή άκυρη εισαγωγή ήχου, η AVI ροή θα καταρρεύσει."
 
@@ -154,62 +167,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 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 "Ένταση"
-
-msgid "Gain"
-msgstr "Κέρδος"
-
-msgid "Monitor"
-msgstr "Οθόνη"
-
-msgid "Built-in Speaker"
-msgstr "Ενσωματωμένο μεγάφωνο"
-
-msgid "Headphone"
-msgstr "Ακουστικό"
-
-msgid "Line Out"
-msgstr "Γραμμή εξόδου"
-
-msgid "SPDIF Out"
-msgstr "SPDIF Out"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 Out"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 Out"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Σφάλμα κατά την ανάγνωση %d bytes απο την συσκευή '%s'."
@@ -230,6 +187,14 @@ msgstr "Ο οδηγός της συσκευής '%s' δεν υποστηρίζε
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Ο οδηγός της συσκευής '%s' δεν υποστηρίζει κάποια γνωστή μέθοδο λήψης."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Η συσκευή '%s' δεν είναι συσκευή εξόδου."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr ""
@@ -246,6 +211,14 @@ msgstr "Η συσκευή '%s' δεν είναι μια συσκευή λήψη
 msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Ο διακομιστής δεν υποστηρίζει αναζήτηση."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Η συσκευή '%s' δεν είναι συσκευή εξόδου."
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Δεν ήταν δυνατή η ανάγνωση των παραμέτρων στην συσκευή '%s'"
@@ -331,6 +304,9 @@ msgstr "Αποτυχία αποκωδικοποίησης της εικόνας
 msgid "Failed to process frame."
 msgstr ""
 
+msgid "Failed to start encoding thread."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -448,6 +424,9 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Internal data flow error."
 #~ msgstr "Εσωτερικό σφάλμα ροής δεδομένων."
 
+#~ msgid "Volume"
+#~ msgstr "Ένταση"
+
 #~ msgid "Bass"
 #~ msgstr "Μπάσα"
 
@@ -466,6 +445,9 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Line-in"
 #~ msgstr "Γραμμή-εισόδου"
 
+#~ msgid "Microphone"
+#~ msgstr "Μικρόφωνο"
+
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -514,6 +496,9 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Radio"
 #~ msgstr "Ράδιο"
 
+#~ msgid "Monitor"
+#~ msgstr "Οθόνη"
+
 #~ msgid "Could not open audio device for mixer control handling."
 #~ msgstr ""
 #~ "Δεν ήταν δυνατό το άνοιγμα της συσκευής ήχου για χειρισμό του ελέγχου του "
@@ -551,6 +536,15 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Side"
 #~ msgstr "Πλευρικό"
 
+#~ msgid "Built-in Speaker"
+#~ msgstr "Ενσωματωμένο μεγάφωνο"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 Out"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 Out"
+
 #~ msgid "AUX Out"
 #~ msgstr "Έξοδος AUX"
 
@@ -566,9 +560,24 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Telephone"
 #~ msgstr "Τηλέφωνο"
 
+#~ msgid "Line Out"
+#~ 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"
 
@@ -581,6 +590,9 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Microphone Boost"
 #~ msgstr "Ενίσχυση μικροφώνου"
 
+#~ msgid "Loopback"
+#~ msgstr "Ανατροφοδότηση"
+
 #~ msgid "Diagnostic"
 #~ msgstr "Διαγνωστικό"
 
@@ -593,6 +605,9 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Input"
 #~ msgstr "Είσοδος"
 
+#~ msgid "Record Source"
+#~ msgstr "Πηγή εγγραφής"
+
 #~ msgid "Monitor Source"
 #~ msgstr "Παρακολούθηση πηγής"
 
@@ -632,6 +647,12 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Input Mix"
 #~ msgstr "Μίξη εισόδου"
 
+#~ msgid "SPDIF In"
+#~ msgstr "Είσδος SPDIF"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF Out"
+
 #~ msgid "Microphone 1"
 #~ msgstr "Μικρόφωνο 1"
 
@@ -776,6 +797,12 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "%s Function"
 #~ msgstr "Λειτουργία %s"
 
+#~ msgid "Gain"
+#~ msgstr "Κέρδος"
+
+#~ msgid "Headphone"
+#~ msgstr "Ακουστικό"
+
 #~ msgid "Got unexpected frame size of %u instead of %u."
 #~ msgstr "Απροσδόκητο μέγεθος πλαισίου από %u αντί του %u"
 
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 982d72f33143a8c7de17bcf94f7874a2cfaa9ee6..4009828d9e8556668ffd6e6b66811421b2763fbd 100644
GIT binary patch
delta 95
zcmeyy(!~;RPl#nI0}wC)u?!IF05K~N+W;{L1OTxa5C;OW7b62h2b6yq$Oa-X0O^H+
PiL)&>-tuOgIL90S?LG@b

delta 205
zcmeBT`NmRzPl#nI0}!wRu?!Hq05Lld=KwJXbO13I5O)GGNPG$qn*s40AZ7#N%RubK
z$iQ$5NQ2a=GC|ZC0BMjq3m^?rmk*?Y${1LH7zThsGGL3DK_b4H$wm1E8Toms48Hk!
enI-u}69X*R!t!%Ub5l3A`!EV&Rlp8WzyJVgFd-=b

diff --git a/po/en_GB.po b/po/en_GB.po
index fc1957265..b2e9e874e 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2004-04-26 10:41-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
@@ -21,6 +21,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -55,6 +65,9 @@ msgstr ""
 msgid "Server does not support seeking."
 msgstr "Your oss device could not be probed correctly"
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "No or invalid input audio, AVI stream will be corrupt."
 
@@ -141,63 +154,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr "Your oss device could not be probed correctly"
 
-#, fuzzy
-msgid "Record Source"
-msgstr "Record"
-
-msgid "Microphone"
-msgstr "Microphone"
-
-#, 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 "Volume"
-
-msgid "Gain"
-msgstr ""
-
-msgid "Monitor"
-msgstr "Monitor"
-
-#, fuzzy
-msgid "Built-in Speaker"
-msgstr "Speaker"
-
-msgid "Headphone"
-msgstr ""
-
-msgid "Line Out"
-msgstr ""
-
-msgid "SPDIF Out"
-msgstr ""
-
-msgid "AUX 1 Out"
-msgstr ""
-
-msgid "AUX 2 Out"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Could not get buffers from device \"%s\"."
@@ -218,6 +174,14 @@ msgstr ""
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Device \"%s\" is not a capture device."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Device '%s' is busy"
 msgstr "Device \"%s\" is not a capture device."
@@ -234,6 +198,14 @@ msgstr "Device \"%s\" is not a capture device."
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Device \"%s\" is not a capture device."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Device \"%s\" is not a capture device."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Device \"%s\" is not a capture device."
+
 #, fuzzy, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Could not get buffers from device \"%s\"."
@@ -314,6 +286,9 @@ msgstr ""
 msgid "Failed to process frame."
 msgstr ""
 
+msgid "Failed to start encoding thread."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -408,8 +383,25 @@ msgid "Cannot operate without a clock"
 msgstr ""
 
 #, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Device \"%s\" is not a capture device."
+#~ msgid "Record Source"
+#~ msgstr "Record"
+
+#~ msgid "Microphone"
+#~ msgstr "Microphone"
+
+#, fuzzy
+#~ msgid "Line In"
+#~ msgstr "Line-in"
+
+#~ msgid "Volume"
+#~ msgstr "Volume"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#, fuzzy
+#~ msgid "Built-in Speaker"
+#~ msgstr "Speaker"
 
 #, fuzzy
 #~ msgid "Failed trying to get video frames from device '%s'."
diff --git a/po/eo.gmo b/po/eo.gmo
index d56e57002bd51fcee2335f99874caed91f6483f0..f49b5e327c58faf3383d6e3435e22a5ed62bdf41 100644
GIT binary patch
delta 225
zcmdnYd7PvEo)F7a1|VPuVi_O~0b*_-?g3&D*a5^mK)e%(rGfYu5NiVQBOnd~Vje~Y
z1}z|+45TH2bRUpj48$vd7^KgK8KN%|NE-q9r9e6qNUs3Wx(p0v4F7-(DWHH33j+gC
z4+9$z1DOm!VFo531_4$e200K8CceEX8IqA%tdLopr(U9vsF0FcmYJNYpsrf1uDAIo
LV=L3-eimr}uXG&#

delta 329
zcmX}mze@sP7{Kx8>@qJ5!p$FpOGt%Fe?x5@xah8O(V^WFmklmD1uYRFO+kx8U^Kb5
zs;!PK{tZQ&L->6heBgVZ<L>3*ou$TJf01#Yh1sP7wP}w&$>xXB^h<gAr$fp)A~ih4
zBYZ*IF~uF6V-~+LiGMhxCE32$t@XaXyz_FxhZ$CJiDj&~A|Ce87TjYFA2Ed^WS1n!
z{@XV@Z<k=jW;nK<ZJu^9DIMIDij8j3l&9%e#t)mZUSDbyh_6xD(RlFS<dZdR-(Cgd
gH|H*~?}x2eFEmm)YsK|Q2gh!~JFibZIzdxq1z!&`&;S4c

diff --git a/po/eo.po b/po/eo.po
index 152de9d85..a1fb23a59 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\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"
@@ -23,6 +23,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -53,6 +63,9 @@ msgstr ""
 msgid "Server does not support seeking."
 msgstr ""
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 
@@ -138,61 +151,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-#, fuzzy
-msgid "Record Source"
-msgstr "Registri"
-
-msgid "Microphone"
-msgstr "Mikrofono"
-
-msgid "Line In"
-msgstr ""
-
-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 "LaÅ­teco"
-
-msgid "Gain"
-msgstr ""
-
-msgid "Monitor"
-msgstr "Ekrano"
-
-msgid "Built-in Speaker"
-msgstr ""
-
-msgid "Headphone"
-msgstr ""
-
-msgid "Line Out"
-msgstr ""
-
-msgid "SPDIF Out"
-msgstr ""
-
-msgid "AUX 1 Out"
-msgstr ""
-
-msgid "AUX 2 Out"
-msgstr ""
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr ""
@@ -213,6 +171,14 @@ msgstr ""
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
+#, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr ""
@@ -229,6 +195,14 @@ msgstr ""
 msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 
+#, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr ""
+
+#, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr ""
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr ""
@@ -309,6 +283,9 @@ msgstr ""
 msgid "Failed to process frame."
 msgstr ""
 
+msgid "Failed to start encoding thread."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -402,6 +379,19 @@ msgstr ""
 msgid "Cannot operate without a clock"
 msgstr ""
 
+#, fuzzy
+#~ msgid "Record Source"
+#~ msgstr "Registri"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofono"
+
+#~ msgid "Volume"
+#~ msgstr "LaÅ­teco"
+
+#~ msgid "Monitor"
+#~ msgstr "Ekrano"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Interna datumflu-eraro."
 
diff --git a/po/es.gmo b/po/es.gmo
index eac47fb8a29c3e38b827472f62477a59099401b7..0b17634efb9ca05129fb7a5b03759655e0e1f388 100644
GIT binary patch
delta 1401
zcmYk+TSyd97{KvwbyL$aU0v_#sHthTnr3Maq2eXWk_ggXto2e!?ryFc7}Sy!1YI6n
zDxrr+At>nrOZ8Ah7qZJ+7pM@$vd0K~>+;h7o1LNqGr#lA&d!{3zVFOL)0^7BoWp)W
zXqz~)IKJ6L+VEi{C)y9Y$TIwiPK;U-zAp>2iED5@c3>u+!(zOSMfeU2@wat7FG^%L
zaVrjp1Z0v<I~SbMA|>d-4jjiyTtt0QL5xT~HedxF#8r6Ny8am5#9whWHZ2v&Lm%q>
zW2ggsjt%%3n|Z$!#)@p=f)_X7eO!m%(S=4__yKLG0~$qr@ja}?87t0WnRI}4Sb)7)
zg=f%#Pmo*XJ?eYr@gnb+)a4?6yoF_$8!u9hJ23}G(ZC7R6g;zj|Aa-vu`9yqtH2Us
z53a>=E1t%5;zhhfdgBsA5{V}{1#;=!rQ^a6s5KD9aJOPU>WsXoGath`oW>fANeU0N
z9y^H#aRT4s0US;iDaBdr##lyQi(XuVx1Fqi8J!s})MH#qcxiTE74az?#RsSZ+?;C7
z5H*M6sHvDmeL+N8xCZv)KH`_S3yYb4D;~ope2tBmn8Ert(`nBTsm3d~7e88YH5H>X
z9l(t^h5Dcc)S@hBxmIEu>I6J^6Yt;&?BqxN-#qFrN#jqN+U=+VKOUf?OFW4!_yTpN
zi6nj-)}pS&S=0wTMSajO)YO$3A~w`IpzzJXFgf$#j6v9S{~Glylz>@$cI#?@iI@-6
zSX1$T({04=G;^q{5W!(^=s<L}7=u|CI$%<6?wV+1XPMs<ka#^=E!9$slZ<K$m}gx9
zZCbsgOd>h7La8(J<5Pj!C|tAY%(dxK=5dfMVe^<D8Zc9%1xDSOJ4RRVZ!4yw+f!Sd
z*()j-EHb)A3{~oed-{CF;ePi>m%ICr(d+m7{I1ZAsB6)V7Vi;ve_xN`9`bpN!M>xt
zuF%!^leS=GLTSjKaM~8KIi_sEFG;x}XY!ud;Q8#F&_ebro4s*xs5kg1Jta72WQJ05
H?Gb+fEijVR

delta 2106
zcmYk+TTC2P7{KvwDYqhGw-;)GmZ6B-qCmTVt#|I1N(Hl0i80h+8P}0@28P|5Hq~vl
z(WDwLA=TJN()a?{)NLP(CYoSO;}fRZ2OF!#7~_L6F(!&p<Nur4ZF|Dm-#KS@&gDDb
z@MXt*U*_ui!c#)oN3EeI3q&mZxR4LZNU=ycK7yq<j%zWI>(Au+M{pD4CvY8}MxAc~
zx8X%>!=JGlYf40RiezLjjR*r1csrg9zL0Zxfc_Pn!6>UghG(!5|G_bgu$xvqhPu#s
ztj9|j#Xs>jY%B}LhtZ@zi#u3fzNWFAf&Wk+sJkiH;iK3?e;WJo0uJE6co+5&mfiR~
zHse{;=dYq}D139Ua4&Yye<s&oK;7U9Hn6_@L8Be3DnvBuBgm#@6j@6S;(DAyf*~&;
zhnJU;J<A)p@zbckpGV!``}j8ggdQHfMWh9PLza|U?kTg2MiUL4a2$2v1lHmV8u%9K
z-F|?(@FGTV74N~iaBwA0U=#gUa{UXqh5q-*waef5PDmugX=uv38;HN|WMM;)WFMmT
zKhO2Q!aDjtpgyo>V-V_1sL9oX`_M!U=_0n`3U*>4yS^LyP&a-I$MGD_<GM=XpP-Sg
z6uA?tH;cq^06TCI@4#PCL$~EtkuDrW4e@K(j?4HWu3|GD<=Bn5fSN;>QIoK`Dww|m
zP5NgtG@hhU%sUao1P<Xx*oUPYvloX^lkgPo#c%N-R&EXYhfq&?7Wd#UsPokEO6b)(
zsJZbRYR<fb{7L3@J~gyU$aTsms6SXiO|~n@T=FC8$wMT@687M6{2g_{lp#WpWD(o&
zGbHb174=F>xktT%O4La7BUhG@B#l7^-b4-EH~0{)-5!K?6m@}DQ72wTej<ONZm^13
zLYOZ)haN=d)S{cxw@1r;R6T4Hl@uY_GkoUC&YU{AhDytWR6PZU<ex=w=d9<K20n|Z
zx+&f$KM}#tbka%grD`(jKQ+BN%`e@smPmk}KS&gP?@3B2ppxu<(ixa9ngjZ(aqaQ|
zRj)|%LzAzIszt9U>bHW34bUb?*NWzcmNfx>9{K0*W<ZmKB=wU*Ggb?^>Hmk*d(%7Y
zplTt>{nty|dY4-C?YN&>P9=AP5^0!?7!!vLRXRt<jNQhdlWPp8Q?&Ms8PWV$)bPjB
zleTM2C(XkXW_-%9JkRx-r7LYGQ%$yG#HKBC%JQ<+MemhV^_#XM1C}{C{j}>?GU%i%
z&oPrmchB6X<s0jVY{$~ceRb~rcHDD=-|lxEJLP)WOXVj*B}U9mdvR-Sq@p!E(lgkn
z55@cjPi2o+oD3BoaFgk0t!&x4#Za4*^2|xo@DC(0GihJz^xp7Q^v18EbLYeL;m%~r
zJmelRY&M!;4mW!_{CHVyzv-Ax+%}~%?b-2k()6rZ>F)7=<~i<MOO4S!w7le4rZH(5
zR<MR#ADQ*H;Gb?e`;_arl0V(UHD81_4|{gPa`e%pX|ODDwU@Kb+;>|WcU<o_OMdgQ
V7Cm}?_dzc^w5_P1Gzfwt{{sO3CRzXh

diff --git a/po/es.po b/po/es.po
index dbc3c39df..587c440e0 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\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"
@@ -24,6 +24,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr "Falló al decodificar la imagen JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -56,6 +66,9 @@ msgstr "El servidor envió datos erróneos."
 msgid "Server does not support seeking."
 msgstr "El servidor no soporta la búsqueda."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "El audio no existe o no es válido, el flujo AVI estará corrupto."
 
@@ -155,62 +168,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-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"
-
-msgid "Gain"
-msgstr "Ganancia"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Altavoz integrado"
-
-msgid "Headphone"
-msgstr "Auriculares"
-
-msgid "Line Out"
-msgstr "Línea de salida"
-
-msgid "SPDIF Out"
-msgstr "Salida S/PDIF"
-
-msgid "AUX 1 Out"
-msgstr "Salida AUX 1"
-
-msgid "AUX 2 Out"
-msgstr "Salida AUX 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Error al leer %d bytes del dispositivo «%s»."
@@ -237,6 +194,16 @@ msgstr ""
 "El controlador del dispositivo «%s» no soporta ningún método de captura "
 "conocido."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+"El dispositivo de entrada de vídeo no aceptó el ajuste de la nueva tasa de "
+"fotogramas."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Device '%s' is busy"
 msgstr "El dispositivo «%s» no es un dispositivo de salida."
@@ -253,6 +220,14 @@ msgstr "El dispositivo «%s» no puede capturar en el formato especificado"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "El dispositivo «%s» no es un dispositivo de salida."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "El dispositivo «%s» no es un dispositivo de salida."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "El dispositivo «%s» no es un dispositivo de salida."
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "No se pudieron obtener los parámetros para el dispositivo «%s»"
@@ -358,6 +333,10 @@ msgstr "Falló al decodificar la imagen JPEG"
 msgid "Failed to process frame."
 msgstr ""
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Falló al decodificar la imagen JPEG"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -463,16 +442,68 @@ msgstr "El cambio de resolución durante la reproducción aún no está soportad
 msgid "Cannot operate without a clock"
 msgstr "No se puede operar sin reloj"
 
+#~ 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"
+
+#~ msgid "Gain"
+#~ msgstr "Ganancia"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Altavoz integrado"
+
+#~ msgid "Headphone"
+#~ msgstr "Auriculares"
+
+#~ msgid "Line Out"
+#~ msgstr "Línea de salida"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "Salida S/PDIF"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "Salida AUX 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "Salida AUX 2"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Error interno de flujo de datos."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Error en el flujo de datos interno."
 
-#, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "El dispositivo «%s» no es un dispositivo de salida."
-
 #~ msgid "Got unexpected frame size of %u instead of %u."
 #~ msgstr "Se obtuvo un tamaño de cuadro inesperado %u en lugar de %u."
 
diff --git a/po/eu.gmo b/po/eu.gmo
index cfbe93d90673364fc3de643b7d1497bd1e91b40a..bcc49c3724f5a9d318eabb95486850d5020b47d6 100644
GIT binary patch
delta 1107
zcmX}rOK4L;6oBD#Yns?cY*SOs!`fSI8{2AP6I+v7!HS}YNNdIC#?(d>mD)&+1!)x2
zmAZ)!@C6E07w#@Xb<>4X>B^lOK@h=3R+Sbviu#{PameJGxp$bkbLPxK>Q^HFrOtI%
zC{gMv>P<^zEB-Fyk21GJq#A!<J^n!*=XZ&$#!lRX{TRmU7{RC5inG{;b9fL#<szdv
ziibq<@{LA254N~P4&zBo;50VlJg&unM<k8CxDKD-8vKB9ETVou!%~r5n8I$nik&!x
zy2&Ey_+W*ulNZ@bLl?S&+i-HR{~dMVs!EYAjG<1L!F%`!vzVyj9X`j6_-RoOVT;gD
zVh<k2c6^8%a7O#AFAFq+*yt5`L-<q395TO5#Kynagmz77$J?=weg<`c7pOb>h%qdy
zEq!ntkI_GcWB4AAV2`gf?hfV$^#zS22I@+Y7{FHg7x6MaMtvVzUV1->z4R|(3%<sq
z_!%|y-F}fhIDtBD7WISOB+w4rjd~=v>WP0pjcFce64kB{S&utWC(7bJe2dqxVx>q9
zZ=+7&4v2JM5_SAAYVy89{eU8F#xBCEM{o|4_!9Za*C6q?XlQs{RGo}Xh=)p|n?f3x
zLUe_bF_E#6pqQHgCJLHEtY?l+pJ~za=5$TMYF|quHA3Z7HUCRVrtJ`wBN8@iN|b-i
z=r$^s;C~^3g-c^1r4Mx{dKC$ZDSC5>xG9{hxwd*!8mN_2O+JaVT!`31<6&DH(l<7I
zdc;0|Ha$L+K5@p*WV0jLsPn9RzuQSv=d8k%x5N4AjayEvX2vQE_?ny>z6TyB7o4yP
Q??Qn>bJ*`32;aB<0YcnxG5`Po

delta 1858
zcmZwHU2GIp6u|Mbv@BBkMT>2vDkE6>fh}|wN~uU}sgzX<*wwX4jJey6W$ZG8mmQIY
zxW*VCd~~B}lm`+_#AtkQV@zKRiHRCXOnftH@Bv?pz6mDy75`^u@WF7iv%h=q%-)Z4
z&+MPst9vS!+v?vC%08~!xf)lA<ngaMz9<J*(}y{{1q-+qpHA9d(zbXj{b#ThUq>D9
zJl=^HaVP$W-MAqw(koJt9aOf`F^m0J!2-UA&!Malc^oVb;8!?{*D#BRSk>M5GH$_l
z(cmTQ!$DTN84H-f)2Ivh0H>H=zN9ijM{9$~Fizo+K8X5*3#b!)k2+DyI+6QvCu%!H
zo%k)>g`Z+QUPXqM>&Qpy2qSBj7G!PGi4DvzPI6-#>O!*kCO(T6Q%xe<v5b7=9lmzp
zN2mi`L7nK=r2lv9rQO>sGKPn70AIsF{5WY}!OCrPG`ENlZRx|66qBK@_-78X1Ft1E
zu8-SW635Wt{v+6q7VpAWQA2(K$MF*Cf|}ami0(q&(6Kh+uOVBe<0yWOAr3Iw6L=2w
z!9Oss{ToC^@kP|oe}Y@_2RwsyWT4)E3HAO8?#0X4gWc@rNgT&1JljG1AEfdV9s1z*
z&UnQooTU9B4&!fl1be#TEPfvEq5VGUK;NPsg+n+wHR(r<;0O{-nMj;L(nyM^M|ND}
ze~8K{d<8$pQ~1!vc;e46Is)8Ae<P{O@ycl80n`ONiud7J)D3-yyRnCNa15WqQCvo*
zkZ({IT=|6xM;^VK5QTe0D-_*<{x6UxQ8@2KEqh|3qvPjt2bb<zlS_+Eq$R_p=dSPn
zCaxhajhb#q^Mg`}!k{%G7=>mpa-30ygRt?akOGqYCkbg1l|H_8cbdF6itaAUrP0!&
zQPCrGxJZNO71Y;N^Pykgf08?TJs>(Ok~JzCJ}vxVMTHcQRa_c=q8o)zlTV9gy_S0Y
z>g_q%>l9Brs*FE2>kK<NKdBrJ%TX<pbfuk)Ltpjpy3W>#&?}V(J>SWnaLuA?Ywh(j
z>3vhi^W~sx=1&|8d{=UQ*|okYIr}H&Vb6DUoJbvc+MBaM{M>Zld*#5^<{Mr}t#|T4
zXy;s+apwX%@A(VWi>o(Qudi!v%O9D{9ndl23WL<rjoDPX5R}5>Zf&&bi`3EKA?KvA
z*0shdnT60_py3&z+p}f&|J|9JKTY>dp057Wyt#eCSl?X?oMN!F5Ln}tLQ~t+^7fiS
z&YGfGVyXxH@{-Q0x8%m-`zMX$<8|@l60tCnix>1?d)iyH!83s$7)b)+n%YW7CDkz%
pj~y86`i@r)Z85Z=sqXF??2bc`Y&i)`vi90s*K%s@L=+s~$iFA+5QzW)

diff --git a/po/eu.po b/po/eu.po
index f0fc6824e..a34cc878c 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\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"
@@ -25,6 +25,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr "Huts egin du JPEG irudia deskodetzean"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -57,6 +67,9 @@ msgstr ""
 msgid "Server does not support seeking."
 msgstr ""
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Ez dago audio-sarrerarik, edo baliogabea da. AVI korrontea hondatua egongo "
@@ -156,62 +169,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-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"
-
-msgid "Gain"
-msgstr "Irabazia"
-
-msgid "Monitor"
-msgstr "Monitorea"
-
-msgid "Built-in Speaker"
-msgstr "Barneko bozgorailua"
-
-msgid "Headphone"
-msgstr "Entzungailua"
-
-msgid "Line Out"
-msgstr "Irteerako linea"
-
-msgid "SPDIF Out"
-msgstr "SPDIF irteera"
-
-msgid "AUX 1 Out"
-msgstr "1. irteera lagungarria"
-
-msgid "AUX 2 Out"
-msgstr "2. irteera lagungarria"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Errorea gertatu da '%2$s' gailuan %1$d byte irakurtzean."
@@ -234,6 +191,16 @@ msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 "'%s' gailuaren kontrolatzaileak ez du onartzen kaptura-metodo ezagunik."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+"Bideoaren sarrerako gailuak ez du fotograma-tamainaren ezarpen berria "
+"onartzen."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Device '%s' is busy"
 msgstr "'%s' gailua ez da irteerako gailu bat."
@@ -250,6 +217,14 @@ msgstr "'%s' gailua ez da kaptura-gailu bat."
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "'%s' gailua ez da irteerako gailu bat."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "'%s' gailua ez da irteerako gailu bat."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "'%s' gailua ez da irteerako gailu bat."
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Ezin izan dira '%s' gailuaren parametroak eskuratu"
@@ -352,6 +327,10 @@ msgstr "Huts egin du JPEG irudia deskodetzean"
 msgid "Failed to process frame."
 msgstr ""
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Huts egin du JPEG irudia deskodetzean"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -456,16 +435,68 @@ msgstr "Oraindik ez dago onartua exekutatu bitartean bereizmena aldatzea."
 msgid "Cannot operate without a clock"
 msgstr "Ezin du funtzionatu erlojurik gabe"
 
+#~ 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"
+
+#~ msgid "Gain"
+#~ msgstr "Irabazia"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitorea"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Barneko bozgorailua"
+
+#~ msgid "Headphone"
+#~ msgstr "Entzungailua"
+
+#~ msgid "Line Out"
+#~ msgstr "Irteerako linea"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF irteera"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "1. irteera lagungarria"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "2. irteera lagungarria"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Datu-korrontearen barne-errorea."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Datu-fluxuaren barne-errorea."
 
-#, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "'%s' gailua ez da irteerako gailu bat."
-
 #~ msgid "Got unexpected frame size of %u instead of %u."
 #~ msgstr "Ustekabeko fotograma-tamaina jaso da (%u), %u ordez."
 
diff --git a/po/fi.gmo b/po/fi.gmo
index 2f684fdafb88a5a7deecc1591823ab59f717df8a..b58bc76963c1dbff9d8730c8cb39e95f0ba1eb43 100644
GIT binary patch
delta 1253
zcmY+@Pe@cz6vy#1YMQ2I(`e?u#!N>|CrwjQ11-V`TBMRe5sn!oS(BqigNq@I{%i^|
zOE3^ZX&LnvA-X7N(IRXs5ka6(fvs9Zi|G4%GYMVh&gb3Bo4NO%bME7|rKZ?tZ_1R>
z8tFy!C68Gro=xV9c0I)`6Qh`mw@~jr!4h0R{dNTlF>8}q6;@#YyRibt6Z22;6yx_e
zY!<V!RI^?trmz~<@igYAnKj@rYN2`DgKx16zhMZoHk(yq7<c0|?#D&chJIitW~7@n
zVHeipT@13mE%Klrd`B%<oDpB>B(^iYmKeW6E&K@&plxwK)`a@w!}tiJ7{MIEwht$;
z4jtTutLVp+EF#MKR?dT7XvF{yVGBOQYW#q;_&YJK%r@J}xEp6k*JV^n(sRtVV+CrX
zEvWf(cnHVQO&OLmUcp$9hd(?h0=3)X3-zILbPtDd4V9u^Z#;C*QR6Szfd^T&630;s
z&!JNF4hL`@wN95Wo}wG52+sM4e=!dqnK*;LP&@6R(pvEWHsCVWV^W@3Gd7|&JcLJa
z7VB^g^?u$Cvo<`AeC#$~JvfUm@h3*{Sw8Vsb(RuOc?@-uFy`ZQV*Ul{4_8nr$t^HD
zg6-IdH&G{CK%ML>>R=^QAQ`eGx*E0ZZdA{Tl<IGz5oO~58%;YW!fw$h|JoR}Wyy3>
zZd?GPW{rAu3#}BXEw=^~9W_eEt(Co~4Y4mbHQZLW#dI33qI>%IRQy|~*U2aiH}twn
zWWl!5)wosvH5C@wa|=sFTtinxbS2fQ=t|AMro!~QdkK_}1pNI`zqF3Afx)o<>QE@!
zA3A@@e<2bHM}kgE>P)KR%bM^^&S%#+tJ!xv&PdLJXR^=hbMAXjq&XD@Z#<K)3kx!@
UgvKt02S>+7MngfTxoFw*7dA?MYXATM

delta 1997
zcmZY9PfQ$D9KiA4S_-yBpetDEKS$fLEf(4?g|<MkP^2Zg)wnH?>cIiVFrDoT&d$`J
zhfSKsSmU1<q8>O96B5&ei`^I#(}R|ar-q9r8q;XdaBI+*R1PM7e>1a9j4!<Xyf^>e
zd%yR4-0J$Yw{$mM^|4R}sXM8?4~dxgN)<npUp9)=;;;BH-os6JKk28c<NjuB;(8-C
zU@PkPdT=+6;Zb}8ci<u(5Gl!bG%{TH6I*b5O>{&0afH5uuj6eT#iPuk72m@#{0cj;
zfm!K5gSZzba1XwNx}Zhek9C_xp2B08Wqi3vLud3pp1~W~g@51?+`mPn9WP=QucHol
z3w5A1JcUh!N&6$H1HXlxIFB04?~yskPsl6s8`dzstkGZ*@;5T3q#of0)}lVxh&mwy
zKfzJ-@g5#RvrdGje1wN_9`$?6s003pPv8m~xS>AYs=Zj!7rJR=(7|q;#a6t7ZMdHF
zGi+=#{g;s4k^;`9M2e_;U7serco20VJxPBk>0iJ{x&A6{#~@AoHB=vRK|fH&lemn!
zmvub758JRE^O(h}s1y4VHAhxZbELa5&XGmbt*as<HD|i8A3s3Nfo0Tj*PDpH?%A%#
zL?&?nb)e5tljH~N#C6<-hqj5lj5*Ya-oPGQ#SYx_cs%eZ9;1I9b;94`v-lSt#%{u>
z&pRa=y)@=g_v~lX(EX02gRG(M;Xlds8set?bmC5AY-z#s*oQZ97H4pX%+^!&4YG@}
zn)L6ZZdGYFan}LcP(yPZnWUJgFTRPr_!(+W+{M$liE!w7&Y?!^Dr%&@K>lQvpRKr&
zeI!MqcXj2J(oKV;Ek*w<Di;sX(0!?tXOf1V2A$+_DifC{sXC}0tCLjCZk?nS-A)ZX
z|HmE_Jw>_=1Tl)1<_;+!eR}?NwHgWyH&Odv(L6{~Pf<1W15}NG7Tq#UG%W{XqTdtz
z8cF}@L~=5UkS4U24b*zZkIt}$dXTDFs--JN$h+vs^q`&y4XqwM4XqYEww1!pM1}v%
zQPBj`qT8ffE17-8j4?iAsM3F7%s65U4ZBI}g)oR(StGfWHKI%5r0p5g1#@QHoNx@w
z_dUN|212_KwArqapSDcL^2>8obJcxkOxu;SmN_{+<++v&yMg7qX2Cc;D9_ujr5}#e
z@8;|Y-;1Bid9EFJez|kYwN#Cf_d<Wdn!Q=uvGv8l;URq~A2oQZyi)sas(QpLgqN*y
zq3-L{c)W_DU0hmNTBs}~EO^CaE&sWbHKIF9*Lc)&1J5o7-WA)Qvf3q|e8Fcmu4@HB
zXgH=F2DV#1(QvM2_^jnS&df|vo(uVg<5*S@zr(uRWPz8=fP1>cOJ+P$&USq7HI^sm
zP2M-{LRfx#+wD~SIWwH{>>w-_mKLTaty!aaM~hpz7MRQ@TJnS0$6cL$*=@d)N+(OW
N;@Ou?#|gut{0rTe9<l%c

diff --git a/po/fi.po b/po/fi.po
index bc9c33c49..b4f776379 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\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"
@@ -27,6 +27,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr "JPEG-kuvan purku epäonnistui"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -58,6 +68,9 @@ msgstr "Palvelin lähetti virheellistä dataa."
 msgid "Server does not support seeking."
 msgstr "Pavelin ei tue kelausta."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Ääntä ei ole tai äänilähde on viallinen, AVI-virta tulee olemaan "
@@ -156,62 +169,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-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"
-
-msgid "Gain"
-msgstr "Herkkyys"
-
-msgid "Monitor"
-msgstr "Tarkkailu"
-
-msgid "Built-in Speaker"
-msgstr "Sisäänrakennettu kaiutin"
-
-msgid "Headphone"
-msgstr "Kuulokkeet"
-
-msgid "Line Out"
-msgstr "Linja ulos"
-
-msgid "SPDIF Out"
-msgstr "SPDIF ulos"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 ulos"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 ulos"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Virhe luettaessa %d tavua laitteelta ”%s”."
@@ -232,6 +189,14 @@ msgstr "Laitteen ”%s” ajuri ei tue mitään tunnettua kaappaustapaa."
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Laitteen ”%s” ajuri ei tue mitään tunnettua kaappaustapaa."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Videosyötelaite ei hyväksy uutta kehysnopeusasetusta."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Device '%s' is busy"
 msgstr "Laite ”%s” ei ole ulostulolaite."
@@ -248,6 +213,14 @@ msgstr "Laitteelta ”%s” ei voi kaapata."
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Laite ”%s” ei ole ulostulolaite."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Laite ”%s” ei ole ulostulolaite."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Laite ”%s” ei ole ulostulolaite."
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Laitteelta ”%s” ei voitu saada parametreja"
@@ -334,6 +307,10 @@ msgstr "JPEG-kuvan purku epäonnistui"
 msgid "Failed to process frame."
 msgstr ""
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "JPEG-kuvan purku epäonnistui"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -433,16 +410,68 @@ msgstr "Resoluution vaihto käytön aikana ei ole vielä mahdollista."
 msgid "Cannot operate without a clock"
 msgstr "Ei voitu toimia ilman kelloa"
 
+#~ 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"
+
+#~ msgid "Gain"
+#~ msgstr "Herkkyys"
+
+#~ msgid "Monitor"
+#~ msgstr "Tarkkailu"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Sisäänrakennettu kaiutin"
+
+#~ msgid "Headphone"
+#~ msgstr "Kuulokkeet"
+
+#~ msgid "Line Out"
+#~ msgstr "Linja ulos"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF ulos"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 ulos"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 ulos"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Sisäisen tietovirran virhe."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Sisäisen tietovirran virhe."
 
-#, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Laite ”%s” ei ole ulostulolaite."
-
 #~ msgid "Got unexpected frame size of %u instead of %u."
 #~ msgstr "Saatiin odottamaton kehys kooltaan %u odotetun %u sijaan."
 
diff --git a/po/fr.gmo b/po/fr.gmo
index 9d0ccfb501919a84dd4ed0b794fabb5b2ad676d4..76b9fac367f953cbf907622e767d34dc785ba26c 100644
GIT binary patch
delta 2080
zcmY+_e`wTo9LMqZovwMO`*quS+jM%S`;~gS=~m9Am%6of?dGiJ+=V$&F++2SNfKNb
z4TEMszA6Y&NDxE@)fFsQv4t3l?vFH53JLqef0Pgt{Dt~_eZS|Z4|{(fpU-!9-|y%1
z{=7fi?N`P&r!R&k9x_@lF`c;LH%sGi4j0-`uGtj)0TXxv!x)<6eZB@~FmAzRxCs~I
zXIal<1LM4a*&JMn<+v56=~ZvjsprP0Sc|`6HQvQ4oD=l!C$O9GZtTa?xE7a9HhT;Y
zV-JqvA}nXtnphHN<95`0KExOv$6_t@I-Mvta`U_y)}X%7fy~hQQC}QHJ$MA?;=kC3
z(R{NS+=q|im#EK=p`PO_@Sa<V^BA|I7P<$gDb+{mtim7hY4jJGwP8CpqJvuDDXhaA
zs25Zhc`NBfjo-ym97av_H&n_4A+tEfP~%ro6FZ3MN;*Syv_}^)iY3MDFE*g|x(&&y
ztw*hJ8){;Mco>i4YnUoATYzJ@5bxnkT);!3*ok`HPA<!FAWZ(3(mBBmeZfD~+xtb>
z#5jfS-r{`5quKF4SjM<K;;nQsYD>1FK6en6;-68)cm-oPi}dXGnXN{B|3Vr0f1b{D
zMoL{9rTIAap^EPaYHLPt1LjZ=>u?LM)qQNhQjU&Nn?z-F7k1zgY{bjB5@%F+r(`28
zVSF@AXBVA6@FVP`WcT4EY{kvw?|nRm32csf8QG6rj5DbFIkU{3#V+K>KH;Jik6;qD
zZ!OS?n$RJ90n?}HJg47N5&FRE_yG=M96MN+GH?Lb;91ljSFudljd2`6W$qW`$L@3K
z#Y)n+2j9ZocoSd39h~u}bpFTaD5Zs*p>EuUIt8Ps6$aQyo#Pa0C3`WBCviOnDG;sn
zWmJm4K&AF7YHO=03{CV+WEbohYO7CTNaz0&9g<)-P!B5QkbaLnIEeXFlpg#sw&P#e
zgmbAVt#k|WReKLN;Si><g10KOZy>kq46eYtsA6BvrJ48JPCA<LSEvtOMx}0QomVXV
z7-#%7YJ%5LE32#bGBtoc#vF?ArinFYN0YID(Bu=uOd?LG>HXu4W9+sPuKEL{G(F+o
z@rq8}GGZb@y}J9&T;1&g_o(%#lWh^yg7OFs(El21@c#ZQ^|^#rtaK#_HPwRBu11Mi
zkjT-179~~@69@|2{cE=rL&U@OBpr5Yys3t$J+}t5U22oGe(gyMp<|)5{NGl{z@NRr
zwpl)*bN{fBdAF_Msx1i+I)<%87eNWR{~N&l??}bFTd1*Ws3Xp$lhFP@Lr~Q2xm=A!
z#B72SXO9qJLT#Ogd!6Fc1~xk11j5emfp48N!K%zp!G@rdAFj=$!k_z`g2+548R^b^
z7dhq6yi<P5=loq&<n&b+J6EUQ%G{}FEp%RtHD-om_k7N|g$bvrZqQj#-;{~e|2g3S
Dbu-qV

delta 2909
zcmY+_Yitx%6u|LQ3Vl&pN-3o+$dn?F))v^dphep)ecP7OE-ghKWxE~A+GV#cyATy!
zLqY@;B&;+((GQ9-ghW`02@+qZe86ZV8vLLb5Q&K<5+K2VivKe^HT9-ve|KhfX6`-r
z-0oNAt)a+;DdP_c%}2~2wkL|{i64^qpe;%jNyo+5iq)8cdyqeg+Q+Zi$A>Y8^Y7wh
z`~vm4=kYGQfz_CuCQ>01kuEwJoOmXFLPoHX<Fhyi6DEq}<6JDjT6ExgT!8y=9-hRx
zc*#DW%BXudF2_f453a_)uozcO66xjr5}{MhiSJQIn9gX5umtr*9ax4tFdL7dfuExe
z@CxepCuYV6xDfTeR@CP{g(Y|#-FN}#qm%T^=KbQOqc=Q<`k;?cAN(`kgDF|@nO34^
zpbzWu32efTv01-2MPvzfqRwy^F2)!-@E0t@>C8fpn=mq+&f|1+q*2rtpFt=7ZXcIU
zjSs8~@8<kg)FpZq4LpbA@j9}+@+YziGLAyvosxn4Ng*G}xD>U9YI4Xw%Ph_I1sCd#
zYjHLXqRwa!j^HO4#NKHl3-K(nYH}MFVQOyt!BwaOsl!>=js|W<9wGaXRggDx$$t%<
z_c*Z(Z=gPC5oyt)a$^<lMosBwSc-qx$20Rp_>*QnG=u%9YdwPcy-!h#^eR?hK9#IX
z(1E(ao{G@fl_0Vc`Hp0;S61PC)R{er6s$aJAHQfHA4bL?F(ljaB`(E_sJkF<X1qq6
zxRK+XsNcJSYw$L%#z;3MUrFaET1AJt#wp~j9m{YDZpS)|VKv^w`*4XNvIU3n0A9u&
zxUEp65pUu1Sj&30;y0+7oJpm3>i%!0qZeMrHoSt|Bjt>y2D@<u9>fN`j5?rVM%j&S
zbm9A`*C#Ul{n&|4yoB{w#Cmq&Ce+&bz%nB88yzPn3fPpI!ga{A<OO^PPvSPrVIjk~
z7yB@gY1E<zHKlK158lBh?4b~tp&UYzDpye_lF6QS;s)Hn`{i{yI@5o!4y&mgP3;cU
zS~!I|;w&m>Jl0|wHrjR~%P#9sYvM7Sga<Gk-@plY6jLyUx-Cy(gyoR0>F5Bi;R$r`
zw!Qc(>VUSgCGzkjK8W9<zF-#rUGxQ|ScO%nnF}M6l~*ta&)@+5h--1VBfeyZ9IQX@
zlxv(=j)m+Yo-G4-KORKQ#5vUOrB}q4WEpA^j-V62L!H31%6P_lP?z8cCgF8VKz)`D
zRI{~$(E78QK3tp5s*lh*(58dX<{_pMEkrA!&9FY>yGFY@V|KAsoT)fOjBPsLN9+^r
zw!QlPHH4;l7O{cQ)=iWWtB7oZ1c{eOBs7JM1chz2b+$RES=5$GxU61018%#YjBI^t
zr#UgA>uC~WTZVn0)vpEBNobvDqeiWN(OO8_SQ%?=*%a1~mlhfu#!7!7vNDoI+)L;-
z^buMkx>Fi7|Li{LAc~0xh|#8XpluUTL#);VyRAnpNb1RIX?*H0V<yp0Xi-wT*016q
zjw8B=vF%|FChI@_m2{>M(}-F^n{KnQjrx&|gzjT)+{Vx4vE=?a-Mz+Qqs1?^R;MEz
zvU-luQx1bu(X5o*$;-oDU#QgUH(bM}d&mq%=cUBb2TYIA76=UYyFEkE^wb5%Q!CT*
zo7`T%G@I^$;Y|U*DJ}kx8T7k-MqPchBD=V#&FeSy@s|3+cCRNGh<~>|;P-|C!Pxrj
zw-b^LS0Ehpn9;wdmS?T3Z)wz<TvkWNRF>15=?eRMR=NHgL2PHv*>Ood0bh8t8S9vS
zE1};X3Z8z)G_1*qD-aBMM-LjtTyl)P<dBA7&<qES0n_lAo=`Yw8t(9bH&7<c?r^Ad
z*d6rgWv?|YGqy25DIvQqpqc0oggrjfz7qYgpfh%&;AUn#AE$SF0^txhZjrkB(VL@3
zN|r7d9f{97NVe=j#t*E_h?NxXj9o0blaLoriZO8M>6c7@&>Zw`2?fo~rau(@skAMB
p^kG(>MjvJ!M2pMz<=6@P-$2dijD^dheMJ*uH_Of^Cdbn!{{p^GkxT#p

diff --git a/po/fr.po b/po/fr.po
index eb9257f38..5d6a473f0 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-05 22:27+0200\n"
 "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -26,6 +26,16 @@ msgstr "serveur Jack introuvable"
 msgid "Failed to decode JPEG image"
 msgstr "Échec de décodage de l’image JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -58,6 +68,9 @@ msgstr "Le serveur a envoyé de mauvaises données."
 msgid "Server does not support seeking."
 msgstr "Le serveur ne gère pas la recherche."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Entrée audio absente ou non valide, le flux AVI sera corrompu."
 
@@ -156,60 +169,6 @@ msgstr "Périphèrique CoreAudio introuvable"
 msgid "CoreAudio device could not be opened"
 msgstr "Le périphèrique CoreAudio n’a pas pu être ouvert"
 
-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"
-
-msgid "Codec Loopback"
-msgstr "Codec boucle interne"
-
-msgid "SunVTS Loopback"
-msgstr "SunVTS boucle interne"
-
-msgid "Volume"
-msgstr "Volume"
-
-msgid "Gain"
-msgstr "Gain"
-
-msgid "Monitor"
-msgstr "Moniteur"
-
-msgid "Built-in Speaker"
-msgstr "Haut-parleur interne"
-
-msgid "Headphone"
-msgstr "Écouteurs"
-
-msgid "Line Out"
-msgstr "Sortie ligne"
-
-msgid "SPDIF Out"
-msgstr "Sortie SPDIF"
-
-msgid "AUX 1 Out"
-msgstr "Sortie AUX 1"
-
-msgid "AUX 2 Out"
-msgstr "Sortie AUX 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Erreur de lecture de %d octets sur le périphérique « %s »."
@@ -236,6 +195,15 @@ msgstr ""
 "Le pilote du périphérique « %s » ne prend en charge aucune méthode d’entrée-"
 "sortie connue."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+"L’encodeur du périphérique « %s » ne prend en charge aucun format d’entrée"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Périphérique « %s » occupé"
@@ -253,6 +221,14 @@ msgstr "Le périphérique « %s » ne peut pas capturer dans le format spécif
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Le périphérique « %s » ne prend pas en charge les plans non contiguës"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Le serveur ne gère pas la recherche."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Le périphérique « %s » ne prend pas en charge les plans non contiguës"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Impossible d’obtenir les paramètres du périphérique « %s »"
@@ -344,6 +320,10 @@ msgstr "Échec de démarrage du processus de décodage."
 msgid "Failed to process frame."
 msgstr "Échec du traitement de frame."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Échec de démarrage du processus de décodage."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -455,6 +435,60 @@ msgstr ""
 msgid "Cannot operate without a clock"
 msgstr "Impossible de fonctionner sans horloge"
 
+#~ 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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Codec boucle interne"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "SunVTS boucle interne"
+
+#~ msgid "Volume"
+#~ msgstr "Volume"
+
+#~ msgid "Gain"
+#~ msgstr "Gain"
+
+#~ msgid "Monitor"
+#~ msgstr "Moniteur"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Haut-parleur interne"
+
+#~ msgid "Headphone"
+#~ msgstr "Écouteurs"
+
+#~ msgid "Line Out"
+#~ msgstr "Sortie ligne"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "Sortie SPDIF"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "Sortie AUX 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "Sortie AUX 2"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Erreur du flux de données interne."
 
diff --git a/po/fur.gmo b/po/fur.gmo
index 3bd1bb97b54122fceecd324d9f313479a93be8cc..5afda3340b42b21c070ccb549833f953fb322190 100644
GIT binary patch
delta 1895
zcmY+^TTE0(9LMqhuG|*6>AGH6)Kw_31wjGvhJanRD%g4rVB$5cw+JSsrZtM$czN*l
zV0)B4XpCu1Y@#v7jkVGCp-Iz}>Vw2YVw6T-^ig~<Mk4Y1J7;auN&e?EXBlSZ%=~AD
zH{Iw={5wAFtWnkwMZ{IVSvNMM^Pmi8nC0LrY{O9uVQZ$>ehW_H{UA2td91_7DGRd9
z=JFoL5<Gx~coD;93A;lj$`6BBhQ5GVDMnGhuflfRk6+;cc3>>q>|;EKo%k2l;`FiJ
zgw|p)?>$(9eHg@kjNlNKFusjaQNv<BlNs4k)IWTI>aY(h@E_cYudy6EbIoSrAyoTI
zsD1{q5=T(|mFJnYU<)qA<G2h5u%7X)FyH%<)i{UuUQ~zIunM20-U|xMCi5OcO>6^d
zNl#-l-b}r}MolC<&g>&>LT$k|9FONvTX+o<e7yZhr5^8NA7;|32QOeXj$_?s;}V>X
zJs837Q5_|*3Hxyo1}1pz<ESnD1{dN5)RsNMS(p}L{q;i)y-dN4Sc~7Hmi!8;;UFp(
z(kGfd^f4)97c7J2*n&aSQtw6m-)W5CZ@3(XFotCe(u%uLzyC6Y^`A>cDH(zKlpUz0
z--mU08MP8mP%D+gXk8e?gLoak#43)^d~|R--otrVJJrjX-Kg9+gAMpcg31gkqo@HR
zoFxso5;d`-sDHSPn)wUV%xl<(h1iRG@fPaKD<htrsH8iJbFd#j!4cFrjSRXI6Wvra
z(}%bX7n9QM_!BO{x3~@)$f(cpJ5)zcF^<J#Aak-^s0kj!Mfd<WU_Kexh+U`&U%|!r
z9Qlxhm2lX#_j^(vL$=#~L=E&S-oX((iMPlo4G`lDs-pzf;O|Hi8%C|fq^NhyVyO0~
zP%Ha4(!}0jv(A4h8K^((NO>OB;Q+EImPT)Du@v<M`%x3Si3{)z`cR2V)h)|;s;!FJ
zs;u;IpSe8!L^b2P8J~eO2`w=bGmgC5c?+tL@b1~yL?;pCm0PrzaYA3Dgi0q?5L$AT
zRYWU6dbuCPiMFwXwoE0V<WQn%>9UE{L>`etkW+3^#w&}pO__vNB}{xM+&At;l!l)X
z5h9DwZP!GwkpC5(4i#+)Mc?n;Qf`HZ_P+4L3oavc0(1d!KmD(?@fIL-$&4YC56#3H
z;!{F}JIPIC)hFmdA$Q&Tz{;G%S?e8NAmo$<Za7o3OP$Smxyf*Ld%!srj3yrikNC#y
z+Oxx{3Y9xQhdPq^6Sw=5y_4g9XQZ&miH09Ln~LTq+lubyIMva*<PXsypL3$3(WxvB
OI&UhzP9CUy>3<J85W%<r

delta 2745
zcmZwITWnNC9LMn~)Lyu>lwN2Hg(Jm65el>xxm0c~&{CklLaB-^%kF8}Quef`yF@`*
zOo&lSK(j#;V?-el9^{3^@Sr3bjA<edkPwJyco9g9X#x*wjEVUDojpZOoG|;DnLV8|
z^Pm4L7djqvChknmJZUIl>NIM@SYzJ8U0Hlkj^r3K0bj>fJdXS`xB1A$pZxxa-~SDZ
z8P}JSpaeDVY@CiwxB^4?j4=swnnoT2x6%XVKGxHpI?k9`xE0Is08Yhsu^P|gY`le4
z_{blx8gEQH{Vh0vXK^Q%v5UDlfF1ZD*71JxD-ErzdZICv*o?K<hlO|wEli;nbOZI=
zAE*UYuzEee6zi}LpT>_dh*xnA*5n&A6L+GXKZupQ-<+p053i#p{0p0~ocOKBE^NlL
zxELRxb~3xbm_@h^HQ`aL!ApMsK9<rio19))EouYZxC)0bp@FM3w4;ak6c)2>9l>(U
z!~x_~%mE~t<_PkrIfgpxQ<#mPBgbzpBd1}$^~bNH{_cC!2JYc|IIW2IyEIZo#w@@p
zW+SSm9T#F4HQ`Cr0zSeScn&QbM*f+f`5<WK5w67i5*CkbsCkA^x$-40!@H;m&X_{{
z=hN6QB|Y#mmeD_hb$A(dmJd<SRS-`lUn}Z@#PMc^F|Q(NWCCRBZrqI=yZIWmp=*Bs
zj^7_a9rd3H8XS|ELQgNMMhkaf3m(8m{0cQ;CU<EA7NWlI#Ckl37T)oFgvtf0!n<as
z4He;|xEL>DA0~dG@fwW|u0R-X;u2g=oVziG&*BfLEH1Rt$=ZMo^dtBreu{eGFmkWW
z@2G{%<4Yy?9@N55pcZ}`m+Ah`;!eaE=t4!{hOaWRiT*rXgafz+&!Ap(ANOK08LWjK
zMjP*8JGPR^tMN2$$Gf;0m-1twdEUgey8qwN(ETqUL$tz$xEv4RF1&;*u!!xmViUmU
z@HlEGS1}t)s*QO9r{g%Bh03J`zAdPu4k0(##4(5Wn>T1^f)hvroA*&GJda=C102H7
z=B5|6gfQv37-}JJV;&BplI<4O;yq+<rj+>8G%HcJWFI!;Axvne-_X#RDaF~0smE2=
zi5frUdjmCbF7fC1Oalh=94aywPzxWyrMQrcQ$%_(135AC0(C2uQ_?09W(*CE#(QA}
zuBVO`C8CNJ`8-v-7%gjQXfY(ZS9bH+mTsDDsN~C|j`znx81~x}QMX`{&cBI<?z+xu
z0`*0z5=h0Oj#Yz_OI61IUr`j4qzbPhp;AK4@mlFbRFf0*exP)0DlIzy(W20+WKk8i
zO;jbOiV{jiVOP<yyhP<hyt0nZOuwx&Z>1`EXZT|~aWl1(T27rx)h}bBiw_l&+`H#$
zlMddmoU%Sh)tNR@Rdkg&PVc77#2r+A{Jbm4kED0*V75><QkB>pR23ziif%!X*W!c<
z(+%%Gls(Cjtj^XQ9o8bNC2CfCjkb8qYt@bp)mq+AJREVX{=VQVdxD{TmhHNZTVvM5
zBYm;?k*F2uw}bm^H`$e)nh>@_)<(za*Mq72oMXA=>w}S~X|{vm{=H7rHZ9SZ?M8!r
zR%280gMzu08zWI$Z}Zg4Hbp|NlYVxS6OF_iH+7}pXhyabaN=&rPOd7fE7;Q1vQB>#
z@EZJ8a-gsyKM;?$Zx8(Q`r*Q!F<I?SUwprvswr7FrYF70UOO6dgJIj>bFV!(825X%
z)_=ZKH~r;W_sT`r3P&tA((gLq_`!%1wSo#ujcE)H4%${E8gkrzM-wMcl>V4E8U(A+
zAttHbvdoF4?eSnZ*b_C4@$Sf=X>8(;6pTo6e^q@Q0f^Xo#p5OXYb3o2FErgw)Qkq^
zld3xz#R11X$V8TF_w+^v*_sxYJUnORv~+kL&o|ojCQH6kS(LmsXE6WqLet?(4pq-j
LIn`JE$eF(Z3nP6n

diff --git a/po/fur.po b/po/fur.po
index 01b1e6351..370e1300e 100644
--- a/po/fur.po
+++ b/po/fur.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-02-17 10:54+0100\n"
 "Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
 "Language-Team: Friulian <f.t.public@gmail.com>\n"
@@ -24,6 +24,16 @@ msgstr "Servidôr Jack no cjatât"
 msgid "Failed to decode JPEG image"
 msgstr "No si è rivâts a decodificâ la imagjin JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -56,6 +66,9 @@ msgstr "Il servidôr al à inviât dâts sbaliâts."
 msgid "Server does not support seeking."
 msgstr "Il servidôr nol supuarte la ricercje."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Nissun o invalit audio in jentrade, il flus AVI al sarà ruvinât."
 
@@ -153,60 +166,6 @@ msgstr "Dispositîf CoreAudio no cjatât"
 msgid "CoreAudio device could not be opened"
 msgstr "Nol è stât pussibil vierzi il dispositîf CoreAudio"
 
-msgid "Record Source"
-msgstr "Sorzint regjistrazion"
-
-msgid "Microphone"
-msgstr "Microfon"
-
-msgid "Line In"
-msgstr "Linie di jentrade"
-
-msgid "Internal CD"
-msgstr "CD interni"
-
-msgid "SPDIF In"
-msgstr "SPDIF jentrade"
-
-msgid "AUX 1 In"
-msgstr "AUX 1 jentrade"
-
-msgid "AUX 2 In"
-msgstr "AUX 2 jentrade"
-
-msgid "Codec Loopback"
-msgstr "Loopback Codec"
-
-msgid "SunVTS Loopback"
-msgstr "Loopback SunVTS"
-
-msgid "Volume"
-msgstr "Volum"
-
-msgid "Gain"
-msgstr "Vuadagn"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Casse incorporade"
-
-msgid "Headphone"
-msgstr "Cufis"
-
-msgid "Line Out"
-msgstr "Linie di jessude"
-
-msgid "SPDIF Out"
-msgstr "SPDIF jessude"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 jessude"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 jessude"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Erôr tal lei %d byte dal dispositîf '%s'."
@@ -229,6 +188,14 @@ msgstr "Il driver dal dispositîf '%s' nol supuarte il metodi IO %d"
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Il driver dal dispositîf '%s' nol supuarte nissun metodi IO cognossût."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Il codificadôr sul dispositîf %s nol à formâts di jentrade supuartâts"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Il dispositîf '%s' al è ocupât"
@@ -245,6 +212,14 @@ msgstr "Il dispositîf '%s' nol pues caturâ tal formât specificât"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Il servidôr nol supuarte la ricercje."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Il driver dal dispositîf '%s' nol supuarte il metodi IO %d"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Impussibil otignî i parametris sul dispositîf '%s'"
@@ -330,6 +305,9 @@ msgstr ""
 msgid "Failed to process frame."
 msgstr "Impussibil processâ fotogram."
 
+msgid "Failed to start encoding thread."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -434,3 +412,57 @@ msgstr "Il cambiâ la risoluzion dilunc la vore nol è ancjemò supuartât."
 
 msgid "Cannot operate without a clock"
 msgstr "Impussibil operâ cence un orloi"
+
+#~ msgid "Record Source"
+#~ msgstr "Sorzint regjistrazion"
+
+#~ msgid "Microphone"
+#~ msgstr "Microfon"
+
+#~ msgid "Line In"
+#~ msgstr "Linie di jentrade"
+
+#~ msgid "Internal CD"
+#~ msgstr "CD interni"
+
+#~ msgid "SPDIF In"
+#~ msgstr "SPDIF jentrade"
+
+#~ msgid "AUX 1 In"
+#~ msgstr "AUX 1 jentrade"
+
+#~ msgid "AUX 2 In"
+#~ msgstr "AUX 2 jentrade"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Loopback Codec"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "Loopback SunVTS"
+
+#~ msgid "Volume"
+#~ msgstr "Volum"
+
+#~ msgid "Gain"
+#~ msgstr "Vuadagn"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Casse incorporade"
+
+#~ msgid "Headphone"
+#~ msgstr "Cufis"
+
+#~ msgid "Line Out"
+#~ msgstr "Linie di jessude"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF jessude"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 jessude"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 jessude"
diff --git a/po/gl.gmo b/po/gl.gmo
index ea06069a841b5d9c1843b5652eac12736dbd3c67..e3dfe3cafedefffaefbb365a914c20de11a1b417 100644
GIT binary patch
delta 1578
zcmYk+TSyd97{Kvww>2+qwVGOP7gx7wbMuz1mECl`RHkAPm0hUR7SS%&R#ZX^;Y*Q4
zFw|=gMdU-J4TKO_J_TV9K@bH+)=Lz0frx^j{@?5pesK18&gjfJ^PTU^#Vw;v=G!dK
zRUztV^Jo#b$WCnb@Iwrxh<I@rb8r;(|6bq%{EiXyO%<7o4OoQj7{ZIV2<_zc*SMXr
zCspK_h$*}2?BK#P45N`I(uSLH84jXO^ag|Y2P-g;E;0+Z;zH~~{rdpwLWXb&j$=Fi
z!o|2NL!=P<v4Z*K7M)@)yh6Qk>NJshEW{1ig&Xl6F2`RO#xl~f6nCL6XaGy`QF8nR
z^#uy1Cl<I3YZ&(>#}6^c{PK>Dfu0#6l^Dh>+>gv9$5AIX@ftqBIJV4W5%?I(@f+r2
zfsgE96m`owuo_R}Y8=6G{DEeOj*%&{3R_U$>^zpBog7bK9%C=7(l=U!cU-(V@+V2l
zPSk`SD;Tf90_;J}<N)eC&rx6SH|m1Qa>#!bonDq%gM-+IpYQ_4az*yxS6qj!vz?-m
z%h<qJ<|G!n9!nXXz_oY-b&n@dGv{IT>S`>;IBLOP&of2N(fPmyogn5<Y{gC7#P}(;
zVh)9&sgB_xyox>O<|uUIVcdf+u@)oqMH=xGw&57+^ZZnDGscqMH|glae^DQ_E<f>r
z+Zbj1IcZ5CaY}lTwaOFZ7MVbO6V3N9)MG#XMBR!$(x7{N2Up=+)cf){Ds;tMNvDO*
zZq$VgVjX@&O<6H#OIO~By7zZ+1-{1!`l(!fP%AcJ99^hE@|++k!j8#Gnr@G7fd=!K
zPFlIgi5h;jLMI2u{eS2i>0}u+YR?HbzZ9}i{7&^(A>|_h8r$!D6QZcWnuStwirb?X
z^!(R?rc^`USVN0RE4zrMX`3AS5vitmX_`un6xtG+e(5M~NvE;pPUuI9kDjcdEv1EN
zdK&a-m+$3A)5s@4Qfayc8kIC^%t`qa<j6arsb^~w5i*X40v%@pszgs7=<W?1J=A`t
zqrLNBAQq4J#!Ky<)JthrmT#8b=<9b)=|0kBMbrJ(NahTCPF9uMZp$8XS*^MAY%}+Y
c*9r&y_UYib%gQti>#X6mmKA2(BgVM<A8+oUEdT%j

delta 2298
zcmY+^TWl0n7{Kwbg|<|&mo0@BOFOhep|ohXSW2<drQ0hlrBrT4V}^E+vD=xl-4-M!
z8v`1MA~B8dKzuMU(HN`2)u0A7+Jq;4k{A<jypafrwl5lE8voy!U9BfM`#Wc5=Ul$?
z&3wM+rJ>}{q2;d$Wtdt){V-eP1or3fLn+D=S&7BC0xK~eYt#M4biWl#xgNzLd>nPW
zF|5RMxDDUJ`|(HIERvKzY1DF|n$b66A96!Z;6c2Cx}XI-grm$}hu85i-o_?uzbBX|
zfi?7JFpSr*1b@W`a4~(q=3ZS$Qly*47H*87jTdnf&SN#MW&1i%8`k3l>JDDVD1L(7
zxQIR2b)QHxUc@@QfsHtiI!;Z2$W}avVdj??Xy^_;MqS}uY{%llpuZn=M<;OuUcra)
zOI(hBAVHA7ku^&$@eg4L39f8Ff+r2g=A}7(J%UMnpqGZO_yAtQmobht#Uc;lC1mk(
z10TYhr~~FOi%wjCRak}=wxH(15!{77?!@;|pTC28<P{~vzm-Om1JY0>u>s#n_rJ$-
z`pZ@Y5n6}2^oMXZi}Od;BDt%B1(qSFARE*DrgT4onv8pqA!Q81m|RW#*VFib3wo9}
zQCC*JCJ1o^bq6PL2VTQ=oX67`E)zMAv-lKlXSI*wWjul3VJG&i4L0@)Zl!-6+we}3
zh9=o&GO8K-)1JY4`k!J4-p1!~3)|2MW>ItDF7{z)oyZ_QiF#zS7{j0N8SLX7bnzp6
z0;{S-c4P868oe~WKz*I^tzf{T*iU~p?O&)9cM~oh=ta~4e#Zzlu?uwy58*Y`94RDo
z^~lOlldlR1iqs)#mXs(B5?2nS|KOlz?F6z|IfWf~8L#3Gcm^-<s^}RO69zrgC~9&Y
zMorf9xDqd8E53<3-Y>}7WDy7S{a?>lM|b9<PV^q?Q7oW_b~6dlgbCb^Z{s$+g*s5_
zCXqeZg1LAWvv3Qwo0=&*Xz++ByZF^SXkq^U6-~nYC0EERGpW86<faL+E=~*KGo_PX
z<}^hYszn#5i_*dgnMkx_9#zXuY7aH3A>2>ZLN1C$)o5rLqOLHl;FGM)Y^t8)uy!aK
z0X;q~`YLMZwUC#lJi>21wJzwI2=AlKDGD!9(wv=sgfw(|PMM-#HgeJ=Sr-mamr?bM
zHN*92LR3BhCQ-qBX7!9YTJwq4#O4%*mq7Tan#2QB+RQIo9Hc=mNe)%NT6?Mbc{QbW
z!(^>>^jS-l$brLFqt)xB8-r5`(+X!Ug)J`4e3rAOX!n#GOEkEiH9X<iV@^EvZO(-i
zL*2IPNsnWXP8|0=M|!=46Zh<x)e)sVZO7bE%TD;?)}(vd*(&|6=jg~room1yiTlB$
z1HR`b{CFx}a5gK?8uq8+BhJikg-yl#qP<=E(6DLnRLUx9&CWgO$EL=e)RE9vS=+os
z+#a<pvl$t-=Vt%ybS}9SUV1A$Q@*OQBoa&b$LyHRvMtxF-A^^IdUfUTZriiH5!aRu
zdve5|l#XcTzC31++jCd_U|*i^S<`cGuuosNH+R*xMjguuX8rHNq*;^M?p*4a@A;D1
z?k($^tdhaFd&;p`^wV*B+8%M|Qr^tF)#0_7)tjwnR&P2pSrw(Jh3c=f^MW|YKev1}
Al>h($

diff --git a/po/gl.po b/po/gl.po
index 4ed76da06..073b13a07 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2012-12-15 03:46+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -25,6 +25,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr "Produciuse un erro ao descodificar a imaxe JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -58,6 +68,9 @@ msgstr "O servidor enviou datos erróneos."
 msgid "Server does not support seeking."
 msgstr "O servidor non admite a busca."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "O audio non existe ou non é válido, o fluxo AVI está corrompido."
 
@@ -155,62 +168,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-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"
-
-msgid "Gain"
-msgstr "Ganancia"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Altofalante interno"
-
-msgid "Headphone"
-msgstr "Cascos"
-
-msgid "Line Out"
-msgstr "Liña de saída"
-
-msgid "SPDIF Out"
-msgstr "Saída SPDIF"
-
-msgid "AUX 1 Out"
-msgstr "Saída AUX 1"
-
-msgid "AUX 2 Out"
-msgstr "Saída AUX 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Produciuse un erro ao ler %d bytes desde o dispositivo «%s»."
@@ -234,6 +191,15 @@ 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."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+"O dispositivo de vídeo non acepta a nova configuración de taxa de marcos."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "O dispositivo «%s» está ocupado"
@@ -250,6 +216,14 @@ msgstr "O dispositivo «%s» non pode capturar o formato especificado"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "O dispositivo «%s» non admite a captura de vídeo."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "O dispositivo «%s» non admite a captura de vídeo."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "O dispositivo «%s» non admite a captura de vídeo."
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Non foi posíbel obter os parámetros para o dispositivo «%s»"
@@ -344,6 +318,10 @@ msgstr "Produciuse un erro ao descodificar a imaxe JPEG"
 msgid "Failed to process frame."
 msgstr ""
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Produciuse un erro ao descodificar a imaxe JPEG"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -454,15 +432,68 @@ 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 "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"
+
+#~ msgid "Gain"
+#~ msgstr "Ganancia"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Altofalante interno"
+
+#~ msgid "Headphone"
+#~ msgstr "Cascos"
+
+#~ msgid "Line Out"
+#~ msgstr "Liña de saída"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "Saída SPDIF"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "Saída AUX 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "Saída AUX 2"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Produciuse un erro no fluxo de datos interno."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Produciuse un erro interno no fluxo de datos."
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "O dispositivo «%s» non admite a captura de vídeo."
-
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Non foi posíbel estabelecer a conexión co servidor de son"
 
diff --git a/po/gst-plugins-good-1.0.pot b/po/gst-plugins-good-1.0.pot
index f89dae152..af05d7959 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.12.4\n"
+"Project-Id-Version: gst-plugins-good 1.13.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,100 +20,116 @@ msgstr ""
 msgid "Jack server not found"
 msgstr ""
 
-#: ext/jpeg/gstjpegdec.c:915 ext/jpeg/gstjpegdec.c:1181
-#: ext/jpeg/gstjpegdec.c:1193 ext/jpeg/gstjpegdec.c:1222
-#: ext/jpeg/gstjpegdec.c:1231 ext/jpeg/gstjpegdec.c:1240
-#: ext/jpeg/gstjpegdec.c:1248
+#: ext/jpeg/gstjpegdec.c:936 ext/jpeg/gstjpegdec.c:1103
+#: ext/jpeg/gstjpegdec.c:1112 ext/jpeg/gstjpegdec.c:1122
+#: ext/jpeg/gstjpegdec.c:1131 ext/jpeg/gstjpegdec.c:1393
+#: ext/jpeg/gstjpegdec.c:1421
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+#: ext/lame/gstlamemp3enc.c:393
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#: ext/lame/gstlamemp3enc.c:425 ext/twolame/gsttwolamemp2enc.c:488
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #: ext/pulse/pulsesink.c:3126
 #, c-format
 msgid "'%s' by '%s'"
 msgstr ""
 
-#: ext/shout2/gstshout2.c:566
+#: ext/shout2/gstshout2.c:619 ext/shout2/gstshout2.c:629
 msgid "Could not connect to server"
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:895
+#: ext/soup/gstsouphttpsrc.c:910
 msgid "No URL set."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1270
+#: ext/soup/gstsouphttpsrc.c:1368
 msgid "Could not resolve server name."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1275
+#: ext/soup/gstsouphttpsrc.c:1373
 msgid "Could not establish connection to server."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1279
+#: ext/soup/gstsouphttpsrc.c:1377
 msgid "Secure connection setup failed."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1285
+#: ext/soup/gstsouphttpsrc.c:1383
 msgid ""
 "A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1290
+#: ext/soup/gstsouphttpsrc.c:1388
 msgid "Server sent bad data."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1486
+#: ext/soup/gstsouphttpsrc.c:1610
 msgid "Server does not support seeking."
 msgstr ""
 
+#: ext/twolame/gsttwolamemp2enc.c:411
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 #: gst/avi/gstavimux.c:1832
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:698 gst/isomp4/qtdemux.c:702
+#: gst/isomp4/qtdemux.c:699 gst/isomp4/qtdemux.c:703
 msgid "This file contains no playable streams."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:748 gst/isomp4/qtdemux.c:6436 gst/isomp4/qtdemux.c:6504
-#: gst/isomp4/qtdemux.c:6817 gst/isomp4/qtdemux.c:8008
+#: gst/isomp4/qtdemux.c:749 gst/isomp4/qtdemux.c:6472 gst/isomp4/qtdemux.c:6540
+#: gst/isomp4/qtdemux.c:6854 gst/isomp4/qtdemux.c:8066
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:2868
+#: gst/isomp4/qtdemux.c:2878
 msgid "Cannot play stream because it is encrypted with PlayReady DRM."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4045 gst/isomp4/qtdemux.c:7560
-#: gst/isomp4/qtdemux.c:7567 gst/isomp4/qtdemux.c:8480
-#: gst/isomp4/qtdemux.c:8917 gst/isomp4/qtdemux.c:8924
-#: gst/isomp4/qtdemux.c:11635
+#: gst/isomp4/qtdemux.c:4059 gst/isomp4/qtdemux.c:7617
+#: gst/isomp4/qtdemux.c:7624 gst/isomp4/qtdemux.c:8538
+#: gst/isomp4/qtdemux.c:8975 gst/isomp4/qtdemux.c:8982
+#: gst/isomp4/qtdemux.c:11693
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4287
+#: gst/isomp4/qtdemux.c:4301
 msgid "Invalid atom size."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4365
+#: gst/isomp4/qtdemux.c:4380
 msgid "This file is incomplete and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:9931
+#: gst/isomp4/qtdemux.c:9988
 msgid "The video in this file might not play correctly."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:11676
+#: gst/isomp4/qtdemux.c:11734
 #, c-format
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-#: gst/rtsp/gstrtspsrc.c:6378
+#: gst/rtsp/gstrtspsrc.c:6834
 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:6383
+#: gst/rtsp/gstrtspsrc.c:6839
 msgid ""
 "No supported stream was found. You might need to allow more transport "
 "protocols or may otherwise be missing the right GStreamer RTSP extension "
@@ -176,157 +192,105 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 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 ""
-
-#: sys/sunaudio/gstsunaudiomixertrack.c:70
-msgid "Gain"
-msgstr ""
-
-#: sys/sunaudio/gstsunaudiomixertrack.c:71
-msgid "Monitor"
-msgstr ""
-
-#: sys/sunaudio/gstsunaudiomixertrack.c:72
-msgid "Built-in Speaker"
-msgstr ""
-
-#: sys/sunaudio/gstsunaudiomixertrack.c:73
-msgid "Headphone"
-msgstr ""
-
-#: sys/sunaudio/gstsunaudiomixertrack.c:74
-msgid "Line Out"
-msgstr ""
-
-#: sys/sunaudio/gstsunaudiomixertrack.c:75
-msgid "SPDIF Out"
-msgstr ""
-
-#: sys/sunaudio/gstsunaudiomixertrack.c:76
-msgid "AUX 1 Out"
-msgstr ""
-
-#: sys/sunaudio/gstsunaudiomixertrack.c:77
-msgid "AUX 2 Out"
-msgstr ""
-
-#: sys/v4l2/gstv4l2bufferpool.c:1692
+#: sys/v4l2/gstv4l2bufferpool.c:1660
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:1178
+#: sys/v4l2/gstv4l2object.c:1207
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2902
+#: sys/v4l2/gstv4l2object.c:2936
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2910
+#: sys/v4l2/gstv4l2object.c:2944
 #, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2917
+#: sys/v4l2/gstv4l2object.c:2951
 #, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3595 sys/v4l2/gstv4l2object.c:3606
+#: sys/v4l2/gstv4l2object.c:3673 sys/v4l2/gstv4l2object.c:3697
+#, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+
+#: sys/v4l2/gstv4l2object.c:3679 sys/v4l2/gstv4l2object.c:3703
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
+#: sys/v4l2/gstv4l2object.c:3691
 #, c-format
 msgid "Device '%s' is busy"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3612 sys/v4l2/gstv4l2object.c:3624
+#: sys/v4l2/gstv4l2object.c:3714
 #, c-format
 msgid "Device '%s' cannot capture at %dx%d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3635
+#: sys/v4l2/gstv4l2object.c:3723
 #, c-format
 msgid "Device '%s' cannot capture in the specified format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3648
+#: sys/v4l2/gstv4l2object.c:3734
 #, c-format
 msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3659
+#: sys/v4l2/gstv4l2object.c:3749
+#, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr ""
+
+#: sys/v4l2/gstv4l2object.c:3763
+#, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr ""
+
+#: sys/v4l2/gstv4l2object.c:3775
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3667
+#: sys/v4l2/gstv4l2object.c:3783
 msgid "Video device did not accept new frame rate setting."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3789
+#: sys/v4l2/gstv4l2object.c:3909
 msgid "Video device did not provide output format."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3795
+#: sys/v4l2/gstv4l2object.c:3915
 msgid "Video device returned invalid dimensions."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3803
+#: sys/v4l2/gstv4l2object.c:3923
 msgid "Video device uses an unsupported interlacing method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3810
+#: sys/v4l2/gstv4l2object.c:3930
 msgid "Video device uses an unsupported pixel format."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4236
+#: sys/v4l2/gstv4l2object.c:4393
 msgid "Failed to configure internal buffer pool."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4242
+#: sys/v4l2/gstv4l2object.c:4399
 msgid "Video device did not suggest any buffer size."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4257
+#: sys/v4l2/gstv4l2object.c:4414
 msgid "No downstream pool to import from."
 msgstr ""
 
@@ -350,7 +314,7 @@ msgstr ""
 msgid "Failed to get radio input on device '%s'. "
 msgstr ""
 
-#: sys/v4l2/gstv4l2radio.c:207 sys/v4l2/v4l2_calls.c:1074
+#: sys/v4l2/gstv4l2radio.c:207 sys/v4l2/v4l2_calls.c:1078
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr ""
@@ -364,7 +328,8 @@ msgstr ""
 msgid "Failed to allocated required memory."
 msgstr ""
 
-#: sys/v4l2/gstv4l2src.c:525 sys/v4l2/gstv4l2videodec.c:695
+#: sys/v4l2/gstv4l2src.c:649 sys/v4l2/gstv4l2videodec.c:751
+#: sys/v4l2/gstv4l2videoenc.c:779
 msgid "Failed to allocate required memory."
 msgstr ""
 
@@ -378,42 +343,46 @@ msgstr ""
 msgid "Converter on device %s has no supported output format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2videodec.c:141
+#: sys/v4l2/gstv4l2videodec.c:142 sys/v4l2/gstv4l2videoenc.c:147
 #, c-format
 msgid "Encoder on device %s has no supported input format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2videodec.c:148
+#: sys/v4l2/gstv4l2videodec.c:149 sys/v4l2/gstv4l2videoenc.c:140
 #, c-format
 msgid "Encoder on device %s has no supported output format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2videodec.c:709
+#: sys/v4l2/gstv4l2videodec.c:765
 msgid "Failed to start decoding thread."
 msgstr ""
 
-#: sys/v4l2/gstv4l2videodec.c:716
+#: sys/v4l2/gstv4l2videodec.c:772 sys/v4l2/gstv4l2videoenc.c:800
 msgid "Failed to process frame."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:94
+#: sys/v4l2/gstv4l2videoenc.c:792
+msgid "Failed to start encoding thread."
+msgstr ""
+
+#: sys/v4l2/v4l2_calls.c:92
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
 "it is a v4l1 driver."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:158
+#: sys/v4l2/v4l2_calls.c:156
 #, c-format
 msgid "Failed to query attributes of input %d in device %s"
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:189
+#: sys/v4l2/v4l2_calls.c:187
 #, c-format
 msgid "Failed to get setting of tuner %d on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:237
+#: sys/v4l2/v4l2_calls.c:235
 #, c-format
 msgid "Failed to query norm on device '%s'."
 msgstr ""
@@ -423,83 +392,83 @@ msgstr ""
 msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:611
+#: sys/v4l2/v4l2_calls.c:615
 #, c-format
 msgid "Cannot identify device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:618
+#: sys/v4l2/v4l2_calls.c:622
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:625
+#: sys/v4l2/v4l2_calls.c:629
 #, c-format
 msgid "Could not open device '%s' for reading and writing."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:632
+#: sys/v4l2/v4l2_calls.c:636
 #, c-format
 msgid "Device '%s' is not a capture device."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:640
+#: sys/v4l2/v4l2_calls.c:644
 #, c-format
 msgid "Device '%s' is not a output device."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:648
+#: sys/v4l2/v4l2_calls.c:652
 #, c-format
 msgid "Device '%s' is not a M2M device."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:700
+#: sys/v4l2/v4l2_calls.c:704
 #, c-format
 msgid "Could not dup device '%s' for reading and writing."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:784
+#: sys/v4l2/v4l2_calls.c:788
 #, c-format
 msgid "Failed to set norm for device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:822
+#: sys/v4l2/v4l2_calls.c:826
 #, c-format
 msgid "Failed to get current tuner frequency for device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:864
+#: sys/v4l2/v4l2_calls.c:868
 #, c-format
 msgid "Failed to set current tuner frequency for device '%s' to %lu Hz."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:898
+#: sys/v4l2/v4l2_calls.c:902
 #, c-format
 msgid "Failed to get signal strength for device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:934
+#: sys/v4l2/v4l2_calls.c:938
 #, c-format
 msgid "Failed to get value for control %d on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:969
+#: sys/v4l2/v4l2_calls.c:973
 #, c-format
 msgid "Failed to set value %d for control %d on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:1049
+#: sys/v4l2/v4l2_calls.c:1053
 #, c-format
 msgid "Failed to get current input on device '%s'. May be it is a radio device"
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:1106
+#: sys/v4l2/v4l2_calls.c:1110
 #, c-format
 msgid ""
 "Failed to get current output on device '%s'. May be it is a radio device"
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:1131
+#: sys/v4l2/v4l2_calls.c:1135
 #, c-format
 msgid "Failed to set output %d on device %s."
 msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
index 0ec5ef33aeec066fd697ade5cd6aa62f793fdc38..3da1500d53f9fc2d1ce118b8ef14797633f18ffa 100644
GIT binary patch
delta 2086
zcmYk+YfMx}7{>8o#p14j3T#)`vK&wmiYzKDinOq(D1zdpiUQGwRuoCF_0qIW({5sI
z#iUftu_QGy#u)veiHWWzc)vtRG}RBLMoo++CVpv*^_nJ)xBqj_YMk)yZ|3Ztb7tOo
zhvQ%VxioesBl!<QYau=&9(at2;mLt~(E3u0NyTH>fc@ylj6v@23oyjE7OQYMmf@a+
zH!;FE&1=kPoQ6T{z>#{@&vYhoVHXzSH5`jCFds+z-0Kb4#P}OrgMZ;-tQu_0$JmQY
z@En$6kXdVDjW`OsQ197>VZ4BuTIy3e78g>|+!+?2ZkU72(5yk-*n@iTSuDb5*oIcR
zF$K5*^Y8%b_g7KRNgColcMOhWT#s7lw>VO%-c4sZp2C^v8EQ-&)?+!^s1;tu3HTiK
zg0aKgm9(J7n{havL{0QMD&^h`W1<*FjlV)oY&*ur(CMS2J-UMyW@WO!7(wlI9g<bE
z47I{e)WmwQ7cbyiY|S#J1h3+Fe1$n!!b2>ai+bMId{pDFe)3;Qr=JVD!SkWJ_oX<6
zaVt7|i^Yu3CC2~a2*$yHyV5e$mUN(gw;h$@^QdBcfMLufJ$V%PJY>#hU6B0Grn8BX
z%*MY_d-Mb~^Bf95TTzWs?8XRQ!g73#D%Nt2j)lum8I7S<xEGa?`w9KLq=s=Vmg1%u
zofULWU>D|5vP*F*>c)rIj3H+834Vu~;89eD?qMZnTkZ;*k-3|0)K=|5Ww0N0njRx_
zF~f7+T8c&JOyt5!)Xa8ZH{M2VNjp!WYkE-==tDj5IV!~#mE;sFRxq}augn!(jE`_3
z)=_zja3`wBpW<Yl|4Q<u8`q;&auAi;e{dS+GVKCvN2Tm{)I`ps9{d`$=L^{fUEhG(
z>oYhDAL0a@%tQ45pc5_Jj6t3M{dDw$i&%sI;a;p@d3<f|qEh}j%jPTd8*1f8QOD^n
z@@JB%z(y>=DE@?>;u+LJUZN&k!^4#EUa1#cqNA0)K<(XlmZKXQkbBG)tilth-~Eqz
zK$vAt!Zu7o4#m4h@|<kw!eD}bEvBAmASfAUg5WGrIxRC{7S<7*677-Gv_dr<yJUiT
zbzZI-nMtUX5lft&`@yMmwjvF+u=krX&f$qU#gf9Hh4_q63e}njWkHQCG(KXW1~iM9
zP7EM&31vmKlR>;~N<E2s*R=PPic|f{s@fo}e=40?LPe*u{eBzDz>~P3<CspUs^2zk
zgW3W@d+Q};6EleU1Uu@~3^-e;`l{A|HieiI<zp_P6EKTVVd<F6BZd*92o>1}gr87r
zc5yya?LzMt_93s|zTrJ=U-9L~Px~T1JKbLxZ}sm>vWEo5*^Pmw_>sV6PyCnQMvpxy
zJ7jlc-?Do``SBk^->2GvqG)_$(Y++QqBzI9ZuP3Jw$+{OVf#q&5Ahk{&H--#y(H6i

delta 2908
zcmZA2TWl0n9LMp~QlU2rWy`IAObY@nP@vodm9|hQ6-t3pC?epr9bmf4Y+1UEDVL2#
z0)iOL1`-o5Awd)s0~8)4CJHI?z!SuvF$ReQAB>3-h%r%#-`~tYh$s7>&pFe%obx~D
zOyAjfp)GZDNY)WUi4miT-TjQwi68rOpiIv(CLd?uGF*V!co6xSbl83`Y@fiPoIj0&
z@f*~0zr!c-J}$sWt}(NWNtxAD3OKPpIAM<BY}!|GJZ9t>Q;ZXE6xLuRZp1Qt3n$_Q
zoPa-v=X2=wTG}&l2Oh+A_z#xjnt{f&@P3n`GLsYEqk5Q6Z^q$d)QcLi0$;@lo<R#Q
zqdNEt>iWDvK?kRy?pua>?p~aXXVJ!+I0>ssPbu#=E*0JI2I@gyp&oo2r(kwrFw)tm
z3~a_)+=X@cH7?b4LyVb&t5736fHSZcEAb9i;0Q*cb{(chQ0bwfo~BVRzJk^GTiBjj
z6m)DgKE?TN)D*po7GB3JyoXG$`3so^lgUEhou&Z!nGy~Ia4u>MRShNoOtV=U{-FtV
z;|46nt*8+l#G`l-6WB7$m}z(wnKkn_PRE?#!Gq_cI<g4IVgp*Z9eIR#6PX2bd^q{9
zqH>NC&)|L3gQk-fEh-!5<LjuD_Tg0gJ#3E|X$(KJl!G$Zikj=AsOv7F7U>^23yWFF
znu12u2HTsWQkrSZJ|x@bWA@5&{1TO!oH0R0icoDUY)?jhW-bS%xEZxpwxLFR1hpp4
zV>LcNjl7B#J{y~H4yF!K(MT_$g}<WaIFF|&Gc!=B-Vu5XYiM6XjW}W%vjyvLJARHE
zadb&=Uk|RQ{RuvcS<I_CT7&bo|2-;7{Yg}6?jXr9MQjDCW*RE>t5N%V59)(*9JRVH
zVkO=~b!-AF_yBH0P32wW-KLaLsROmB=e>eu+W((XQL1j>JRHkg^y2ln4tL`k{1%(B
zjC9pu3ZKR+sQa|3HIVtJ)OO<{JcazsT@K1vF$+Q+S%GVKzd1xji{)1MhXT5%Of18C
z>_LsR4|DO)&<s|Z+WE+=nc-;R92|)2umBy*#xCrSdr%pE4O4pX2UL{0Yxp5Xm>_lR
z3)EcAqj!4H7Su?Rs29JFd3X}(yE%_!+x&#|(PS|ScBYwzD{u)`;}LugZ&dIarKpG%
zrWCiJ=JHhNE%X-|6R958p{{R5`f5(#0=$m8u8`5_{>3;KU&b6fjTxwEV$u2QM;!`=
z33SLW137LcbhC=)Nu`b8qvlV?GM%7U{xKM_s_KwBskzrnqr~Gy9qkBDG=#P&&DtIs
z)mUN^p`wLG7X7S5P@{5*e#8c13Bh{w%Zs7f-wVS!-!an^)-~sLSRa6V3jA+OHKv~D
z;1G|Og0S%d@}V=U2<-?Jt%p293ra<4ZznYW<A^5+tr6{z5<*|SLP9&GmWUB-H2+`o
zV&$LRV;Tu97%hs2g(>yRHjY(<w&KI056nn{Y4uAk$5F%}qLs)eSUUc;-in#TYU1&-
zg~niQ*p*a<5L&4<gi2PxqoY2VFA>^iD%$5JeP%%G_~sUChE?yG8o$z*?DA`s4^LHE
zoJtpF4<EcR>BhRIx}Me4>DW;xk)D{{o8RuVS<B<`&Q`lEn$FKDJDW2*x46!BJ+suY
z+dH?#J;&60T~5NYW7eYD^sGqvxaF?r=<&XKVT0S2hzHj;#67nwp6J~e`6y$6)f7)A
z+MM*iMKcRm*48i4O-+79eX1DRGN>u(tzFafs0Y3KhF;C=zcwCAZg+YcN9@bo6pShv
zvwOk;x;+o;mDZ!vl~!=NF5z507PYOUWhdL+xRr1^6Y=(Bw9V~sD@^m&gx&YH<GEH(
zce3xW=SI_ai+_l;JJG3~@$Q7(<=IxJ(-rHm(+@_KrPr4X?#&qO=36V{9d_Sg+v{*l
zQ!IJ;m>qN5>@X{?lHyLPnL;w$j-63A=+vWD(60tJnuu?SduD~*-a~dyPP&~@P~X!X
zPgpxWcRP=^)0@hz^rz*y!-53)Lkp_@Bhu%}cZ~?L_5aSA=5$GEq<7Kewf%DIV)jli
J-nZX2{{aVnfXM&=

diff --git a/po/hr.po b/po/hr.po
index adc489581..354dcbd61 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-04 16:09-0800\n"
 "Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
@@ -26,6 +26,16 @@ msgstr "Poslužitelj Jack nije pronađen"
 msgid "Failed to decode JPEG image"
 msgstr "Nije uspjelo dekodirati JPEG sliku"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -57,6 +67,9 @@ msgstr "Poslužitelj je poslao neispravne podatke."
 msgid "Server does not support seeking."
 msgstr "Poslužitelj ne podržava traženje."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Nema audio ulaza ili je neispravan, AVI stream će biti iskvaren."
 
@@ -157,60 +170,6 @@ msgstr "CoreAudio uređaj nije pronađen"
 msgid "CoreAudio device could not be opened"
 msgstr "CoreAudio uređaj nije moguće otvoriti"
 
-msgid "Record Source"
-msgstr "Izvor snimanja"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "Line In"
-msgstr "Linijski ulaz"
-
-msgid "Internal CD"
-msgstr "Interni CD"
-
-msgid "SPDIF In"
-msgstr "SPDIF ulaz"
-
-msgid "AUX 1 In"
-msgstr "AUX 1 ulaz"
-
-msgid "AUX 2 In"
-msgstr "AUX 2 ulaz"
-
-msgid "Codec Loopback"
-msgstr "Kodek-povratna petlja"
-
-msgid "SunVTS Loopback"
-msgstr "SunVTS-povratna petlja"
-
-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’."
@@ -234,6 +193,14 @@ msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 "Upravljački program uređaja ‘%s’ ne podržava nijednu poznatu IO metodu."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Koder na uređaju %s nema podržani ulazni format"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Uređaj ‘%s’ je zauzet"
@@ -250,6 +217,14 @@ msgstr "Uređaj ‘%s’ ne može snimati u specificiranom formatu."
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Device ‘%s’ ne podržava prekinute ravnine"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Poslužitelj ne podržava traženje."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Device ‘%s’ ne podržava prekinute ravnine"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Parametre uređaja ‘%s’ nije moguće dobiti"
@@ -331,6 +306,10 @@ msgstr "Nije uspjelo započeti dekodiranje niti (thread)."
 msgid "Failed to process frame."
 msgstr "Nije uspjelo obraditi sliku (polusliku)."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Nije uspjelo započeti dekodiranje niti (thread)."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -430,6 +409,60 @@ msgstr "Promjena rezolucije u tijeku rada (runtime) još nije podržana."
 msgid "Cannot operate without a clock"
 msgstr "Ne mogu raditi bez takta (sata)"
 
+#~ msgid "Record Source"
+#~ msgstr "Izvor snimanja"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "Line In"
+#~ msgstr "Linijski ulaz"
+
+#~ msgid "Internal CD"
+#~ msgstr "Interni CD"
+
+#~ msgid "SPDIF In"
+#~ msgstr "SPDIF ulaz"
+
+#~ msgid "AUX 1 In"
+#~ msgstr "AUX 1 ulaz"
+
+#~ msgid "AUX 2 In"
+#~ msgstr "AUX 2 ulaz"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Kodek-povratna petlja"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "SunVTS-povratna petlja"
+
+#~ 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"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Interna greška toka (stream) podataka."
 
diff --git a/po/hu.gmo b/po/hu.gmo
index 3172d212bf31d9eafd5115bf6077535d82c81f86..9b4eb895caa076e388c64b06eec40b017e473983 100644
GIT binary patch
delta 2091
zcmYk-TTE0(9LMot6>(QsF0vqtz}ljM;(`KJ!3%h4mjzk8LF-!6H4?#i*T!gK*3{J2
zMw7}xA2g{UO?;?*scTXiX;YN&V3Y?Fqc5U~F@3RVnp)GO)%5#2=U|-p-_QIHXV00L
z|IB)AXMZ9&o;Uftp=}{%63;!xBylL6587acF`4)iw&ExTFmI}Je+8D3uf-L(1MBcx
z*N0e7p5-;B99Lryd$3rqI!R{{7cOHZ-ov^0AI`yYpL4wxJIO!A19%6!aK$uZ=HUhW
z5QniAgN#}OYsYtS59&SVFpMKOT~qywPKXN`S<VP6P+wSwjL;lFeeo>n!N1~se1QoJ
z`HiW-&+r|*in@Oc^_;Y9=ee`7iad&%=n*W|QV-BsgFoX3=*clAf>B(I7HWpKaUuSV
zdcoXWXC_-v`DvViL#Tn?M=iNG&zL3*qw;;If%Ri@Hl0B_s?j)xFn>Dr#d=h&Bgm?n
zZKxUULJjOJUceDNi1B=5s&Nc!@HLiUH4h144E4PIe5}M%0oK2f&L|i31y6xf`&w)u
zkE2~%TtGhT=6_%jd9cu#X&tI0J*fNoQA>OiwHcpd7-z9OEo|@()b}q2S^o`muCpb1
zrpch-`eG?+Wg^&ydr>34fie8owUr~I`!1oDbQm>|XV`+dCC<d+sDYfpMY<2QQZJHp
zbo9#Es(Ubr+wgbPOxjq#t#}NzHy)s7QWi31Iksano<R+840)vS&vH&r6>8IML=Ef&
za*O#MTQPap?G#birCjL7<9HeMz!IjV5`2uB(U+(h+;dH5M@7k(pk{ayb!-Pw1AmOY
zxQu0zS5U_^hnt#p{(I@H=fYLjSGbBi#*e@z>_eVmenY(|le4xAyD)+MxCUQhBQ{n#
z`4Nnh58*<b!7TK{6Gi51y0Jj#{|h>Lz&EZ>@e+9j>$ML@P_?RK9aWMYSc`qgt!5N?
zhxrpV;9_oy;(pf~sQaf-w-`1cV>MslJl=0obogh+`B3e$c-#9pAK$}+SdZV~5`2QH
zeGx~-UI|Pi*9M+w+LZd6+B71Y(4bWFGNOr4)BE2vj<MbH`HT>p68nX^sF|wi*i0rg
zPz_GURvS}I^;c~t8mG>lSQcvO-)<@ihbU?Ppk$Ef6l^5g3AIjQwcT@m6MXd3-8_UU
z*(5@>)bgtKdBjB13bFEU8VAbWm@|=z+HI=lug$iWSWIY{-)=c19`^#PZu~@-n+u%;
zwGD)7?<Lv@l~0?REn(Lh?Ef8`aitPk1F^1&j~Jn&*FtC`Z6-R1T!K?(@BS&skEGo`
zauu0YrFXmagEwG3@Lsd-`sSp5@zwh*f1olI4_ryJvJ0!M_QKB8^}^ep)aSt;Jq3}(
z-krO<cikE|eCXJ%fkVBap5E<=u+>*Go;p<;^IQK^El+*2;8B{@Q609vu0EZrsX037
Ef8yNKGXMYp

delta 2916
zcmZA24QN$m9LMozQ=8K{U$!}QPLD5XPB*vdW|=zO=3d&?=B9JLrDxl5yYBAZb?=>p
zmX`uw8WGAZBUD0?${<Q_P()#MeF+STpsa{NN>UIhXdqP3_jm45qzC`^^E_wwobx>Y
z=l@(^w$JuNhbN7E#nAl3bmEy2#^}P&5AZ=NPB$h4ORxb~;b<H}{+XCJKH-hu#2l`_
zj}!1B>bX~N2HwV1m^H?jrN%@}E1gU(986v?N3o3YWt@vCV~v@H^DqzBU@30H1$Y?e
z<HtA;uX@+hnRPqkCHN!`;YR!i3vm57V>)=hiPBlZg&$Be%wRTia3ShN%~*ubV-}u4
z3ooE1cpdfqvE!2yT#UM}0rlK{xDd~xjl=j5t|mRRdB5?|(G4%69&`@%;A^-DM^8+y
zv<#Jj?O2U_u@*nWI(=`FG3B@pwZcPKf^jUxU$F?MunLW9F*=3L9y*$74E5qmxElZP
z#)a9*iM8T`T;Gk_qT^`cw>T1SA=_*2AiH2vDFohWGLe5~79VN23{^uFIpm*hHg(<~
z+E6!c!P(e@TG0?5#m_N>9g~e&jF*vJGk;?-rspOfyc{)=Dx8T;XkkC{2=fxM3+7ZV
z`LCe!0T&*{+o%T>lNJ?~jmz-`R7%fdA>Q!D`BRPIpQ+<R8SF&u^-<LKzCab}O<ao8
zsAO$HGwOiti_)o2HD*8Z9rHD3r4@fitzbod(i+be&&|l9O*b-UvlsQE7;1|?#YVh_
zT3|7it(6a8Gam4aeosd?%p*@KzDCpv2CyEFqcU<GwSrtLSv-xXEr{Y~d=L9^%q(M`
zz^73exPn`86#J=S?L=kZ9bBpN|0A6>T*&3^6}SnRw0RA6o<BsLf??Fe#!{gcF2e@w
z@H~Z&FusY;Vgakt^WH{n-EXJ`W${o||2EesKOl4-<3a+p!b~=vuBk%Jd>8ugl4l8r
zw}bI9)WmP&IxHvu@(@<yPq-fQc{_75A=G<b#T9rJZQgHYvaD)+4poE~y>Tkb-om&R
zb&lV_vG^Tk;4hete<I~$?jYGVS>#=RFY~NK9k*so!wyvK?7*mA{1hGe2_C}~HYkWE
zP<uR%51r$c$X84Y>Vf+_52C97FtR9f9$CD(fqKzY3P_nKMrB~X=QqXdzi!N9dCl02
zWYfHkdeE1sV!4H?iP>yi4X(yzco56*96pSHAw^}1c&JkBM@{rJrl9I$IWe7hoKXF_
zO)pU!M{Fnba5X(dt&7Me>WKzI&2m4Jd#f(H=59kdYFqk<``ao8ySxico*jDsCZdX%
zN$BXPZ6K6tr7eqKVQvwQK-Gk@pdwY<n#4WdDm*p)CbYS|<PVMQ^|k-XWFxVfh-yC^
z;{KND4Ro&gp>wO6Q|dNq%q>EtRgKJ=ZbJLb2{oe#ZDB2;Vq8j0B(y!MF+agcbpLB!
ztNe4S+`ZR+Ywzwh{phIm5*5To4ZOAu^=nC4xNQuddBk|4lTh_jd+z^=J(x<g68E>A
z3?}Hjwa}SFs8ZJuY9o`}`&5zbAZB=1xQ*Z1GijZ3H*{DfR(-&%aXZa}5w}-*_fo0F
zrP##Lxf3b}ef~(HFJQF|ICh^Cip?J#&**l#tj1t)pwsT^i)ExQIGbKJW?HT73z#~`
z?jGn31{_l#h&Z8u?YF9`V@tCN<}~^Ojvnu-7dH92Lc!#Bn}PvfBp8Zs%X%v%&1wq{
zhPs^Czu8MBwp7>G=%zNeqd67jbc}Bs479IryElXQ{+!FH53~pUgZ)mtdCEtr?IlH)
z7S`z)uh-`@rT4CRJ+9T+fgZoJD{(Rs-jg^P_F28YPP@odI*HQ*iFYGTBx3dQ75*3x
zCE~ICyy2XNV7Jp}?e>Mkd+e^T9SQomG4|E0ym-#^vdr0QLl=&OxixV*Y-*fcy|&-q
zV@DEkp6L%?IHF|K7py9150aTqr{4)U5#tW}e91wRuP+qb84Q@aIXO@;oHD(}@$XKY
zjyQg6XD}4vjka04$Fkko#jN7&*iCCx{?5B!iWGSXBLT_G_4#5)77b1I68Hbv2Mf#N
PErr!1(v=T~6`213HI0vP

diff --git a/po/hu.po b/po/hu.po
index 5fa208aab..fbe10d822 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-05 20:11+0200\n"
 "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -29,6 +29,16 @@ msgstr "Jack kiszolgáló nem található"
 msgid "Failed to decode JPEG image"
 msgstr "A JPEG kép visszafejtése meghiúsult"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -60,6 +70,9 @@ msgstr "A kiszolgáló hibás adatokat küldött."
 msgid "Server does not support seeking."
 msgstr "A kiszolgáló nem támogatja a tekerést."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Nincs vagy érvénytelen bemeneti hang, az AVI-folyam sérült lesz."
 
@@ -157,60 +170,6 @@ msgstr "A CoreAudio eszköz nem található"
 msgid "CoreAudio device could not be opened"
 msgstr "A CoreAudio eszköz nem nyitható meg"
 
-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"
-
-msgid "Codec Loopback"
-msgstr "Kodek visszacsatolás"
-
-msgid "SunVTS Loopback"
-msgstr "SunVTS visszacsatolás"
-
-msgid "Volume"
-msgstr "Hangerő"
-
-msgid "Gain"
-msgstr "Erősítés"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Beépített hangszóró"
-
-msgid "Headphone"
-msgstr "Fejhallgató"
-
-msgid "Line Out"
-msgstr "Vonalkimenet"
-
-msgid "SPDIF Out"
-msgstr "SPDIF ki"
-
-msgid "AUX 1 Out"
-msgstr "1. AUX ki"
-
-msgid "AUX 2 Out"
-msgstr "2. AUX ki"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Hiba %d bájt olvasásakor a következő eszközről: „%s”."
@@ -234,6 +193,14 @@ 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."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "A(z) %s eszközön lévő kódolónak nincs támogatott bemeneti formátuma"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "A(z) „%s” eszköz foglalt"
@@ -250,6 +217,14 @@ msgstr "A(z) „%s” eszköz nem képes felvenni a megadott formátumban"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "A(z) „%s” eszköz nem támogatja a nem szomszédos síkokat"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "A kiszolgáló nem támogatja a tekerést."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "A(z) „%s” eszköz nem támogatja a nem szomszédos síkokat"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Nem kérhetők le a(z) „%s” eszköz paraméterei"
@@ -330,6 +305,10 @@ msgstr "Nem sikerült elindítani a dekódolási szálat."
 msgid "Failed to process frame."
 msgstr "Nem sikerült feldolgozni a keretet."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Nem sikerült elindítani a dekódolási szálat."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -432,3 +411,57 @@ 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 "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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Kodek visszacsatolás"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "SunVTS visszacsatolás"
+
+#~ msgid "Volume"
+#~ msgstr "Hangerő"
+
+#~ msgid "Gain"
+#~ msgstr "Erősítés"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Beépített hangszóró"
+
+#~ msgid "Headphone"
+#~ msgstr "Fejhallgató"
+
+#~ msgid "Line Out"
+#~ msgstr "Vonalkimenet"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF ki"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "1. AUX ki"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "2. AUX ki"
diff --git a/po/id.gmo b/po/id.gmo
index 7d55a2b9db6a49efff379271a6a6e18587b9cbc1..d2adf84c1353fa6bca1f68f0d2c6f9e07e45efbc 100644
GIT binary patch
delta 2068
zcmZA1du$X{6vy$iYioD6&=%V50&UsR0=8XP`mm^7>>?CfT5CaRi^d0A1yU&@uq7ce
zu8%+cM;Nq_RH4{3##AC~e8p%qG3Xx}pTwAuCX$Hp4>TC#1C8<f+u0__P0xJpOlRia
zd+wS2_`Wv>GBfiFo;TVSqMA78H_PC7AqU!#BC|Po6nk(A!}u%e{y@NNF)qb+?7$oG
znY?dfE9Vz+3DyS97GW1wX{d+jG;<+?^>`X@z;n0^3qs!Y7!GjWk9%+$2XS$+Sp)7z
zEn)&&@G@#*ab{nOy{K{aU>qm0Tuc3$j>Cl?Q8Nt8^&VJ(%+NNW9^8d`@o|jdH<&^z
zF{^_iydIxL-G34_@b{?q7M7YV#|G3w2eC@2eu_>9zKET89=oui%xo3zL#^;tY{Ijs
z0gC2%D``WW590zHM@{q%)WARC8Z4Rbo%f+8md4CdI!EYekKRWIe?$H(T<-049g<CJ
zN3F0MHL+dz0#4#yOjMYy#FN;FGZ@8E3dX^e$e(TGki_j_@}HnH#RWZZ9<}%7m1b?2
zz}(*A3eG3;=bz(3&M#vNRz$ol=|bI?My2=!p7oi1itK`&;GsM46e?5yE+qdNFhWVH
zSdzFFAHY_ez;*a7YKy8Ui0g1GI`}l|D|i`i!VgeI`zLB5QT`dnUerV%#|QCs+>K?K
z8nbP5o<u!x0d+$Kv(XFF=-@P}$Uei>_&e%_Em1SJ*LEO}+5yzwj-j^dUDQfvPz(D5
zwV*b~tC`FbbROZtDO4t^Ssq>Mz$V;=s@k!<AE8!s3AIv(Q8ZvDZo-||jqhO(2KeV%
z+>Cl|43*h4o*Daxj(#wjDb<^C2WrO0QJ>j6$Sw8*uEQV|tBLla_IMPPnPaHuKS52*
z$AR*&I#jJBk*wQ2$St-XSL^#9r*o7G-{Aq=$J@2?i>PXj@^-RqeaNEiQDl4VIqbk`
zY{pBNz$MH|#k>`hcn~$=FH!IN3$?I%D!Y>Lt)GtedIVJilc*GZl|K(~w~uqJX0~Ys
zsspuRqLk<+dWa~ohPb-%mF5~>W$yPyS<WbBYK)a@N>u@&V$!6vl1@TR+q5Ou^9~Wv
zp3WusK>pX1L1l?Du%i5b?#4Uw{Q+b<wSF%>AuP<D<qMGhHH1>GN>^(2qcq!YrK4=k
zHf<3*nA>BeS1mxO_|_Av2xaxkR;Ka&`77F+5@PU*JG8HAcM+S3AfX?S+X+>>z6`cK
z*V;MWMkKw{+z(hU{XXIrVgtd}TR*Xpm`Bt)94KtNmIxD9w>fSwIOHA-hTXS<r`^{=
z%d#(pT0`#774_Lfc*^JgQn}oXM+UNoBisF1-=b#!g3i=PD(yTrnojL?hEgNLJDt?%
u!^6Ad?&0bW-B)Vj*+Vt8#qJk%P1#ue8Q-B;qq`w?zx#KrF?%6)um3+4TFxf`

delta 2827
zcmZA2Z%kEn9LMqBMFkZ3FQQm-6hcr@xu|K1D4>FX|E?gRX$LsM1w5B7T(`FJKIqR@
z4_bE9ty(KvY0c_EENiW@|30WKTeg}~%N|rNYgs;UHMicMdk*IOjqiE=e&?S1`};kY
zlkKN>$A8G1c-T<-iCc)l3C8HgyQy3#Ig^c<in-W~voRg}kv}u+x9|7c4`TuMAIBU#
zhU)h%oQ-F34gQTwjftD!6l1cu(Tm(L2XGmlz*4+`MVOjl%q*OPL9D?F9Kw0{G?w8<
z{{4&CPCK93--G?Q6UT5qF3mKigYnH?D%IS08#TjASb`bMN&_v%Mc9S;cnB?g2{pmb
zP|yE{nqYRe_q_$Ee)r%4d;)EJAIs5Vd*(8}X`-Tm22mY7hwAuaT!_D-R$7qj4N!{>
zw0Ge~d>$M194^PIJa2`4SVcR5>i<(*gjfCcJXRB*!HrHTn&~iV;N!R!zwq0c)4YiV
z@iy+aqmJl4wD1j_h+iYeYQ95u-~5D(W&S|rM1V^g7NT;fxPblVcul$gK{e`&t8gxE
zM6IYFkKj>^;)>}U3!Xqu%bdq0coEfcQK2`H5-g@&i59jZT^JWR1@mAb`(I1tNp7sd
zv#5@8*cK(#I=lnJsHAxjEAdOeeGO;QF6W{htV5mk0n~FZppNbg>V^6TzX`AtWHjkw
zzKxSHEmVF+t-P9dg#<OVsCJ9r?m)&e4zfsd5H-QWsHA-l>u?O0Vezfr0Bu-Ly9bps
zFXJ5i9W9J!^KHIkmf-E!ih7M6LapFcRMMP7t#C5?xfg3Ng3qFZnU?qbFzWN8sQv<s
zM%AoDWql{E#s`r8;^qS?B(AxFOv<Ek@OleMQ901aMJpe`I(!hdqSF|}3?A;sHK-kV
z1ugsvmHmIA-l9@6TW&)w=pdHq{eO)L&zQ5g4X@%R+(fE3<6+dm7f@d;WqY*6A>T)E
zDeY6Z0<WMZT*+*d3mZ`VN3kA{Ab;i@mkP!=DeQ~3W+4}K(1!G39>a<FChE0%2bB|_
zpmN|0l27Ir|9*f>Q|@G9Iu>CXmY|M!0kQ_uh&lon<4;jJLFHatPl{{HPNA~%GU_$c
zGBofK)BvlIbTCcGshK|1FW;l6*XkHH;7QaG{fm0L7P0?&yZW&fpIONMYb(xkLjz49
z<9OCoqgJ>Vl|%=SKl3^lZT*<v&f`2%X|Kfqt|aujYPFk*@xsT+lF3!csXkR!>-<%^
z34WwZ6VXhlSjnsRi>Rt5rhi1siOIyxWz7vYTK#$l-bv`(i-|piN*lo%%npsuuWWLg
z!Z?B0MQk9H11h^clD}L^M3q7!l&pC>VEc8Qx89-_VlAOWc8D8Gmfz^a<nO<-p0_Dk
zIEmz0D}hw>&i4?cNHU8jA^Dd4$D^}X=I0VhT%CD8p(JZ3))PA3Ed;4#YKZZoJfOr)
zAJ<x9r<#7b3uh8aMwKaq5=_a}MNB1>FO5VmkwR=IZY=v~<PcklJVN=jj!@BC<rVcx
zQBvJaD63VJttN3Ot*f-H!>Y2HT(d4&*%BK`)`H`=f)=+Dm(vP!>SE!+k;<@Zg@zn^
zz=<Z((nqKEINerDBr?=xcMl{krB{spn7(XE(MCJ$nnuU&8S0C;j%jj7oTzILTJ;Ty
zY5DU@TEecQ{*!9N)^K+;;yv3Mal<2#=x9y;@j#jtio~MbPU8D%)wx?6nl|W5p=3pq
z$|~r{4#nK|9ii(}7<CGIQ&QU_gR%Y2=;wviDOKLGTJ7Q3fWO3MXE0_*{Z;<|LD2F(
zNL-s)G<~b%_Bv5}*b4EeZS8QPU18TwOfUK{Ykaj<bEL-^NEFRlJUVGsNyg1<u5Vzn
z-m(+(%7PV}?7>*n@`m&3{ybX41JTI7h-=1I-cfcskQIvU?{cEnc4xreZ@Y=v<yAAh
ig?l}Cb$`N}%lBkopOv>Ei9gG$M#suKQ_{S>F#iE-IAbvY

diff --git a/po/id.po b/po/id.po
index 663fe1184..583aeea82 100644
--- a/po/id.po
+++ b/po/id.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2016-11-10 22:06+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -25,6 +25,16 @@ msgstr "Server Jack tak ditemukan"
 msgid "Failed to decode JPEG image"
 msgstr "Gagal untuk mengawasandi citra JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -56,6 +66,9 @@ msgstr "Server mengirim data rusak."
 msgid "Server does not support seeking."
 msgstr "Server tidak mendukung pencarian."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Masukan audio tidak ada atau tidak sah, arus AVI akan rusak."
 
@@ -152,60 +165,6 @@ msgstr "Divais CoreAudio tidak ditemukan"
 msgid "CoreAudio device could not be opened"
 msgstr "Divais CoreAudio tidak dapat buka"
 
-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"
-
-msgid "Codec Loopback"
-msgstr "Loopback Kodek"
-
-msgid "SunVTS Loopback"
-msgstr "Loopback SunVTS"
-
-msgid "Volume"
-msgstr "Volume"
-
-msgid "Gain"
-msgstr "Gain"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Pengeras Suara Terbina"
-
-msgid "Headphone"
-msgstr "Headphone"
-
-msgid "Line Out"
-msgstr "Jalur Keluar"
-
-msgid "SPDIF Out"
-msgstr "SPDIF Keluar"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 Keluar"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 Keluar"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Galat membaca %d bita dari divais '%s'."
@@ -228,6 +187,14 @@ msgstr "Driver dari divais '%s' tak mendukung metode IO %d"
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Driver dari divais '%s' tak mendukung metode IO apapun yang dikenal."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Penyandi di divais %s tidak mempunyai format masukan yang didukung"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Divais '%s' sibuk"
@@ -244,6 +211,14 @@ msgstr "Divais '%s' tak dapat menangkap dalam format yang ditentukan"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Divais '%s' tak mendukung pesawat tak bersinggungan"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Divais '%s' tak mendukung penangkapan video"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Divais '%s' tak mendukung penangkapan video"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Tak bisa mendapatkan parameter di divais '%s'"
@@ -326,6 +301,10 @@ msgstr "Gagal untuk menjalankan tali awasandi."
 msgid "Failed to process frame."
 msgstr "Gagal memproses bingkai."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Gagal untuk menjalankan tali awasandi."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -423,11 +402,62 @@ msgstr "Mengubah resolusi saat waktu berjalan belum didukung."
 msgid "Cannot operate without a clock"
 msgstr "Tak dapat beroperasi tanpa jam"
 
+#~ 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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Loopback Kodek"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "Loopback SunVTS"
+
+#~ msgid "Volume"
+#~ msgstr "Volume"
+
+#~ msgid "Gain"
+#~ msgstr "Gain"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Pengeras Suara Terbina"
+
+#~ msgid "Headphone"
+#~ msgstr "Headphone"
+
+#~ msgid "Line Out"
+#~ msgstr "Jalur Keluar"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF Keluar"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 Keluar"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 Keluar"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Galat arus data internal."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Galat aliran data internal."
-
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Divais '%s' tak mendukung penangkapan video"
diff --git a/po/it.gmo b/po/it.gmo
index d42ae1a6faf9c5dff4ec11c45d80445ae3c2f5f4..5626423a9ecd372ae9f0c051b3d329501e809c97 100644
GIT binary patch
delta 1240
zcmY+@Pe{{Y7{Kvox|S`s=F;-tbZKjw>B>xtRa!v`fsjeo!46v*gvQ*YXbDXctS()a
z5g8o>p^otbD~wKcGV&G%(P@Vo<*`G-===PBOXy|qKJWYc_rCA*KJQx3vuNh4*FGnd
zgVcKJ8=FWU4wv#rxnUP6$23;qEb4PlumNAAzPpBX=-MO_#xMqP5cl9z@%jP|(f@!+
zk&HAuM9y<z4qNaiUcl<jA|04S9cU4E<2!7|?-)Z@nMeo|*o2Sp04}3WXdU~|xkaQ4
z&tf~?!wBQcG7Wtpk2;{wX$>@h$LU`$_Ftk7`~^EvwwgcbLjCYbe28gGp@*>T!x`L<
z1~y_2{b+X)QO1`54SnDU25}st_yAjQ72EK4u^)1a)X*QqGi=vY^w591&5G12>U-;`
z5vk$kX*`O%@DA$4o?}K={+Wh`q`ZQMup4jU6yC;PIDu)e$T7@g5<}aWG(N^KenS18
zR9fHbz*}@jQ5TTIR`ilcz1UMl{B@?YTo}d|cn;k=L<VpKb?=sn7K--nv_gI#<J^Cb
zI<Zi-$RWIp{rD95r2IgQKnY>{i2XQ^^|i#moyMzL>%}~34m6QDx}qV}kWJ$$T)<BJ
zhTYh}QPBQH)Pb`_S5T9+)F;9YNeNX8xovK>wl$YD|27Iy78bZsSd<WHGifw@Au72g
zdNSE^;Q$CZD^9BJr%sgI5_ZAb1|((7T-l4vMOdFXF;1&lG8%r4qIpKGOV&RTGtV`t
zVMd4ro1rA9%)+VqujmnFdnG{CB-VY7P&EOyXf!pl{|W&Tzd4s+U^3{Br~Rs&xHfVn
z;hz|frQ@+nWB$=pDv^p9QOCT)sC3QPvWxCkBj>(rGbTN8TlP;yqtWIqlo?}n1zUF7
Lci33*IZFNlF5`O9

delta 1925
zcmZY9PfQ$D9KiA4Qe-PdC@WB;{+a%v3sh)XpjiHvvVvGitE3d0UWR2@C%evUhuxUA
zv8zTCHF{`>UO4oiCYo?^4{eN>HvUUgqK78d#70vOHO7XT7&RX7`<t2d;tP+@dvAB%
zpWpk<zCZBYXz@m@@-3kxsrOTdDnv{?Rmnffk9UdG;7_<2Z{ywgXV{Na1^sGlWV`{l
zVh8GcgZLoMVJ|+1+i?}!MT+tTjW`3p;~s2@`X9&`&eG4|X}pRju$NtQ;2SuHm#_!7
zvMXIEiMug{yYN-i1Fd2k)>ez`#C}Y$zMQ0?J9-l*@dG@7cd#4Vwup4$Nlf5ts0)6K
zy3jfv!bZZR{aMt7&tV^4L=EOOWDoK^@`(J5QP!7r8XQ9YLe`YXJ$!&Qs9$VA-H?HA
z;|cWeHts{SR)nTp!2Ng;b-r&<7rc%S;Y~DfQ(bUXyRoPb4A6*U1_y8%J8%s<@$ax7
z=VI@p{}ggtlEq^YktO6$KB*5DzJ|K+jj(?!?B7AXqJJ=kEivM+3w6@dJDJ1B@f_~J
z&u|~!!UQ(o8(hf|9HRd`p2d&wCG2Yu$>C)j#&$CDG^TM7uVXtlHU;yIHWB}B20RAN
z<GZLQ-nC8SVSExN@I2~9KgCnHj>mDjneX5`sJZh;=rCc@{wsI@zs7m2Yza1&#(w(m
z6=_V<_yP6K_L7Mj+Fq>2LDcaH)Q}zxeHt}KQplksgBrOPaSgx16<pyR)C2ZEAi~+i
zMqT&?)Om}SY3RgPum`_H4bcYb6|{3<kKz&R!wWcqpNIV_GD{~M3eBUw1*@nB`4&kL
zKYIJITn1>6v_(I0%7ePFzB=VH8aDK#8jVM&9L(QX7wT&@Ol1u}AHZK+H&mgWu;^Q)
z`J>6ZjjC6yQ5(_spDPpI4F6Y-Tlinm#3cXZ5LF{}m^x0?q9N4qYSDZtmxDBnu(LOm
zob)5u8um9~9qaoUz6X=kF{&0#8ZCNfB)6ZvL|nKPKdkkrB_81a*PmN0{4)DRuTzWu
z?6zqm-ntYw=Fb?aj2)jdx{Zk`Cu|)p<o#B{2!|4eKU7$-T_cw@&&->tjA416>vhTD
zf}PEG+Kw@kv&@X;l~yWOszxSF+mXjCb0PPP>sT`7<SoxJv&MK*p0FKDC-&8Or|p#I
z2H%@@9Xs!OrM@jMN211zTkulW@`p7&^~aJ^6Z+7M-{7gz&6?LERkLok@T^tJ)}|t@
z!6{faXt@6!A{<H>3@xwK8L_c!-pzFxwv%$boa>o+xAa@x#^%w<g1KO(9aqK+i;K1?
z<4L}w8+ZN9n)JekPVR4e(dEPPu77Rbh&0W(UfSX*!?V)%Qr<Jq+C*UamzIOEVDn58
QG?=8cV|%nB8k|D@1z=kJ*#H0l

diff --git a/po/it.po b/po/it.po
index e248659db..1cb0b399e 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\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"
@@ -22,6 +22,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr "Decodifica dell'immagine JPEG non riuscita"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -55,6 +65,9 @@ msgstr "In server ha inviato dati errati."
 msgid "Server does not support seeking."
 msgstr "Il server non supporta il posizionamento."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Ingresso audio assente o non valido. Lo stream AVI risulterà danneggiato."
@@ -153,62 +166,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-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"
-
-msgid "Gain"
-msgstr "Guadagno"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Altop. incorporato"
-
-msgid "Headphone"
-msgstr "Cuffia"
-
-msgid "Line Out"
-msgstr "Linea out"
-
-msgid "SPDIF Out"
-msgstr "SPDIF out"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 out"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 out"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Errore nel leggere %d byte dal device «%s»."
@@ -229,6 +186,15 @@ msgstr "Il driver del device «%s» non supporta alcun metodo di cattura noto."
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Il driver del device «%s» non supporta alcun metodo di cattura noto."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+"Il device di ingresso video non accetta la nuova impostazione sul frame rate."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Device '%s' is busy"
 msgstr "Il device «%s» non è un dispositivo di uscita."
@@ -245,6 +211,14 @@ msgstr "Il device «%s» non è un dispositivo di cattura."
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Il device «%s» non è un dispositivo di uscita."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Il device «%s» non è un dispositivo di uscita."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Il device «%s» non è un dispositivo di uscita."
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Impossibile ottenere i parametri sul device «%s»"
@@ -339,6 +313,10 @@ msgstr "Decodifica dell'immagine JPEG non riuscita"
 msgid "Failed to process frame."
 msgstr ""
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Decodifica dell'immagine JPEG non riuscita"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -453,16 +431,68 @@ msgstr ""
 msgid "Cannot operate without a clock"
 msgstr "Impossibile operare senza un clock"
 
+#~ 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"
+
+#~ msgid "Gain"
+#~ msgstr "Guadagno"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Altop. incorporato"
+
+#~ msgid "Headphone"
+#~ msgstr "Cuffia"
+
+#~ msgid "Line Out"
+#~ msgstr "Linea out"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF out"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 out"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 out"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Errore interno nello stream dei dati."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Errore interno nel flusso di dati."
 
-#, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Il device «%s» non è un dispositivo di uscita."
-
 #~ msgid "Got unexpected frame size of %u instead of %u."
 #~ msgstr "Ottenuta dimensione inattesa del fotogramma: %u invece di %u."
 
diff --git a/po/ja.gmo b/po/ja.gmo
index f9348e02951cde3f5212dfae35269cf7da8a77aa..b91e52c3ddc93f9a3c34f2016cce883625cb791b 100644
GIT binary patch
delta 1602
zcmYk+Sx8h-7{Kw*aa^lu+|9Oe8ON+lZ7f^V%=XL*&C(*$3ehafEV74&90;j=h@pZg
z2#uhijY}dK*+Wle1QE1hR8u`hfq_s#|L@*;@W3~}bIzTad(L;hd!N;PsrG%0w_g-m
z1u=v0+C=KG(#{9%euT(me1J*#1oeBbaTfkUFFGSdrsHaygAM4xbC``rX#PFcGPXyF
z91-!!PCDC}c!9a-juzR0TW}%XLcP%_X5wEgL|2SR0#;)dHlbcWkGhciI2T8-0mm^1
z>tjVS(2s@OUvAQw$HY6-A4X0RS%n$67MpM#-or&Wj=8viv=m@H>VnQ=9u9@ZKTtQ2
zKE+z#HeA8@WN18yncQDK(Q%{QAyS077>|39d&yDM8~gAQ_G3G4n#v;ZDdyu(oQ>&D
zvV-NQN7jgCcmkK<0OsQu`aE>paUx4`6Y9>oaXuQM@n@XIcrvTf9cAO)Fm{f*z?ekq
ztdnpq;}X;xG~-IVf_g-wsK2+dDxF`HME<qY$%Ll(F<!-pWRYR)#U4DEV*TI`>bNx3
zs+keg1!u9k65NbhOFgJ({S8;6BTZyE*5DGnfLri+8u@=jX9fqq3*X>Y^itv*@eJx8
zyuv(8ohh;n*P<T5wUACKRB!A@-N*;5!z|82J%#!|Z$sl*F6%xgd~`Ge!>9|Gk}k3a
zTTtg8U>T0#A@pWgMcRj&(jjcZulNruc?4eL1}@g%YznI$J5c}UB`(LQJd<WkRnqBT
z!jHPManv7HQ5c$uK0J=Uu?kzst6m>O-Kleqb=GyL890k!sEsU}jpPX@C&fewF^|y3
zJI7~MFpDzV3O=<$C${JbgF^ajRALEg&ulh6DP*De&Fa_lrHsTyP#)$xp&Yeo#waPX
zxa~Tj&;Lr8W)7^BXjjjgqBq}UOLbyGW8-EjdA!XRlU|A-wDL)wBoe%9gwimZzN8`v
zO?v^M1xqr`CntY59WTKvK%$6JLR%3*Et-!@I64SziwR1>Y99AdkE^lMrAqm+ea&sI
z!>tXSjSYJbxc0ZVx3%XPEm1wufp}+vvEJzq3vWKu6ey2L3k<|LjMVrgHe*NPU|66c
zIX93p(_vgru60cRI?(g|PG9i!?O<1L(BB>OUk`RY40hcJc0DqVxchB^51!0GeNM4)
IJ14>ZA553D_W%F@

delta 2326
zcmY+^du&rx9Ki7(V-FlU_9$cEfXn7AW58U20b^r>4aQ(NV2&|jOv+ZFVYE;>jQ&Ag
zugH9mMGI4dqVW*}1V}6hBTVBX#F%J^kZ7Xu4=)pW7=!;{qM+a3y?3G~IsKe-+It?q
z^Sk}2_4AI{kGZJ_gwjeaq@GL>*@4Yzd{DA8MDE2L9D`Hv9`w5X3b$W{;~8(jY}|-C
z-&UN0eK;52$NTXIEES2#A2hrS6fygQxDxq7cHnwEh`OQQu^qcueFmPx4R{6TU|puO
zP!x;lC(wtdF%Pfd19->%zId!|Bqq{Gql_;)(U1K&9dBY0PU84FQ4P+-?WiYs0~>G<
z8}SaVz~%ReRAN8Q!1GvvH&N#)&Jvl8>(R&hvWJGA;0)>xZ(tqfjC1<yP*3y(mf%60
zho4|7-a>*Pe<6F8bmE_jxkzxO1PPwZLJlvL?)Van=>ttPbjNKtfG=VMi*rQEaRAx8
zoX3ao66%C$tfC8N;Z!U@0~es?LI>7j7#HCQ)aS3GUU^|2@voxMzy)cjVmJ$rxc%>N
zBK^@GCqk1ko&H)pK8pKCJwQgjW1j0&*D}}ns0-GkUfotK!@c>$Uw4#bU@2Zky#nt9
zXTfIF@uyusL%rkl0+H9T1;4}_xDQXWTmAjANlw2H+v(@Csva<eHTW9p__r|{(`l6R
zt}Me1SdE8pA%2f*aQtMEv-mhZiqm+f*5Ynlg%?ntFXSF(<0fpwmoS1?TsIod!e5~t
zBvvwwd!i9?{Q`BOq9SK}3+h6jqMpn{Ch7*-aXFqu9sd(+aWUZw;cnF2_!YTsxrLfD
znPf0$mOLb1V^Z!kq!u-4T97wM0?0EG!Oi#z-p0T265i&|;t~9Yi)AA562^@<A2lal
zc0Gi;u_IWG*RT@3r6N&%{~x2Fp}L4VVJR17hZc9yzkm;8BN?OL58w*Cj+#4jXF4Gb
zpeE-KlACsdHR4Fo>(nIFq8rj{TEP1MD-HBCY$JudlKE79E67b*Le<@C$#$@>i$mFE
zj_X`p<+iy|JEC=%;f^grJw(jM$2xbAWEF$D*zIc+#<*>QW0w>@GpVgk*Zzmp@N3DT
z>i>im^42aIaspy!zYf$>HK9ot;bn^1|IK6RXy~e_BPEr_RH`PICfaK1XsU)>|CClz
zHL*O@W~!D7DldZlFR4k^L?umxmqxOvyq*7+8oR|2TWDyarBO8j^{(ep?cy!j=`}Vz
zX{fTKZG%x^G=<zoOHb5p`9_9(21ALVv<cZudxG83S;3Iex;^0E8i*t>rtKTEw$UF9
z$%=r#Yx|aPC?HLtXdn{ucN_H$w0HTtgI$I{8s28?3_cZ@EzQADKxekqwN?i^BVp&!
z)!|Su8jd6*S<j5hFj~Vsk<LKkw{dfF)-*IN*N0l|22Ul8?5dRX_2KTGZGmJ*?zvIr
z_9=$<yf^&(LFXXDd(V!veg7HvIpYbBr)*-vGLKqjpA~=CGLu$(&@%U1<~b{VG+FK0
zoE5X;A2?r$Wxi^ere!{7nFp-+VSX*c&+hqU|0&LR`OLnbkG*5{9<kzY>tyCzR{WGc
z7eC8$hn*SR4czTJo3qSA_AgIZ=CQj|TP72|V5P-BW;e-?iatz9EG|gTw&Fwf?gqu`
nO<29h6FK>XiGh-Z6YQwCD>!X?_T<+kp45!1Zziwq?U#Q5{+E0~

diff --git a/po/ja.po b/po/ja.po
index 26f769049..e48b7ef9c 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2012-12-22 20:13+0900\n"
 "Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -25,6 +25,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr "JPEG画像のデコードに失敗しました"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -56,6 +66,9 @@ msgstr "サーバが不正なデータを送信しました。"
 msgid "Server does not support seeking."
 msgstr "サーバーはシークをサポートしていません。"
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 # SUN REVIEWED
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "入力オーディオが存在しないか無効であるため、AVI ストリームは壊れます。"
@@ -157,66 +170,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 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 "音量"
-
-# SUN REVIEWED
-msgid "Gain"
-msgstr "ゲイン"
-
-# SUN REVIEWED
-msgid "Monitor"
-msgstr "モニター"
-
-msgid "Built-in Speaker"
-msgstr "ビルトインスピーカ"
-
-msgid "Headphone"
-msgstr "ヘッドフォン"
-
-msgid "Line Out"
-msgstr "ライン出力"
-
-msgid "SPDIF Out"
-msgstr "SPDIF出力"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1出力"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2出力"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "デバイス %2$s から %1$d バイト読み込み時にエラーが発生しました。"
@@ -239,6 +192,14 @@ msgstr ""
 "デバイス '%s' のドライバは知られているいかなるIOメソッドもサポートしていませ"
 "ん。"
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "ビデオデバイスが新しいフレームレート設定を受け付けません。"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "デバイス`%s'はビジー状態です"
@@ -255,6 +216,14 @@ msgstr "デバイス '%s' は指定されたフォーマットでキャプチャ
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "デバイス '%s' はビデオキャプチャをサポートしていません"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "デバイス '%s' はビデオキャプチャをサポートしていません"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "デバイス '%s' はビデオキャプチャをサポートしていません"
+
 # SUN REVIEWED
 #, c-format
 msgid "Could not get parameters on device '%s'"
@@ -342,6 +311,10 @@ msgstr "JPEG画像のデコードに失敗しました"
 msgid "Failed to process frame."
 msgstr ""
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "JPEG画像のデコードに失敗しました"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -445,15 +418,72 @@ msgstr "実行時の解像度変更はサポートされていません。"
 msgid "Cannot operate without a clock"
 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 "音量"
+
+# SUN REVIEWED
+#~ msgid "Gain"
+#~ msgstr "ゲイン"
+
+# SUN REVIEWED
+#~ msgid "Monitor"
+#~ msgstr "モニター"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "ビルトインスピーカ"
+
+#~ msgid "Headphone"
+#~ msgstr "ヘッドフォン"
+
+#~ msgid "Line Out"
+#~ msgstr "ライン出力"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF出力"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1出力"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2出力"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "内部データストリームエラー"
 
 #~ msgid "Internal data flow error."
 #~ msgstr "内部データフローエラー。"
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "デバイス '%s' はビデオキャプチャをサポートしていません"
-
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "サウンドサーバーへの接続に失敗しました"
 
diff --git a/po/lt.gmo b/po/lt.gmo
index dcdbf526ac8ce717baf670f09a668ac9bb426fca..e9e7728df911e65ed08817892ffaf2eb6320039d 100644
GIT binary patch
delta 1124
zcmX}rUr1AN6u|K_Q&*{(I-8r>uGyN?^3Rs$p8_Rl2}u!HzU4JFmaFNN44+m}Z}zn6
zr3eb@Ik*r~54{x?K|$0@`4U7(4@O~85q-~Z%LBiCe!t%?_uk(*=f3Rv63Z-B7G4vg
zg|V42?-ALHe+u{^me+`s;#aK3zo^&w3PrYHJMO~6Sc{i2g12!yKEo(3<53J2iA>`(
z9uvvPM<z{d^cIT@;{?X>F>b?e*nl-&5gYelBi_QT_!MKfg!%$?Yef>+jh%P_+i?N)
zkV~l72iECxG9m|==!4E<AKuNcKcPOjWW7iSwxZr}9IxX|bTD4Re|Qhu@NHf%X^XJ#
z!X6yKCcJ?=@rkZ^zI<mAz)+dU2h!h-y7rgnQr?bwqXcT|)2Jt$N6o;S{Qo~tUo^B)
zWCsr6AYQ}?e1$`}yCU}jS1>~j<Pnoztg6hN<Pf&8&fpomk6jq5%GGojH4_;O;{(*v
zy~jT6@KGk5MePkYzy6Hftiv=?9FJF%|9wodY_#G#jG=dv$N=`>e!PTN@dZxdh(Ff@
zuk-%G1MD}{<X$j^ovgFijL%V1zmi|qlU{A!!2tOu<5JI{LCwV+Lc9zb-2`o5g6s;F
zF<osTNipRBlLhS|?k|*oHT0oW*EH<^%@7kU=LX%-`fHPE1R0b_IHU>fR_*90gO6Y}
zXkg)^F*Vjr?G-%@Nib2sFPSz$WzA=+eNxAuXHD}-Bs>$bM(1iRok;)Lv1HnsO4)Ox
z_K8Vr+;P%Qi+iW&NU<9)J?F_Tlr_66WigN2TK?1HOW4j#+B)f^PbE*Mt;v*~9J8~F
Y{zms<h2QH&1GAp&Y%uEn4i0$!0sCWjz5oCK

delta 1834
zcmZA1U2GIp6u|Mbv|XUkZfUVwQR;w{ZHt9=Td;sMD4TBASTNKsebb>G>ZRM6I=hQD
znrwn5CO*2Ti7_!njhYZl-1ue;iETmvzaCZmNQh7J;DeepO5*>_Od9p3cYpWZ+1`(H
z?(FUK7sHhwTkBsF$_Vvd>gIJK6Zm%>AC$2M#xRE)FpnGY$*6ClzK?e?{sOk(tElt6
zgPnK<hwvx72e-yWQX&=Ur?H!XDeS=t=J7*(24%g-De$ouui+H_frEIQUG2j2ct5_6
zHeSbW>|?h(F^_3nMBTt8%(A{*rE!3PmPU~Q%;H}CBI-YUfV$B4s0$@Fi5$ft)P5Ot
z;Wu$Veunk<J2JJbB7agx7}>KVkiAI~8(Ckh=)oS;jSS-Jcouz(HHqxQ67nbS^3jhU
zqfT@Sb)nnQ_@9`fpK2C4geR~UU%@{7B<kP7%H0e!Cq#(0bmI>(7DF9x+QKtTAwzN?
z>W@bKNz|M>*n!WZE_?ws_n%@GzeP>Kj@Iyb1~pQJR^tBvjf)J7<5zeFx3`H*;!CJI
z{topHY}hJt7@xv@_!ep;ZlH^Ia2N~hYB#=z8qpirg>~)W-RZ%j^v|~w|A%ON&cF~#
zGVJfigLHk=++V_D_%rIlyEtwdpTHcxj9d@-1~nx&qy8_bZ^Lg$5F|!e^?PlRof`j9
z272%UF5m(-YzuGiIppy2cGRz-rsO7SN`A#L{0sHO8LqaTcn<gAMbzAX8TD6DU&k);
zqZ_ScXpr*o^r)xP3AE^~)!zkOP;dHSs+NNxK@K&~+o{~uAXWNkSU)HlA-xZ};C<A+
zR82R*4(<a~f}2YtxIh{jO$TWV@(RMif}&A~ev^c25|nN}4^iV`H~1ugLCW;>T8>Z$
zs1}uL5WIr=y6S!C(f42Tqao6wA=Nx-c`!uy!3qkgmvvO$uHXkm!>1wFvLhsT?<Lh$
zOj)NFEma<#oU#V2oEtSxluJP?9Sy~;w8dEUPF=F)k+Lb2`iyH$EI9U@<Ja2iPsT^G
zwsB?5v1b;Z_FPADZpraoyI>v5$YaKJbe=$+dE89<UiiIn&ow2_ugx?*7u#Y@cx8Xu
zk(17}=g$~-wtA&uTXl6)bL+(8ncS$(5jL2l7T-J=i|4&UdETiFH?78wghyEZ=$un5
znPPMhv$FKBe%kua<FvK*xZ0mccIc*O{jyiGi`J~|7mYn<7fzdEZ8R~m{!~^+Tr+Po
zcbV4m8%4<*wrPrb%H_+Bac#F`tO7%4ZON@H{cmL4%=z9K&t-<_+@@Ttz1aS2tZn(S
qZ?7yZ&U@C%l3gh2q}8vJy`ABC*LEFt*LGdo+3{#>qi(FM+xiE4Q4Bx;

diff --git a/po/lt.po b/po/lt.po
index d2731951e..0f33484fc 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\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"
@@ -25,6 +25,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr "Nepavyko dekoduoti JPEG paveikslÄ—lio"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -57,6 +67,9 @@ msgstr ""
 msgid "Server does not support seeking."
 msgstr ""
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Nėra įvesties garso arba jis netinkamas, AVI srautas bus sugadintas."
 
@@ -151,62 +164,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-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"
-
-msgid "Gain"
-msgstr "Garsinimas"
-
-msgid "Monitor"
-msgstr "Monitorius"
-
-msgid "Built-in Speaker"
-msgstr "Integruotas garsiakalbis"
-
-msgid "Headphone"
-msgstr "AusinÄ—s"
-
-msgid "Line Out"
-msgstr "IÅ¡einanti linija"
-
-msgid "SPDIF Out"
-msgstr "SPDIF išvestis"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 išvestis"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 išvestis"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Klaida skaitant %d baitus (-ų) iš įrenginio „%s“."
@@ -227,6 +184,14 @@ msgstr "Įrenginio „%s“ tvarkyklė nepalaiko jokių žinomų įrašymo būd
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Įrenginio „%s“ tvarkyklė nepalaiko jokių žinomų įrašymo būdų."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Vaizdo įvesties įrenginys nepriėmė naujų kadrų dažnio nustatymų."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Device '%s' is busy"
 msgstr "Įrenginys „%s“ nėra išvesties įrenginys."
@@ -243,6 +208,14 @@ msgstr "Įrenginys „%s“ nėra įrašymo įrenginys."
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Įrenginys „%s“ nėra išvesties įrenginys."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Įrenginys „%s“ nėra išvesties įrenginys."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Įrenginys „%s“ nėra išvesties įrenginys."
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Nepavyko įrenginio „%s“ parametrų"
@@ -329,6 +302,10 @@ msgstr "Nepavyko dekoduoti JPEG paveikslÄ—lio"
 msgid "Failed to process frame."
 msgstr ""
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Nepavyko dekoduoti JPEG paveikslÄ—lio"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -428,16 +405,68 @@ msgstr "GalimybÄ—s keisti skiriamÄ…jÄ… gebÄ… operacijos vykdymo metu dar nÄ—ra."
 msgid "Cannot operate without a clock"
 msgstr "Negali veikti be laikrodžio"
 
+#~ 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"
+
+#~ msgid "Gain"
+#~ msgstr "Garsinimas"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitorius"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Integruotas garsiakalbis"
+
+#~ msgid "Headphone"
+#~ msgstr "AusinÄ—s"
+
+#~ msgid "Line Out"
+#~ msgstr "IÅ¡einanti linija"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF išvestis"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 išvestis"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 išvestis"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Vidinė duomenų srauto klaida."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Vidinė duomenų srauto klaida."
 
-#, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Įrenginys „%s“ nėra išvesties įrenginys."
-
 #~ msgid "Got unexpected frame size of %u instead of %u."
 #~ msgstr "Gautas netikÄ—tas kadro dydis %u vietoje %u."
 
diff --git a/po/lv.gmo b/po/lv.gmo
index 96aa771b8aa661fabd1e487e9ee2c3a131cc945a..fea882c95bd07e6eb6dab30d56bc9354747e1aac 100644
GIT binary patch
delta 1643
zcmYk+S!_&E9LMqhRB5S}PFq!5Z>wXps<bGIF0?AKK3FOQV~L=Y3L@x48V{a4Tt!4I
ziAcN%8B0`zhY}JA5wSfWli)>Cgy03=-@T)8lK*_}Irq-JXZfG=V!@Bb=$l}2hfx}c
zVMKkBSp=Jt`JsI7ZPp*ZU=IF9J(u0bYy_5LH7>%5cm#)H7Z&3?3}e3(vr$-qYF~~^
z&7#)M#SR)?<1(C=YF2{hu?ZjJ1RUMh|KLg-Nqrwy;2F%qr&xp^68F>k`5hUDV`!g?
z8rU8jjjynf?^{xu|Dq6<a-#_~f<su3=dck!;2bPtIx2Awmf$5U$5*HhrKR%>R-@`$
zQ3E)O>fkf1#b2uPeXGjwN3<G4)Z1|qUc?~2MNR!zqz{%l!0$jd9-}@NTQQE~aLGWk
z@puUH@j5#A9QB?bScB=A%>Ohl=5sL~4`UcRu?pj;5e}ypV{s0uz8mxK9BO2@@JYa|
zJJEhOoBz=M8Xf$J8hIXHSFTj!Y&?*|{5xE9(V*mbk7d|@kiTZrP$Sxi%8lc=4ZCpz
zuFCa0-i2!aj&-<xus`w(s2RPFO3qKHjup^*4X7rM`PTzmX(&J!%kdg&X+Gj)+&IL4
z?hH<)eh+K$4?0*&!YsrHuEZ+|GuSE%sBghZ*oh7JIbmg#?o`pRAE)CD)Ca$zW}=im
zwis8S>X%VHf19YMv%pHy>B!*hAkt?$iP{xcQSX0%C$N`e)`q9B6r)2KwzsyZwcm~0
zv(s3JcTgjUqn4ta#!8H!a^?hTS3E?$Fv#B2b2X?Aw;+>br*Q_}!~iBr)VryQrj@Ph
z9X6`#CHep<VdRfj_^-D-s`U0+{KH7Oqtc70Cg_VPu~jsvVj_vqQmdp8q!2R}^`}W|
zLb7|?f*dl=2IJiE&H?Bt8i5Xv45E%mCYTs+%E4Pg?TCLxNvAS}&<?02ln1j2cA-t?
z`#og<SK8k!l{b~Tp{f4Au*1C5Ol#^8q=8q``JG8<DgPBx$jc4YwQVbOLFq$iX)GMt
znICr6?sd2bTivepn_8Uh&5^xpBkQ&}8(LdiTFcycN-TChH80hDIj}eu%4`p~*Mp_*
z_u$glimZ4bR-f}J;I7FX?snupinR^C-Pc`JI3aeo@Myr@TvX;>E^3ZV4do>L1$F7F
AfB*mh

delta 2486
zcmZwIZEO@p9LMoF9$Kn}9;KyN3f%*00p+3PNvJ>zg>sfs@F)+_pi5a`d*u%90V4@L
zVu)hG8*`z-_<}%;5eZ6Y6ikp9xuP#LF@^*T36YQ((I~zU2_{Crzug65;-qt*nc3ah
zng7ge@3mcBle<wq?1&+4B-fCy3^68$hlle+I#g^-DZYs#updkCSWrJ1)X!oi?H4eN
z-=X@ug%eQ^FM(Q|i(7D%UX`aXo`w@R4KHFn{)A6rn765Y0d7DW_uzTdpr=1Z#@BEY
zp2j&?^tk`xML3!IW^Ba$I0nz)6iu}d+;AH;kdaLHDV&BjcHvY!hm-IJR7XQc8uK*H
zM?Ke#t(e0$EZ{0EWt#J`3pLQg*nsD-QK7y~VJ6m;`5m{TX3&RI@GLgt)u29(_-aOr
zu?}sVhi~98{0s?>`2v}f`5Mdd8fuAtK~}|tMl)EVY)U8)HB*kdFah;o9ctta*pE9g
zh5z6zOwlWoG$(L2o<a3@6E%RJu@?V83oD4b1~3nqi)kN2{FhRAfrci02i4J4)E*d7
zVay_&jS5{HXJCI&FW?i@@8BFPq4y$OjNgV>4%GF^Dt|(=0-FNcs))a48lzzXzJ&al
z{rp&X1hoX8pmy(dT#41={M~J%MZFKTS&yNX@-k`<-9<$z!YDT4I!xe6bZ}g*+MjVB
z>cU6Zf)m+M3f;@7H9mlI@jcW)ucIPyKe%4cS&LBbzy?erb2G<r0Y-R8{cOgCn8RlI
zDFutdU)YJ`Ijk>YJn$=AL%ojC%)<<>zz+g{M=jBO%a~_z59);<q9XAluE$D7r+N=+
z;BWi&ocWT1j?JH_P1D2~lPho(b|O(UTac)kS5TYot-xcb`%j}b-#KLan9orIyMjlt
zj3d*B@1u@wJ?mPj7_FzE5%r+<!qLEYQJe4#T6hiV%iKqzYHEn5BC`;+#)nX+<veN=
z-$9*!i;bZdx~Tj5QIWWe)x6)_rLY*oyiGG$gCQJC9!^#wINtiJtb5AH>b#xI%6T&d
zZwaK5qM*d#@RFjafhjHVF*${_n5-GCBx@k8WF<vKX_$|9G8B;_GW+yDNyn4D=tV$L
zRMNV4dL{oyCqPLbuVrMGP4oA^(=9la%zpC1rSr^p!`n<NP>Dd9)#PVXA!#|Lk%_dI
zO8IT}i{Af=p!kq5r6ECWInE5;?|rY;t~2`_Ii?C}D7nKc8S{J~%kOPWRhxpgrPxT;
zeppM^5sZ?x-a2mU$b2-t6J(*jwtSoXmq{h<>MpOuPkmjw-rD-AB~44$Cab}UCW1m|
zHsh5VA2c;uH0A#uUKL)Jb$c^2+=La|?bvZAl^;_yP`b_OwpJ&TySLii@qtT4H6yCq
zY&T(6Irg^QJCg~=L=zb&m9TrQ<*oS}qoz+@?Is-c?WwnQxZSCwe{V-J;bxMlf#R}*
zp<*kR%%-}X{K4>?(Q8|yEA>#!D`-F;hc}hQvWX4rV~<{6I{H?qXhX6$yUQ8)t^C)}
zOmAwg<Mi0U?A(11%8k~ecFJnce_v5s6?L`_p4wZ;XKXiZrQ>$tLMoeZ)A@T9-_*1x
zw>fd!vNJnUuCvdfIj+09-FR<$;8Nwql1Xb_$IkA^?n;}MY&zo(zHX;Y)QJxsFXVf4
zD=|1wJ9kDbZtGGogoib6a2;+umE4|8q|Jk9oUQE-RYskZ9ZzQprv{JP2_CigCNt@L
ob)+`GJrb_+<KoXKD0?%?Mt0Q%QTqQ;-;9hMQo;ZV7c}U90YbxEuK)l5

diff --git a/po/lv.po b/po/lv.po
index c3e134060..f2e5481e7 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2014-04-20 16:38+0300\n"
 "Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
@@ -27,6 +27,16 @@ msgstr "Nav atrasts Jack serveris"
 msgid "Failed to decode JPEG image"
 msgstr "Neizdevās atkodēt JPEG attēlu"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -58,6 +68,9 @@ msgstr "Serveris nosūtīja sliktus datus."
 msgid "Server does not support seeking."
 msgstr "Serveris neatbalsta meklēšanu."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Nav vai nederīgs ievades audio, AVI straume tiks bojāta."
 
@@ -153,60 +166,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-msgid "Record Source"
-msgstr "Ierakstīšanas avots"
-
-msgid "Microphone"
-msgstr "Mikrofons"
-
-msgid "Line In"
-msgstr "Skaņas 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"
-
-msgid "Codec Loopback"
-msgstr "Kodeka atgriezeniskais cikls"
-
-msgid "SunVTS Loopback"
-msgstr "SunVTS atgriezeniskais cikls"
-
-msgid "Volume"
-msgstr "Skaļums"
-
-msgid "Gain"
-msgstr "Pieaugums"
-
-msgid "Monitor"
-msgstr "Monitors"
-
-msgid "Built-in Speaker"
-msgstr "Iebūvētais skaļrunis"
-
-msgid "Headphone"
-msgstr "Austiņas"
-
-msgid "Line Out"
-msgstr "Skaņas izeja"
-
-msgid "SPDIF Out"
-msgstr "SPDIF izeja"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 izeja"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 izeja"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Radās kļūda, nolasot %d baitus no ierīces “%s”."
@@ -227,6 +186,14 @@ msgstr "Ierīces \"%s\" draiveris neatbalsta IO metodi %d"
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Ierīces “%s” draiveris neatbalsta nevienu zināmo ierakstīšanas metodi."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Video ierīce nepieņēma jaunos kadru ātruma iestatījumus."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Ierīce “%s” ir aizņemta"
@@ -243,6 +210,14 @@ msgstr "Ierīce “%s” nevar tvert norādītajā formātā"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Ierīce “%s” neatbalsta video tveršanu"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Ierīce “%s” neatbalsta video tveršanu"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Ierīce “%s” neatbalsta video tveršanu"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Nevar nolasīt parametrus no ierīces “%s”"
@@ -329,6 +304,10 @@ msgstr "Neizdevās atkodēt JPEG attēlu"
 msgid "Failed to process frame."
 msgstr ""
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Neizdevās atkodēt JPEG attēlu"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -429,15 +408,66 @@ msgstr "Izšķirtspējas mainīšana izpildlaikā pašlaik netiek atbalstīta."
 msgid "Cannot operate without a clock"
 msgstr "Nevar veikt darbības bez pulksteņa"
 
+#~ msgid "Record Source"
+#~ msgstr "Ierakstīšanas avots"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofons"
+
+#~ msgid "Line In"
+#~ msgstr "Skaņas 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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Kodeka atgriezeniskais cikls"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "SunVTS atgriezeniskais cikls"
+
+#~ msgid "Volume"
+#~ msgstr "Skaļums"
+
+#~ msgid "Gain"
+#~ msgstr "Pieaugums"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitors"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Iebūvētais skaļrunis"
+
+#~ msgid "Headphone"
+#~ msgstr "Austiņas"
+
+#~ msgid "Line Out"
+#~ msgstr "Skaņas izeja"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF izeja"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 izeja"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 izeja"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Iekšēja datu plūsmas kļūda."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Iekšēja datu plūsmas kļūda."
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Ierīce “%s” neatbalsta video tveršanu"
-
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Nevar izveidot savienojumu ar skaņas serveri"
 
diff --git a/po/meson.build b/po/meson.build
index e8d70eba3..aa11a72a0 100644
--- a/po/meson.build
+++ b/po/meson.build
@@ -1,9 +1,3 @@
 i18n = import('i18n')
 
-langs = [ '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_TW' ]
-
-i18n.gettext('gst-plugins-good-1.0', languages : langs)
+i18n.gettext('gst-plugins-good-1.0', preset: 'glib')
diff --git a/po/mt.gmo b/po/mt.gmo
index 381923c3664a5b78f4f51bd422f06db451a89088..04002e4c527d5a534979f8ea96a5ae6b28cab9b6 100644
GIT binary patch
delta 956
zcmXxjJ4{ni9LMorxh+so5GX!E(V{3q!M0XKMdMpEaYP3P6U9ZN1Bt{Y4ow_POpJqu
z$)S-67ne>ZCQiQU=Hx3fu_=Ql8sp;kcP{>ub3f<Y$9eqExr?Kp^VP52$vF`tlq}_1
zLYlzmO<ahDNb1EW=;tqRBYweM_!s-In3RU_3~s|4IE;_*9KOUE%%<Y8?qgZ1>KT<S
zJot_~v8!1c#N&7oui$2Uhkm|{9&n(Ackm!i;%(f64J=`zRoa1N^mmt#0X2v2|1BP7
zd@ZlsD5T?wOyO=`sGvK1iUnN4BKEe$p2Q*AH*r7Ka0EZ$7^d3eb{RL&zJT*&w}M_k
z-)gC!@ik6mE1tzsyoH-^0lk7ZEBAk6j`m=ObPP|RzrTxKak?{}_yl^wGw208#vFdY
ztM~`U@bVhIcS;^m@dRF>Q~C|hW2uWl@E#t(_qZ23yGc8qLQmulIui|?!XH?~$)5NO
zRPZS6d31kEIF9)Y^Y>w!&Pe;Ph6VhHhcL~_%j0Pr##!`0HKY%{Mlu?L<b?G5EIE8;
z98EFdx{51ZD@j>T$%Z^r@quvApSFjZ#3Gb>Sc-b8Y<!3TuHHE|FzhG?M{6mhMVv~J
z*YIz6ijEcvhe7O5_$T_&%lIG8xr20viR94Ba;&37t{j=I|BRyMdPiF$QD1Do-ddl|
H{7U=-5^q#+

delta 1109
zcmX}rOGs2v9LMp$%|j<s)5$TbDJ#o-Olqa26;?J#kc%jcDTqWTnjUkfp~;}dKoBi*
zS3!$t;UXw{GFypuLGDY48hUI4LnxxCzQ23N4xIVibMBq<_@DoI*Iw+%f2i}{Hp*t|
zD(YmJ*>3#3h#$(F&#WH5q28DK%~oSGZo@%biI=ejZ{bFq##a1{BUlwMyMW`^hHr4I
zS>DQmX6xzb!7Z4;W}L)Pe2(idT<*Q^MNOE({df(B@HO^gU4>aU9zbpC3ToVk$b|MD
zHGXZ#Y!CBWFAwUNKrQ4h_TWqO<9A$)zmPdBNJA4<V<*P33v(s!V+-xK*pGj)4f`w2
zVwgm=Z(<|!+Y27pq|M?K;V+_gc(uwbiuZ5>PGbjt!Zlb^?d`A=)qet;@CFXzBh>hF
zsEA~0yp2tv7Cwu4?WAI<_s0P|L;EDga0V5!pQr`IYQ2yj#$&YaU>xUh7xvYe?Z8W@
z9D0gc$X8TEy2EBiFo9k8B+U9+c_`Ac4@1kmkRL>%ZHG`HKaQGc47cM0+=(Bt52IwL
zc61a6@H)2RE7bV&s0BnL<PpX(fQbn4A>wX0eW=1_+~X)+03%=AvZ<sZp&OvG!o&Sl
z#2DAjm4$AdvlgJd(ow1qb@zrW!Frv~TB;IoIhCVzR|szQHlkLp)h-l8M2V>#sx(k_
zH3^1s)JFQaMYo2NGotV2g>p(!Rj%0H+<3}q$`qdY{sbC^MpJ1UPK{-q%xNc`v|%Tm
py69vJk3%zM!4c<N?tHQ^QJJoYls-J0bxt|y-2d;sgnyL2vwu0uay$S4

diff --git a/po/mt.po b/po/mt.po
index cf59f3220..cd9ce7129 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\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"
@@ -22,6 +22,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr "Problem fid-decoding tal-istampa JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -55,6 +65,9 @@ msgstr ""
 msgid "Server does not support seeking."
 msgstr "Appart '%s' ma jagħmilx video capture"
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Input audio ma nstabx jew mhux validu. AVI stream jista jkun korrott."
 
@@ -143,63 +156,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-#, 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"
-
-msgid "Gain"
-msgstr "Gain"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-#, fuzzy
-msgid "Built-in Speaker"
-msgstr "Speaker"
-
-msgid "Headphone"
-msgstr ""
-
-msgid "Line Out"
-msgstr ""
-
-msgid "SPDIF Out"
-msgstr ""
-
-msgid "AUX 1 Out"
-msgstr ""
-
-msgid "AUX 2 Out"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Problema fil-qar()i %d bytes fid-device '%s'."
@@ -222,6 +178,15 @@ msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 "Id-driver tal-apparat '%s' ma jissapportja l-ebda capture method mifhum."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+"Apparat li jaqra video input ma aċċettax is-settings ġodda tal-frame rate."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Device '%s' is busy"
 msgstr "Device '%s' mhux capture device."
@@ -238,6 +203,14 @@ msgstr "Appart '%s' ma jistax jagħmel capture f'dan il-format"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Device '%s' mhux capture device."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Device '%s' mhux capture device."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Device '%s' mhux capture device."
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Mhux possibli nġib parametri tal-apparat '%s'"
@@ -333,6 +306,10 @@ msgstr "Problem fid-decoding tal-istampa JPEG"
 msgid "Failed to process frame."
 msgstr ""
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Problem fid-decoding tal-istampa JPEG"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -434,16 +411,36 @@ msgstr "Ma tistax tibdel ir-resolution waqt runtime."
 msgid "Cannot operate without a clock"
 msgstr "Ma nistax nħaddem mingħajr arloġġ"
 
+#, fuzzy
+#~ msgid "Record Source"
+#~ msgstr "Record"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofonu"
+
+#, fuzzy
+#~ msgid "Line In"
+#~ msgstr "Line-in"
+
+#~ msgid "Volume"
+#~ msgstr "Volum"
+
+#~ msgid "Gain"
+#~ msgstr "Gain"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#, fuzzy
+#~ msgid "Built-in Speaker"
+#~ msgstr "Speaker"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Problema interna fid-data stream"
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Problema interna ta' data flow"
 
-#, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Device '%s' mhux capture device."
-
 #~ msgid "Got unexpected frame size of %u instead of %u."
 #~ msgstr "Irċivejt frame size ta' %u minflok kif kien mistenni ta' %u."
 
diff --git a/po/nb.gmo b/po/nb.gmo
index 780d3e40f328b7798838df1b123cff3ad4223d6d..1892c338e82c4afb13fad02431bef240afe97530 100644
GIT binary patch
delta 2091
zcmYk+e@s<n9LMqRJ!)_-!Y$y6UNsMi$`wKpuO$)^dX+#y&A?!?Xi{KQ7|SxZ?pCvn
zKm5ZTWUjTGwzakXXmxX0Ly~f~tY~ZN*H-?~=CbAb-PTrXy+7w1n$P&2*Yh0iIp=x4
z-{+j~_WszFy<9x|xY4?aMZ`77EQ=F!IMB}Kna#zwu?;U`0*mv5-&f+zj5FAX`*1D3
z6#5mW85c&)DsU4faR3+UQP0v@!-<oa!q0F8{)5Z0A{Lx)!%oJJ;{p5_yRfmqY$cB4
z9-P8DOfqXttR0u)!>H#R!y3GRC0gq5bX-p46$Ue`L|w2QnV}s(U3e6A<MUXBe_$WF
zMP`-w4BmpTqJBS(x=$n?+;<sPGj2sK^a)(3RG*@=8PDNXbZ#_j!B$*{9%_Y`uonMB
zJz&L6!AiPO<58TC6R3%Pj!Jp7*sKX_P~%5Y6C1<qGCF7Js79C3#nKY$i)mD?Tac_;
zFKUJRQ4>3g<9God!=6&JRXB~S@n2kmtGJ1a9jN;abJ&Q_CCL8<Iu|*i3!HgD?d!0f
zaS!^n#akIqh2x)b0pny@u+p`tk_@1JH-<{_d#KHL4QsHR^qh;B?Ld-fMM?6Xp|gZ7
zsTKF5Qu8Eg<}aZBKY{DfVM8=v18U-j(8V*zpMAkWZ_#g<#yA5lAcLCNFe*bYq9!<<
zrPD#@FFc4Xi-TSKE~+&1*}}WA5p_ckRl^Ta|NjZsU@5b$!>y>y97g@_IF{o(sNa8s
zE;=0QF}swGR@RHU(Fq*Hk5DsBb2ZmkKW@Mys2fd%eve9VAsa&_Y(^JHP@8xR@5XP#
zaV_b+lkro?by=IBvxyVGVg}PpTN65rn&BBF`}Pa2!vdbJ2{dzP#{pDo-$JGI3hFhB
z^YPGw8c-#88rcT+O6U~E_5OcNM;HEpcVG!$pK;uY{M)Xg9x%X5uHTI#bFuSCmFx;q
zJ)6Zpo6to~v@i4oYIA;yy8qv(>(?`@m3lxg9VTs~NIC5_R0gKQ^Z8t@-CKjY(OwQp
z`6z0olNiBy#7xuu8p1&V#)(#<jZit82sJ(b|Hf<Vw^EKRggz#>`)7g_s=I)gO=#t}
z5vsX9T56iq9={hHlx|JDkWdM)Z?z0~NwWS2C67Tjp^c)Ns&x|D7iv_%V#FK`XfCmt
zm_?Km+WFd?dWC12QmwMhG-Z|w`=ugbe#_VTo9Si<)l9G0^-UiMCp@9Ip@`@T$3kz6
z+Ad-@5hb<}TZo;6%ER{XTO&tp$c@3!-`v}q7<3S-_gw^g!|ow=5PZJ<kC8UZ4Mc)a
zyEni;&h=8!`@Pqr3Gd738{Q|e<+;gNI_4E6Qn{YQ%MmYLR_(Qyb>`kIyX54KBoj{Y
zwnO{+4vq{D4h;=H^5Dn={ewf^)kPoVCKo?c;B85*&OM)cKjQ7Ls_;%#-RJG9PUY&W
HPdonsUJ}qR

delta 2835
zcmYk-S!`5Q9LMofmM*j`-Jq21vRK+ep)C}&AZ=-Z)^5-#Z50Yk+e;Zb%#`W0S~QL!
zAqpxOM;byjaUpIAQK&>?P!L&6cvBO3AUvQLjU<x5gNPcxzqz*!C-c9bb53W@J<I>z
z{?U4~J#r&$+)+dE6ElhD#u}rJ>+xJDg-OPwU=h~h8cf7P$j3z8_FHcIeaxi)Q=EdA
zQRDuEv+*9T!So5nEH@@%ny5^o<3*>#3}FfFtGEE;l8wp69Grm_Sd8tMhp*v6{1S8U
zrrV#ytXpU=!@YP2Tk#*v$L5K~v~hnEp|XsQYp5BfFq`?f2z8@IT!Q;C9Z#W!mrxV@
z74`k($<73qqJCG48uxizgs0JqH!v5=*`9ga-}tEL2d|(8I)@tgXIzYlsm@AEP&=?4
ztMFOefakGV-%B%Q1#UvE@Fgt5VJya5xCFCUh1wf1l0{`770on?y73h($J=hZAj6qh
z6Fx%!0P2X|L<_&iad;OwUh@}n3T6z6z&*_*<YVS?Nx+q;94gCX|2bw;?f$`o`r#Iw
zhux?Z9l{~}21D33)tIGt6*)EY01Gi`nlo@IY9f_52kX(oJ;)H|Fmej!#5DH5jLK(p
ztipS!feP6cC6yOT@gQnTFJb}y>9%K0H-?X?=As?!K%Mmv>U$SZNqPsDV>X$rBWOfD
zV9!UWd=+QR0pz$%CC|z_Y(}l%IBKg-xb2f}`*YORo=2_d2UPC-j#}}=S<W~G_!#Xz
zBu~vrT#aW@3y$2UVo@m}^_5&L$QUMsC3pn2@=K@{-9c^rZ0@3!HDDt?g9G>-wqcp&
z<jOH@ru{W)y!5$Fj@2N!6fprR%EmWPTX+T8E%N}CjF}_?Ra1&ezO88Cek{fJP%FHF
z8Yhcw@L?@#qGymfnOmq8k7rPgQxP*ll2Oswyox&e3uxh8)MJ&ww>{X7YM;Ui{2TSV
z)x32oaWAgJGpGqYKuxfOMB;Q!FRs9sk)N6i*ueeGZ&b9kD|4MKwNcOg5!8*&qK@D{
zjK@6oT~A3NCgEx%Z_RqwZEpVnCer_c>p@JQ{W>c9k7I-|A9Hyef5ah7<8GSRN2rPA
zk<z?1O)KjAU6_Q2Q8ze-Y?gTkNhfm|l|#RvZWPCA$}ttS15K_67jqlFW6sl|3EV~v
zl+RtY;zra~?L+d;yp7u0b8i2A)Z;XVi^gd{9mzgqDDw%9$Lkn}`mK&clWQQHWdeVX
zm5E%p6Dyr&>`_s*lgJ=yh+0C$id~%vtEvg;oV7yjP7m>LSwmyD+fnb@rfq(bPy)>%
zwh=0u2^JT7ba)HLGTVn^i7mu>g8Yh=t*&|xtaa<k2PLhFa>g60Ip?n<sw2vY$P-*_
z;^8vMZ9Ij%=*%X9rz=*pt;vMWT}6*<7m-KIC$!z<Y3v`<T-0&!|H(W`R1tncN7_QH
z)BcnEu@{KWTRAXN^eC$ABFczXHQdsU(+T}|Q<*^M<)vinAW{fD`_)7@F@|U&9xgj+
zOwk)*BNe?$rxF!}$~cG7tKM8Y2qmG4UL+=ZDxqV+<~FOystK5iSf#N)9IF+NbQN24
zMN<=}O<CLT^M?z30n5{Cdwc9qbYbFfN|)Vf)dhpS9p28KXi8Gv>7<eg*&DpRfT^~<
zUA?=40o&9B!geU&^;?xy(dFs+^Xq&8Tf@iH4eNcKp`i2K`e48p4u*!?(?5tyusp&3
zP^TUJH)C1q#;Th2`jIDA(VUiKwoUf*2U?mvqca#jka=}Xd`r;ZzsDYK%$ho;!C93r
zFtWbU<&AU|TXfY8c6kT-dVPMsFVNk$)Asq9binQy?C!S1)~;{A7z~HKewO@n_7#@g
zQ!ujR;Z-vN$um9S!BCHFs)Jp2*!J5yg8_HVTJeWDMOyK0+tMwaT5Qcdp`gAwvf^tw
s7vtjldVKyaJ9;#CQJS+*rr|D`6`#xXx+@-?Ky*i5{%}p+yY8yZ|0Zc?mH+?%

diff --git a/po/nb.po b/po/nb.po
index c13b7cb95..bf1938d95 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-23 23:04+0200\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
@@ -25,6 +25,16 @@ msgstr "Jack-server ikke funnet"
 msgid "Failed to decode JPEG image"
 msgstr "Klarte ikke å dekode JPEG-bilde"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -55,6 +65,9 @@ msgstr "Tjener sendte ugyldige data."
 msgid "Server does not support seeking."
 msgstr "Tjener støtter ikke søking."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Ingen eller ugyldig inndatalyd, AVI-strømmen vil bli skadet."
 
@@ -151,60 +164,6 @@ msgstr "CoreAudio-enhet ikke funnet"
 msgid "CoreAudio device could not be opened"
 msgstr "CoreAudio-enhet kune ikke åpnes"
 
-msgid "Record Source"
-msgstr "Opptakskilde"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "Line In"
-msgstr "Linje inn"
-
-msgid "Internal CD"
-msgstr "Intern CD"
-
-msgid "SPDIF In"
-msgstr "SPDIF Inn"
-
-msgid "AUX 1 In"
-msgstr "AUX 1 inn"
-
-msgid "AUX 2 In"
-msgstr "AUX 2 inn"
-
-msgid "Codec Loopback"
-msgstr "Kodek-Loopback"
-
-msgid "SunVTS Loopback"
-msgstr "SunVTS-Loopback"
-
-msgid "Volume"
-msgstr "Volum"
-
-msgid "Gain"
-msgstr "Styrke"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Innebygget høyttaler"
-
-msgid "Headphone"
-msgstr "Hodetelefon"
-
-msgid "Line Out"
-msgstr "Linje ut"
-
-msgid "SPDIF Out"
-msgstr "SPDIF ut"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 ut"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 ut"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Feil ved lesing av% d bytes fra enheten '% s»."
@@ -225,6 +184,14 @@ msgstr "Driveren av enheten «%s» støtter ikke IO metoden %d"
 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."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Enkoder på enhet «%s» har ingen støttede inndataformat"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Enheten «%s» er opptatt"
@@ -241,6 +208,14 @@ msgstr "Enhet «%s» kan ikke fange i det angitte formatet"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Enhet «%s» støtter ikke ikke-sammenhengende plan"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Enhet «%s» støtter ikke videoopptak"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Enhet «%s» støtter ikke videoopptak"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Kunne ikke få parametere på enheten «%s»."
@@ -321,6 +296,10 @@ msgstr "Klarte ikke å starte dekoding av tråden."
 msgid "Failed to process frame."
 msgstr "Kunne ikke behandle ramme."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Klarte ikke å starte dekoding av tråden."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -419,15 +398,66 @@ msgstr "Endring av oppløsning under kjøring støttes ikke enda."
 msgid "Cannot operate without a clock"
 msgstr "Kan ikke operere uten en klokke"
 
+#~ msgid "Record Source"
+#~ msgstr "Opptakskilde"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "Line In"
+#~ msgstr "Linje inn"
+
+#~ msgid "Internal CD"
+#~ msgstr "Intern CD"
+
+#~ msgid "SPDIF In"
+#~ msgstr "SPDIF Inn"
+
+#~ msgid "AUX 1 In"
+#~ msgstr "AUX 1 inn"
+
+#~ msgid "AUX 2 In"
+#~ msgstr "AUX 2 inn"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Kodek-Loopback"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "SunVTS-Loopback"
+
+#~ msgid "Volume"
+#~ msgstr "Volum"
+
+#~ msgid "Gain"
+#~ msgstr "Styrke"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Innebygget høyttaler"
+
+#~ msgid "Headphone"
+#~ msgstr "Hodetelefon"
+
+#~ msgid "Line Out"
+#~ msgstr "Linje ut"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF ut"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 ut"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 ut"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Intern feil i datastrøm."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Intern dataflytfeil."
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Enhet «%s» støtter ikke videoopptak"
-
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Kunne ikke etablere tilkobling til lydtjener"
 
diff --git a/po/nl.gmo b/po/nl.gmo
index 77532092f8f716b9a8143b8d58c2e86c29ecc88b..3ad090e331c14e697e7153c484d4a1c26827b00f 100644
GIT binary patch
delta 2103
zcmYk-TWnNC9LMq5rC4_9jl!~JYw;8)z1S98wp<EAg|<MKwg^&cn@Cn#ELbj8n<gf@
zM&m6hB;)`uY6uW`frOOh9zapT18PGcM)9G(=vx&N(Zp-~{^lISN&fqpIo)%1=0E>A
z9ZlZqPL1Vf95A#l;!$EeXiN$(PvnDkA=8*Fyod?Bff3A~<bA&kXEJWWW!QspJnH)m
z)-lcw88Zi0VhsDRP(Sq+omws&!g9QgrT7=l#W`W`dICEb58?oRftzsIWMeAuAa>$4
zoR2YPt%<eaY}|qRoqbr1*Kw+r`U@S03z^y849ieAv?4P!1E?GKpdS1QK92V>iB66&
zW%wq}!V{?PkD{Iv$n~CEf|ZP0PzxQxLZ$jJokqNZt1y^n%xY}G1?ZwycoS>zSJV%b
zPVrXKg&Mz)1$Y@X(XUV`59J%vfYqq+F4V;KW2%JC1v=WJF?4X+RQ4C^P<y=^$*Oq{
zwZiSFiS5CIcpYED?rFx%!%=(!|G~#_9uIM_9re83d@RRzBIJJwof}-x4Z-Q&-p|K+
z#@%T57ONOv^T+pa2IE-NTWK7%C4H#x?MJ2fQ&cgIV>K3&p1T2K)*-uNDq`e+J)Omr
zq*6DG%E&Qv@N?AGjH6~;LqR-=1E^|0g___`=->>FkWyTaOK>x)m_NW;{0vnCzhMo|
zP8Aumh0aEN1219^)>FF5$RX6<Z{Y%rlTQa<M6GlfSKuX7>i<TPW2zi)j~h`7>O-BT
zy~uByv#5onZqw09@`{aFgzdN&-$Ttf%7*L47Ockse|*yS4ld^UAE=eZsVx0q5}WZ|
z?8H%Q$5PUx?++o*Pni)q4P5vhHIWkT)<k-6DSm`3-h7Li@$aa;UdXHxxCOPhr%>0&
zP?-sncRg<rYCMFhnPa{mqdot3>1YpsM6IxZ!~7v`z+wCu7vgJFl(yh3>igrU2S*t&
zchiJxa62~R8EnKqQ4?$6Lx1l_E%2O7(YZ%Q4=y8r)S20g%kfp@UULa`!w;yH&g55D
zVJm9F2QYxz_Xmw6+3aaNnaCwthy+22*o=eTe-9hS*fx%>eE}7qeppQtQBw*t2<p^k
zMMbK~sOhM6+Mf5psk0N#MlJ0BP1Vn#N!b@lCW9_w1JOpPbr36U&pSe4`V;-JgG%iL
zf;zQtI~})t;z3ibkeL6PYKYRX)lb50o22!xpxZ=f3+n9UhaY)#gZ@y*D~H(RkA+T%
z+Ir#{B1EhuwEs^N?3n%E0Ja#PLT#;@wyw2-4;>2~2^B{<v5{Cu@cOpzX%*Ka1TRV3
zp7j-3Zh7c=cO(>XzYd*tzYNb!Uk%rV-JD2yx;t__;O0gv-L_~)`b_j@F#UFHX)w~f
zYw#6k+fL_&-u}UDJx+4#%e#B~-I3x#x4P(j`hHPumYb-Er;k*87s%+{(Yw>#=S+8x
QSH|2sm9M9hRa+<g3y-DOy8r+H

delta 2843
zcmYk-d2AGA7{~Fq1?fRcTS^bhH9%=CP$-3h7NG@d58GOLP^uN`c6TUCx4UKON&<#8
zCImTxn2p3B{-Xp<j7F%ah>2iCqD>4@qnIE;5R8UIgZx3_5x>9LDe|VzeBSrn*_row
zkL`u-uRPJq6UV+}C;?&$@yr-w)NyGX7fM-*F=@CE8*v3D<6h*?#N76)Zu=PK(El!G
z;^(O6evi}eHm<<zRAUw!6E$sACeX1v-eC@51?>?m#Dww26krif#+6u(>#+n6VljS%
zMR?WiPhr%Zv=`wP+>7h*Z=8c2>Be;NeiNm#h>nY>5vDPkSvVK<q86Nw&tWzmM+?uP
z26zK?|M-mf02iRX*NA%VPMnJ;(1Vxp0jy?vX7YaHr=l<HM?L5h)Pt|#JWS4tXIg=p
zfgY^E9ax8FuwM5~G-e65qB49Q7veCM<8_>m`DCGX9Y*u1Y^S1;#!xRlkJWh7ZI@1p
z53CJm)BiMTiH@L!U*lN(6Iot!2U!J^$VT9uW&-kOW^hTurKmkrmBakA%%<M`pdIza
zZk&mIsEqdFAv}v=?8-G}0gfQ6X8yu5Ov#HsxDqvx)i@oS(ZT`b5#|803g&1Y^It{f
zJvx@*ZPbIxm=<j+4_4wH)RcaPrTDwso_fDA{F!<#n!#SwS|38)_bF<V{(+0JfSs%*
zXh9vYolz=3Bp9;`*+-^_v(kn^)D)dXW%8xl{?={(h>XGff+TOu)cDfmp+$2!YL9F{
zCHOk(`PXnc-a;M2Xc=2xnT628!>B!Q8Z{$VP%|-wdDNz<L2b%ysLgd0z4#qIi<Oo!
zK0J+@Noz*@^Hy9!`y}#_xrxkB)TFb}tLRvUTGO4VjNU<=hI6P*_bcjrXV6K~W(g{j
zc3gok;)8er4`2#eXuvO{zBhuEc*|{<^3Wok{|+h-@xcyMW+#z9bCpXiCiCqsY{3?M
z6LtR`)C<a)o@%sF1388o$aQ=er*YVsMAMBL@OIQ5`4Ag<zxkPpHbogbMIZE_HqSoP
z15df_JE+r9#CoM;Ii_MYvcF8DtBpytqnM1lF$E90{fCj0ZC*p&W8UYYsrd<y;1ou&
zA5Y;@tYunKaVKgG_n;np2KC@CP|x`WHSm9tSvK=%=$N%)1A4F)-@+QaRm%J;<E5mp
z8@#Bgd)xH}>V?zU7#tAOiB-4-^}^$*`!6B4njCgq9oC={+K=P#JSL!)P5s(Gj}h8`
zPSKZD(up2IS*vLMRJ;T~YR(`V)j_eGYdlj`m52tZ0c%$JiF=Eda<kjf?AoRGKTfPB
zrV|?om9+%3WI70~l{T867(;Xunnw1YQ=W9yFWV}&&hMCMck7w~k6YKi;OLtsqMC?4
z%Ecz`Efd_v6PQo55}ZD#u(Zx5)cULFSI<Y35S%=7AHjZhmVqPg{Oa-l$yp|?d4SOA
z>Leb~{Bug2W2N=f@fa;EnNv1#ts>UNo6dDTSM7NH0I8%BlZgzXmq;Vn63&0cK1?Lq
zh<nRM8kzcuTSH|ckxQ&3RK~`+d##}M6rpph!q@nBc|57NaBY{h&}s;pl}@E4GUU|C
zN4v@`x?)+$d6}ys{=iVFKWMcN+Ma$p94k&9PV?Dbt0@#3?Dcs2V`(WRCsHa>3+g=n
zpsBY#zQIkQpluq0Lv}dm30SLZVvDoq%xdxnZ9U#mFKqUE!=d=S&7q)wC=?!EpZ!Kc
zlGPrHguQm`pGk|d*3>lA>PziTMPr(u)0NR433hh0-yOm5uAGs?ah;(+WWXM7$zPs0
z+sTSS$I~kfjixu+Rj#hszJh}MhG3uF8;Wf6*;XLp_iY^v+azfkV=olu#y&3iK&h4n
z+*F4LCs(8ucG}^sq}J~b_L=%nXrph)4%iz*p`e?xZFzmMqs0|7oBW%DdZRLS#^7Y^
z+&P-?#o{Xo8J+>VH_X>t27~s19gJm8%Z<HKQjp~&tp~&_p-Akvl4srI{~wcoPT!cM
Hc=F~y^iOR6

diff --git a/po/nl.po b/po/nl.po
index 17c48047f..d063ad6fe 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-10-23 23:59+0100\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -24,6 +24,16 @@ msgstr "Jack-server niet gevonden"
 msgid "Failed to decode JPEG image"
 msgstr "Kan de JPEG-afbeelding niet decoderen"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -56,6 +66,9 @@ msgstr "De server stuurde onjuiste gegevens."
 msgid "Server does not support seeking."
 msgstr "Zoeken wordt door de server niet ondersteund."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Geen of ongeldig invoergeluid, AVI-stroom zal slecht zijn."
 
@@ -153,60 +166,6 @@ msgstr "CoreAudio apparaat niet gevonden"
 msgid "CoreAudio device could not be opened"
 msgstr "CoreAudio apparaat kon niet geopend worden"
 
-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"
-
-msgid "Codec Loopback"
-msgstr "Codec-loopback"
-
-msgid "SunVTS Loopback"
-msgstr "SunVTS-loopback"
-
-msgid "Volume"
-msgstr "Volume"
-
-msgid "Gain"
-msgstr "Versterking"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Ingebouwde luidspreker"
-
-msgid "Headphone"
-msgstr "Hoofdtelefoon"
-
-msgid "Line Out"
-msgstr "Line-out"
-
-msgid "SPDIF Out"
-msgstr "SPDIF-out"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1-out"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2-out"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Fout bij het lezen van %d bytes van apparaat '%s'."
@@ -228,6 +187,14 @@ msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 "Het stuurprogramma van apparaat '%s' ondersteunt geen bekende IO-methode."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Codeerder op apparaat %s heeft geen ondersteund invoerformaat"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Apparaat '%s' is bezet"
@@ -244,6 +211,14 @@ msgstr "Apparaat '%s' kan geen opname maken in het gespecificeerde formaat"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Apparaat '%s' ondersteunt niet-continue vlakken"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Apparaat '%s' ondersteunt het opnemen van video niet"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Apparaat '%s' ondersteunt het opnemen van video niet"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Kan de parameters op apparaat '%s' niet verkrijgen"
@@ -325,6 +300,10 @@ msgstr "Beginnen met decoderen van thread is mislukt."
 msgid "Failed to process frame."
 msgstr "Bewerken van frame is mislukt."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Beginnen met decoderen van thread is mislukt."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -425,15 +404,66 @@ 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 "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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Codec-loopback"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "SunVTS-loopback"
+
+#~ msgid "Volume"
+#~ msgstr "Volume"
+
+#~ msgid "Gain"
+#~ msgstr "Versterking"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Ingebouwde luidspreker"
+
+#~ msgid "Headphone"
+#~ msgstr "Hoofdtelefoon"
+
+#~ msgid "Line Out"
+#~ msgstr "Line-out"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF-out"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1-out"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2-out"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Interne fout in gegevensstroom."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Interne fout in de gegevensdoorvoer."
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Apparaat '%s' ondersteunt het opnemen van video niet"
-
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Kan geen verbinding maken met de geluidsserver"
 
diff --git a/po/or.gmo b/po/or.gmo
index c365d9c40a7f771d487ddf05af8de727dd98da8b..0948fae2edee92388a1a6ed76c277e2670e733f6 100644
GIT binary patch
delta 96
zcmbQv_Kqdso)F7a1|VPpVi_RT0b*7lwgF-g2moR;APxj#e?|s|4j>KEa0AE&A}|2y
Sg@K8)EjHc?Vw{}IGz9<(NDJ%$

delta 265
zcmYk#&k6xi6bA4!j8T?~)ue1afUK-6iBeubQzp!nSX&}l2-#Rl;*3aHj)$;N7CKMh
z8GJKQPW|pz_q%`I`pOu*;`)*>5ip?uQD}ibBZ$Em{QU)FVGRb{p{x--k!i?;h*HQR
z(to&#Odz!|Aa(c+Dl_;P9Z|`ycU7mM9E(cIv3sgJtK^KDYW3UJd05r*M`2HRD7+MR
pDtr=mB76we9d<}~|1EeM)Hrk%zWEo}n?JNw^6v->UxYVk=mV00RWASl

diff --git a/po/or.po b/po/or.po
index 73e4d3cfd..6693d6a79 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2004-09-27 13:32+0530\n"
 "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
 "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
@@ -23,6 +23,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -57,6 +67,9 @@ msgstr ""
 msgid "Server does not support seeking."
 msgstr "\"%s\" ଯନ୍ତ୍ର ଗୋଟିଏ ଅନୁଲିପିକାର ନୁହେଁ."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "ନିବେଶ ଧ୍ବନି ନାହିଁ ବା ଅବୈଧ ଅଛି. ଏ.ଭି.ଆଇ. ଧାରା ଭ୍ରଷ୍ଟ ହୋଇଯିବ."
 
@@ -145,63 +158,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr "ଆପଣଙ୍କର ଓ.ଏସ.ଏସ. ଯନ୍ତ୍ରର ଠିକ ଭାବରେ ଅନୁସନ୍ଧାନ କରିହେଲା ନାହିଁ."
 
-#, fuzzy
-msgid "Record Source"
-msgstr "ପ୍ରଦର୍ଶିକା"
-
-msgid "Microphone"
-msgstr "ମାଇକ୍ରୋଫୋନ୍"
-
-#, fuzzy
-msgid "Line In"
-msgstr "ଲାଇନ-ଇନ"
-
-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 "ପ୍ରବଳତା"
-
-msgid "Gain"
-msgstr ""
-
-msgid "Monitor"
-msgstr "ପ୍ରଦର୍ଶିକା"
-
-#, fuzzy
-msgid "Built-in Speaker"
-msgstr "ସ୍ବରବର୍ଦ୍ଧକ ୟନ୍ତ୍ର"
-
-msgid "Headphone"
-msgstr ""
-
-msgid "Line Out"
-msgstr ""
-
-msgid "SPDIF Out"
-msgstr ""
-
-msgid "AUX 1 Out"
-msgstr ""
-
-msgid "AUX 2 Out"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "\"%s\" ଯନ୍ତ୍ରରୁ ଅସ୍ଥାୟୀ ସଞ୍ଚୟ ସ୍ଥାନ ଆଣିହେଲା ନାହିଁ."
@@ -222,6 +178,14 @@ msgstr ""
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "\"%s\" ଯନ୍ତ୍ର ଗୋଟିଏ ଅନୁଲିପିକାର ନୁହେଁ."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Device '%s' is busy"
 msgstr "\"%s\" ଯନ୍ତ୍ର ଗୋଟିଏ ଅନୁଲିପିକାର ନୁହେଁ."
@@ -238,6 +202,14 @@ msgstr "\"%s\" ଯନ୍ତ୍ର ଗୋଟିଏ ଅନୁଲିପିକାର
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "\"%s\" ଯନ୍ତ୍ର ଗୋଟିଏ ଅନୁଲିପିକାର ନୁହେଁ."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "\"%s\" ଯନ୍ତ୍ର ଗୋଟିଏ ଅନୁଲିପିକାର ନୁହେଁ."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "\"%s\" ଯନ୍ତ୍ର ଗୋଟିଏ ଅନୁଲିପିକାର ନୁହେଁ."
+
 #, fuzzy, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "\"%s\" ଯନ୍ତ୍ରରୁ ଅସ୍ଥାୟୀ ସଞ୍ଚୟ ସ୍ଥାନ ଆଣିହେଲା ନାହିଁ."
@@ -318,6 +290,9 @@ msgstr ""
 msgid "Failed to process frame."
 msgstr ""
 
+msgid "Failed to start encoding thread."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -412,8 +387,25 @@ msgid "Cannot operate without a clock"
 msgstr ""
 
 #, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "\"%s\" ଯନ୍ତ୍ର ଗୋଟିଏ ଅନୁଲିପିକାର ନୁହେଁ."
+#~ msgid "Record Source"
+#~ msgstr "ପ୍ରଦର୍ଶିକା"
+
+#~ msgid "Microphone"
+#~ msgstr "ମାଇକ୍ରୋଫୋନ୍"
+
+#, fuzzy
+#~ msgid "Line In"
+#~ msgstr "ଲାଇନ-ଇନ"
+
+#~ msgid "Volume"
+#~ msgstr "ପ୍ରବଳତା"
+
+#~ msgid "Monitor"
+#~ msgstr "ପ୍ରଦର୍ଶିକା"
+
+#, fuzzy
+#~ msgid "Built-in Speaker"
+#~ msgstr "ସ୍ବରବର୍ଦ୍ଧକ ୟନ୍ତ୍ର"
 
 #, fuzzy
 #~ msgid "Failed trying to get video frames from device '%s'."
diff --git a/po/pl.gmo b/po/pl.gmo
index 798e81ef8ff6ac5c029a0bb3ade6b4e7a6cf78d6..510becb0625f4cf881a941db708258c7f950db0d 100644
GIT binary patch
delta 2076
zcmY+_OKenC9LMqh4AgdJI-OcN6sC2U3Z<>oDfEeeWnc;|Eq!32U~4d1Od8Z68q~za
zBpQ$=kZ3M;13r+%jT?1XU{XwLnl2i|_#kRXO2WpNkhq{m5+CvVyZ74YN&fe9&YhWa
z&-wq)ZGU>^ttWE}Wy{|&+6Yla+zFcHaH@a{?Mk6pF@BD{IEQg8EAqZyhe^h}umg`^
z3tsa55nCBYLuTtRiwPXZN<HcgI!)YoAM5d3ti?ZZJ+2FT_j_@e@d-SR*YF^AM9dz-
zNj!uz*o+BQt%ddDT6`Y$oVPKJv$#TAy-O#>jl!t6!aCFs`j8dcanujbq9&fk4Y-I;
zVXDNe4qwLy@nh8YucPJ(#JqWHuz_(8YNM}UrBZ#7PA6W)E)15Mbz={<p@Z7tJZ{3@
zP!FiR-`mLuYCM6fa0<218>p0r%FHsDMvaf57IqGEHFU1fQH>Tbh2<-#FSep;-Hl|`
z4x@H>6t%FkIEl0PB94}uHR5&Lh=1c6Y-ExY4xr|Hfy;J06(|2&>CACMKM1b$YTt}o
z7>}Y`TYQ-Dj6ePrS2Ipjcsp%Dm1G?Cy>qA(e~CJbcQB3Bq~}t=Y!F$qEv_d2d+8K$
zBp<*7s2aV5TKNY!fYZ1KOF0l(9Pxb*wd32U)RyrI>Cm?0PCSgwcoAFi2DW2_hiRT{
zj?M`>Z{lhE3!lSN99>Ot7oWv8R-=@Ch|0)q+>Fr_uO9A3?eq*Xh0UNcatrmnNVT_+
zPE-kBMa`Ex?{{vZR#wTUFXIp@mGh|7-NT(&%gIrxj{2TQO>_;nU@>XX>)VB6cntgS
zJKt&!+@S7bM(_VLoepjU$eYaIqnN`iUPb1%0JG}z8q`9M;0Rto?fiG#iVeJr8joWy
zzKdG$FUT>l1P6m^SreA){qLv48f*-EZ~{NU?{NZ8l5Z^}Mn08+A=FMMk)+r+n8HQe
zjd2dpBlrX=^^>R!eU17&Mp|_ihOwRJ+Zj4KB(td6-NU`OlDunzG1Sg4pbpzj)Pf=m
zGB|(%<fT|@+R!$C6u}sw&Giy%hzy~o=PxzA5^Ci{H?fM)0@QTq)b!ddC$vzNL8<K`
z)Rgu^ZqK_Y-K^E31TWD4+9pPnA?K#Bkb!DBMD!DC!-RIJMrkcf6lg$85uL;`f^+L;
zPqo({t$&-&5Q$uBNqQV5_n#b<a$Ax1ubS>6+6dL<zpa!((7&P7mk<a2v1s!9kKukI
zM5uJC^FD%-yZ;-&E#VH_t^rMFs4v51fY5>2LvZHo05M4L=i5E`yg7Cs5hv6h_i(Sp
zPJQTU=hIN!`62X~^Hq3#{)=#H*eQwE=SSlo1)Nw#gVSFzoWEQ#AIzUj6a<~Qs-*Kr
j)z8kh<mUXw<msrhu%RWtqk&IG(^+RKoy+fQd~Ml3`^w8J

delta 2959
zcmZA2eN0tl9Ki7hG+q=`P((5E;5(p*2paeT0ty7kn+i!vhkK83yl{@*xDsSub8{xO
zX5GnjX13KTYi%lRrE{~At1a8yTrJ%iTc-WhRxMX<+Sd1X?!lLy@jIXAdG5K-d7j_%
zoXerM8%A&>dF)|D=^~yac8^g?I(~}bLdlI+Dgl>ZHLk`u96<h5$Za2Y+aF*G{ikpe
zUP2l7M|=wJ;A)&aPN{sQf~t|q1Ue2xI@BN*(7u9mFlxL~X*dsO;2O-sEtrXia6X>H
zd3e+9k7w4KXfMT`IDpM~AG2^nqEan9Uj?ZwrQ<rv3=^2mY|KV^P#xyrKAeoFQNu9G
z1b;=jfBeMA1Q(-xuNr0CJ(!JWP{$EmfF-177SC5E75T#JC<9$U8Tc1mh;d1gl@_36
zpbg9MC9J?Nu~P0!R%#hGpses!T!KTGhqo~Yr?CoYS72}&m3}HR(-6voFJlS*=C&72
ziA<~!=hD9mWsBZM4X@!?{0rG$br;zM70p55nQ8*^r!u(2;&PNTRGdQo*=AMge$a&S
z#a5h!9Vjarz(M>9{n#>9sl|8&*)??!b1^<OGH?;fM9Od`)}n^p$PnrcWEa%?spP+y
z%4c+}z&j`d<&qXTR5}*nL6npZ<0AasZKqFHia%A!MKaiqve$zs_kE3WNdLfmOyeZW
z7Sy4<V0(g8-iuOdKay>g$-7d6tB`Z023(K2e&qT&rt|qFWbx`2%2~OGvf>4NScjEZ
zg-1|UeiO^^u4`~5M_y977iI5Hp}a;vU@6{5Sy?fo7T^oG98aPQ^fLx<uEv4GW7vgr
zG9ur96MeM5$6_pDUnP@!@o9PgKcTXgj$0@x%HkDZa;gm_l`kVVs*@-axryAWrZQU@
zu+X&+WnyP>7ygN|1)ZE&N%<g_Vi;wM<5*>`y#Iw%WT5R>gdd~q{cZGMB8^(y>3RX{
zrJt9$1h?X9JmETmt7xaQ@nzVG%vqg4x$h#%M59T=W}dH#sL09>qa4C--F6Jiuco~M
zWyS|^Jbr=Wa2Vx`Tt&{U8bSGe_}lGI=0M2j85oDT7>k9-8>-e|kZh<;RGz`zcnUA$
zL41+?$qJ&$pL}5*N(x(127br&Q<Th|N7<TxP{TA1mK?ejxDFez5Rag2>9xh=Us6Aw
z<;e}zD2MDVloWk~vgh(MCTAiaYp@YzfD<Swy^f5jQu$ev30GhVzJ>|-9Y&!%Tqep(
zqSg~~{+z;uos!74jgW^+SsB4O2a<s*qT21#Tsdb>A?waRs%02Y_?+H{7n$gGw<+gI
zN{c-ISwdz#lh{f~*+`ImwSkb|1s0%8VhqtrNVYhiPI=B%QZ3sfMb1N$Q;Yo2=x$y1
zUot6KEFprj?*{Q`ncy}y<20gykbRZH(Qpo-94INWJzgS{m`yxE@B%phn0V!#gPnx3
zUFAd<;hZ^KEBWVba(=0@P+ptS!qz*blWQ^29BDe&EnN9Ub^g0a$2dYx{zRgkkUf|4
zP)T$U(L^KhXxT<%lDu#ARFVn#8C^q285`ljRSxCz#8Yk$U*q59>Dcx;8(Xv`T9u{N
zIF-6Uk5kJV?aI^W3MIv*PAUzUT|J9TOKaL;=sv?Anjbfm;59s2jcxB}*FC;aLVV_#
z_=0h16}oAuN<;VV=(H_ERarfT-_pCZvhq;=<gD2>re(<Rj`F}-)8n@z_tx5$*<<^M
zwoLvoDpqT<1AdPY`gh9Gr26uzb@HVqry_I8Nokqb6tFgJXnHV%q5UaWqGLAMU4d?6
zsBT(Jbg<dj9zNzV4b54eYVLcy`RJ#4kAIq{O2hkx_j@(l+taK2`*q9IHE;M_uQ`0w
z7sye~?E$adt6P0qM|htdK4zJoe#58M^Q>+=eBRQve$yLzCGAE^{qWJAE}Ff5yN7O{
z?KOOQ==hAn(AA6yL+{S$Pn_G_-)(y=)8J1vh4%$KoqDg&RLw@O#h3m4JcZ;<&n(D!
zu%Ir}GPz@PL6K&y>GRv$Y)g&iu{JX%dP?}L|KgCBS!$Nv;qPP8rXFg{E>C|jn3L6q
jgE`I6;q1NtpL-<Vq1J`jL&Xal#w1ommd^5r52*hDSG=YV

diff --git a/po/pl.po b/po/pl.po
index 5d2193f95..92b643cc3 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-04 19:05+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -22,6 +22,16 @@ msgstr "Nie znaleziono serwera Jack"
 msgid "Failed to decode JPEG image"
 msgstr "Nie udało się zdekodować obrazu JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -52,6 +62,9 @@ msgstr "Serwer przysłał błędne dane."
 msgid "Server does not support seeking."
 msgstr "Serwer nie obsługuje przewijania."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Brak lub niepoprawne wejście dźwięku, strumień AVI będzie uszkodzony."
 
@@ -149,60 +162,6 @@ msgstr "Nie znaleziono urzÄ…dzenia CoreAudio"
 msgid "CoreAudio device could not be opened"
 msgstr "Nie udało się otworzyć urządzenia CoreAudio"
 
-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"
-
-msgid "Codec Loopback"
-msgstr "Pętla zwrotna kodeka"
-
-msgid "SunVTS Loopback"
-msgstr "Pętla zwrotna SunVTS"
-
-msgid "Volume"
-msgstr "Głośność"
-
-msgid "Gain"
-msgstr "Wzmocnienie"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Wbudowany głośniczek"
-
-msgid "Headphone"
-msgstr "SÅ‚uchawki"
-
-msgid "Line Out"
-msgstr "Wyjście linii"
-
-msgid "SPDIF Out"
-msgstr "Wyjście SPDIF"
-
-msgid "AUX 1 Out"
-msgstr "Wyjście AUX 1"
-
-msgid "AUX 2 Out"
-msgstr "Wyjście AUX 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Błąd odczytu %d bajtów z urządzenia '%s'."
@@ -225,6 +184,14 @@ msgstr "Sterownik urządzenia '%s' nie obsługuje metody we/wy %d"
 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."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Koder urządzenia %s nie ma obsługiwanego formatu wejściowego"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Urządzenie '%s' jest zajęte"
@@ -241,6 +208,14 @@ msgstr "Urządzenie '%s' nie potrafi przechwytywać obrazu w podanym formacie"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Urządzenie '%s' obsługuje nieciągłe powierzchnie"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Serwer nie obsługuje przewijania."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Urządzenie '%s' obsługuje nieciągłe powierzchnie"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Nie udało się uzyskać parametrów urządzenia '%s'"
@@ -322,6 +297,10 @@ msgstr "Nie udało się uruchomić wątku dekodującego."
 msgid "Failed to process frame."
 msgstr "Nie udało się przetworzyć ramki."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Nie udało się uruchomić wątku dekodującego."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -421,3 +400,57 @@ 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 "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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Pętla zwrotna kodeka"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "Pętla zwrotna SunVTS"
+
+#~ msgid "Volume"
+#~ msgstr "Głośność"
+
+#~ msgid "Gain"
+#~ msgstr "Wzmocnienie"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Wbudowany głośniczek"
+
+#~ msgid "Headphone"
+#~ msgstr "SÅ‚uchawki"
+
+#~ msgid "Line Out"
+#~ msgstr "Wyjście linii"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "Wyjście SPDIF"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "Wyjście AUX 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "Wyjście AUX 2"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index e3abd64386f61e852f5f8097d41b4f277ce99086..24f07fae2adfbb738a556f4750f85203866188e4 100644
GIT binary patch
delta 2052
zcmZA2Pi$0G6vy#1V{1DD?Lgb1f1wYDLg_G53KXFuEq@9v)D}=^-LQ}n2nr-s{zMZq
zF}iD_(N|41)d(rG;7?5$4Vn-V7bY$wEQG|wrb%mnxTv5pkg)Rmd+$LSZsxqty^lBZ
z?mg$;a(i(6Kz6FE;4`DWM${3LVY4ib6>_1C7Mab*FR%x57{`B6&leY)Ex`tC$4*>_
z9|Zn@t&C@J873lTHQ0@{detDEHQdPJO1y$Aa1xheLDavW#D2#6aR@Kr04|wl)`X`~
zi#UsG@iA&*X=b0mUetSrFpc9_uBHA)$Kl33)C`MD{4b=C8QNad7muTU_!~^(EqooV
z)T|K>;tM#8dVT`+;%U_H7RJn0VH0Yh16Zq6zfY$Vzrrq@!ES6?V74CLMy>Dyw%~2l
z3yK!{D``WGk75;$p(gr0>cxNIW-Kl9$GcGzJBir_I-_({qwDD4f5^w;<$kRjk!)H!
zYK6N{6FZKd<2b&BnF_OJoWRvMh4mO?!#LQCd~6Sw4m=zu{~0<tZs-d$sM?n=GHb&O
zdbPzA<Fmo|CRQ_kjBBx?(l1Fj>baAs6raPfklC+Dwd^Qg+KFdS6Z@%}{A<S3+)!;6
zvNiW$JNDqms8alaD$O!Bglc~bz09E|d>!?}cX1=G=4fQ_4Q$06Zo^4@2c5-cpW>HU
zI%nvl*s5FbJf6aPxC0L`O-*n-@D_G3E^y5HuoL;1%O#E9p<ehW>KIlp^(WkiyBNQV
zn&{8C2D32=`X-&NsFY2hcJuG3m4w(ST45$|5VtTMM!nz$@~DN`Y06v!>KLBJ0lbM?
z$O_W+BA!5vbG})drK1<E<FL2u0VLaYIT-(f+8ag8;uYM08V{pte+`wP2e=I#X0P!f
z)bETSNw#m1{b)CE1I}QV&VMb-zQ&C~{16>>oKk!qH{l&rW)c*hcUUh{9Xo|u@d$3k
zJE#RTvXL~wBe)$$QF~!3u!bF~O!Q+N@3)WW=)sGq2me9+P>O=;!DARgHv7{?((I*R
zG!J8h>f1xq6Pt-=8>iH3%0f4xzZF@fLXAawt(t2Ap_J+6T1gk7rh2QkPg*4%ZMqUd
zsh-<f7;qT8y-^hW!>iaA^!t%=Y5jg$qgd#T{2kp%|2cw<>eX49DI=aVm4-w;Z7K;{
z#rsc*N_ef9t4gEnt|xRd=C%cTe>k|KO;bt?%y~jbL`@rS9}yv5CUy{e2}<gn7Vt`@
zlhL68t&Qj<b`#p*I|=Qh{e<=nf0ZraaN&g5^F*9@w#|1Vk%R6hk+^#`a>czIU7r6s
z+8TBLu2`AR#B(9{{-RZGy0Sk%Qh7L>57j&jxh-||?sTHceXnjNe`4{EC2m)8WBzKg
ZD(nt9<?f?Y(%qCEa%0WS`PuYz_<#Ml%X$C+

delta 2863
zcmZA2eN0t#9LMn=sDLO>0wGv%03T37<${V2hzNqH2#Nw}J{;f*7q0ix6)0N`w_N`!
zUbW4&O0)b!Ypwf-&N=5~)gL--OIPb@+WaGzYqgrTnydHc+=H6G@x8C#@7#NSkKc1R
zx$S1>@Q+i*A2F0(;#tB!&KO;|5XT24b)qqoF%8#ZE+$|v@@MwA?bqG*o0!S<gP4jR
zqWV3Hxp)JY;~!XV%&_q!8k5Y0ZsdX)!UcF5r{itR!MI7rOv8NiU?tARew>BJa3)@M
zuiwR1+Ud;xCG5pE{2u3Ed6F^hjBj>ODdWO9)C})oAx>ge8fYHQ#SToz5w!3F)C50A
z{r(r!1XEI?_Z6f1-Hye02yMKGMQE`-1&nVRsAwQRs-t&N9gpJk_%mvynQ74hs<4*!
zR;<VOaJ7Di3$b)cbcH=wN;{0||1+G6f4S{htY&yB7q(E*O!uG$K7}jrs@qP=h)&Fd
zGq~Q0I-=Lm!cTELeuW&X`3Bj2^Aj?b`4yEDF?_^h7AlAGGTDEQ*A%&5l%Z~1iUnAY
zT2U_^#p4*lif1?$JdK=|`3~pfT~x<8S<#6UVjk@hw6GEB!UT|0F#EIE|0*hnxv&&(
zpgKxrTa;AQxCDKuq&bNtc-?J3#BAC{d}s$(qRx5<^}7?Oqx%x|K>dwx$FLJ*v?l(}
zFd5T8<qVQP=056+2|P1ur=!{hsFln|cGEPYcEF3ukt5iQmvJqoKNr1!2P!uLs9ZUV
zn&7{vqZ}?K<+aicsEO>w#W;%Ek%zbd7c+Vd25~P&@DP?*#=MM|uo^4!jTyvOu?~Mj
zO>`0GDZ8->-@^5J{=cSTabYH@uk5Tx4LF45cm_4&+qedk$WTqR9X)sg`|u`etE*X7
z5%!@Lau~J1Yp(aPnszQPi*h~xJE<@Sa|E@8=dc|oa#tI6U>%;vMHoZxYA<%(hZ^V$
zT(0k#g<e=IQ0=X#oH~XZ@rv8dC85d~-!xIt*1Ul=7;)PVa02aFEMK`$f{C~cH9$Rb
zjHUxqaUZ7O2u{S~I0;Xqa^@^n;8m>02_(+&1uBhH_G2O`tFt+Py5Txj;vG!F0?ubL
z&PNtuDv?bw-AJ041E>jnjM~YIxDr!Xopxd)Y9~f;6<(gl{wv86xGHN=Tf7fRWOEMn
z!<+8+(|Db!qc+s<j$#~M!x+>t=yBD(>xr?#Je;CM>>zZn$}*k5N++QeHxO$H70daI
zz7bVr*PLx%h}zz#izYT!8r_QW=mkQ@nn!FWR5lZAs@bIRdCNMP?89-yRze9jlTdjv
ziu2~ucB*6%Elw@E1GZa_N9DviVg<2=@Dfj!WVf*eo%jC+DtZD`NChWp5}a1_t=2_d
z=UqrBAxU&6f$~w0Xd0o!swH}f8AL0gqf>q~5#+LyOW+hvRAt!o@L5H)sp*z&m`!l3
zPEpoRBT|SCLP<ytId8UZj3xAFJy~|qNF|zyDFpu-oaY{#e^xTuE9ix@lgK4hl#C`k
z65la>bGub)H3UqxQ)wC;aB7~hOCF0$;osx4QdbW8`~xMvfYs9PwfnrGaC|~!a+kN$
zS{DrVci5eM;d=?QBexP3B<9rHzJOWnwY&Ozf&s5-2n={b0o!lY)P^(C=M=8<1-$Ct
zQ6o0`Izz$eZySRF-#{=FsZ2i=6K}Ny2Sc6S@DCYfY0b3_b-Jm=sc2Hkne8bpgMrpf
zEsv%U@n&|%#<d3hgS)+vD_IX>Dgpx`yUVuh!B^&5rKZIm{pfLP)stU({`aLPd?`CW
zquM_ZEZJrIZ5CkpoK*zFx3d39u4$@WRr7e%Z*$Hk<<;APo}j5?!B&^o3JwnWx`L*r
z_R)Req9qH*M&t*6U!cbx8}m`y*@<1+G<PHHE;i$8QFd%bQ^?ot-L1a6L-vq8dTR9j
vVEE3Qs+_S-ot+u$(P@MWibGSM+9K0rb%lIGoZrD28Iezl|BQ`~?w9!w0WN(F

diff --git a/po/pt_BR.po b/po/pt_BR.po
index 1b099fc43..ae6324ce5 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2016-05-06 17:49-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -30,6 +30,16 @@ msgstr "Servidor Jack não encontrado"
 msgid "Failed to decode JPEG image"
 msgstr "Falha ao decodificar a imagem JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -61,6 +71,9 @@ msgstr "O servidor enviou dados ruins."
 msgid "Server does not support seeking."
 msgstr "Nâo há suporte a busca pelo servidor."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Entrada de áudio nula ou inválida, o fluxo AVI pode estar corrompido."
 
@@ -159,60 +172,6 @@ msgstr "Dispositivo CoreAudio não encontrado"
 msgid "CoreAudio device could not be opened"
 msgstr "Dispositivo CoreAudio não pôde ser aberto"
 
-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"
-
-msgid "Codec Loopback"
-msgstr "CODEC Loopback"
-
-msgid "SunVTS Loopback"
-msgstr "SunVTS Loopback"
-
-msgid "Volume"
-msgstr "Volume"
-
-msgid "Gain"
-msgstr "Ganho"
-
-msgid "Monitor"
-msgstr "Monitorador"
-
-msgid "Built-in Speaker"
-msgstr "Alto-falante interno"
-
-msgid "Headphone"
-msgstr "Fone de ouvido"
-
-msgid "Line Out"
-msgstr "Saída de linha"
-
-msgid "SPDIF Out"
-msgstr "Saída SPDIF"
-
-msgid "AUX 1 Out"
-msgstr "Saída aux. 1"
-
-msgid "AUX 2 Out"
-msgstr "Saída aux. 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Erro ao ler %d bytes do dispositivo \"%s\"."
@@ -237,6 +196,15 @@ msgstr ""
 "O driver do dispositivo \"%s\" não tem suporte a nenhum método conhecido de "
 "E/S."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+"O codificador no dispositivo %s não tem um formato de entrada com suporte"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "O dispositivo \"%s\" está ocupado"
@@ -254,6 +222,14 @@ msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 "O dispositivo \"%s\" não tem suporte a planos de sobreposição não-contínuos"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "O dispositivo \"%s\" não tem suporte a captura de vídeo"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "O dispositivo \"%s\" não tem suporte a captura de vídeo"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Não foi possível obter os parâmetros no dispositivo \"%s\""
@@ -340,6 +316,10 @@ msgstr "Falha ao iniciar o segmento de decodificação."
 msgid "Failed to process frame."
 msgstr "Falha ao processar quadro."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Falha ao iniciar o segmento de decodificação."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -442,15 +422,66 @@ msgstr "Ainda não há suporte a mudança de resolução enquanto está executan
 msgid "Cannot operate without a clock"
 msgstr "Não é possível operar sem um temporizador"
 
+#~ 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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "CODEC Loopback"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "SunVTS Loopback"
+
+#~ msgid "Volume"
+#~ msgstr "Volume"
+
+#~ msgid "Gain"
+#~ msgstr "Ganho"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitorador"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Alto-falante interno"
+
+#~ msgid "Headphone"
+#~ msgstr "Fone de ouvido"
+
+#~ msgid "Line Out"
+#~ msgstr "Saída de linha"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "Saída SPDIF"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "Saída aux. 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "Saída aux. 2"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Erro interno no fluxo de dados."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Erro interno no fluxo de dados."
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "O dispositivo \"%s\" não tem suporte a captura de vídeo"
-
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Não foi possível estabelecer uma conexão com servidor de som"
 
diff --git a/po/ro.gmo b/po/ro.gmo
index 1610fe608c638971d3f49b9bc71e61f1b204f518..e3bbe7d7b1ec2f84bfed1462ef70535ac1ea1cec 100644
GIT binary patch
delta 1126
zcmX}rTS${(7{Kvoo>P};ZtbA?b<m}jhs~Tb&7`y-J5Z1X1<hPF8Z18vF$$F^g1Q@Z
zVbPK5Hu`RM=iQ`BA-aq(sIZ%b(M<>XKi|w3UVrcVx$S+v=Xu`6p6B7I4^;*CgwevR
zVcvC!^y2S4{xGunBIWoUUHBLEbJYbR8?hZb@F@E6CI;{+HsD)q#4MgbU!lktj^VJ#
zlzd{*#DiT$A}8@YhHwtI;xcYQPq9c8dvF^*!p%63L0m!&pteM0KSr<<XRsa9s4uyM
z`g!jfJ!eW}h=m?BjeGFL%KkIz!DXc)JFyk@2V;02AEJq&GX94zu?^p^SWMai?7OfV
z&telkz#W*;J?G007GA7#5<O{;U^V;Uiku15$Y;>N*SHrKun}GBawY3SJ?J`yF^v~7
zi?{JqrAQnXaW@WCk^dx%J1hq97j|L)`rHp(#T)G3pk|<xsDhZl1Nay>;a9wXr8LNK
zH1P;#a1h;Y%7$l9&zZ#tesq)n(=2=&s6S4iMsDFj{Dy}y?4cj<7Ea?J>C%AaQGfUk
zYT(_zT<?ryANyC>hF`D)Jv4}B@(?!QH9z^M;qAAeL8Y0=%L=_D`Ai+Ofj!8!P#OD+
z29hlMCV<p4wTFmLDF5ovdQ)AyVgEm@W1)SqRv&P_-DJ8ZNTF0hcI=^%YDa60xdf|&
z1{N-jY+rf8%iC9xWZ6S+E)}r{rM9oF-jrG<J!?0g1nS2F#>k}K(1rA08I326%ZcdZ
zNc7w#BW9XOv&DK=c&x|@l}|WQX=k(b(;0MFtrej>_kfv<nlZzSjVe+7Zj0<oEqGnl
VyUHge)|@ZnNX^#tTFW(Y$3MC6dn*6{

delta 1817
zcmY+^Z)lZO9KiA4_0F43y_<72oh_fTdFP*P?(UD9=}I@<ZZ;RYGzSTF-F=+L=JTv)
z_kx0WM<cN4l_SBu5)4WRg>EtEg$fFef}mHvC<>C^DFtO981(&}=UIOa_uS7p=RVK*
z`#bmY&YyReeypkZNJzcpXUMCTiDdC{oG;Sga@sJ1D{vH_#5be5iRuA9Mf(}7#`CEC
zUB+keCU)RYxB+VuA}NuQ?4YojhB4fNB^<>o_zubwB8MTst@t&L;X`c4L(J+0d>1$2
zCz!);unC))?ejQ_X*`WOfzNP&@nw-h7Y)^wB5gQ;E&3qp3!kD6^gZf8RVzha#tzha
z5q02s?8NI>fqx)f%Om6?akh~;OBFIVsl!Uf7bp5*8|p;b@dBQ}0As5~TCsq9<YT^e
z;OD3v-9sJde$@Uarl_ZqBD-)Hx8eubj9*6edstdeL$XSQ-IgY7;QU*$mio||aKNLH
zQ;}yQKSX_Q9_dT2VGCYI2OnS`CTqf@9l<@+&!A51s~YxyCxwSJ9LMIhBIob|8r(?l
z8kp~+kBhh;yNR@JJd67N0?y*E*oo6mhevk>2dV#n&tYSo$OH~x7O&N@|HBmG>qHJ<
z7I))3>Ogm~2OHR?BX}5J#4k_>{tXXeQ+;^G1=KU1K|PXl$Z5#=$V;e4b`|xxg%X8B
z6mH-ROcI(i_$}&6hPgw!#qXh=7;1-iBY(ke>c67~>GlSZm+&pr7`cQU_#NueB)E&4
zu@kw8QaVB*MnNCa)JpEMrEo>M{d%?<>AG@FJt202j4SkQ|06WGH0gvirO6tI3?UoI
zI)UwEPQzYFDA{eIAndeo!|W<`#X5UUY>Z8Wgv6sV;bK!0-@C{fyi17_u{*IXYS@Eq
zWQR<6*lpMA+DP7__h0|5^m=F_@P(kYNzYf4Zj&ZrMz|by`#BwZj=GhaG`KYBy_Zzu
zbjmq;+EHci>tjxvlkuX$aIs)Z>8L5;q#fGk{)*RC?<<<gLbLIl?39~(+YQQVD@GE%
z13BZ#pqtB29rry~GG4(AyxgSI*DtRc&((gc+VhYZ5B%`CA>T6vKPcxbPsP?aS-%*J
zyE5XA`$67#6LUA0*Uvp#nXJja)}J|`eS`%%DJNF7#}cFdWbve1?q1!o><xwta)ImE
zrAWqIylDQd{pYvz|9(r${=nDQ0ynSZih1L=$Ugs+>lhX>5#$PPd8TS%#VdPHPEDF)
zW}L^Q@AmBC#e$K(e*08lS7+=iItg8?*1}1I3qIz1vb5Z;b$4R5*<vt#d)B#i)eGDS
dGi_%-_jrBphNYF*#r`u}TPyd}pNN(%e*^rx1NHy_

diff --git a/po/ro.po b/po/ro.po
index 50e48b454..fa00731ae 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\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"
@@ -24,6 +24,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr "Nu s-a putut decoda imaginea JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -56,6 +66,9 @@ msgstr ""
 msgid "Server does not support seeking."
 msgstr ""
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Intrarea audio nu există sau este nevalidă, fluxul de date AVI va fi corupt."
@@ -153,62 +166,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-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"
-
-msgid "Gain"
-msgstr "Amplificare"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Boxe integrate"
-
-msgid "Headphone"
-msgstr "Căști"
-
-msgid "Line Out"
-msgstr "Linie ieșire"
-
-msgid "SPDIF Out"
-msgstr "Ieșire SPDIF"
-
-msgid "AUX 1 Out"
-msgstr "Ieșire AUX 1"
-
-msgid "AUX 2 Out"
-msgstr "Ieșire AUX 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Eroare citire %d octeți de la dispozitivul „%s”."
@@ -233,6 +190,15 @@ msgstr ""
 "Driverul pentru dispozitivul „%s” nu suport nici o metodă de captură "
 "cunoscută."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+"Dispozitivul de intrare video nu a acceptat noua configurare de rate cadre."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Device '%s' is busy"
 msgstr "Dispozitivul „%s” nu este un dispozitiv de ieșire."
@@ -249,6 +215,14 @@ msgstr "Dispozitivul „%s” nu este un dispozitiv de captură."
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Dispozitivul „%s” nu este un dispozitiv de ieșire."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Dispozitivul „%s” nu este un dispozitiv de ieșire."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Dispozitivul „%s” nu este un dispozitiv de ieșire."
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Nu s-au putut obține parametrii pentru dispozitivul „%s”"
@@ -348,6 +322,10 @@ msgstr "Nu s-a putut decoda imaginea JPEG"
 msgid "Failed to process frame."
 msgstr ""
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Nu s-a putut decoda imaginea JPEG"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -451,16 +429,68 @@ msgstr "Schimbarea rezoluției pe durata rulării nu este incă suportată."
 msgid "Cannot operate without a clock"
 msgstr "Nu se poate opera fără un ceas"
 
+#~ 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"
+
+#~ msgid "Gain"
+#~ msgstr "Amplificare"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Boxe integrate"
+
+#~ msgid "Headphone"
+#~ msgstr "Căști"
+
+#~ msgid "Line Out"
+#~ msgstr "Linie ieșire"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "Ieșire SPDIF"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "Ieșire AUX 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "Ieșire AUX 2"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Eroare internă a fluxului de date."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Eroare internă a fluxului de date."
 
-#, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Dispozitivul „%s” nu este un dispozitiv de ieșire."
-
 #~ msgid "Got unexpected frame size of %u instead of %u."
 #~ msgstr "S-a obținut o dimensiune neașteptată pentru cadru, %u în loc de %u."
 
diff --git a/po/ru.gmo b/po/ru.gmo
index b6352334b068f3f9129873f019689293e764d45a..155ef6d4f10bc3ee05e1da917b440a8d072e8edb 100644
GIT binary patch
delta 2088
zcmY+_e@s<n7{Kx8UO~7Qkze<6?J9E7E8H6hB3u+uKm{}CqM`yq%SkNBrbPK`>bz4>
zv+|F2h*_I!*yh&gpE|WsBc~1dgOzRlbZyzz`lA)iwbX2LuJ3cs!L4^b=kvaYbI*Ct
z`#kUQ;VIY8#}c=)lin0s7qN(#af>8yBAEkiJVj(4eu6DHg?`LVwXcuhV#ZBahrL*d
z?>gSZ7~^!0NEkO@5c_bUK5CH8N>03kQT!T<@BtQL*lV9}!FI+6aR9%-4y;QPc^pTu
z6R%+f2AQ=^tQD8yKGf&Dfu%T!Ir^%9(+P1RCEcE31oa1TWQH<;`or_6H@=F+cn5c5
zXue1UPvH_AL%se6>U~@p_I;OO3FBte7d?y%b*V?`G~#FY1iCXtHeoYXp@I5_(^!so
zQ6Es0Wxq)m>i8TkzzNieeuui`o@|i@EJYpnqfTrX6U*p~)6pE=!Vvm$$S=lFbG->!
zRe1*W4fmo>>^zR(B)){*K9MrKfh+JK=3^N*3E^hc`@P7a9?$q$|5`dzoX{V*bM4$$
zU=8DLv~r8f8DDe8xA8H?!GQgym8dD{L%nVob%{SmEyfuv#R8Tmivr(*WJh{}tp8Cu
z1C-<{y%3u)OyYIC7l-f?Uc@4{$U(f0hp{$KWIdX=67Qkzf+&@D0Q;~Ff5L6Jg5}tO
zL-;)Yn4mL3r!ge*ExHQ08Ger)_$uo?iof8qI7H&=@i*+p2njue7f@4>K|ZZw#5m(I
z)Lro}wqqMxY8}3ZFJR&iI{WB!u;+9}*YO^faThJdLe_CD?#EtyAN70|c~N(wK6n(n
z&_^D$c>D1JjyrCp^xtOuJMO{L<cWzT<WD-gII)og=>smKzG)hjbR7Fpmv#oXV?Kq_
zf(P(ryo#+@Sx$lBAa22L@C=6ev0guhoRWW##gk|Slhyqnr=v^VgTweKrn<OUrN~!|
zJ7ZKVMyl8W_!e%(`^Z0Orcks7PT~ko;(qL2Z99#cit1{SSMV%u!^|2c%JZd{j!xiX
z<e8GrmKenK_%u#oA1+;EU-vqmWc({0!RN>i^Oam;wvle(&sIz0m_alXx)S+B1EEcy
z|ET3SJs)Zg7Z6O|YNXd{y6ut(3f<ZvtiDwTU`@VLJ5CEA*_3o5=$xBHQ^BT6SRa%W
z23>?Mi{?^WJF&s)+1~^&{bXkx!bV~aQ9zI}>pPN-vrUVZ(t6a`f!6;gi?G-^o2u`x
zxoaXcm!$fCEt8SkIYa$f9}P{_Y@?Q}*2Zx=;US(PHWFGR`n``3+UkgPM7<7ZWLx45
z95xfwggi;GyQ~j{R&W-fl^Q1I5`IG4P8;hu&xm?@j1N41;|I@&#+Tkg^NKg-HRk)H
zX1D*c%g6|n7_EVJ^P|AD+dLh-=r(%tR-0GyF1gHs{PJAmW^9Lft|~sqxL>`?NLubQ
XUaJ{*4IAafON`8tx#o%5zmoq0NTlG0

delta 2986
zcmZwIdr(wW9Ki7d_y9%T$V0&eANb<o0%B;$Lj^(vT|mOr7Tk0dcZt9nHP>f8ry5q#
zN=!$`{^%cNWx@w&O)tlpx@$F7)7VsF|Jal>In<2y`2Oy_8aW>L?dP1cyZ4-X&hOm)
ze$(IE13WjQh8$9qW@0R{IY=q#_-+_4l&lb?LU9IGU;zf>KIC6{&32dBK8>;TpTP+H
z80ES*Fd6S+0Y;BdDn}`gT0$j^j@?Fw>cm{y*Kh&`j8rNSC*c?@LMtxEDfl|3;RT$8
zKbrj^%({+tHa?I0a4Fu$saP{gsd~m&9xB;%e2p^0P-Zh8r=bi~g&DXVqwy?S@FSE7
z{*3bZk>SP!Gf}=*fpXm~I1RhejyG{K7P364jIW$j<O>H-E_4~?!aw13430GJG#6zB
zR^mL|gr#@|%j9!WO3lQ@D0jFAXP^(QcndQyp1Y8CDSG0mY@{MH^`Z>?2^QinW;;E`
znAj4WNdE?uEjo%8ypBWgcVv6jpU5t#KoWs5RT%QGQg|7Tc_=wFH<tBhn^l?lh7IM5
z%P<vJqukLx?8Nu673)VUm5JAoT~qfk3q#_J3+JOuqy)!dC0cMjatZY+vJ2`|9P2-q
z$~ih_<6V>sWw9)hRCdhAy(mliA*SPRW;-cCDgIR%FS3G-D0|(B^0^OClJpMdU?Q0;
zTTq2^z_xg(L<TCg3&|sOn6t7GPouO`l8j@Nh0-oE+trvy+m4bmZ{U3FGy8+c<eju<
zV;5dQ(n+mgIoi>UFQVrbm0~K(Ek;rt#{$}4U>ioID76H4qYb~sTFhX7oVXJ&;jj25
zzRPTUxRpd&ia8|A2|R#Jn86v974JZ|od4@oHqcSbdduFPM>!tTd8x!&tjCjBhxf4v
zZLI4$JcR2pfc=pPxp4r$!BW)Nk0&vnqqGX^Q2H<GdXx%cqh#O;Y`}gj!vr?!2sWDD
z!#8OkB=c5dCW#^wJB%yw4$1)4oH@DE9^8xxR%2y5v4-|ltiWUv<^{%AYpE>4n^=YE
zWJ)!@jIZElC|{_}HFDsD=@}$n)n$}(egh>JLS`CCnU3<jD8&eD!We8b-HRUCqhnMK
z;s6E*D78ONsn2O2oTXF?u6lw*#IJA#{()gwmv3Cyfs1KxKrW#^MaijuFcOP7TAf&f
zF1&5pFo*rGq~q!wo>mygM%nN<$_m^?nc#dfl0{HmxC5`_GgwC^twA5k=f)N)wGG?w
zB^*GRsGEf0z7+G;kMmfR6_@<eONN2|Fj+~R1<(ug(u?e;EL}MvTOq}wzZy?Wsgh^<
z50$Jy2(gYBT$r<3Yj(&@OR1OfpC(F(al{HjN-aSi>IoB#<cyx(LAZ=qKyYyMA}b*!
zmXKwa5=Y2NN*PAj^_ubcO`^V#C?q^j@!}u`7g;hX4MaR4d&}|G3#UeZL<gH~a#qiJ
zPNANBLvb=8M=XVqZIc`zmGmF2X5>+zALaS7{%JHM>p8CaIR(9BnacjoC1igel;u<s
zh#6+b2pmI%6OBYDkx7&ha#RC}CB)$J9E}Kh=u4tS5u=GBLdp<>hp(J0^(>KW_V6`+
zF3%2coKRbDnPDk+sUp2n)!wGptPi@Z7P`EV!Eq7A?at=5bf?Q=YjN1uIa<AG!M@N{
zjwZ`Ox4Wg$-n7me8ZxCjBzHt&som*PWe)qQmNjmdLzTPQ9IY;Uv!!I7Hz#`P_=QfF
zLoTl?16DelTHVHHE8Q+<o4eJwJo=r0;TD^_y|u~V{VOIrvU*<m0{N0nugIJ-V(Y_g
z?XJ2S+rt_7cEw%`99HLUZeQ>4RmC3*Ea>p>()zV?7X9v&*5Tj(Xvcr=TOWPj>b;$q
zpW31I`FHrY`?qR6S|5MC+Ifq14*Ik++9kZ;8$ae$K$zC!->zNszh)_Mvnt;Fq!r$R
zv_#*Wq)V|mC;4{2)-6}?A5dDCc7{vt(Jyv^Q6Dn`Yc*h9x=edZAE-w=&u8|_$lb;b
zsK>oy-kj2o%Cuxm|4zp3lMc{&nPETOGIyVEVfLaR?~aKvq1t=g$z|T%ruBM{%(N#z
qST%jI2d|3W;r$_Xw0BfqZ^YXVZ`s%fZ^Nt#U)U`F&~WYlH~cRpF$@&|

diff --git a/po/ru.po b/po/ru.po
index e5d7db53a..95e247541 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-05 19:23+0300\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@d07.ru>\n"
@@ -28,6 +28,16 @@ msgstr "Сервер Jack не найден"
 msgid "Failed to decode JPEG image"
 msgstr "Не удалось декодировать JPEG-изображение"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -58,6 +68,9 @@ msgstr "Сервер прислал некорректные данные."
 msgid "Server does not support seeking."
 msgstr "Сервер не поддерживает поиск."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Входящие аудио-данные отсутствуют или недействительны, поток AVI будет "
@@ -158,60 +171,6 @@ msgstr "Устройство CoreAudio не найдено"
 msgid "CoreAudio device could not be opened"
 msgstr "Невозможно открыть устройство CoreAudio"
 
-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"
-
-msgid "Codec Loopback"
-msgstr "Петля Codec"
-
-msgid "SunVTS Loopback"
-msgstr "Петля SunVTS"
-
-msgid "Volume"
-msgstr "Уровень"
-
-msgid "Gain"
-msgstr "Уровень"
-
-msgid "Monitor"
-msgstr "Мониторинг"
-
-msgid "Built-in Speaker"
-msgstr "Внутренний динамик"
-
-msgid "Headphone"
-msgstr "Наушник"
-
-msgid "Line Out"
-msgstr "Линейный выход"
-
-msgid "SPDIF Out"
-msgstr "Выход SPDIF"
-
-msgid "AUX 1 Out"
-msgstr "Выход AUX 1"
-
-msgid "AUX 2 Out"
-msgstr "Выход AUX 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Ошибка чтения %d байт из устройства «%s»."
@@ -236,6 +195,14 @@ msgstr ""
 "Драйвер устройства «%s» не поддерживает ни один из известных методов ввода-"
 "вывода."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Кодировщик на устройстве %s не поддерживает входной формат"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Устройство «%s» занято"
@@ -253,6 +220,14 @@ msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 "Устройство «%s» поддерживает прерывистые матрицы (non-contiguous planes)"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Устройство «%s» не поддерживает захват видео"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Устройство «%s» не поддерживает захват видео"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Не удалось получить параметры устройства «%s»"
@@ -333,6 +308,10 @@ msgstr "Не удалось запустить нить декодировани
 msgid "Failed to process frame."
 msgstr "Не удалось обработать кадр."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Не удалось запустить нить декодирования."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -435,15 +414,66 @@ msgstr ""
 msgid "Cannot operate without a clock"
 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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Петля Codec"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "Петля SunVTS"
+
+#~ msgid "Volume"
+#~ msgstr "Уровень"
+
+#~ msgid "Gain"
+#~ msgstr "Уровень"
+
+#~ msgid "Monitor"
+#~ msgstr "Мониторинг"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Внутренний динамик"
+
+#~ msgid "Headphone"
+#~ msgstr "Наушник"
+
+#~ msgid "Line Out"
+#~ msgstr "Линейный выход"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "Выход SPDIF"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "Выход AUX 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "Выход AUX 2"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Внутренняя ошибка потока данных."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Внутренняя ошибка потока данных."
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Устройство «%s» не поддерживает захват видео"
-
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Не удалось установить соединение с сервером звука"
 
diff --git a/po/sk.gmo b/po/sk.gmo
index b4630be5b0161e4fbf7f2c4efd613e52ccf19ee1..8d67900f623ffd68567e80327570d53386f6055c 100644
GIT binary patch
delta 1973
zcmXxlZA_JA9LMqhIr4DM5s(m20`=enf*cVPF|ZCCB?UtwQ=wrNR)nQzbQWyc+G#Re
zbMr;r>Kl3yZO&1WTc_66!wW4}F4x0qk;}C<o4sglyvRk37kz*CeRGZLe6H($zW)FJ
zeKUXftG@KFMOo*Jc7R?%{~~Di0v^lehgP3!mWK`a5XP|tPos{13s>T27{^=Kh~**A
z9^A@&9Lw<&+>A3=W0tl^*lax;8nFrwAv<gg58^cHfwCfIy*P>+@Eh#Ie{l=$TkJi^
zDO|(+0_sNBu@2{PDb})@D7NBS?r%>r&<W$HC!9i^cnx*oIjqH4zS#iwVKsh?tMNAK
z_?!aoI?cG2`QsSFlc)t<MqU3Vw&Pvg&Hb%qiCG7p#3uY2wZdQ_VaJWA8$5w^_=Z2f
zg3Fozje5}hd%PPbu#NekKfj1t;0;`dv#6Am77_m_gDwXA*>Qf9+gFij*?H6hy^ZJb
zCZ=$hIBvq*SdUAK%~oMMM)7IXb;hw3CvZFdf;xT~JC*W|65`*&V3-YB@w>PYfAZ&9
zrDkQ!H=$P8iAu#QsN<$kp`F1@z$~!LE7lJQ%Y$sciaI~Uk7{c*s#rU*8;8n>|9uQT
zVuPM^786*1uURFgP*r^v75X1gD+rQEZQp`AK845d13ZD1yc#3;CTf4t3bPk+KkB^e
zs2U2Tc^s{v0h_TOwZe0#;<|!S{2g`UY~rk<YC`RQ3gdVR+wdCdxSS|&3U0#&d=Hhf
z-%zzySn1t2{g^)(Lq%d56L<%eqiXKbk3IM>UcyIk9=ouc%DNvXP*wf2?+RW4UGE6)
z(SGETcE{fyq7qq1+7b-<*pbA|_$4X=|6wCmkvQe5AGPv#kVV=IF2{e6^jjfMy9?Lj
zWlZ8}TuGdD-6>QgZlSJUK-eqw{<kn7x^@V4ftOLKxQZ&ed3*rtsnETcM1}ZMR89Pa
zdaw$vsxM+EDkX!c{TFaI{)qfp1qTOE&3*qLWzgzQy%V-FR_L1Ox=;%}m%h-l7Y3*Z
zs3}s40`=!UBv_$-XkB#WzMa0EuBMb}QLNu<i$VFxq95=!xvR-zyw9Ig{O*@6;m?Ia
z8>K5EYC(FAJ2KmeWXG2HbG|!nDm7KaX=(SLio&eisK6G{d+0>nc%9vEb_f-^9rT4p
zdAMJ-{iw95@g;U&t8KW4UPLdZhv{lcD|PFpi#O0Z6%Tz#R8R$UUVpbyJJv>z&^zd)
z*!`gJU2>}*%$(`aVW%Nn;`D~!clJiAGV#dWu+v>!lbI+U3oJUCeAbyQsdk<#?ah2&
zIvC8v%W{KdJBMC6G7ue3Ju{U0d~$Rkd2}FpVszyBkveCx{M*cH6@TP8XKI==b2T>t
Z&g-@7oVnV3XI1RD^JgrU`7SmY{2#F-&FcUF

delta 2792
zcmZY9X>1f_9LMpe94(YWX{kU#V4zYc(kd;Nh#b9WY0F`u6yzG(1(scQmhEnp#;}^0
zhzKFDpa}+{2E`-BqtQf+C@vcC0F`KBG#Fn<nrNcH8-p7B{$>Vw;gfyl^USle&-MS$
zo@@Pkee!aCzr%*Ig?cA-MPFl{!o8VXC~pohCI{cb20V>?O!h!y_?Tf_bU((wFUC8#
zzZZvMEo$6VI2PkL4^ueZn56lJ#t=HPvfU0d9A|LffTQtoEXSi*f?wezyn)3yVUX8f
zk1gDH;12u@SK(Y%KLrnAD}IO-IC8KSlr*N1MiCt$)I|HS3_r$Ucoi+|&noZ2V$|~u
zs0BKx-#v{Q_%z;)*U-kXxyDS!$8Z9^f_nZ7EMk6hlZFN^;=HC}9crfu)C9+{8sEo7
zX!3Xl>To6=K<)4xPQ&Y{2`1)y8)-$|KZzsp6l$TDFsX^N*yaM9in`y9+TlT*i0`68
z@*`T9Utml>tU#h?W+SI<Dv>eG5>yV@n1v6cawLgF&FuF3Qw5yAe)t?6+Q~_L1}|d_
z6O3{X_99U*BZre%Sd1EQ6>0$+aU5<#3-_QF@EUTs<_ylqukn7&8{v)9G=lS2GVP*c
z4!(ps%Ac_mb2u;E&%r_rU<D>oG44S<_Y*2)gLz0V&MfT7Ak&e2GuK8LQ-e2A8?GU)
z+R*YO4RvhrJ3^?5b|U#>Qm8C{0rmQv$0gW{vvC&h7Hc(8)DCy!LOh4#F?)>nx=qD0
z?n9^(JmU8!Kc}G|WHWjg8?g)D!vs#}T=o5{7{}jm9@>_d)yGjgKacm}b=1j}GP|;U
zHPU4sMNNDZmE;$Y?~~>)8X9mccMEVG>cQu+6EC8&x|WPoE<A$D{+Ce`U-cbL=ITUh
za3StOh4v$S2zzlUR+G`o@enrZ{l7wEE*%w|b2UbN-$4y{0~hOiMq{mJ7png_YA4@g
zD`rmiUb79T6F7*|@iZ!A*HO<`vg&^5;2`EVaT+=J7;?I1ACAP=Q91A_4#jVAAYQ>N
z`~yj7^C#9~E}8lUw%{JjWEJIj05#58)Ja~#LD-+wB$b7EH0U$qP&;fu!f&>tl4~z&
zf)l71|B8AGCX)IO;A(8bXHlX11(j^Wx$vl|LGsbWP@&$Be9VP1&VLb&f4I{EY6x&P
z?!XKrwC*3u3M71nzXj8WO2o`Ess>$5)nF=mg;gr4tEd|DR;i<*aPZ=|rH$)@ioeQA
z>MZIIs*XlwGj)sG^4?X&Tw&0HXHXTQ9IDD{4>x>${kB4--QFr|X{_^aT2LpLtNE3D
zD*DG7;I_O(RFhD;**xFxZ}b)9lUp*m_NT6=@;19gr>LTEs?4Nrq!Jmo)NoZ2CY8Cx
z)FspnRK;Co4OOp+ivE!J<8qT}lR7AqsLBPsQi?G-Xckc0smg&Ws!BaoNvHgnK((mK
zDI%=oo#*}^(>BdiC0Q0#@2g6Khnr->{C1wNje%5Y*7}B(t=2TFK4KQSjirgW+bX}+
zRc^UmiT0plMZ@;aO?F$z3dCX#=~$TvhU2Bdh}9eo*r7lybu6nVr#;YSH9AgI5B4k_
zFgAPCB0Cr{bpg9Qy48sUOnoFCh(+wMRaKn|=T9kW3`PQ)%~g{%1>0hd_iU3B3C5jR
z&*A(hGP0~@ClPB4r1A?Y@|IQC*Xl>jZi8Q?stQ_jn-h_i70tJ&KT@!zPiBh~PHYdn
zJz_wgwcZ{(JK~9`zu(UE2mjrbTerWV?SE6Xl|5V0SYT@`-Q8(Ng0|JwnFuAy%(5yg
z7Kp~2_C$y^rp6au9MK$2pNL1&-Bw39aduzGwn9#OAe89&y|6cD%$i_F$TWx3r`opK
z?csE{X^Esy@k_SPQG8cCXBtNka+ug($n9HyElt5t%-NjoiI`gllRN3lj3H~<W6n0K
zE8X1{v9~8uKTNJD^v=cGkKgvjNDVHD{C}C=!KKcWl=hq~>FzVAE^K#j@ExDLX#NGF
Chl~#Z

diff --git a/po/sk.po b/po/sk.po
index 55ab39a2e..1f14c492a 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2016-05-20 12:31+0100\n"
 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -23,6 +23,16 @@ msgstr "Jack server sa nenašiel"
 msgid "Failed to decode JPEG image"
 msgstr "Nepodarilo sa dekódovať obrázok JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -53,6 +63,9 @@ msgstr "Server odoslal chybné údaje."
 msgid "Server does not support seeking."
 msgstr "Server nepodporuje zmenu pozície"
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Žiadny alebo chybný vstup zvuku, prúd údajov AVI bude poškodený."
 
@@ -150,60 +163,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-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"
-
-msgid "Codec Loopback"
-msgstr "Spätná slučka kodeku"
-
-msgid "SunVTS Loopback"
-msgstr "Spätná slučka SunVTS"
-
-msgid "Volume"
-msgstr "Hlasitosť"
-
-msgid "Gain"
-msgstr "Zisk"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "PC reproduktor"
-
-msgid "Headphone"
-msgstr "Slúchadlá"
-
-msgid "Line Out"
-msgstr "Linkový výstup"
-
-msgid "SPDIF Out"
-msgstr "SPDIF výstup"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 výstup"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 výstup"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Chyba pri čítaní %d bajtov zo zariadenia '%s'."
@@ -226,6 +185,14 @@ msgstr "Tento ovládač zariadenia '%s' nepodporuje IO metódu %d"
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Tento ovládač zariadenia '%s' nepodporuje žiadnu známu IO metódu."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Enkodér na zariadení %s nepodporuje žiadny vstupný formát"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Zariadenie '%s' je zaneprázdnené"
@@ -242,6 +209,14 @@ msgstr "Zariadenie '%s' nedokáže nahrávať v uvedenom formáte"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Zariadenie '%s' podporuje nespojité roviny"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Server nepodporuje zmenu pozície"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Zariadenie '%s' podporuje nespojité roviny"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Nepodarilo sa získať parametre zariadenia '%s'"
@@ -324,6 +299,10 @@ msgstr "Nepodarilo sa spustiť dekódovacie vlákno."
 msgid "Failed to process frame."
 msgstr "Nepodarilo sa spracovať snímok."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Nepodarilo sa spustiť dekódovacie vlákno."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -425,6 +404,60 @@ msgstr "Zmena rozlíšenia za chodu nie je zatiaľ podporovaná."
 msgid "Cannot operate without a clock"
 msgstr "Nemôžem fungovať bez hodín"
 
+#~ 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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Spätná slučka kodeku"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "Spätná slučka SunVTS"
+
+#~ msgid "Volume"
+#~ msgstr "Hlasitosť"
+
+#~ msgid "Gain"
+#~ msgstr "Zisk"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "PC reproduktor"
+
+#~ msgid "Headphone"
+#~ msgstr "Slúchadlá"
+
+#~ msgid "Line Out"
+#~ msgstr "Linkový výstup"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF výstup"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 výstup"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 výstup"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Vnútorná chyba prúdu údajov."
 
diff --git a/po/sl.gmo b/po/sl.gmo
index 94b095c90549a537c0d742f2693f18222938b321..440c1f688f8a2f49103b56c0cc9bd74b01d0be51 100644
GIT binary patch
delta 1643
zcmY+^S!_&E9LMqhR55L>(^eO%SG7i~Ev;6mt_&I_75f@#O9Zu5N~B~S8WCPdZislH
z(HAc~j3B((--w8)#F8fZY6(Fs@%`O9gp-_p&bha9@Be?!|J+wgFD{C{3MHO4+5-9n
zdL+TD6+067Lwi5eYy^J5bo_<-zqDay6R`~Ia2ZzMNgR)Nu@K*27?X#aO~G>1^>w(~
zENVRr_Hp3_uE8Zivm)%nwfG2U;?yMng&T1)^KLB1^O%ZHFdqlw_fwMnK&Im~t~a9+
zJBU-UAM<#>C8YQdD!^iHtVLyT6eHM+i*OK|u$1MPg$J<+FJl?@qXJ49$^T#-YQ77V
zzy(x*Pq6{NY0mqtdX%5hW-MUdgOzv*L--oC^dFHJEI8T^APvtjZ^lj>!0EVZjM)r4
zin(|V9ejp*&KIo5kz-l^xeS&vn1RPJj5o0w2T&R25Jd?#q2>oL3wu$S-NL&8vv;Vi
zxSHm#<U`D3{uz~6CU0-RI-HHsbk<)>a)S${_!1S!h;hEPSk8PmF2`PM!B4muBN=|i
zeYlbNQ>?_YOh1urSjGG#D$oa*jo(oLjmu*F9R@X|qiWuSs^-JkhPP0ePvln$a0$-F
zZd5H?MP>LC6`(`m$o;qi@1vGFn<G<;>v18T#g+Iv%0LlT<oJ8qfsM>Bq9T5ai!qDn
zrr{Q>z*AU^_plm2A~9G=uAfj7@>AQ6s)=KG4zJ@8T<-YKi#}#h$b}!MV=-lt|HBqk
zX1lNsPvIPVgnD5THx)nxYjGdW!Yio22T_4$b5>Ka1?#aL0~l{nFKSKnaE`9`vC&*n
zs}?8;qkg=mb6*x8^BwXU3+R1VG#Nryu)Nz;*lH?hC73|ho~!YxF-piXb^aCI0y@R+
zMMw=<GCfFV`~GXnRI9{E^tLGxSrG3ufYs2I{hy{4P*csQ&>QF~(D`&up;htzzil)l
zoo}|tTUy=FlK$I5OjHNj0*B7FdyQ|2&7-SW|Fj$ik@!T%wmd%Oi|iG%g$wrQhMl%U
z4uh~Yc5T_d$JyJ_dZ?|neW$avvvW^psXH({7V8UU1>NUk3S$LhdjjsYP_g?tv^usS
tbs!Lnr1uBh=8O{eM8=(1duCUX`*l)HtToRKxPkm4cV7OE*zNq(gx`wFrrH1i

delta 2447
zcmZA2U2GIp7{>9lKufEIenJ6(9fVS#fOIJzw${>8DWxq1mli}L8QOs^yUdjBwoww?
zXh;MC(PV`SjUhr}G?7Tyn0lcm;u1A_<wqdKpvZ-wMs7$nF-HH-><Gk@oc*1d?VdUB
zd)_lW+i|rgeYIlJNkiLCpH2T}f-z}4Ucd+K$Yf(m@F*7HDJ;g*!S&n0^#z>9{SUAV
zze3G-9p|Ec{3wL60iVXHdQ^tN1Kc=+i}53@#T&Q~%XpgZufcw_@c_P$TJ)0p==cKe
zz;n0~3-8ZAxDn@b{RBqv5LV)OT%b^M!5`d2Eo2Je*5P8bu@4vFI6jC!q9&R+#h9hI
z8uhyYY{xWqU=BB831P0rKGZ^wV?B;zM5(^XU^&h%%}?Bgir_h1fEREbUJkBjkY7dA
zj5TQEDtr+q;fF|a%ta(7^Cec`71S2}itLIBm9to~Y>F9>HB*85Vh-wuHK>)><0%}%
zB>saBVUk%1(wxB+cpf$1HPixr!7$!N3#-Vx7O)D5#dKAY{}u*Ma-#`fLrruURRcv;
z#x&vzRO;fm3{M5uIh@J$EnJDk%wCAim<zET$W*4dIv?O1RA7sO>xOFbuNy7g&|Y>S
z!I@`JdwmR*;&ZqTzs9v#H6tHM4{D1BP+NEe6~K7l4UBL-lT|*B-Pnt#aTnf7Gf*mf
zXBqPprg0U1kIFy=m9+*NQ4uDQugsgMg?)?`{){?iMVvVuvs&DZdr%qs9JRnda4jyJ
zlP}KnE(VJ9Ez}CX2%O7oQLYc5w&)TzV?o%M4Y(e+;W5+#e?ZkrwPj2zZbmKmW!!{0
zti#fI`Sag|WISz#88q_6>!_l+68IBpYkosT{3lvi$!b+}4amVUZK$H#irV{~NDRhC
zWj2kk;=6bVH*s{dkk7D0=l?c?#oP$7kvau+s0XjcMc9U#FpkV&jv{qs-a)1MB0h{E
z_CtX*p=xOim9ev^%v?idWCm}w2JFU4o^PIK(1IsXk$j6GoK7#Gs}a2aBaQVprSy&T
zF1i+{2dh1j$N#Jh#vBg6QHy?Y>Ou=wQ~mj8p1Sb&RV!|%tEq6*Cgm{{zh9Jvs4cm-
z>3C9uex%Btn(Cw1ALT!`2V=dw+URVz;?GxZD=OV#y3(gq@!s%@>oHU#F{YcY3Rcs0
zXzR$V-%9vgmmm87D}v!2c=4GD!PR<P9z5TFU+caKL)9A91#Kd|#~<ZShlXsoUw9ff
z>4T>2(>dQv-$JjachXgWs*SC5y;pR!ExPJVHRL}`s;R2`{1G3uH6yjw?q@A&TKjfb
z^;V}F40=aX{wVU_t%${~%-;poWo@IeL~2>gwW7n09e0wM%ED~Ppfg}~d*1MFdmx_u
zq;Pi8tPVTonvIS<I6UOJj_Gt$PSUj#*829$)u~J7cgI{ubNlLPJ+XnLm;c)y&yA(L
zWOj1t;m~9&>WwA`oXp{}mE~L7J2&V@QGcKXy;ruQG&<_`Z;Rf2d`bEBP+`B97~St=
zf3Ns1w5)%~8?^iYP3OV8<2$z__uP(TKCN0_-oH0#?{nOkb#Tnfop59E%<Zb&v@PCP
z(oVUyb<lR>wiWjVow%JHpEgz;?%ikSPQ+5qn29DvFTG(W;*QzurINP0FQ$-}hMSkR
z627;WNyk`&xpNiMk_bPZ^!9kJ*=dg?JU2TOekD}WA4^&zuCt$6?95+Q-E@D+e)PeT
d{c)ydUi|-y%O@rK(!8n(#T^NI#Pvo}=3k#MLbU(@

diff --git a/po/sl.po b/po/sl.po
index ad9264089..39b83d603 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2014-04-09 22:52+0100\n"
 "Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -27,6 +27,16 @@ msgstr "Strežnika JACK ni mogoče najti"
 msgid "Failed to decode JPEG image"
 msgstr "Napaka med dekodiranjem JPEG slike"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -59,6 +69,9 @@ msgstr "Strežnik je poslal slabe podatke."
 msgid "Server does not support seeking."
 msgstr "Strežnik ne podpira iskanja."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Napaka vhodnega zvoka, AVI pretok bo pokvarjen."
 
@@ -154,60 +167,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr ""
 
-msgid "Record Source"
-msgstr "Vir snemanja"
-
-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"
-
-msgid "Codec Loopback"
-msgstr "Povratna zanka kodeka"
-
-msgid "SunVTS Loopback"
-msgstr "Povratna zanka SunVTS"
-
-msgid "Volume"
-msgstr "Glasnost"
-
-msgid "Gain"
-msgstr "Ojačitev"
-
-msgid "Monitor"
-msgstr "Zaslon"
-
-msgid "Built-in Speaker"
-msgstr "Vgrajeni zvočnik"
-
-msgid "Headphone"
-msgstr "Slušalke"
-
-msgid "Line Out"
-msgstr "Analogni izhod"
-
-msgid "SPDIF Out"
-msgstr "Izhod SPDIF"
-
-msgid "AUX 1 Out"
-msgstr "Izhod AUX 1"
-
-msgid "AUX 2 Out"
-msgstr "Izhod AUX 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Napaka med branjem %d bajtov iz naprave '%s'."
@@ -230,6 +189,14 @@ msgstr "Gonilnik naprave \"%s\" ne podpira nobenega načina I/O %d."
 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."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Napravi ni mogoče določiti novih nastavitev hitrosti sličic."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Naprava \"%s\" je zaposlena."
@@ -246,6 +213,14 @@ msgstr "Naprava \"%s\" ne podpira zajemanja v izbrani obliki."
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Naprava \"%s\" ne podpira zajemanja videa."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Naprava \"%s\" ne podpira zajemanja videa."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Naprava \"%s\" ne podpira zajemanja videa."
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Ni mogoče pridobiti parametrov na napravi '%s'."
@@ -335,6 +310,10 @@ msgstr "Napaka med dekodiranjem JPEG slike"
 msgid "Failed to process frame."
 msgstr ""
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Napaka med dekodiranjem JPEG slike"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -435,11 +414,62 @@ msgstr "Spreminjanje ločljivosti med delovanjem še ni podprto."
 msgid "Cannot operate without a clock"
 msgstr "Izvajanje opravil brez ure ni mogoče"
 
+#~ msgid "Record Source"
+#~ msgstr "Vir snemanja"
+
+#~ 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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Povratna zanka kodeka"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "Povratna zanka SunVTS"
+
+#~ msgid "Volume"
+#~ msgstr "Glasnost"
+
+#~ msgid "Gain"
+#~ msgstr "Ojačitev"
+
+#~ msgid "Monitor"
+#~ msgstr "Zaslon"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Vgrajeni zvočnik"
+
+#~ msgid "Headphone"
+#~ msgstr "Slušalke"
+
+#~ msgid "Line Out"
+#~ msgstr "Analogni izhod"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "Izhod SPDIF"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "Izhod AUX 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "Izhod AUX 2"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Notranja napaka pretoka podatkov."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Notranja napaka pretoka podatkov."
-
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Naprava \"%s\" ne podpira zajemanja videa."
diff --git a/po/sq.gmo b/po/sq.gmo
index aa7a5fc26c76078d92106acc67b0ac8d60520da8..cb477cf0999b7eba68ca1c51b3a980965684c466 100644
GIT binary patch
delta 96
zcmZo+oy8JxPl#nI0}wC)u?!IF05K~N+W;{L1OTxa5C;OW7b62h2at9H;>$ob5P<<m
SFAPkaZL#r|H{)b8CU*eUBMP7Z

delta 204
zcmbQm(!yGQPl#nI0}!wRu?!Hq05Lld=KwJXbO13I5O)GGNPG$qn*s40AZ7#N%RubK
z$iQ$5NOJ<QDicIpA4t0a`DRdlEszE(V_*Sd7yt^%fGuVQiTGwF7v&dZ<maU__~z$j
vmgE;r46tAe%g-szP2Je;!zkdJnO&5h29#oO%`QsJ%ba|P(Ssc<pUD6K1W+J^

diff --git a/po/sq.po b/po/sq.po
index 000dc4eb6..ee0fd7de3 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2004-08-07 20:29+0200\n"
 "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
 "Language-Team: Albanian <begraj@hotmail.com>\n"
@@ -21,6 +21,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -55,6 +65,9 @@ msgstr ""
 msgid "Server does not support seeking."
 msgstr "Dispozitivi juaj OSS mund të mos provohet korrektësisht"
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Input audio i gabuar ose mungon, stream AVI mund të jetë i dëmtuar."
 
@@ -141,63 +154,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 msgstr "Dispozitivi juaj OSS mund të mos provohet korrektësisht"
 
-#, fuzzy
-msgid "Record Source"
-msgstr "Regjistrimi"
-
-msgid "Microphone"
-msgstr "Mikrofoni"
-
-#, fuzzy
-msgid "Line In"
-msgstr "Linja-hyrje"
-
-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 "Volumi"
-
-msgid "Gain"
-msgstr ""
-
-msgid "Monitor"
-msgstr "Ekrani"
-
-#, fuzzy
-msgid "Built-in Speaker"
-msgstr "Zë folës"
-
-msgid "Headphone"
-msgstr ""
-
-msgid "Line Out"
-msgstr ""
-
-msgid "SPDIF Out"
-msgstr ""
-
-msgid "AUX 1 Out"
-msgstr ""
-
-msgid "AUX 2 Out"
-msgstr ""
-
 #, fuzzy, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "E pamundur marrja e buffers nga dispozitivi \"%s\"."
@@ -218,6 +174,14 @@ msgstr ""
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje."
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, fuzzy, c-format
 msgid "Device '%s' is busy"
 msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje."
@@ -234,6 +198,14 @@ msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje."
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje."
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje."
+
 #, fuzzy, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "E pamundur marrja e buffers nga dispozitivi \"%s\"."
@@ -314,6 +286,9 @@ msgstr ""
 msgid "Failed to process frame."
 msgstr ""
 
+msgid "Failed to start encoding thread."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -408,8 +383,25 @@ msgid "Cannot operate without a clock"
 msgstr ""
 
 #, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje."
+#~ msgid "Record Source"
+#~ msgstr "Regjistrimi"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofoni"
+
+#, fuzzy
+#~ msgid "Line In"
+#~ msgstr "Linja-hyrje"
+
+#~ msgid "Volume"
+#~ msgstr "Volumi"
+
+#~ msgid "Monitor"
+#~ msgstr "Ekrani"
+
+#, fuzzy
+#~ msgid "Built-in Speaker"
+#~ msgstr "Zë folës"
 
 #, fuzzy
 #~ msgid "Failed trying to get video frames from device '%s'."
diff --git a/po/sr.gmo b/po/sr.gmo
index 7dcb35d8b47b9d8ff66dc94165f5ccc4019b34fd..769bceda7d7e89aa07adabad63d0303c4164cf7b 100644
GIT binary patch
delta 2085
zcmYM#Z){Ul7{~F`vbnaf4Z4-GZj=r-)+vlXTM@cBHn!p1+}I|R{m~iOG-yECBBCa<
zW<(OAGg&T>Xe4C8_{PLUD*@s_FohtQOEfY1M&9Tfl0_uw8~=ZQ_qKYH=YGz)ZSOtj
zJkQzQNuE2Byyee1X=sB)8L{9tCW*7TTxb{aj9G#gu@kRj0R0~4`%w%tZo@_##X3Bj
z@q3Ih&i5Kqfh`!q{aC739i_9G8)vW@zriZ}6W3ye&$-`;3C4$U4Cin!HZC^iemsT!
zcol0g#H=;3Zd`*0QSX_?8cbu6mU@p)gd2JJ&J3fdA9NuzG-IeAPN5!r1s}j)@hOZH
z7!$=wT#X;1zCVw8j;qjlZY8c`+<{u?5iHeK&(LYbOZYIlmm1TK9k>N8)CzCnCj1Tc
zf~sZCN(NEm<G2E6Q4{?ZwdG#FF-=&58oz*=*a=Kl(z!rKIl6@rEG{Cy7(?Z{9obbg
zj9TGysEJMCDNN%y4iy`-0q1ce{*9|}0}qMdF4Xf5aoLW?0_=Z1o$K7t58TV0+}C29
z@eta%#r2G@X2y50gmEb7th5f5lKrUfoj`5z7pP)fz#1%Pd)8CnJ*e7vEyVs$&^b*>
zZpBg(-hjJN51PhF{2X7z9UKwm{5+0e$x35(;sk2KY1Hrk!BK4BElTMO_Tp_E#(K6T
zf$t{iyhrCQ&g0t=XZ%FD^M&70pZBuw`r*&0iFT2|Mm&ak&^7GAG7_xQa}YP<No>L!
zSdU)vts-p00Zfk58KN_XdO(yjcN<^9K^);}x_=p;#X?HGTc2mVflo6Ivfpw7oAF1S
z#!B+{CZ5MBY#~oC;n&D}lct^NJkO2yGZwM$+TuwZ!=EsQ2@?1uzJ<GS0hO9&Dy|FD
zsEPVFQfN4WN?8hZnxdPW(=&$K7@x%|o&O)`Ji?7!_UjPt!Uh-T9PcvztJau(c!x@o
zeaxl}&!JNA2R?}LEylc#<2Z`<P&Lxehn+Z!8hgm!UOa#Uyx*khC<S4rrN4Nu;xjmd
zkD`al>c>6UhachN=pvyB97g7AmJ``VHtj;xcrj5(bP$>drDoRzX#M{;j<MZ}xoXQ+
z5X{YPI)-W`L=HiL+pA`G?Ft9`sA;0v7NkR#Og<6H-pt6RJAeOI)5#+SiN}a;LQN}c
zv3pKM`{?Ip#u02K77^tH8M3R}kJ<JR9ZKiF7N)1&EhDHsyLq(!9dwmX(q$K#{YmDs
z6y2FV^<@eO<u2PO5xXfZDoQV*l<g#X32NH@-vD;4G~;#+Xk^iJHE~h3l4`pMIW=Yv
z(L*dF)({oMeMEpz8*s3%ORQ?|KI>y|!1~VniS?ClZR)Zw=CcX{)v2Mt2QI5HxX$Vh
zCQ_dUZ@N=&gy!5<YjxQAY-Oo+t-_!3g!^2nqpL0!TQAogNX27^7g=9!9kCMIE?HON
LeW~gAFFF4LG+*AP

delta 3067
zcmZ|Q3ry8j9Ki7dJ^)2Q9*Q9P_laVtp!iNyh=;r%;#E_;z)cCfAOl^NUcpSVGV>Zk
zp*hlQt>w@Q$snYfz2<D^nyqr?RxY<%n`O4Om0RE6|6YY^o!#^QoOAB~f1bbpy<NMG
zI~+GdhQ6vuRpbfeXND*x4L62!A<YX=DiGr_6IY-=9zs6K>8-!!t)Ibg+B+~9KSt^I
zE1Zb;a0P~rP-=lv4pl&5Gz|wm4XPOvsb9uv=rdBONSuLDxC#?+6VAdT7=t}H1HbpS
z2Qcem>hp029>R6_7sg`ID5WfnuN)NS)9^LQ3<H_XRGf`6P%h5FMhwMsXy8XE6TFRb
z|HvTE1m~hWmx<EvUYw2R(TX>5Caz?ArZB#$pdb&th|*C%O2@bG5%eG9S!p854wPUD
zK8<PkKBmikAxbU8e3TV7VLZAp0e`?b7{Mx}o`#MH3cD%DOr0nLe}XIVXKy_&%rmh9
zoKE{rlp|_G1Fzyx{0%u?^#^ha%9lW3Of?$$sL5RXa1lxjC55y99J5OIeo=_>;6|K+
zTTxbY2%GT(tVPRMrRL&g<kZxkI1dBHc{*N-GLdAQgxP4|cBBh+7&!%XdK~+oM4^+0
zWq1#zqj_wL1eFz+;`1n5dI{t3j<+5?UMW5*or~;XDau(lqulo)N|6473ow#MmLteT
zdBOHND8%_HbpR#!T)ZoL@G5ewDlgg-bfqZuo!)vAE~egwvcfNMIsT3^Z~~n*;ufsK
zTPQ(i;bsZK1}sCzEefd=(hSc^52JMS8J6Sl$(|sq#C+;5+>FCGpJFV>HtfaE(Lw}E
zJ%&J%?=PX$qX-;%t{Y|I<9JtB$orp1L2i5*^YAvx)-U2BQCfm4@hHj>eSz{;1hJg;
zxEwcPGs^RK@kdN%-#1_!=O*n<Sb^VQj(pEK<;eSgl!A?h@4Tkb`zq@1;463sU%&?T
z^(7p|0q(?Blz~HtL_6BOev4M>Sp?D!Jd25F#IqPI#v*(d8yR1XWSQA`7-gn6Fc;&9
zC^@@5n2vWb7?%-AA((~4t13bIQoC>ozJ<h_x`k1AALY66%wjagBAcj|pd*8Vl|l`^
zjmv%by<Vu)uhiEsBBC*q1CtKVqSQadP@K(Z;h2Pv;acQORV(tSx{hqB3R$YuK3stk
zQ~fBxH*FdFpGl#KgO!GBxDFQ+f$Q-I$`=2GgoR3dRH-L$J7(cEwBTe$Ex_IQI9@@C
zsn{gX4mBX_GIxiu%|E0Zl=w3fM`@-}TuaC@dr6FICYf9qS$0b%EXgpho?lEU%1R^2
zY@Ye!Q;CC<?97wi203m?78zewnoOQV-b|LXmK;YeBFk125@z%cLD`X1vh0W?S+OKJ
ziq&Sxv+6=`c{oZyO7bJ~6JhS&N_4E@BGErMNsvg|K#m~ilc$g+@iLe{(f(%5^Q$Lk
z%G+lCc@0C}K=Y4jG7@{{4;LY0{%KX=bg~=|G2<{JQKFsKQgNIQ(>!l!8zzw@E*_*!
z6vmS!>LraJN0Ecb5}<)(-a_-O*^0hoiI2fa;wV^tQSvCr>ok_UiY#fUhlf{Q47G(k
z(c8jf{9T^&E1kC1V#FI6cD2eZ<kr`jrGy7f2?kBhG5+I%SJzim)x}lVjlvq6wbEAW
zjPZ8`mfOmVtm^8TQfpbIGcaJ*`GCX`k!jWnyGplN%WJk(+ifbtUT3SdTdR!Z6z77_
z*r{0+cAIo>Dg$O$l+{*y?#-^YSJYM4x;BNr>EmY<R@c{-*_`*o=8wrs$w-xl3eAGd
zX->E$sIcB%TvYgQ2Cf6)mwks9S69_<x4Cj7uK2DwqEG2JSfG2q?$sUog3=FKbhp0n
z&$fjB+?8Mq+~w?xndDp&HDTf@?Q-wa9qyyLOZVw+gKo~d_qz{DMfW(5L`AqNqjG#^
z=!>+=jg5TMVd#F{<!*Ezmtqg!b@F(R?r=s#XF5Blk9S2zTf&x})EC_?JaUkHLU$?M
zu6yabiK+MMZufK2bV~Qp)M$3y#9hqbj6UY9iMJQDG6QDeZgDrzclV(6{QH}Mbt&B@
z^QOCt?q``-pVBAIzFV2^3D@=br-nqd$Qt>6pFzj6%=gUsbvW}AZ8O{TNqtPW=+lFS
x8)zFC$l00LAIk#&cURh3WuHE(U)Sw%y2G_&Val)w&C=NoSr+?d?zHTh`WqarPaFUM

diff --git a/po/sr.po b/po/sr.po
index fb6b5532c..0bb1ffa65 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-07 12:21+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
@@ -26,6 +26,16 @@ msgstr "Нисам пронашао сервер утичнице"
 msgid "Failed to decode JPEG image"
 msgstr "Нисам успео да декодирам ЈПЕГ слику"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -56,6 +66,9 @@ msgstr "Сервер је послао лоше податке."
 msgid "Server does not support seeking."
 msgstr "Сервер не подржава позиционирање."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Улазног звука нема или је неисправан, АВИ ток ће бити оштећен."
 
@@ -153,60 +166,6 @@ msgstr "Нисам нашао кључни уређај звука"
 msgid "CoreAudio device could not be opened"
 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 улаз"
-
-msgid "Codec Loopback"
-msgstr "Повратна петља кодека"
-
-msgid "SunVTS Loopback"
-msgstr "Повратна петља СанВТС-а"
-
-msgid "Volume"
-msgstr "Јачина звука"
-
-msgid "Gain"
-msgstr "Појачање"
-
-msgid "Monitor"
-msgstr "Праћење"
-
-msgid "Built-in Speaker"
-msgstr "Уграђени звучник"
-
-msgid "Headphone"
-msgstr "Слушалице"
-
-msgid "Line Out"
-msgstr "Линијски излаз"
-
-msgid "SPDIF Out"
-msgstr "СПДИФ излаз"
-
-msgid "AUX 1 Out"
-msgstr "АУХ 1 излаз"
-
-msgid "AUX 2 Out"
-msgstr "АУХ 2 излаз"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Грешка приликом читања %d бајтова са уређаја „%s“."
@@ -229,6 +188,14 @@ msgstr "Управљачки програм уређаја „%s“ не под
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Управљачки програм уређаја „%s“ не подржава ниједан познати УИ начин."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Кодер на уређају „%s“ нема подржани улазни запис"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Уређај „%s“ је заузет"
@@ -245,6 +212,14 @@ msgstr "Уређај „%s“ не може да снима у наведено
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Уређај „%s“ не подржава не-непрекидне равни"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Уређај „%s“ не подржава видео снимање"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Уређај „%s“ не подржава видео снимање"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Не могу да добавим параметре на уређају „%s“"
@@ -325,6 +300,10 @@ msgstr "Нисам успео да покренем нит декодирања.
 msgid "Failed to process frame."
 msgstr "Нисам успео да обрадим кадар."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Нисам успео да покренем нит декодирања."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -424,11 +403,62 @@ msgstr "Промена резолуције приликом извршавањ
 msgid "Cannot operate without a clock"
 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 улаз"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Повратна петља кодека"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "Повратна петља СанВТС-а"
+
+#~ msgid "Volume"
+#~ msgstr "Јачина звука"
+
+#~ msgid "Gain"
+#~ msgstr "Појачање"
+
+#~ msgid "Monitor"
+#~ msgstr "Праћење"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Уграђени звучник"
+
+#~ msgid "Headphone"
+#~ msgstr "Слушалице"
+
+#~ msgid "Line Out"
+#~ msgstr "Линијски излаз"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "СПДИФ излаз"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "АУХ 1 излаз"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "АУХ 2 излаз"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Унутрашња грешка тока података."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Унутрaшња грешка протока података."
-
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Уређај „%s“ не подржава видео снимање"
diff --git a/po/sv.gmo b/po/sv.gmo
index 3d38933860c71c88bb12f2f3ff5f6ac6d6773aab..2e030849f375c500c3c185382d3d6f855377b531 100644
GIT binary patch
delta 2080
zcmY+_e@K;A9LMo<uiEuquV&`W`J=ivf9KWA?6-BzT&8KR%v)XvifR%>IyU;FKQ0sn
zK|%GHMFkN;5Q$W`MGcE=B3m@s7H$1ge+5MZ8(V|H*4F#;JU3YfzP`?RdVZYqJ>PSS
zZ#y52J<CcyWoX?*0rA>xObka-_(QwpF~*O#u@%QLfLW=|{be|daTBh<9k>7o6F$K@
z#_3*Tim(y$um|(?se^RpbKwG(<4;(M|6mCg`JC&m*v0ru?8Ao`!4+x7RNw$^#!;-r
zJZ7zlwd2RQ2lbs3ScPLaT}%CgPLK<pbZ3TTs0Z4R8Ja%SgU3)WzK3)14Q|6=hB0M$
z0O#Np)cq5v_qe7y?=8kk#x1CY?!$bg`XZgxcn8;@JJXnEY{7+Sp;q_+Yw%Ch2TG?o
zE9pj!kKji*f|}@KRLZ?s#)Pp7HQtMwSU<*!>D;2DJ$i;g%%0BvVjXI)n~|)Vt*905
zMosJ(4&WGmj?rvms&NA6;lDT=t9eNf*Q4Io%b%5aI6(fF(HZB09&pca_P!REGLE9X
zw-{nPni&6zxs3C2oRuy>ZAlO6zJ64S@1u(GHCACE=^1tz(}C=|`7f9Jx6tuZl1g0!
zm7-qM%unHR{0jA=-?1J`DGa$2m61W5iQ}l}o}*4fGDk{#-iTUYFKQweQJMN7MyHF8
zp6-PRM)6zJjYX7jH*UmbIE;n(3N=wbU#rC$tiheA%$!EucMWylBh*&^mAF1D=wvt+
zPIUI8UT_ol<4e>GckmWH*pE&4HEKm#wyHja4cLWscm{R<1a{&Z+=6SVI5~*x@GX+j
zm}y~ppK>9F8}UaBV=-@O!(GT?%?;G)c!Y~FpC5+^cA`={gp2SgF2w*pB2CzVn(zQ-
z<2Oh-m?!o)X3TGNRAebErxEAjIs5|oXOl@Kskn}#?i)d}XkH+X8V?tPSdGd=2QI{u
zs4e?0VG1wNLK|>CT3D|SjMLE`CNs?-F2*o!L2b!dR4qJA_%|+RTtTU;C_h6NawsMn
zNwV+Jg*1Yn7Q4_}QIii7YWn_U;~3jbX=)~PB9v-17GXCPS2Ce$SGtw@HH4Zbv)S%B
zf0SlTJe}a+e9*M8e0`t#Fdo9La%?BmbSktRYD%+@NYQ{6BvuniL?NN<Db@PXdf)2l
zkeJD)8lp7p|Kv!x-BPvwRdiJ-+A~$~|63*lcjAIhLk1B^jD_}5Z3EFsc!_nyCxrHz
zow82}*uMu2xKaa}inJ}vpY_BNVl6>UnN36oF^%Aq*ync&@*`<C9i#WnZ<TwuTi3h+
z>lg2J>w8~G{I0LgXJrJ+<I%t+mo+t~(rVA?ir>h2;Eo^4^SG_61-aId*=g2`f}!};
hndkjhUqvWBTJf{Xx?DNOdRp0I4Tk2%kA@19-T~8s%~k*a

delta 2884
zcmZwIT~JhI9LMnoB>_bR5jDs>Ac`Q1f}n-Ti@Xbjf&z*!E$oU5%kH{>qgn0PjFyfz
zH9LBf*+mo=jSfoVlwFk4%a~p1Ojd*THhERrOkUJvGkt%%N5`g~+5h=G=Wt%0=l}fA
z;biBSGjwxS>~TZ$5|0tjO*TdcCZ@2VEl)5e5eu*ZOEDggAU_kf_usJh-@#Olk75#j
zhPv-{d>rp$DW*&{rpTC(X`wTN1207nm=jpc{uRu^m}$nO;bKh33M|BJn1iokHeSHR
z_@jM1fl;@yzXEsT5p2hMn2Q^y8`Ht_O^D744t$LoVIrehh)YoqYQ}tg5mWFiTKFky
zfVWWRPn#JX;4;*84XFFRfJ^ZlI`Jkh!E(}*$@7hejxIQgy3t3d8~=oP7@r)SX)!7T
zJFp7(V=aD+bvkdBF)MKcYKAXk0ghoI{*3uJk6CEH7DMysJWEF-4Wl0XIhNxu_P%3w
zbYLyGh~s-uOLP(~yo#~-JF>jy4`db0Bnp9Nni<H?WUz_DRj3*&OC|p-v#GQH(2BaS
z6Em>~HKQYV0xx0^JLVX(46h)oX8ywEm@qeb;}X<BDscfep@sd(EzB#(DwyH9<iCv0
zdmLDecTqQ5PFhq{PAtL0sFZ$!4!mRU&wtbyex{C%GT4P$>l3K+E}@F_H!Q+5Dp^a=
zjC#Rd2+=tcW6VLMFijEf$~vq-rRb>baobb2Bgh!cC@RI5QA;<0nsLm0W1hkc)PuJp
ze==cQgQK>g+jNxbJW8LgX-3_kA4~BVstCVCW#&)R401V1ORyQ+@Gu7Od+fvwR`k5n
zxP|=*REAe&Fen^g!+=BPI31<#0;*bXBiS+*qoQj{P&3<#D!v2u@ewRx|FUf?ua2%S
z!~M7$HNam{*Ujf9)mVv|&|zGn_y0Vd3J!dS#hAg_x}crSMtmMO<5k-{zA}yMA3~+}
z8g9UN3Z@meU^$+_CcJ|r&8*?2uf?tS1P)_6&o?*dD7D2@$|~H6n%OC=#&1v~UO)xv
zZE3_fY{z8WfwOTpQorU9#^Wj55!+GJbswP4zlb5ie8r{`V<_F%u^Kh7A5hio<mr0Q
zG1U2Qq8{*t?KNcC%>*)8a}O=d;uT28YE*`uxDww&)xx(99;412DoQDAL4BEqaSdKa
z)kZ1{X<<E<V=orqyT~c#hHWBgRMoFWEzMqh1W#iOK1nFEdJ~=|qSFN3L~S~;gU~Xl
z>1Jx(gi=;dG!SZ5WE(9`b(N_!LNiPt`iO^HDLcLPfhOAyrCG(L^ecti3AIfGS&9^3
z3MwleVlvT5)DYBNq;0j;mu;=xR~@Jr)us^6NH4nndd(Y&aw4>jjhlG5&9Ha2pguBM
znoRo`OB?w_YyH)<JT8J7jr{Xcx~b<#rDvd)LA9fbuOhs}B0}GcYUN)A(@dzawC494
zOBQLn*p?CP(cQ>)8(V!NR0C>L2^HE*qKil*D2d2_#U7kQv=9%so$Ms3`qtCYCv*-`
zL8!$>d9c-Y;Tb~jv6_n3gwMuxWo_!P3aomcsfcu%hXy0P!uy8`Ee?f~<L4%=9rAbw
z9Uh<68gM)N+`({m{8*yP-EB4c{edoLcV9R$A?I8|@zk_hr^jdN+)h_um*3|$^}a!O
z(C748l~v)Ql-z}l9-mvckEjPWdAfuC=($aPpJ&h?9NU&M5))^&`iFwu?(pBUS0t~m
zs;|*St&xt#l%Lu$vvtVVwz2iW2*wVkUYRtd&F>xRcaJsCi=WgSoz;Ws{daa8sd0O)
zJsy|k?HzIr1p)&Bx7X+K_2e_~u6;c{E^F8L`JO?i*BNw&{b}znZtm~%yPQGC_}k2@
z&mRbQIeTD0Tc>I8`}VklOd)*0N*`-T-<z0KGk!ieFgQLO>@#(Ay+c7eC04h~p{MD_
zm$LISNl35T5zS1m+lpkSFX-Rt_nG^7xs!c8CT^f_eAw%ChCj@4B>g)tq~%slZ+bK>
V|2x3&Yq@!2`*SlUD^2_Q%|BRsfA|0Z

diff --git a/po/sv.po b/po/sv.po
index ad00df3d5..99aa1744a 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-21 19:00+0800\n"
 "Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -26,6 +26,16 @@ msgstr "Jack-server hittades ej"
 msgid "Failed to decode JPEG image"
 msgstr "Misslyckades med att avkoda JPEG-bild"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -56,6 +66,9 @@ msgstr "Servern skickade felaktigt data."
 msgid "Server does not support seeking."
 msgstr "Servern stöder inte sökning/spolning."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Inget eller ogiltigt ingångsljud. AVI-strömmen kommer att skadas."
 
@@ -153,60 +166,6 @@ msgstr "CoreAudio-enhet hittades inte"
 msgid "CoreAudio device could not be opened"
 msgstr "CoreAudio-enhet kunde inte öppnas"
 
-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"
-
-msgid "Codec Loopback"
-msgstr "Omkodar-Ã¥terkopplingsslinga"
-
-msgid "SunVTS Loopback"
-msgstr "SunVTS-Ã¥terkopplingsslinga"
-
-msgid "Volume"
-msgstr "Volym"
-
-msgid "Gain"
-msgstr "Förstärk"
-
-msgid "Monitor"
-msgstr "Monitor"
-
-msgid "Built-in Speaker"
-msgstr "Inbyggd högtalare"
-
-msgid "Headphone"
-msgstr "Hörlur"
-
-msgid "Line Out"
-msgstr "Linje ut"
-
-msgid "SPDIF Out"
-msgstr "SPDIF ut"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 ut"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 ut"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Fel vid läsning av %d byte från enheten \"%s\"."
@@ -229,6 +188,14 @@ msgstr "Drivrutinen för enheten \"%s\" stöder inte IO-metod %d"
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "Drivrutinen för enheten \"%s\" stöder inte någon känd IO-metod."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Kodaren på enheten %s har inget ingångsformat som stöds"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Enheten \"%s\" är upptagen"
@@ -245,6 +212,14 @@ msgstr "Enheten \"%s\" kan inte fånga i det angivna formatet"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Enheten \"%s\" stöder inte icke-kontinuerliga plan"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Enheten \"%s\" stöder inte videoinfångning."
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Enheten \"%s\" stöder inte videoinfångning."
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Kunde inte få tag i parametrar på enheten \"%s\""
@@ -327,6 +302,10 @@ msgstr "Misslyckades med att starta avkodningstråd."
 msgid "Failed to process frame."
 msgstr "Misslyckades att behandla ram."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Misslyckades med att starta avkodningstråd."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -432,11 +411,62 @@ msgstr "Ändring av upplösning vid körtid stöds inte än."
 msgid "Cannot operate without a clock"
 msgstr "Kan inte fungera utan en klocka"
 
+#~ 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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Omkodar-Ã¥terkopplingsslinga"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "SunVTS-Ã¥terkopplingsslinga"
+
+#~ msgid "Volume"
+#~ msgstr "Volym"
+
+#~ msgid "Gain"
+#~ msgstr "Förstärk"
+
+#~ msgid "Monitor"
+#~ msgstr "Monitor"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Inbyggd högtalare"
+
+#~ msgid "Headphone"
+#~ msgstr "Hörlur"
+
+#~ msgid "Line Out"
+#~ msgstr "Linje ut"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF ut"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 ut"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 ut"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Internt fel i dataström."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Internt fel i dataflöde."
-
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Enheten \"%s\" stöder inte videoinfångning."
diff --git a/po/tr.gmo b/po/tr.gmo
index 8d3daaae68f053dee9ddc2b4709348d4037793eb..f154da0240b2ff5f5813d2b13e00342f7d0730d9 100644
GIT binary patch
delta 2100
zcmYk-e@vBC9LMqRy{ULFh<NczT>-BI$_2a%2pN%*h#&}(5(;eStt{5WQY-tTbyu!7
zGyiChq5r6JZaVW1hu1%>Btw~P&e&{O{>A28@sC?=)LcJiy+6-$b)E5jUgtb}o^#G~
z&i7n?*m|rdIT4!nnNfO)eBz$pEQyz<bD><!Fw4R(unn(a7(+9?=S#7Wb`!3|mvK3s
zOnVz^XwM3m6=NetZ~*6PsC`tbxN#g~_&qMhe{c~N2fh1k*iHK_+=VxAGp@`uE5jk&
zf}>cC5oWE4b>NdYh#KcpjN=&Q>QkqvM7fbM%bQ^->V<Y>hPDg!;z3l$-(WfZjtPur
zo0Z}RScGR$&yS<}@y+)7Ex`)ft*8&(i}SVAC#bB!5o|_(j#&$~Vl6tTFT9SG_y=l$
z#dEwb=|#2o<KuV<HPKtBB@cwm8ZeG(zmA&NAxxG~xkyEOG=Wi^o6G)U4Qj7jkX5yQ
z)EB;nn%F@c!ZF;9eRIv0;y5nD2e<&2(n%CIp!$1*%PRaR%=$k=<r+8if`6X3_tjWO
zyAR#H#U->y)9qjJ3EGi7?@O1XwqyYH+#%EwUqL0~J&fZ*mgm0DtP?enmI&+LNu{5Z
z<Rk1H7T{IX0C!MX{Wq?~IufD@-$!lHx2WfHI66wUI5L*CV-;@4g?I!t!7ouO{tIe?
zSxMgBMx_>C#lyHB|3$sHo?bQJPE>~%Py<bJQ3o?v-x^$owfG9^Lyn^MdKmTGkEoT@
zKG3z5V*@7FQE8;|F=~Ku+>bs+*Iph#?fF-z0VYr#gt^H_ST*Xnc48&IgF3dKV;kN?
zt#APuCwF2sUPdOKv?(fD${5pa#oef!7{L|zCo-m0v2M>{7iy1(upY;-4t<QO9I8jX
zKbZCm@@GGD(Vk~9TWxI-=Ii{|Q_&Lj;Ip_7kKic2jlHGb`M!yI?yq#an1;5Z9a&x5
zfxY+%s-H<z(v`68RILkF<9n#*M=_uA?G6<d!5*MHGcsir?Rr!P@1nlwEb@p=VjG6|
zHPLhZ=tB<0qr#%NtD_s41V1hA>gqiW-ax2m{6|HJqr$Ouw}eyTZh`J;U=>Yp8lfC`
ziqMib6Dm4tTilv=(Miw;@I&eT=6iR&t8#_IlXR0SgNBxF6VXAabQ6tk%}cN#_37z$
z6xR@s5y}lElvXH2JS^G*<;laMtx_H+X<0zG%+&X5Pnrm2w~o^POAZZx`i4$JHnBO~
z7CJF18;LF=K<N0cC7vhP8TWq!xW6MxU~QR-lD55p%Ld|UVjZDGd4bST;pf}U3l4zI
zAe6l-Js$2g%ZUYEbcO?A=cmAV=eyvd)Yrk9ppzYrrTW6Be9r8=3a2BlJ9Q!Nx<B<{
zWUD`S)Al{ltEUq?1{2YN#G8pdW5aQ$x!|&Mw`iWTw=k4yEPN@`xe}{P6_t(noZrgJ
SoD~%V&YUF+QnxCm{Qm(VD$_*(

delta 2930
zcmZA2eQZ-z7{~Ev1KGyL*cb!cKre4@fSXW25Rox9*hV*}jF%zua@h*2>)P3MM0}xW
zLIgx((nwTPOf<vzhgxUQ7!uSKHKK_zzVL^^#1~A|D83|WeEt5~%Osxkxu0`y?>*<-
zbDq;avGK#L@w4MbK4g>-F`2k?gqbdUI*J2jZk|~I&O<*g!(2Rwd@SLeKkl6mU@6yM
zz#@DT)$S*F8UBLHuw=B^0<*ZSp;E|&dovg8FfQc$G|s@Re6upV0?V-$eYhEC;e%L#
zui_Q>xpzH}QLpEGKHiE4aRdH|vvKVhvv&HoIF<QaID;Bt0i&6Yb5I?%Vm01_C7479
zPoV~Q4t0P2*vtU0LOth4wYvxB;EU+uS**n6OwTm>w;&Zga0u1VNmRpM;FXwLoO#oQ
zs2SLb^>_z1;A_~Z`^K4FjW?p+a6it&LG<BQSdEi-3!OJ$d=i!0sc57LRL5`Oa{SIa
zuNt2j*czP4^<AhXdJG->07v4_$nx56$SPPii9nxLh<t1+ha6ml%AuN4=AUJ@M(>L@
z)PtLF8tz2B(Lp?nuVWP3CzxG@r;$~&KX5MQP0TdB1T~O4yc}E5!5*XudjMGldwL@C
zUqj_3E?kShpc<OXv?!@uT!IHsQ<}mm{J}e)a;X^~YviCA+>To7!>Ie-KqcvUT!3X{
zvX-C~wZZnpsr;H{whuM3yVxr?U;;^0`w}(MAHDOeDVg&^WOeK^)N?-MV~rf>%XXl)
z*<M_QCy`aLQDpc^EJx)`+@->I_AK(Tw>dBg_BAR={=uo}V;=QpYf(9{7xiWXxDDUO
zojA`iYsN=V&z(bcn9GUUyB^ig-N^HCdy>jRF1&+RqZVFowg{DsepE-js3mw5HQ-aY
z9KXOioWa&n2VHmokDzj7CXH~5twXhc8|wMzakBRRdsMX6-=Mb3I9^XbB=zXWZq$;z
z?3v4#TI-Fdf!~js${}2h1vI8y+JK8OfxMf&i?#SYDmUg<nk}V&+d^dt9ziAF$EXH!
zcx_pSv~6+B!2!&}=R99Q<-i-LwLgQ}ML(f(=Woo#LZ&YdCnD)&Q&DZ&GAh?$7e0&w
zxC?7oaK>WCu?Rmy-G3gn?aKIdQU{f&`xc|t)<x36_M!&%B;JI_QT-J2`srOz#r&(m
zJzQ9U&!8Us7B#|r?qV6O67^=ySc5x|j}36p41I)**@{_kKQ2Yxw;%KIZOp=J2+g$G
zzMfG2rHdL<8AEI(7U_htG=p`ZwoenG4pf}<F_WaKGAZdlDkWJS(M?=jmT_{6ccI0z
zUHxw)>WIsUEriNCf=RHogm!~6J4lQmHW8}`<%G)38PZd&Sya&$ZcEoPKQyjaSN<sb
zn~CK_d^Lvvad9d1PPAtH(AkZIwvY--n4VH4l!|sjC!uB3Qe8qQ7aEAEgnsq-e@gF!
zdJGY4r1W3&O3gpJ!CDEepOWK3(N0k5B5H^YI`PV8R6c0Cs*EPeiLu0XqJUt@)7x?<
zW)o|Oi^~p9ij+Ot+vA7{L@l8*GQ;pu`+OUr>{e0ISt6OUea5<WXP(m(w%T;1wLg}w
z`7T`YIb2E<=T0nI(H{)Os)AvstvBFy2cn6J+`)p*K!?*DiS%xFJGv7Ed9z;3TR6I`
z!3~D3G2nLgc16MgYYN8#(XbnG>gp2<N@h=Q4u%72KCL=z33fyynR{Cz;b1Hh9o$@U
zEGx%pi}Xi30*SxI&o92AzG;;nYD-r%rs~r6v2Fd~^=sRPM=-dr^mO*9^^s72PhhZh
z(zfh)=B*ln(cr10-YX8>n@V=4lHR$`x#&xu^WT?kfj(#Gm>cSGoh~=#_N9{5w%(2Q
zxw})zkQ;UyBfV}kG;};_wYztwk})UdhEvHNzH)m~$=#8tQ!%qIaklKK@%~6>pxbE(
zM1!3}$HPM>P8}UOF}Sz<P=2}Jz1<BD9W#G_$n6d>EUS0Bf}x;hD!;;4<;J|x1+9_#
z@ZeHO=Bzs!*%4u$FN|aG+KQ7|MShJh=0Mm@9Ze+@zgNzgl9{y3iw3<Z9BwQzeO9p4
To5=qS^1fLmBMLMT7asi=`3Il}

diff --git a/po/tr.po b/po/tr.po
index 06e59fcab..3bc552863 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-05 10:55+0300\n"
 "Last-Translator: Mehmet Kececi <mkececi@mehmetkececi.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -28,6 +28,16 @@ msgstr "Jack sunucusu bulunamadı"
 msgid "Failed to decode JPEG image"
 msgstr "JPEG görüntüsünü çözümlenemedi"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -59,6 +69,9 @@ msgstr "Sunucu yetersiz veri gönderdi."
 msgid "Server does not support seeking."
 msgstr "Sunucu aramayı desteklemiyor."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Geçerli bir ses girişi bulunamadı. AVI akışı kesilecek."
 
@@ -150,60 +163,6 @@ msgstr "CoreAudio aygıtı bulunamadı"
 msgid "CoreAudio device could not be opened"
 msgstr "CoreAudio aygıt açılamadı"
 
-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ÅŸ"
-
-msgid "Codec Loopback"
-msgstr "Kodek Geridönüşü"
-
-msgid "SunVTS Loopback"
-msgstr "SunVTS Geridönüşü"
-
-msgid "Volume"
-msgstr "Ses GiriÅŸi"
-
-msgid "Gain"
-msgstr "Kazanç"
-
-msgid "Monitor"
-msgstr "Hoparlör"
-
-msgid "Built-in Speaker"
-msgstr "Varsayılan Hoparlör"
-
-msgid "Headphone"
-msgstr "Kulaklık"
-
-msgid "Line Out"
-msgstr "Hat Çıkışı"
-
-msgid "SPDIF Out"
-msgstr "SPDIF Çıkış"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 Çıkış"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 Çıkış"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "%d bayt bilgili '%s' aygıtından okumada hata."
@@ -226,6 +185,14 @@ msgstr ""
 "Bu aygıtın sürücüsü '%s' bilinen IO yöntemlerinden herhangi birisini "
 "desteklemiyor."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Aygıt %s üzerindeki kodlayıcı girdi biçimini deskteklemiyor"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Aygıt '%s' meşgul"
@@ -242,6 +209,14 @@ msgstr "Aygıt '%s' belirtilen kipte görüntü yakalayamadı"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Aygıt '%s' bitişik olmayan düzlemleri desteklemiyor"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Aygıt '%s' video yakalamayı desteklemiyor"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Aygıt '%s' video yakalamayı desteklemiyor"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Değiştirgeler aygıttan '%s' alınamıyor"
@@ -322,6 +297,10 @@ msgstr "Çözme işi başlaması başarısız."
 msgid "Failed to process frame."
 msgstr "İşlem çerçevesi başarısız."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Çözme işi başlaması başarısız."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -419,15 +398,66 @@ msgstr "Çalışırken çözünürlüğü değiştirmek henüz desteklenmiyor."
 msgid "Cannot operate without a clock"
 msgstr "Saat olmadan çalışamaz"
 
+#~ 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ÅŸ"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Kodek Geridönüşü"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "SunVTS Geridönüşü"
+
+#~ msgid "Volume"
+#~ msgstr "Ses GiriÅŸi"
+
+#~ msgid "Gain"
+#~ msgstr "Kazanç"
+
+#~ msgid "Monitor"
+#~ msgstr "Hoparlör"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Varsayılan Hoparlör"
+
+#~ msgid "Headphone"
+#~ msgstr "Kulaklık"
+
+#~ msgid "Line Out"
+#~ msgstr "Hat Çıkışı"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF Çıkış"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 Çıkış"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 Çıkış"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "İç veri akım hatası."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "İç veri akış hatası."
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Aygıt '%s' video yakalamayı desteklemiyor"
-
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Ses sunucusuyla bağlantı kurulumayor"
 
diff --git a/po/uk.gmo b/po/uk.gmo
index acfbd21e5f01ee42f96c1a1f93ce7059eded13de..89e9a6eaa1a2c7af28009a943982cbd264b0bee2 100644
GIT binary patch
delta 2090
zcmY+_Z%kEX9KiA4y@+rx0`li_;VODj5GVo#FBTAxf+7DzEdJeQ({xFz6t{>i^tK4L
z+-Th$!V<S^E!k?W)#(LoSW?UvWY*l8^~RQ4*$XS2^}@}yzQ5<3Ui56g^Ld`bx#v93
z^ZT8{@|b67G<H36#hXGKAl4GMydp82Pvk(GOA=XypJ5wb!T@F_JJ*-sI>yadj|Xup
zzUTS_Mi{61L<(^ShVU@1(MOHZspP~vSc+G%81LaGEc83)+pvf63pj+Au@~!8MDD|B
z?861D!Vt68iFM*ed=B+FaV*D0%+jUap%dmrQmQk<64W1bATyL9)E`cw-uNQkkALBQ
z45x{d;48QRKSaI$3hI44>CSzNu#9ml>Ox<{HM-UB(rLmA_$Yc;i?m=XR-=Ww!X?~-
zf1^I2IKx@V0P6TP%*A=siGGi|<-SajMl44iA3>ei6vm3^%+b*tUB@tHXOUlwpys*-
z*;Uzxy258rCpL-GxQNFvnk`a+S8y}_gX^(^n}l&U>iv##Xuyd8`(I1v5-0Qr-W(_Q
zRanC~iYB-C0OJLB{3qry4h5Z+ZbePWVbtrUP`CI?)MC7a<ygS>-0+BWA>|`gA@=_q
zoq9@g3;u$;Fi7Gb!u@y}XK)y+c|}g)d9<)O-&x6zs0+xW;&ef+IEWLt8<(*Q8`%yu
zj*sDu7@d#kYzvFncoRRsnF4NtJK68E7{^0cN#Y*Ix9}<a1CL@iiG3BnLVasm$m=#d
zf?7+nxCfW93b%7n9Am?DCg~*e&b^G&_$>x0>4SI^bp`G0=Lnv`y%-=b>L5Oi7qAVB
z$iq$?!nbh_U&n4r{|)>ZpT%S3iTlUoCpuA1G?Ad=cozF{U4`?&5!Bq>#$F6>b{;T-
zql~}64y+@8?RXM(!q<@ON^zyL@>%R=d>2`Rw6hIiy<(V7A16-X6fR>5MKVt1TxJ}P
zh#bIu)y@ZK0d)nr?60P192@aFv@qjAk(cm&9LE9*Npn4mLwFB$!p~FTyL5*0baZAb
zsT|TQ{WyW6cnA~fsB9d>C-5rHV8z2CC-7@zzLG=y*GRK)nQ18;(+Qny8$rpL34_@o
z)wC?vY}BI3C0K-Mq}Q}Ojw=WX-V_+SZ$4UJUbQ~$xGjj9x>SM}>wk^xINyI=aS|~=
z>?Jx0Z9T*e({sKFe)@^-IE+n10>O)7Dw@qQA1yGAO)=jBcWC|>Q0wNO95rcLvaWwS
z-DZNcny;Ywi+fm&Ubj#ENgC1XjumRjG)<r8*hgp)>Km|!C?j}*OsnVk2+`mS%?GZd
zk%3k#HDNwHTABKOcM%x`uebSTuS7nQruDljtE^Jr0qbL5z`Ex9#QMg+$^P6Q@mpzu
zQac(r=dsd*Wmadf$Nn_9<h92`(_Sl@UujKk$g&sn$2|6v>)Ugz-y_HEi`6{|R%T(b
Z)mu|!Z7k2Q&e!~A)z&rGzt-MO{1>&g<6{5-

delta 2994
zcmZwIdr(wW9Ki8|7%x$I2ok=o;3HH}dH6t69wv|=;-apaj|Df~#9bnAnlu+h(-@yz
zL-R3Y)98%TOvs|+Bh(tRMw`6rALTTSl~&UqmNr^hX4Cg~?_!K~W`FxR_w4Su=kYst
zFRi`P5ahic)BO!asUrFlYlD@NhOa_+ql^hxDiX)y44i^t*oeH89=JXjxIT<=w6|gu
zUPS5l3mk~|a0<poD3z&{SIwr<i-yfsgKEYst}o*d4C<j&A`ZiTn2YJS2vcw;4#(3t
z3~vP5!x{Blt~2mOY{Yr^7mmR4o=Vxdzw%Papy3+I2qPIyGLA&KQ7NY328_jHsNqK_
z1N;Hy`#pMF100R=yBR3`uEUYoh7P=rPhk$rlf?a%i;DbUD@sS_P&&SeqcAMmnrRlw
z3M|2CxCRUGJQm9LVw4((WhgV;f@9H#>G(aSVFI&|>jLy9P<e%lj8sRt@yD2hw*uFx
zeXN1a#-X&YM%khRsNq%Yj(3smRriryP~Aub?x}hqFEyCAP#lkvLsR2ef3{f_20pN%
z{BR*A;c}E2HDWV<fHi23S86m~Ms`g-z%dx!*XlSMWgz)D2uo1IRY(_VJF*MvoxZI9
zR4VN>Ou~C89gSgGB&i&jjjy9D=><&1+kxu=Pb$Sr74jx4Sb?(F%_!gd5G6_PU?wJ#
z$+88dC<knvm&%PGr8c3g#0t*JVSEY6E0s9FIz}ld*V%#VB9y&dfRZy?u?SmnBL0c{
zFq4d4jaQJlsp%}o9$bt%dVixLE6}J}Grxqg5)aUY;|DWZJcP6Gmw<WfPdV2*zK1`e
z5BD;fqgYHLJ&V8NTbM`UIPoUV!6MFTrJVm3D%CUuv)&uA7HLv{;CR$HE0W!IEW<-6
zOMMr2;c(V>8=k^?EMT9m;3v2Y_p%={frt1qmT;tOc+u3$60=duX>j8V{2Zra5*zg<
zx^O!NkLF>6O<0A=B#PW%CoaTa@l`BiU*_W#lpCgS*62dLjq}it(tirGSj+uYHI)+l
z35#(OnIa?Jg7Wz_l$qPJl<I>=F$T{ed8Mx6Y`ldmf|@$cYImVLFB&ikTd)_lqK4<t
zYp3!JmEAaz_3ja*)Mxl9*I!N`qwxqCB{z!5wjQZNP&!(J(s3ioitI<(^Dq)92W=RQ
zyHUr(xCXN)lkj+AGV?2^GWlui8NCZ-C4%{fD8e$7ne9jNOZ|+mVKf;l$+Q<&;NSQh
zF3;h+cmdbp(p+nRUnBD}PX=Q&|Bz;)wZ0(xBc&&?gpkCO!a&VJrkYDHgOVJPqM7g3
z6H}_>m-$D<Vww-1mD1RyFn0Aq;94dr#qQ-zk|m!QL@Xwx%pp<<S)EvdoH37MFfJq{
zfrb%MWad)hh&;1qopoEF9)gZQJrsE~n0c0iUfC~M%C1HBR>}e*fso{r<(D#w=s|?Z
z1%;e7Pk|&}GVuh#$u$3%24f~6IY26ze_E0!Ly5V>GqV01b2HmHu8Qq{R5(p$k^N<R
z&7)(r@ZV2G5^`*yAp-jmy@?7UlHin@&kZ@+-3ZB}uH|_yqU2FGi%JX;PvjC(x?4PY
z=VYm+#K1rcKO?1&g;oriW7o!NMQ)XAR!Zw?&02bAQ@Tcz9v#*<DzDB}Rh#N^Yqn~q
zW2Li3A0Fn5T;{CQianm{3P<HiJu*C{Ej%kCvB2SSt3sz^S@jB!+o_7&wayy1qe{!4
zrf0^ENG^7{ozlIj+_1z|S>v(3TjFuMYCSc+MX^VMLN%MGuBOtdKkSncJ!@Lgbor6Z
ztjL(s;_SU`b?&+4wnroIZHl|xEo82zs&19jSDLV=+mt5%CV#Whu9>q_Mw4;!v4$>}
z>5qS&u78)9nbc$)^EVjn##y7yXf-;Flg25H%ac@FjrZyOwEpd&IN!*A4MFiO#&Q1!
z<BWfYW}M~+?Z$Cz^}XAFW_(VI48*^lAD*GP!|3quP{u*}X!AGtx0oHDHcrYI{^x%C
zjNSVEbZ_~7I_V%zbq=J>nt(F?`$^|qm2p5u>904=`ZqGF4jKf1Gh;pLuh(y9B>1*v
z<OKI@H%>5tdWLt#Xw}b;n?JB~{mf<Wx;|!u-jX&-&mVs!>fd==JK~F)kR1|j=*(=h
Md876I4gRg_A6D}kmH+?%

diff --git a/po/uk.po b/po/uk.po
index de1768ac9..f6abbc328 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-04 22:20+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -26,6 +26,16 @@ msgstr "Не знайдено сервера Jack"
 msgid "Failed to decode JPEG image"
 msgstr "Помилка при декодуванні зображення JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -58,6 +68,9 @@ msgstr "Сервером надіслано помилкові дані."
 msgid "Server does not support seeking."
 msgstr "Сервером не підтримується позиціювання."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Не вказано або вказано некоректний вхід звукових даних, AVI-потік буде "
@@ -158,60 +171,6 @@ msgstr "Пристрій CoreAudio не знайдено"
 msgid "CoreAudio device could not be opened"
 msgstr "Не вдалося відкрити пристрій CoreAudio"
 
-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"
-
-msgid "Codec Loopback"
-msgstr "Петля кодека"
-
-msgid "SunVTS Loopback"
-msgstr "Петля SunVTS"
-
-msgid "Volume"
-msgstr "Гучність"
-
-msgid "Gain"
-msgstr "Підсилення"
-
-msgid "Monitor"
-msgstr "Монітор"
-
-msgid "Built-in Speaker"
-msgstr "Вбудований динамік"
-
-msgid "Headphone"
-msgstr "Навушники"
-
-msgid "Line Out"
-msgstr "Лінійний вихід"
-
-msgid "SPDIF Out"
-msgstr "Вихід SPDIF"
-
-msgid "AUX 1 Out"
-msgstr "Вихід AUX 1"
-
-msgid "AUX 2 Out"
-msgstr "Вихід AUX 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "Помилка під час спроби читання %d байтів з пристрою «%s»."
@@ -236,6 +195,16 @@ msgstr ""
 "Драйвер пристрою «%s» не підтримує жоден відомий метод введення-виведення "
 "даних."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+"Засіб кодування на пристрої %s не може отримувати дані у підтримуваному "
+"форматі"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Пристрій «%s» зайнято"
@@ -253,6 +222,14 @@ msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 "У пристрої «%s» не передбачено можливості використання розривних площин"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Пристрій «%s» не може захоплювати відеодані"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Пристрій «%s» не може захоплювати відеодані"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Не вдалося отримати параметри пристрою «%s»."
@@ -343,6 +320,10 @@ msgstr "Не вдалося започаткувати потік декодув
 msgid "Failed to process frame."
 msgstr "Не вдалося обробити кадр."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Не вдалося започаткувати потік декодування."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -443,15 +424,66 @@ msgstr "Зміна роздільної здатності при відтвор
 msgid "Cannot operate without a clock"
 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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Петля кодека"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "Петля SunVTS"
+
+#~ msgid "Volume"
+#~ msgstr "Гучність"
+
+#~ msgid "Gain"
+#~ msgstr "Підсилення"
+
+#~ msgid "Monitor"
+#~ msgstr "Монітор"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Вбудований динамік"
+
+#~ msgid "Headphone"
+#~ msgstr "Навушники"
+
+#~ msgid "Line Out"
+#~ msgstr "Лінійний вихід"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "Вихід SPDIF"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "Вихід AUX 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "Вихід AUX 2"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Внутрішня помилка потоку даних."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Помилка внутрішнього перенесення даних."
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Пристрій «%s» не може захоплювати відеодані"
-
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Не вдалося встановити з'єднання із звуковим сервером."
 
diff --git a/po/vi.gmo b/po/vi.gmo
index b77c4cfa69bcae7581f195651769e6e9705ea315..219f676931ab31758a97b1bac9a74ec264c54bd0 100644
GIT binary patch
delta 2081
zcmY+_Z){Ul7{~Fm3uCm<bzN7g#X@0!*c7)xH>M1_j&1ze*dLs3xEW9+aS|6dgF*;N
z1EQHPctI{KyfHFK)BrEgi;BrG8^I+KfoLT9g78Y>3rPqlZwMN{zk6GvCp`U}b8mak
zxzBmd_<Q8muFTEi*~biRfOvwqZ5fln$$UO&=L?LPkKbSi&R_(K=X&3-#6^tTFoip@
z4o_zN73&!Xe8!Yv3&wB=7iy|^>8#|!M_7eF;WB)P6<Fr?u6JM`<F|1Xf53iB%`@gn
z9LKFVjY*8LYAvh_OK})A&k?M~OBmLx{z)gng@S;$!b;Q+I*}EcQPd9)qaHkkPvKwq
z3MLATsl<c06i=hRe--tdyrB2oa$L^19rdDnaG_E?L8lcj;0CmcjM<3oxC(958(zj0
zcpo*vvXJ*C1E}!__!v&27J40(a$m7AX{<(#-$X6!C}zs(oTsBbx`_!a3A4XgkJ{^v
zNLI}@)En+XE$lFk<0X6x2TP2p!K+w{|KMV*;UNj^Mm=wYk0yLSLjD`+%y2<JuoifG
zpTyOS2hrVIe46oec6<jPXB>-qZ(4`ik|EUhj-pb05mk)0u^N|<o(2lM2f1X%V&s1d
zofDL#s{bCYz#tpH5}WZQ+>M?1Bksh-e0e(_Lhb!;s0jmcF9QvzEqx82!85oPZ($3T
zQkjjqpP_S*&PhCm737OGnMq9InuIsu2<idXQJD%a@wTiL+ZgY|9-Kn{nGpN*EGAJk
zHH=O8C3fI_?88hmm7vaXOyeEAhP70Rw!lyzny?XH#y7A5uVl^VjP^2Ki(2pz<d*pk
z-@!j{6nAi@_u$XCA2*XWGL$jj(|Mf>h2(E9?nPDqT^z*K6adLE<G2;S!WIm&;bYi~
z`u+`6hRQi(y8kL}$4_w;7El=Vm_nvByRl5U{*aD-a1jsS94ciR$M9=xr=<JQA`RU*
zfU1#Gn8q8Zl*hR^giZJ&eum9xQAnD&6_xsZs7%dZ3-g-?bk<>tt6JFs)P$!{MPgCH
z?tM(@K5oV-)b|2BJr5TUxuz{xlO4>%Akj`}0m^2YP}BU6S~%M)L8X*a;#RLNlXbW0
z*v%#=WVa4@dAGp8J!;ybT#M4tu?r9!tp7D-ki(R5|DY5w7$ACyE<#O3scliCW{jW6
z*MOEFbi8H}N<E2kGgXYardnV}A2kk``~L|i)%{zc8*}ykN^KjVBGEqmw-qt4vKJ@=
zQ%ES~xyH`9?KwW5CwzpqW<9Zmp!VD?1$XOI4^0}-bh<jze5j~&RyPq8y?KG?Awonc
z!AUf8hzOyk;>xx8c9n03{kbn<|Kj_?zT&TNzV+Ap?ZQZvGZ^_K&kjbH+g;H<=Unu%
z<-8aB*s{Chac6(LD9@Q#lnB|s*KBi!YcE)KW3tB%SB31e$wRhN*Y8Z!U7PhUK#I|#

delta 2867
zcmZA2X-rgC6u|KdDvPo&g19{trC>oo5UZ6%P(Yv~3=UZ9GQh};!W*12+O)<=NsLQP
ztDVRv8#T7IP1;5oO;fC*9ZNru)M{dvq%onbCMHeo;)kZyr2q5Y)0p0H-tWH4Tkbvg
zJh-#{QGeie%H(5;)=SJH_DoVr27Zj<Kr4z>Dh`XW5i2kT4<SD)Xq~@foxhLijGx6M
z97B2TcQ^+hU<Ia5RjO2}fNG_az`%ZUKn-CT=i``z5z~~)!i6{!tFZ((VICgATpYoL
z_>(mr%d8!oFTtI72;1=?=3`sDQXRZs1?Vhc;CqxA#xa}uxCrG%HY~(JOvQ7k;g={A
zyo+-Ev_x})i&5@tM0xIBT!h2u#M}4`R*{~0ykB|f$PI^49yE&b;GgkXj7c_ET85H=
zEm(`MVI5w<dbut|sioM0vcdycj3F$+J6MRBtU}J~Fpx>-RXQ@$Aj*rs!YcgLIxk2w
zC)SD!7~h4mMaNOYn>ZQ&Lbg}^jqHMoq!4(gN<e;8Hiu{|N2#I8bn?$Ot9t7fc9a`8
z;ymm@S<xXJ!mH@Rj_FD*#&KlV)W2ASu^Hxrm!nLi2IpckYS@Q7LcNLXf_gWD{8!RB
z&%g?NfbyUs(jrCW#N~JpC8gJ}0PkDpvu7y9kE-V&8SF&a>miiuzCbC`-?0?4sASm!
z8_EZ^H$bO6QmK8&yVWJWl@`2(l9}Au=88&C&R1CHYfwHb8_G(0QTBQd%HDp0FX03>
zV+EDXuBgM<ji+!62BOH1RO2?3nZAXR+Rspm>>e(|LQSca*n>6r9!kdU;UF%^HvevX
zfC0`c*gwh0Wt12GiE@8C6)qV*hGlZ;7@gG&Jj8XlDu+VBAU=l|P^$bsR$@67*oeE)
zfnm!mKK?4scj9#%#^pH3KFSL(;a2<&%hATF%Vnzj>DU<<MVWCbY2cZv4tHT6?!;ek
zH##VUJ@_@&Vj~;w!6Wzz{)6@SGT-h-{2WQ5%A_DVa2eL%Q9K~2x<yBB*i2<eiq4>1
za0j<w9{aHr4`L!-!5I7o`D3PjKvJphB5P2ySnf1jjj`B*QMeJMhB}dCsy+<Ji{7U5
zI(~~+v4cwb6tk$LcD#v6m`{3axB}%tZ=g(M2&MQ=U=`j#*}@b`UOu-{bmLmwfFZ2L
z_%iY@Gq-VQ#C^!U>ITZhrm*Z)*nqOK!zdHFfKq(%<<{@9LVk};IF9X@N##n0`Y{5f
zo}?z^%Xxt?OBKkp(c(Eu%DLZY&s%n38qq+=M5SrQ(M+Xu*>>X}6>~GvzC#9|YBIs?
z)_JpKhwQ(kL{>YO*i1-UPf!-BjYuWro0cM*L`YGsAt-R8$#*U-oseuv%OLDV&)j>b
z)sII0Bp6w$!oXS%F5>ByV4b{(nM4aQ&l;ncjpCAhmnPfQP2>^ti7A9^RUMH{u+=J=
zU<Zt^r5EMvauBN}|9p-{QRSml|Kmn28chnPl92s;+&0mfK}gX_lVY4nBodv3>^UEU
z@m2L;B+*Jd-L`R(BvrJIP6{!ds3xRMHhFTS9@SQYznVsq;#0wM(VaQ#JG5f0L08pA
z$L1d}dL@sCN;HOo$uSv8tNfncfdY@N+52729WGxmHzpL<?dsB+yx#s!XV;EkTx{NO
zY}wSTI;Tfh^)6?3zuT+3RD(X?^6AcAt)@0unwmeq$)mgE@rLrkW>1&TYhK&z)jb1V
zUuaY6nTTl3?)Ce+T){_aOOn^sHms4G>_$iCRG8k8X!q-mHv5wqg!ZM6M@Bikz5YH|
z$d-9JGS^&{BYe_pEwI&Tt?$WLiPq{2{*g5&vB~Sy2EreAxi$C1#nb(vgqg_^X^!x)
z-lOR~V`mxb(rUb{I5cNgc5;r}KQS`O#n+BbjGXeQHm8Tn+%8p9t4&-yp$+)FdQWg=
z!PeYsM<zzj__bX!39IjO8jB8}SIyy*y5<glq`O1M3ob_{)ww-d@7P&C&+<=P4C=uR
xMJ=i3qKz4wU1t1Y(NM<!CTC_twFPhFOb?D0SA~X(uTP2(5BA9unZDkm{sTD`jfVgL

diff --git a/po/vi.po b/po/vi.po
index 1c5e1c351..bdf5d0a69 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-05 06:52+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -28,6 +28,16 @@ msgstr "Không tìm thấy máy phục vụ Jack"
 msgid "Failed to decode JPEG image"
 msgstr "Gặp lỗi khi giải mã ảnh JPEG"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -58,6 +68,9 @@ msgstr "Máy chủ gửi dữ liệu sai."
 msgid "Server does not support seeking."
 msgstr "Máy phục vụ không hỗ trợ di chuyển vị trí đọc."
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Chưa có dữ liệu âm thanh nhập, hoặc dữ liệu âm thanh nhập không hợp lệ. Vì "
@@ -154,60 +167,6 @@ msgstr "Không tìm thấy thiết bị CoreAudio"
 msgid "CoreAudio device could not be opened"
 msgstr "Không thể mở thiết bị CoreAudio"
 
-msgid "Record Source"
-msgstr "Ghi lưu nguồn"
-
-msgid "Microphone"
-msgstr "Micrô"
-
-msgid "Line In"
-msgstr "Đầu 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"
-
-msgid "Codec Loopback"
-msgstr "Vòng ngược Codec"
-
-msgid "SunVTS Loopback"
-msgstr "Vòng ngược SunVTS"
-
-msgid "Volume"
-msgstr "Âm lượng"
-
-msgid "Gain"
-msgstr "Khuếch đại"
-
-msgid "Monitor"
-msgstr "Màn hình"
-
-msgid "Built-in Speaker"
-msgstr "Loa tích hợp"
-
-msgid "Headphone"
-msgstr "Tai nghe"
-
-msgid "Line Out"
-msgstr "Đầu ra"
-
-msgid "SPDIF Out"
-msgstr "SPDIF Ra"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 Ra"
-
-msgid "AUX 2 Out"
-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”."
@@ -231,6 +190,14 @@ 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."
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "Bộ mã hóa trên thiết bị “%s” không hỗ trợ định dạng đầu vào"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "Thiết bị “%s” đang bận"
@@ -247,6 +214,14 @@ msgstr "Thiết bị “%s” không thể chụp ở định dạng đã cho"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "Thiết bị “%s” không hỗ trợ chức năng “non-contiguous planes”"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "Thiết bị “%s” không hỗ trợ chức năng quay video"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "Thiết bị “%s” không hỗ trợ chức năng quay video"
+
 #, 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”."
@@ -329,6 +304,10 @@ msgstr "Gặp lỗi khi bắt đầu tiến trình giải mã."
 msgid "Failed to process frame."
 msgstr "Gặp lỗi khi xử lý khung."
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "Gặp lỗi khi bắt đầu tiến trình giải mã."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -434,15 +413,66 @@ msgstr "Chưa hỗ trợ khả năng thay đổi độ phân giải trong khi ch
 msgid "Cannot operate without a clock"
 msgstr "Không thể thao tác khi không có đồng hồ"
 
+#~ msgid "Record Source"
+#~ msgstr "Ghi lưu nguồn"
+
+#~ msgid "Microphone"
+#~ msgstr "Micrô"
+
+#~ msgid "Line In"
+#~ msgstr "Đầu 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"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "Vòng ngược Codec"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "Vòng ngược SunVTS"
+
+#~ msgid "Volume"
+#~ msgstr "Âm lượng"
+
+#~ msgid "Gain"
+#~ msgstr "Khuếch đại"
+
+#~ msgid "Monitor"
+#~ msgstr "Màn hình"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "Loa tích hợp"
+
+#~ msgid "Headphone"
+#~ msgstr "Tai nghe"
+
+#~ msgid "Line Out"
+#~ msgstr "Đầu ra"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF Ra"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "AUX 1 Ra"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "AUX 2 Ra"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "Lỗi luồng dữ liệu nội bộ."
 
 #~ msgid "Internal data flow error."
 #~ msgstr "Lỗi luồng dữ liệu nội bộ."
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Thiết bị “%s” không hỗ trợ chức năng quay video"
-
 #~ 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"
 
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 634f739da2a8ea167512b3b927dce3de5112150d..ab1ec3cd5232cc2c33ab136ff35a1853dae2f497 100644
GIT binary patch
delta 2093
zcmYk+Z)jC@9LMqRy=r&os+(@RyY0H=ovGWMw=JDpGiy%WbZzcWnR9I+%?wP4Tp&IX
zP8kUn7IECgC$Yp3EGXRFgB2PovIklci!6eq=s^~X9?W15B6@$$Ig@_yJ+I&Ich32p
z-`{g$aCWzQr+DG0kp_thVkT<l;-y7gNRu(MCHOgZ;S?sYxFC4G1|Oo_jxBfqH{!X_
zAFz?~QpapHZpRcJ#1;C~n`AanF@_nO#%lZr*W&7UP~V09l#k#DeuaCnWwBW;=5PS7
zVgsh=wK~>=592GS@4Sz7cpXbL)LAlVDq>569@d~<=tg>IBd8Zop&Gt|>+l{9W4h3+
z29M(^`~>y<EmS*^qM+S1n5Eo_8t746p{YJgrVTISPK+)y>%dNILJu{<8@L|-Mtz`q
zc`%YeRQV)6h?h_u{SGzdPO(`l)}hL;qB?dO-8Ez;$!Lx4U>ZwHSYK>Jt#t=7tF{j{
z!b7Nzox&Vm$JcPE)T|zF;iLF3uEcs8Nn<any~A9#;E4qDznRPw6?!3B7OZ^(K2CWE
z{k6qMC|?cBe_=W0R5BRpM%0oVL_K#JHO1FZn{fu~u!`xKjF|NyRpz9afAyq_EvcRj
zV<jF%ZJtql3@1<>nL#y}WMjx(sOR56ZrK=W3BEwh#J8x;ynv&nDPM=$1HGvFV=kE<
zG9TgdIE(GrN2^tsLv?Tx)xaFmrd7~8HPDP2=?kdS@-{N-b`jG!g?jHd<W*a|GN{j>
z2H<wiXHY$x!2S3OYUFL{;Dg6-1LZSFTXr+_57bB<daL?Ps2Lc*W*ot8{5W(jtlz;#
zqCMAKGMji{9Jk^Os=+$Ctq$x%ZN?ln;RV!)f5z<?XG?4E^q}fp)Ictv?%zhuSc;vl
zjy0i{x)+Od{$C=asXT(3k`M4*oW{dA%)HWRn-0B)YM_jl)L<6*hPC5nJcJs+c~r-4
zhxcRrBs8Eb>iGkb@7qZ-`oO1{#BWfW?XDic5{9L6Gt!p5h?<FaP#?I45#&(ZPxRfM
z2unJ;MMNjjMX<8gN+{|3_Y=q1Puf5oghr<|R8j|&bnF%q+DsaaI<S*a((DcRx!|I~
z=-Bb2^iM}n8(h}|%i{V!lo*9UVmG1Fpwv%j{ggE7II&0tQkrNZ77&`b20~M>eKMb(
zB%^=9eA4FB3E_bG{|eO?X#CsAv=f@rM&kcz8HH$Ap*1Ze_J(Dl6QT4B@hssGyNDgc
z(}Xr6tLUc|u3L#MLDB!gb+=OJC3FIwB3Me>L-Y~+zWuYSJ@5dbO{er+fPY=$Wt{!q
zMJM5X?~Hq2$Jge+j5o%;!bB!NlsF&pijrBcC)uB$NZyF%-%2fydeaqU-dx3p-cOZT
xFSe>Y|7Ycoj(4}ZKEJKzy@>Z&ro7<t=<j3sUtd4&mDcX@#%t60T<y!z{{USK&u{<$

delta 2864
zcmZA2d2EzL9LDi!LE42@3Z)cUk>zSREVP9J7A?>gXf0S^IVy*+ZC6++yQQIxL1n#4
zX=4hyQjY>&AQ&YDmPE56coQWdfy7`0Q8C*iF+l@=kSNjb^X|)`ll|>yX7-);o%7wR
zu5Bv<mj?FUWk@x|J;YPJj8VnKK75g~9mXVJ4whj7#$yZeF+sb$$1cBzDbydvB>V<-
z-}87cUc&-R?rY2xV*+L|nY*cIidL95%%gl7M`KJsW704K({VQD;%Xd+J24Z(n1Pq=
zdI!B;MtL%B!WLYPf8%&ul4wi?&o==wld1Rt)x!jOGYTi59#oDK@i|P!Bk07hQ620=
zUEi;Nw1bmS?aEO1-HH?ND7x_yj>TC_&q$tcykykiMbwQ>qHg>f-iPr6q9e^i&A=Kg
z#wT$eeugEwZlEz!aS>{S+c5`2n2Qmdh(j2K%JVQVgv=H)>S+-5;8QpYf49q7gQ6W<
zjAN*8KrPX3bmBSejaQN7HP?|<FtKa|o@wqzK4t`8aX1aNhi0ZQ|17g9v43!(8m`2V
zxDGX<7Hq@Mu?{N+8#4({Bdccq!fbS;MsJ*t>PQg|#|7xbjmRxbE3yh^Un=uIlgu$H
zX5cl{jk1{*Z7MhBV>4<>zrrlMVwZ;vHHMEV;Y%}EiCXJ6)OBB=Ht8QY1=HBcT7q)a
z0oxiN^KpzZjmWc20cS-WT88W^(`LKh_L%LLsF9pQjieig;dRs|9!y~x=Ak;i5p~^b
zsE!=84g5rgj~PfS`e3q=!I?7D6j!5W;uX~9JdWCwzu5JO%<sdL^KccufOGIy9D$k6
z=zvO5?VC}X_z-g6fcch;rsz-9`Aw%4`^OX_Rc1M=;S;Ei?zZd0sF7T-O=82SV{@<)
z>rgZBJ?epp+(f&69MX5Q$}+$)BBPPMVgK+QY6g06I>vG&7T^rqW>o!o)D4q368B>f
z&c>%v_dAK|z!lUf$YgX=F&{PHO<2V9O*<KFx}WVIl9(5bBp-`#9clz0U>`h%TFW!2
zU49AG;cnEPh#4DwWvAMXMzza9T|XVwz7PYnF^kD)Dz{)Oc3>?Q&`oC7bf6lZwaXV!
z$MlA+gB_*^r=U7A0ht_Aj0xyPovsGd%p64x`0{wxUl%5GW;9jPQRQ0OU8oL(F%>T&
zZOt|N_u)*F%EhRG_)$~*D(V4eP$T~bV^GVKPjE=AO{@K9C7nqny-d~+>WtC@QA`zT
zQ<f5CcAe8!9af@G)(KJv9K;6V&Qw6*al1nMNvT55e}vFF4<{Zal$H{Dfh-|-3tJn_
zi@k`I#9ShSP|~qe(h?L}x#(=U?7U{cZRg`qr)WMgiwHc#mxs7B>BXb8g3x*{A~;1>
zVkWJ%kGIQu>s1qM1?!mJg=`<|k4a0XeZ~Kibz+LKhTuS0f6a3=|5~?lLhJY-aWiTC
zl-3h7iRCKTX*Kdjwf@~y)tAr-(XOr}5(sUy5@H<@ODrbtOpj4W(zaYkM(30N5bOMc
z^=~F`raUrh3B5R!w3|)vNL=OUr4`N`XQ|K3wld}Qo2^{#&8l1{Rlx!AsY!+P-kQx>
zUZ2xd>v3=J)CDu+LkZQMD(8H^zqZm{wIP_`7<bf>*EemR+v_tW9(Q%^dcV(ON`0F>
zbv}2Ev#2;YC3*a)`Cgw#x3|;-7kI1c{LyO{_<i2Z{<_fW<O4BrPM5#FuF4a<F=+CD
zg~g?F)yQRK)TfCl75!cHzGX{Xw|Wq2OgSCfXPLjIexoN;K4f6*jP4VSk(T$nPXr^4
z`<*%FcCjh^|6=Zcf6Wc9O-t<`+142OB;48jVdUMzk=G9f8`9qH-*vpL>#b)gMcVgv
zwRQx{(zAjM!-s}erT^$~M&8-m)!t$v`;K*PKNdN@qx+dq=kBoKK0VJL)C}Z}$sXSo
zKH2?IN3>VwcA+V3x;yrC9eUYxwZGKadVoiSs>ke%aYR1d)$?YkGrTi+HX|*VnCVEh
hroq0!t$b5Bn3B0PAv!71&V{_0EwOPl?rGX#{so0<rT72<

diff --git a/po/zh_CN.po b/po/zh_CN.po
index b78c8451c..246fa3889 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.12.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\n"
 "PO-Revision-Date: 2017-05-05 22:54+0800\n"
 "Last-Translator: Tianze Wang <zwpwjwtz@126.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -24,6 +24,16 @@ msgstr "未找到插口设备"
 msgid "Failed to decode JPEG image"
 msgstr "解码 JPEG 图像出错"
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -54,6 +64,9 @@ msgstr "服务器发送了错误的数据。"
 msgid "Server does not support seeking."
 msgstr "设备不支持定位。"
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "没有或无效的输入音频,AVI 流将损坏。"
 
@@ -141,60 +154,6 @@ msgstr "未找到 CoreAudio 设备"
 msgid "CoreAudio device could not be opened"
 msgstr "无法打开 CoreAudio 设备"
 
-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 "辅助输入 1"
-
-msgid "AUX 2 In"
-msgstr "辅助输出 2"
-
-msgid "Codec Loopback"
-msgstr "编码器回环"
-
-msgid "SunVTS Loopback"
-msgstr "SunVTS回环"
-
-msgid "Volume"
-msgstr "音量"
-
-msgid "Gain"
-msgstr "增益"
-
-msgid "Monitor"
-msgstr "监控器"
-
-msgid "Built-in Speaker"
-msgstr "内建扬声器"
-
-msgid "Headphone"
-msgstr "头戴式耳机"
-
-msgid "Line Out"
-msgstr "线路输出"
-
-msgid "SPDIF Out"
-msgstr "SPDIF输出"
-
-msgid "AUX 1 Out"
-msgstr "辅助输出 1"
-
-msgid "AUX 2 Out"
-msgstr "辅助输出 2"
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr "从设备“%2$s”中读取 %1$d 个字节时出错。"
@@ -215,6 +174,14 @@ msgstr "设备“%s”的驱动不支持I/O方式 %d。"
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr "设备“%s”的驱动不支持任何已知的I/O方式。"
 
+#, fuzzy, c-format
+msgid "Device '%s' has no supported format"
+msgstr "设备 %s 上的编码器没有支持的输入格式"
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr "设备“%s”正忙"
@@ -231,6 +198,14 @@ msgstr "设备“%s”无法以指定格式捕获"
 msgid "Device '%s' does support non-contiguous planes"
 msgstr "设备“%s”不支持非连续平面"
 
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr "设备“%s”不支持视频捕捉"
+
+#, fuzzy, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr "设备“%s”不支持视频捕捉"
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "无法获取设备“%s”的参数"
@@ -311,6 +286,10 @@ msgstr "启动解码线程失败。"
 msgid "Failed to process frame."
 msgstr "处理帧失败。"
 
+#, fuzzy
+msgid "Failed to start encoding thread."
+msgstr "启动解码线程失败。"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -404,6 +383,60 @@ msgstr "尚不支持在运行时更改分辨率。"
 msgid "Cannot operate without a clock"
 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 "辅助输入 1"
+
+#~ msgid "AUX 2 In"
+#~ msgstr "辅助输出 2"
+
+#~ msgid "Codec Loopback"
+#~ msgstr "编码器回环"
+
+#~ msgid "SunVTS Loopback"
+#~ msgstr "SunVTS回环"
+
+#~ msgid "Volume"
+#~ msgstr "音量"
+
+#~ msgid "Gain"
+#~ msgstr "增益"
+
+#~ msgid "Monitor"
+#~ msgstr "监控器"
+
+#~ msgid "Built-in Speaker"
+#~ msgstr "内建扬声器"
+
+#~ msgid "Headphone"
+#~ msgstr "头戴式耳机"
+
+#~ msgid "Line Out"
+#~ msgstr "线路输出"
+
+#~ msgid "SPDIF Out"
+#~ msgstr "SPDIF输出"
+
+#~ msgid "AUX 1 Out"
+#~ msgstr "辅助输出 1"
+
+#~ msgid "AUX 2 Out"
+#~ msgstr "辅助输出 2"
+
 #~ msgid "Internal data stream error."
 #~ msgstr "内部数据流错误。"
 
@@ -530,9 +563,6 @@ msgstr "没有时钟的话无法操作"
 #~ msgid "This file is encrypted and cannot be played."
 #~ msgstr "此文件已加密,无法播放。"
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "设备“%s”不支持视频捕捉"
-
 #~ msgid "Line-in"
 #~ msgstr "线路输入"
 
diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo
index e12629121e37451da2c60c05dd0d15838c7f8a3c..c3f8b1346f740528631943c2340ec322ed6e5e3a 100644
GIT binary patch
delta 227
zcmZ3&J(sioo)F7a1|VPuVi_O~0b*_-?g3&D*a5_%K)e%(3xW7N5Gw((BO?QY8IVo^
z()vJpHjp*|(x-uRIuQQ>VvxQRW(I~xAYBEd)q(UCARPvz|3LVb48bf642nR3Y9I~N
z0|u->k`2lRIgAO2f$HG^sFY!{6XTl6Oia1VnR)4x9ho#XZ)D0~oNUZ8WAaOu`pFKg
J5|evbxd0zd9Ekt`

delta 477
zcmXZX&r1S96u|LWwbWGT2OWfht)PynK~Sec2^Km8Qsgm2N{Edl3Az}Ros&hPg9Me}
zA&Br$2-Q9Rh3K~CLi7jZrSCX9@c6u$_x8<fEqEU)eU196f)ybqh;w3u_#xzqX+i`r
z?z)WQ?2~wi8Jxy8hVU2t_=k(=@dz=GODONiV+@axxh2sc*`@gj!xW-E<t)mJ7BGVb
z&fy&nV;g1vCvKtR)>j79`5sPjUUc_Y$Tj^XzoT7vMT!@aQ0u>1{;7PWT!RV`#347A
ze<)TrxAnMgnEfO{Qh9k8Gt8r0!Q9!`lPR&DH**|YS<Uq8>4Rb+o3lQ&L?FG9GS(<G
zds<$LsxjR+%P!a5QEFplz1NfWMcFxPFim%En$B%Se7D}a&yQ|L&wCoSU#pZlwR)#@
NX`T3HB5J(q5dYiXU2y;a

diff --git a/po/zh_HK.po b/po/zh_HK.po
index 9a3458fd7..32c4a0251 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\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"
@@ -21,6 +21,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -51,6 +61,9 @@ msgstr ""
 msgid "Server does not support seeking."
 msgstr ""
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "沒有任何輸入的音效資料或者資料無效,表示 AVI 串流出現錯誤。"
 
@@ -134,63 +147,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 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 ""
-
-msgid "Gain"
-msgstr ""
-
-msgid "Monitor"
-msgstr ""
-
-msgid "Built-in Speaker"
-msgstr ""
-
-msgid "Headphone"
-msgstr ""
-
-msgid "Line Out"
-msgstr ""
-
-msgid "SPDIF Out"
-msgstr ""
-
-msgid "AUX 1 Out"
-msgstr ""
-
-msgid "AUX 2 Out"
-msgstr ""
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr ""
@@ -211,6 +167,14 @@ msgstr ""
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
+#, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr ""
@@ -227,6 +191,14 @@ msgstr ""
 msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 
+#, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr ""
+
+#, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr ""
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr ""
@@ -307,6 +279,9 @@ msgstr ""
 msgid "Failed to process frame."
 msgstr ""
 
+msgid "Failed to start encoding thread."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -400,6 +375,36 @@ msgstr ""
 msgid "Cannot operate without a clock"
 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 "Internal data stream error."
 #~ msgstr "內部資料串流發生錯誤。"
 
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index b76c96bec420bd23f935df53dc524723cdc2dd42..fdfc7edae44426fd74ed9eb74beda66ddfa487bf 100644
GIT binary patch
delta 227
zcmZ3?J%_XYo)F7a1|VPuVi_O~0b*_-?g3&D*a5_%K)e%(3xW7N5Gw((BO?QY8IVo^
z()vJpHjp*|(x-uR8W8^hVvxRMW(I~xAYBQh)q(V7ARPvze?$0|3_&am42nR3Dj*Hi
z0|u->k`2lRIgAO2f$HG^sFY!{6XTl6Oia1VnR)4x9ho#XZ)8emoNUB0WAY1@`pNdJ
J5|evaxd0ka9D4u&

delta 487
zcmXZX&r1S96u|LWwbV4|2T?-77DUI?Lr|9pB@#LmQslA3N{Ed_>8Mn8P8Nfp2n@kP
z5aFQ^s=NIOL6^`JqCdbceaG2>$LGzww{K>z-FKes=a8c)SpCE}aYhUhKZIO<O$ZkT
zEEjNueF%>*hEw>C9{fcoc5n`DHX&wl9_1ZL^y4uyH!CV6yEH$dm%^AsIgRq7AjWV7
zXRw3=SV!6aft%Q}>We+<d=Do%Ph0y-<eKi1-_b7YBFqa(sC8d0|5UzGu3m+3W1p4F
zKNL$FTY5l`7~LdDQh2@}ju`1g%Gf^8Lt(L+G!h(}am{e*(ZftCo-pfL&=p+^N0up6
z|FnJ0r^d8i%|^a#jZzzP$9^@@IM26FD@@bdx7Bv3AiisFt)~a8qhrr`8!tsl&6{$w
Uc44kNe52~%D|aH)MXFc)1F8gLjQ{`u

diff --git a/po/zh_TW.po b/po/zh_TW.po
index 1f534d21f..5efe09717 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: 2017-12-07 19:21+0200\n"
+"POT-Creation-Date: 2018-02-15 17:06+0000\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"
@@ -21,6 +21,16 @@ msgstr ""
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+msgid ""
+"Failed to configure LAME mp3 audio encoder. Check your encoding parameters."
+msgstr ""
+
+#, c-format
+msgid ""
+"The requested bitrate %d kbit/s for property '%s' is not allowed. The "
+"bitrate was changed to %d kbit/s."
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
@@ -51,6 +61,9 @@ msgstr ""
 msgid "Server does not support seeking."
 msgstr ""
 
+msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
+msgstr ""
+
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "沒有任何輸入的音效資料或者資料無效,表示 AVI 串流出現錯誤。"
 
@@ -134,63 +147,6 @@ msgstr ""
 msgid "CoreAudio device could not be opened"
 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 ""
-
-msgid "Gain"
-msgstr ""
-
-msgid "Monitor"
-msgstr ""
-
-msgid "Built-in Speaker"
-msgstr ""
-
-msgid "Headphone"
-msgstr ""
-
-msgid "Line Out"
-msgstr ""
-
-msgid "SPDIF Out"
-msgstr ""
-
-msgid "AUX 1 Out"
-msgstr ""
-
-msgid "AUX 2 Out"
-msgstr ""
-
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr ""
@@ -211,6 +167,14 @@ msgstr ""
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
+#, c-format
+msgid "Device '%s' has no supported format"
+msgstr ""
+
+#, c-format
+msgid "Device '%s' failed during initialization"
+msgstr ""
+
 #, c-format
 msgid "Device '%s' is busy"
 msgstr ""
@@ -227,6 +191,14 @@ msgstr ""
 msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 
+#, c-format
+msgid "Device '%s' does not support %s interlacing"
+msgstr ""
+
+#, c-format
+msgid "Device '%s' does not support %s colorimetry"
+msgstr ""
+
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr ""
@@ -307,6 +279,9 @@ msgstr ""
 msgid "Failed to process frame."
 msgstr ""
 
+msgid "Failed to start encoding thread."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -400,6 +375,36 @@ msgstr ""
 msgid "Cannot operate without a clock"
 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 "Internal data stream error."
 #~ msgstr "內部資料串流發生錯誤。"
 
diff --git a/sys/Makefile.am b/sys/Makefile.am
index 7ccd9e77a..bf8b9064a 100644
--- a/sys/Makefile.am
+++ b/sys/Makefile.am
@@ -1,9 +1,3 @@
-# if USE_DXR3
-# DXR3_DIR=dxr3
-# else
-# DXR3_DIR=
-# endif
-
 if USE_OSS
 OSS_DIR=oss
 else
@@ -16,7 +10,6 @@ else
 OSS4_DIR=
 endif
 
-
 if USE_DIRECTSOUND
 DIRECTSOUND_DIR=directsound
 else
@@ -29,12 +22,6 @@ else
 WAVEFORM_DIR=
 endif
 
-if USE_SUNAUDIO
-SUNAUDIO_DIR=sunaudio
-else
-SUNAUDIO_DIR=
-endif
-
 if USE_OSX_AUDIO
 OSX_AUDIO_DIR=osxaudio
 else
@@ -47,44 +34,20 @@ else
 OSX_VIDEO_DIR=
 endif
 
-# if USE_QCAM
-# QCAM_DIR=qcam
-# else
-# QCAM_DIR=
-# endif
-
 if USE_GST_V4L2
 V4L2_DIR=v4l2
 else
 V4L2_DIR=
 endif
 
-# if USE_VCD
-# VCD_DIR=vcd
-# else
-# VCD_DIR=
-# endif
-
-# if USE_CDROM
-#  CDROM_DIR=cdrom
-# else
-# CDROM_DIR=
-# endif
-
-# if USE_OPENGL
-# GL_DIR=glsink
-# else
-# GL_DIR=
-# endif
-
 if USE_X
 XIMAGE_DIR=ximage
 else
 XIMAGE_DIR=
 endif
 
-SUBDIRS=$(DIRECTSOUND_DIR) $(WAVEFORM_DIR) $(OSS_DIR) $(OSS4_DIR) $(OSX_AUDIO_DIR) $(OSX_VIDEO_DIR) $(SUNAUDIO_DIR) $(V4L2_DIR) $(XIMAGE_DIR)
+SUBDIRS=$(DIRECTSOUND_DIR) $(WAVEFORM_DIR) $(OSS_DIR) $(OSS4_DIR) $(OSX_AUDIO_DIR) $(OSX_VIDEO_DIR) $(V4L2_DIR) $(XIMAGE_DIR)
 
-DIST_SUBDIRS=directsound oss oss4 osxaudio osxvideo sunaudio v4l2 waveform ximage
+DIST_SUBDIRS=directsound oss oss4 osxaudio osxvideo v4l2 waveform ximage
 
 include $(top_srcdir)/common/parallel-subdirs.mak
diff --git a/sys/Makefile.in b/sys/Makefile.in
index 5f44ef3fc..37c076029 100644
--- a/sys/Makefile.in
+++ b/sys/Makefile.in
@@ -14,12 +14,6 @@
 
 @SET_MAKE@
 
-# if USE_DXR3
-# DXR3_DIR=dxr3
-# else
-# DXR3_DIR=
-# endif
-
 # include this at the end of $MODULE/ext/Makefile.am to force make to
 # build subdirectories in parallel when make -jN is used. We will end up
 # descending into all subdirectories a second time, but only after the first
@@ -276,6 +270,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -299,6 +294,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -314,6 +311,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -336,10 +335,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -354,6 +360,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -371,6 +378,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -383,6 +392,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -401,6 +412,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -444,9 +458,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -460,11 +485,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -563,42 +593,16 @@ top_srcdir = @top_srcdir@
 @USE_DIRECTSOUND_TRUE@DIRECTSOUND_DIR = directsound
 @USE_WAVEFORM_FALSE@WAVEFORM_DIR = 
 @USE_WAVEFORM_TRUE@WAVEFORM_DIR = waveform
-@USE_SUNAUDIO_FALSE@SUNAUDIO_DIR = 
-@USE_SUNAUDIO_TRUE@SUNAUDIO_DIR = sunaudio
 @USE_OSX_AUDIO_FALSE@OSX_AUDIO_DIR = 
 @USE_OSX_AUDIO_TRUE@OSX_AUDIO_DIR = osxaudio
 @USE_OSX_VIDEO_FALSE@OSX_VIDEO_DIR = 
 @USE_OSX_VIDEO_TRUE@OSX_VIDEO_DIR = osxvideo
 @USE_GST_V4L2_FALSE@V4L2_DIR = 
-
-# if USE_QCAM
-# QCAM_DIR=qcam
-# else
-# QCAM_DIR=
-# endif
 @USE_GST_V4L2_TRUE@V4L2_DIR = v4l2
 @USE_X_FALSE@XIMAGE_DIR = 
-
-# if USE_VCD
-# VCD_DIR=vcd
-# else
-# VCD_DIR=
-# endif
-
-# if USE_CDROM
-#  CDROM_DIR=cdrom
-# else
-# CDROM_DIR=
-# endif
-
-# if USE_OPENGL
-# GL_DIR=glsink
-# else
-# GL_DIR=
-# endif
 @USE_X_TRUE@XIMAGE_DIR = ximage
-SUBDIRS = $(DIRECTSOUND_DIR) $(WAVEFORM_DIR) $(OSS_DIR) $(OSS4_DIR) $(OSX_AUDIO_DIR) $(OSX_VIDEO_DIR) $(SUNAUDIO_DIR) $(V4L2_DIR) $(XIMAGE_DIR)
-DIST_SUBDIRS = directsound oss oss4 osxaudio osxvideo sunaudio v4l2 waveform ximage
+SUBDIRS = $(DIRECTSOUND_DIR) $(WAVEFORM_DIR) $(OSS_DIR) $(OSS4_DIR) $(OSX_AUDIO_DIR) $(OSX_VIDEO_DIR) $(V4L2_DIR) $(XIMAGE_DIR)
+DIST_SUBDIRS = directsound oss oss4 osxaudio osxvideo v4l2 waveform ximage
 all: all-recursive
 
 .SUFFIXES:
diff --git a/sys/directsound/Makefile.am b/sys/directsound/Makefile.am
index 9581d28ee..963a9aa09 100644
--- a/sys/directsound/Makefile.am
+++ b/sys/directsound/Makefile.am
@@ -1,18 +1,21 @@
-plugin_LTLIBRARIES = libgstdirectsoundsink.la
-
-libgstdirectsoundsink_la_SOURCES =  gstdirectsoundsink.c gstdirectsoundplugin.c
-libgstdirectsoundsink_la_CFLAGS = \
+plugin_LTLIBRARIES = libgstdirectsound.la
+
+libgstdirectsound_la_SOURCES =  gstdirectsoundsink.c gstdirectsounddevice.c gstdirectsoundplugin.c
+libgstdirectsound_la_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) \
 	$(GST_CFLAGS) \
-	$(DIRECTSOUND_CFLAGS)
-libgstdirectsoundsink_la_LIBADD = \
+	$(DIRECTSOUND_CFLAGS) \
+	-DGstDirectSoundDeviceProvider=GstDirectSoundSinkDeviceProvider \
+	-DGstDirectSoundDeviceProviderClass=GstDirectSoundSinkDeviceProviderClass \
+	-DGstDirectSoundDevice=GstDirectSoundSinkDevice \
+	-DGstDirectSoundDeviceClass=GstDirectSoundSinkDeviceClass
+libgstdirectsound_la_LIBADD = \
 	$(GST_PLUGINS_BASE_LIBS) \
 	-lgstaudio-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
 	$(DIRECTSOUND_LIBS)
-libgstdirectsoundsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(DIRECTSOUND_LDFLAGS)
-libgstdirectsoundsink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
-
-noinst_HEADERS = gstdirectsoundsink.h
+libgstdirectsound_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(DIRECTSOUND_LDFLAGS)
+
+noinst_HEADERS = gstdirectsoundsink.h gstdirectsounddevice.h
diff --git a/sys/directsound/Makefile.in b/sys/directsound/Makefile.in
index e6e5bbbd9..1695a295a 100644
--- a/sys/directsound/Makefile.in
+++ b/sys/directsound/Makefile.in
@@ -163,22 +163,22 @@ am__uninstall_files_from_dir = { \
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-libgstdirectsoundsink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+libgstdirectsound_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
-am_libgstdirectsoundsink_la_OBJECTS =  \
-	libgstdirectsoundsink_la-gstdirectsoundsink.lo \
-	libgstdirectsoundsink_la-gstdirectsoundplugin.lo
-libgstdirectsoundsink_la_OBJECTS =  \
-	$(am_libgstdirectsoundsink_la_OBJECTS)
+am_libgstdirectsound_la_OBJECTS =  \
+	libgstdirectsound_la-gstdirectsoundsink.lo \
+	libgstdirectsound_la-gstdirectsounddevice.lo \
+	libgstdirectsound_la-gstdirectsoundplugin.lo
+libgstdirectsound_la_OBJECTS = $(am_libgstdirectsound_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 $@
+libgstdirectsound_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libgstdirectsound_la_CFLAGS) $(CFLAGS) \
+	$(libgstdirectsound_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
@@ -213,8 +213,8 @@ 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 = $(libgstdirectsoundsink_la_SOURCES)
-DIST_SOURCES = $(libgstdirectsoundsink_la_SOURCES)
+SOURCES = $(libgstdirectsound_la_SOURCES)
+DIST_SOURCES = $(libgstdirectsound_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -295,6 +295,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -318,6 +319,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -333,6 +336,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -355,10 +360,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -373,6 +385,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -390,6 +403,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -402,6 +417,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -420,6 +437,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -463,9 +483,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -479,11 +510,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -574,24 +610,27 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-plugin_LTLIBRARIES = libgstdirectsoundsink.la
-libgstdirectsoundsink_la_SOURCES = gstdirectsoundsink.c gstdirectsoundplugin.c
-libgstdirectsoundsink_la_CFLAGS = \
+plugin_LTLIBRARIES = libgstdirectsound.la
+libgstdirectsound_la_SOURCES = gstdirectsoundsink.c gstdirectsounddevice.c gstdirectsoundplugin.c
+libgstdirectsound_la_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) \
 	$(GST_CFLAGS) \
-	$(DIRECTSOUND_CFLAGS)
+	$(DIRECTSOUND_CFLAGS) \
+	-DGstDirectSoundDeviceProvider=GstDirectSoundSinkDeviceProvider \
+	-DGstDirectSoundDeviceProviderClass=GstDirectSoundSinkDeviceProviderClass \
+	-DGstDirectSoundDevice=GstDirectSoundSinkDevice \
+	-DGstDirectSoundDeviceClass=GstDirectSoundSinkDeviceClass
 
-libgstdirectsoundsink_la_LIBADD = \
+libgstdirectsound_la_LIBADD = \
 	$(GST_PLUGINS_BASE_LIBS) \
 	-lgstaudio-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
 	$(DIRECTSOUND_LIBS)
 
-libgstdirectsoundsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(DIRECTSOUND_LDFLAGS)
-libgstdirectsoundsink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
-noinst_HEADERS = gstdirectsoundsink.h
+libgstdirectsound_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(DIRECTSOUND_LDFLAGS)
+noinst_HEADERS = gstdirectsoundsink.h gstdirectsounddevice.h
 all: all-am
 
 .SUFFIXES:
@@ -661,8 +700,8 @@ clean-pluginLTLIBRARIES:
 	  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)
+libgstdirectsound.la: $(libgstdirectsound_la_OBJECTS) $(libgstdirectsound_la_DEPENDENCIES) $(EXTRA_libgstdirectsound_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstdirectsound_la_LINK) -rpath $(plugindir) $(libgstdirectsound_la_OBJECTS) $(libgstdirectsound_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -670,8 +709,9 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundplugin.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundsink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdirectsound_la-gstdirectsounddevice.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdirectsound_la-gstdirectsoundplugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdirectsound_la-gstdirectsoundsink.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -697,19 +737,26 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libgstdirectsoundsink_la-gstdirectsoundsink.lo: gstdirectsoundsink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsink_la_CFLAGS) $(CFLAGS) -MT libgstdirectsoundsink_la-gstdirectsoundsink.lo -MD -MP -MF $(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundsink.Tpo -c -o libgstdirectsoundsink_la-gstdirectsoundsink.lo `test -f 'gstdirectsoundsink.c' || echo '$(srcdir)/'`gstdirectsoundsink.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundsink.Tpo $(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundsink.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdirectsoundsink.c' object='libgstdirectsoundsink_la-gstdirectsoundsink.lo' libtool=yes @AMDEPBACKSLASH@
+libgstdirectsound_la-gstdirectsoundsink.lo: gstdirectsoundsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsound_la_CFLAGS) $(CFLAGS) -MT libgstdirectsound_la-gstdirectsoundsink.lo -MD -MP -MF $(DEPDIR)/libgstdirectsound_la-gstdirectsoundsink.Tpo -c -o libgstdirectsound_la-gstdirectsoundsink.lo `test -f 'gstdirectsoundsink.c' || echo '$(srcdir)/'`gstdirectsoundsink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirectsound_la-gstdirectsoundsink.Tpo $(DEPDIR)/libgstdirectsound_la-gstdirectsoundsink.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdirectsoundsink.c' object='libgstdirectsound_la-gstdirectsoundsink.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 $(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsink_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsoundsink_la-gstdirectsoundsink.lo `test -f 'gstdirectsoundsink.c' || echo '$(srcdir)/'`gstdirectsoundsink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsound_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsound_la-gstdirectsoundsink.lo `test -f 'gstdirectsoundsink.c' || echo '$(srcdir)/'`gstdirectsoundsink.c
 
-libgstdirectsoundsink_la-gstdirectsoundplugin.lo: gstdirectsoundplugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsink_la_CFLAGS) $(CFLAGS) -MT libgstdirectsoundsink_la-gstdirectsoundplugin.lo -MD -MP -MF $(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundplugin.Tpo -c -o libgstdirectsoundsink_la-gstdirectsoundplugin.lo `test -f 'gstdirectsoundplugin.c' || echo '$(srcdir)/'`gstdirectsoundplugin.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundplugin.Tpo $(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundplugin.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdirectsoundplugin.c' object='libgstdirectsoundsink_la-gstdirectsoundplugin.lo' libtool=yes @AMDEPBACKSLASH@
+libgstdirectsound_la-gstdirectsounddevice.lo: gstdirectsounddevice.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsound_la_CFLAGS) $(CFLAGS) -MT libgstdirectsound_la-gstdirectsounddevice.lo -MD -MP -MF $(DEPDIR)/libgstdirectsound_la-gstdirectsounddevice.Tpo -c -o libgstdirectsound_la-gstdirectsounddevice.lo `test -f 'gstdirectsounddevice.c' || echo '$(srcdir)/'`gstdirectsounddevice.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirectsound_la-gstdirectsounddevice.Tpo $(DEPDIR)/libgstdirectsound_la-gstdirectsounddevice.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdirectsounddevice.c' object='libgstdirectsound_la-gstdirectsounddevice.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 $(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsink_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsoundsink_la-gstdirectsoundplugin.lo `test -f 'gstdirectsoundplugin.c' || echo '$(srcdir)/'`gstdirectsoundplugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsound_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsound_la-gstdirectsounddevice.lo `test -f 'gstdirectsounddevice.c' || echo '$(srcdir)/'`gstdirectsounddevice.c
+
+libgstdirectsound_la-gstdirectsoundplugin.lo: gstdirectsoundplugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsound_la_CFLAGS) $(CFLAGS) -MT libgstdirectsound_la-gstdirectsoundplugin.lo -MD -MP -MF $(DEPDIR)/libgstdirectsound_la-gstdirectsoundplugin.Tpo -c -o libgstdirectsound_la-gstdirectsoundplugin.lo `test -f 'gstdirectsoundplugin.c' || echo '$(srcdir)/'`gstdirectsoundplugin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirectsound_la-gstdirectsoundplugin.Tpo $(DEPDIR)/libgstdirectsound_la-gstdirectsoundplugin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdirectsoundplugin.c' object='libgstdirectsound_la-gstdirectsoundplugin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsound_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsound_la-gstdirectsoundplugin.lo `test -f 'gstdirectsoundplugin.c' || echo '$(srcdir)/'`gstdirectsoundplugin.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/sys/directsound/gstdirectsounddevice.c b/sys/directsound/gstdirectsounddevice.c
new file mode 100644
index 000000000..00b021ebb
--- /dev/null
+++ b/sys/directsound/gstdirectsounddevice.c
@@ -0,0 +1,266 @@
+/* GStreamer
+ * Copyright (C) 2018 Sebastian Dröge <sebastian@centricular.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstdirectsounddevice.h"
+
+#include <windows.h>
+#include <dsound.h>
+#include <mmsystem.h>
+#include <stdio.h>
+
+#ifdef GST_DIRECTSOUND_SRC_DEVICE_PROVIDER
+#include "gstdirectsoundsrc.h"
+#else
+#include "gstdirectsoundsink.h"
+#endif
+
+G_DEFINE_TYPE (GstDirectSoundDeviceProvider, gst_directsound_device_provider,
+    GST_TYPE_DEVICE_PROVIDER);
+
+static GList *gst_directsound_device_provider_probe (GstDeviceProvider *
+    provider);
+
+static void
+gst_directsound_device_provider_class_init (GstDirectSoundDeviceProviderClass *
+    klass)
+{
+  GstDeviceProviderClass *dm_class = GST_DEVICE_PROVIDER_CLASS (klass);
+
+  gst_device_provider_class_set_static_metadata (dm_class,
+#ifdef GST_DIRECTSOUND_SRC_DEVICE_PROVIDER
+      "DirectSound Source Device Provider", "Source/Audio",
+      "List DirectSound source devices",
+#else
+      "DirectSound Sink Device Provider", "Sink/Audio",
+      "List DirectSound sink devices",
+#endif
+      "Sebastian Dröge <sebastian@centricular.com>");
+
+  dm_class->probe = gst_directsound_device_provider_probe;
+}
+
+static void
+gst_directsound_device_provider_init (GstDirectSoundDeviceProvider * provider)
+{
+}
+
+static gchar *
+guid_to_string (LPGUID guid)
+{
+  gunichar2 *wstr = NULL;
+  gchar *str = NULL;
+
+  if (StringFromCLSID (guid, &wstr) == S_OK) {
+    str = g_utf16_to_utf8 (wstr, -1, NULL, NULL, NULL);
+    CoTaskMemFree (wstr);
+  }
+
+  return str;
+}
+
+typedef struct
+{
+  GstDirectSoundDeviceProvider *self;
+  GList **devices;
+} ProbeData;
+
+static BOOL CALLBACK
+gst_directsound_enum_callback (GUID * pGUID, TCHAR * strDesc,
+    TCHAR * strDrvName, VOID * pContext)
+{
+  ProbeData *probe_data = (ProbeData *) (pContext);
+  gchar *driver, *description, *guid_str;
+  GstStructure *props;
+  GstDevice *device;
+#ifdef GST_DIRECTSOUND_SRC_DEVICE_PROVIDER
+  static GstStaticCaps caps = GST_STATIC_CAPS (GST_DIRECTSOUND_SRC_CAPS);
+#else
+  static GstStaticCaps caps = GST_STATIC_CAPS (GST_DIRECTSOUND_SINK_CAPS);
+#endif
+
+  description = g_locale_to_utf8 (strDesc, -1, NULL, NULL, NULL);
+  if (!description) {
+    GST_ERROR_OBJECT (probe_data->self,
+        "Failed to convert description from locale encoding to UTF8");
+    return TRUE;
+  }
+
+  driver = g_locale_to_utf8 (strDrvName, -1, NULL, NULL, NULL);
+  if (!driver) {
+    GST_ERROR_OBJECT (probe_data->self,
+        "Failed to convert driver name from locale encoding to UTF8");
+    return TRUE;
+  }
+
+  /* NULL for the primary sound card */
+  guid_str = pGUID ? guid_to_string (pGUID) : NULL;
+
+  GST_INFO_OBJECT (probe_data->self, "sound device name: %s, %s (GUID %s)",
+      description, driver, GST_STR_NULL (guid_str));
+
+  props = gst_structure_new ("directsound-proplist",
+      "device.api", G_TYPE_STRING, "directsound",
+      "device.guid", G_TYPE_STRING, GST_STR_NULL (guid_str),
+      "directsound.device.driver", G_TYPE_STRING, driver,
+      "directsound.device.description", G_TYPE_STRING, description, NULL);
+
+#ifdef GST_DIRECTSOUND_SRC_DEVICE_PROVIDER
+  device = g_object_new (GST_TYPE_DIRECTSOUND_DEVICE, "device-guid", guid_str,
+      "display-name", description, "caps", gst_static_caps_get (&caps),
+      "device-class", "Audio/Source", "properties", props, NULL);
+#else
+  device = g_object_new (GST_TYPE_DIRECTSOUND_DEVICE, "device-guid", guid_str,
+      "display-name", description, "caps", gst_static_caps_get (&caps),
+      "device-class", "Audio/Sink", "properties", props, NULL);
+#endif
+
+  *probe_data->devices = g_list_prepend (*probe_data->devices, device);
+
+  g_free (description);
+  g_free (driver);
+  g_free (guid_str);
+
+  gst_structure_free (props);
+
+  return TRUE;
+}
+
+static GList *
+gst_directsound_device_provider_probe (GstDeviceProvider * provider)
+{
+  GstDirectSoundDeviceProvider *self =
+      GST_DIRECTSOUND_DEVICE_PROVIDER (provider);
+  GList *devices = NULL;
+  ProbeData probe_data = { self, &devices };
+  HRESULT hRes;
+
+#ifdef GST_DIRECTSOUND_SRC_DEVICE_PROVIDER
+  hRes = DirectSoundCaptureEnumerate ((LPDSENUMCALLBACK)
+      gst_directsound_enum_callback, (VOID *) & probe_data);
+#else
+  hRes = DirectSoundEnumerate ((LPDSENUMCALLBACK)
+      gst_directsound_enum_callback, (VOID *) & probe_data);
+#endif
+
+  if (FAILED (hRes))
+    GST_ERROR_OBJECT (self, "Failed to enumerate devices");
+
+  return devices;
+}
+
+enum
+{
+  PROP_DEVICE_GUID = 1,
+};
+
+G_DEFINE_TYPE (GstDirectSoundDevice, gst_directsound_device, GST_TYPE_DEVICE);
+
+static void gst_directsound_device_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec);
+static void gst_directsound_device_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec);
+static void gst_directsound_device_finalize (GObject * object);
+static GstElement *gst_directsound_device_create_element (GstDevice * device,
+    const gchar * name);
+
+static void
+gst_directsound_device_class_init (GstDirectSoundDeviceClass * klass)
+{
+  GstDeviceClass *dev_class = GST_DEVICE_CLASS (klass);
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+  dev_class->create_element = gst_directsound_device_create_element;
+
+  object_class->get_property = gst_directsound_device_get_property;
+  object_class->set_property = gst_directsound_device_set_property;
+  object_class->finalize = gst_directsound_device_finalize;
+
+  g_object_class_install_property (object_class, PROP_DEVICE_GUID,
+      g_param_spec_string ("device-guid", "Device GUID",
+          "Device GUID", NULL,
+          G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+}
+
+static void
+gst_directsound_device_init (GstDirectSoundDevice * device)
+{
+}
+
+static void
+gst_directsound_device_finalize (GObject * object)
+{
+  GstDirectSoundDevice *device = GST_DIRECTSOUND_DEVICE (object);
+
+  g_free (device->guid);
+
+  G_OBJECT_CLASS (gst_directsound_device_parent_class)->finalize (object);
+}
+
+static GstElement *
+gst_directsound_device_create_element (GstDevice * device, const gchar * name)
+{
+  GstDirectSoundDevice *directsound_dev = GST_DIRECTSOUND_DEVICE (device);
+  GstElement *elem;
+
+#ifdef GST_DIRECTSOUND_SRC_DEVICE_PROVIDER
+  elem = gst_element_factory_make ("directsoundsrc", name);
+#else
+  elem = gst_element_factory_make ("directsoundsink", name);
+#endif
+
+  g_object_set (elem, "device", directsound_dev->guid, NULL);
+
+  return elem;
+}
+
+static void
+gst_directsound_device_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstDirectSoundDevice *device = GST_DIRECTSOUND_DEVICE_CAST (object);
+
+  switch (prop_id) {
+    case PROP_DEVICE_GUID:
+      g_value_set_string (value, device->guid);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_directsound_device_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstDirectSoundDevice *device = GST_DIRECTSOUND_DEVICE_CAST (object);
+
+  switch (prop_id) {
+    case PROP_DEVICE_GUID:
+      device->guid = g_value_dup_string (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
diff --git a/sys/directsound/gstdirectsounddevice.h b/sys/directsound/gstdirectsounddevice.h
new file mode 100644
index 000000000..550289337
--- /dev/null
+++ b/sys/directsound/gstdirectsounddevice.h
@@ -0,0 +1,74 @@
+/* GStreamer
+ * Copyright (C) 2018 Sebastian Dröge <sebastian@centricular.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_DIRECTSOUND_DEVICE_H__
+#define __GST_DIRECTSOUND_DEVICE_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GstDirectSoundDeviceProvider GstDirectSoundDeviceProvider;
+typedef struct _GstDirectSoundDeviceProviderClass GstDirectSoundDeviceProviderClass;
+
+#define GST_TYPE_DIRECTSOUND_DEVICE_PROVIDER                 (gst_directsound_device_provider_get_type())
+#define GST_IS_DIRECTSOUND_DEVICE_PROVIDER(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DIRECTSOUND_DEVICE_PROVIDER))
+#define GST_IS_DIRECTSOUND_DEVICE_PROVIDER_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_DIRECTSOUND_DEVICE_PROVIDER))
+#define GST_DIRECTSOUND_DEVICE_PROVIDER_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_DIRECTSOUND_DEVICE_PROVIDER, GstDirectSoundDeviceProviderClass))
+#define GST_DIRECTSOUND_DEVICE_PROVIDER(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_DIRECTSOUND_DEVICE_PROVIDER, GstDirectSoundDeviceProvider))
+#define GST_DIRECTSOUND_DEVICE_PROVIDER_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DEVICE_PROVIDER, GstDirectSoundDeviceProviderClass))
+#define GST_DIRECTSOUND_DEVICE_PROVIDER_CAST(obj)            ((GstDirectSoundDeviceProvider *)(obj))
+
+struct _GstDirectSoundDeviceProvider {
+  GstDeviceProvider parent;
+};
+
+struct _GstDirectSoundDeviceProviderClass {
+  GstDeviceProviderClass parent_class;
+};
+
+GType gst_directsound_device_provider_get_type (void);
+
+
+typedef struct _GstDirectSoundDevice GstDirectSoundDevice;
+typedef struct _GstDirectSoundDeviceClass GstDirectSoundDeviceClass;
+
+#define GST_TYPE_DIRECTSOUND_DEVICE                 (gst_directsound_device_get_type())
+#define GST_IS_DIRECTSOUND_DEVICE(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DIRECTSOUND_DEVICE))
+#define GST_IS_DIRECTSOUND_DEVICE_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_DIRECTSOUND_DEVICE))
+#define GST_DIRECTSOUND_DEVICE_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_DIRECTSOUND_DEVICE, GstDirectSoundDeviceClass))
+#define GST_DIRECTSOUND_DEVICE(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_DIRECTSOUND_DEVICE, GstDirectSoundDevice))
+#define GST_DIRECTSOUND_DEVICE_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DEVICE, GstDirectSoundDeviceClass))
+#define GST_DIRECTSOUND_DEVICE_CAST(obj)            ((GstDirectSoundDevice *)(obj))
+
+struct _GstDirectSoundDevice {
+  GstDevice parent;
+
+  gchar *guid;
+};
+
+struct _GstDirectSoundDeviceClass {
+  GstDeviceClass parent_class;
+};
+
+GType gst_directsound_device_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GST_DIRECTSOUND_DEVICE_H__ */
diff --git a/sys/directsound/gstdirectsoundplugin.c b/sys/directsound/gstdirectsoundplugin.c
index faee215f5..b3a7f1c9c 100644
--- a/sys/directsound/gstdirectsoundplugin.c
+++ b/sys/directsound/gstdirectsoundplugin.c
@@ -30,7 +30,7 @@
 #endif
 
 #include "gstdirectsoundsink.h"
-
+#include "gstdirectsounddevice.h"
 
 static gboolean
 plugin_init (GstPlugin * plugin)
@@ -39,6 +39,10 @@ plugin_init (GstPlugin * plugin)
           GST_TYPE_DIRECTSOUND_SINK))
     return FALSE;
 
+  if (!gst_device_provider_register (plugin, "directsoundsinkdeviceprovider",
+          GST_RANK_PRIMARY, GST_TYPE_DIRECTSOUND_DEVICE_PROVIDER))
+    return FALSE;
+
   return TRUE;
 }
 
diff --git a/sys/directsound/gstdirectsoundsink.c b/sys/directsound/gstdirectsoundsink.c
index 73c7758f7..c0da18685 100644
--- a/sys/directsound/gstdirectsoundsink.c
+++ b/sys/directsound/gstdirectsoundsink.c
@@ -112,19 +112,10 @@ static gboolean gst_directsound_sink_is_spdif_format (GstAudioRingBufferSpec *
 static gchar *gst_hres_to_string (HRESULT hRes);
 
 static GstStaticPadTemplate directsoundsink_sink_factory =
-    GST_STATIC_PAD_TEMPLATE ("sink",
+GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw, "
-        "format = (string) S16LE, "
-        "layout = (string) interleaved, "
-        "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 2 ]; "
-        "audio/x-raw, "
-        "format = (string) U8, "
-        "layout = (string) interleaved, "
-        "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 2 ];"
-        "audio/x-ac3, framed = (boolean) true;"
-        "audio/x-dts, framed = (boolean) true;"));
+    GST_STATIC_CAPS (GST_DIRECTSOUND_SINK_CAPS));
 
 enum
 {
@@ -229,7 +220,6 @@ gst_directsound_sink_init (GstDirectSoundSink * dsoundsink)
   dsoundsink->pDSBSecondary = NULL;
   dsoundsink->current_circular_offset = 0;
   dsoundsink->buffer_size = DSBSIZE_MIN;
-  dsoundsink->volume = 100;
   g_mutex_init (&dsoundsink->dsound_lock);
   dsoundsink->system_clock = gst_system_clock_obtain ();
   dsoundsink->write_wait_clock_id = NULL;
@@ -442,18 +432,16 @@ gst_directsound_sink_open (GstAudioSink * asink)
     lpGuid = string_to_guid (dsoundsink->device_id);
     if (lpGuid == NULL) {
       GST_ELEMENT_ERROR (dsoundsink, RESOURCE, OPEN_READ,
-          ("gst_directsound_sink_open: device set, but guid not found: %s",
-              dsoundsink->device_id), (NULL));
+          ("device set but guid not found: %s", dsoundsink->device_id), (NULL));
       return FALSE;
     }
   }
 
-  /* create and initialize a DirecSound object */
+  /* create and initialize a DirectSound object */
   if (FAILED (hRes = DirectSoundCreate (lpGuid, &dsoundsink->pDS, NULL))) {
     gchar *error_text = gst_hres_to_string (hRes);
     GST_ELEMENT_ERROR (dsoundsink, RESOURCE, OPEN_READ,
-        ("gst_directsound_sink_open: DirectSoundCreate: %s",
-            error_text), (NULL));
+        ("DirectSoundCreate: %s", error_text), (NULL));
     g_free (lpGuid);
     g_free (error_text);
     return FALSE;
@@ -465,8 +453,7 @@ gst_directsound_sink_open (GstAudioSink * asink)
               GetDesktopWindow (), DSSCL_PRIORITY))) {
     gchar *error_text = gst_hres_to_string (hRes);
     GST_ELEMENT_ERROR (dsoundsink, RESOURCE, OPEN_READ,
-        ("gst_directsound_sink_open: IDirectSound_SetCooperativeLevel: %s",
-            error_text), (NULL));
+        ("IDirectSound_SetCooperativeLevel: %s", error_text), (NULL));
     g_free (error_text);
     return FALSE;
   }
@@ -540,11 +527,12 @@ gst_directsound_sink_prepare (GstAudioSink * asink,
   // Make the final buffer size be an integer number of segments
   dsoundsink->buffer_size = spec->segsize * spec->segtotal;
 
-  GST_INFO_OBJECT (dsoundsink,
-      "GstAudioRingBufferSpec->channels: %d, GstAudioRingBufferSpec->rate: %d, GstAudioRingBufferSpec->bytes_per_sample: %d\n"
-      "WAVEFORMATEX.nSamplesPerSec: %ld, WAVEFORMATEX.wBitsPerSample: %d, WAVEFORMATEX.nBlockAlign: %d, WAVEFORMATEX.nAvgBytesPerSec: %ld\n"
-      "Size of dsound circular buffer=>%d\n", spec->info.channels,
-      spec->info.rate, spec->info.bpf, wfx.nSamplesPerSec, wfx.wBitsPerSample,
+  GST_INFO_OBJECT (dsoundsink, "channels: %d, rate: %d, bytes_per_sample: %d"
+      " WAVEFORMATEX.nSamplesPerSec: %ld, WAVEFORMATEX.wBitsPerSample: %d,"
+      " WAVEFORMATEX.nBlockAlign: %d, WAVEFORMATEX.nAvgBytesPerSec: %ld\n"
+      "Size of dsound circular buffer=>%d\n",
+      GST_AUDIO_INFO_CHANNELS (&spec->info), GST_AUDIO_INFO_RATE (&spec->info),
+      GST_AUDIO_INFO_BPF (&spec->info), wfx.nSamplesPerSec, wfx.wBitsPerSample,
       wfx.nBlockAlign, wfx.nAvgBytesPerSec, dsoundsink->buffer_size);
 
   /* create a secondary directsound buffer */
@@ -562,13 +550,13 @@ gst_directsound_sink_prepare (GstAudioSink * asink,
   if (FAILED (hRes)) {
     gchar *error_text = gst_hres_to_string (hRes);
     GST_ELEMENT_ERROR (dsoundsink, RESOURCE, OPEN_READ,
-        ("gst_directsound_sink_prepare: IDirectSound_CreateSoundBuffer: %s",
-            error_text), (NULL));
+        ("IDirectSound_CreateSoundBuffer: %s", error_text), (NULL));
     g_free (error_text);
     return FALSE;
   }
 
-  gst_directsound_sink_set_volume (dsoundsink, dsoundsink->volume, FALSE);
+  gst_directsound_sink_set_volume (dsoundsink,
+      gst_directsound_sink_get_volume (dsoundsink), FALSE);
   gst_directsound_sink_set_mute (dsoundsink, dsoundsink->mute);
 
   return TRUE;
@@ -712,7 +700,7 @@ gst_directsound_sink_write (GstAudioSink * asink, gpointer data, guint length)
         err1 = gst_hres_to_string (hRes);
         err2 = gst_hres_to_string (hRes2);
         GST_ELEMENT_ERROR (dsoundsink, RESOURCE, OPEN_WRITE,
-            ("gst_directsound_sink_write: IDirectSoundBuffer_GetStatus %s, "
+            ("IDirectSoundBuffer_GetStatus %s, "
                 "IDirectSoundBuffer_GetCurrentPosition: %s, dwStatus: %lu",
                 err2, err1, dwStatus), (NULL));
         g_free (err1);
@@ -818,7 +806,7 @@ gst_directsound_sink_reset (GstAudioSink * asink)
 
     /*reset the buffer */
     hRes = IDirectSoundBuffer_Lock (dsoundsink->pDSBSecondary,
-        dsoundsink->current_circular_offset, dsoundsink->buffer_size,
+        0, dsoundsink->buffer_size,
         &pLockedBuffer, &dwSizeBuffer, NULL, NULL, 0L);
 
     if (SUCCEEDED (hRes)) {
diff --git a/sys/directsound/gstdirectsoundsink.h b/sys/directsound/gstdirectsoundsink.h
index eb27efd3e..144dfaeef 100644
--- a/sys/directsound/gstdirectsoundsink.h
+++ b/sys/directsound/gstdirectsoundsink.h
@@ -97,5 +97,16 @@ struct _GstDirectSoundSinkClass
 
 GType gst_directsound_sink_get_type (void);
 
+#define GST_DIRECTSOUND_SINK_CAPS "audio/x-raw, " \
+        "format = (string) S16LE, " \
+        "layout = (string) interleaved, " \
+        "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 2 ]; " \
+        "audio/x-raw, " \
+        "format = (string) U8, " \
+        "layout = (string) interleaved, " \
+        "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 2 ];" \
+        "audio/x-ac3, framed = (boolean) true;" \
+        "audio/x-dts, framed = (boolean) true;"
+
 G_END_DECLS
 #endif /* __GST_DIRECTSOUNDSINK_H__ */
diff --git a/sys/directsound/meson.build b/sys/directsound/meson.build
index e330c957b..eed3ffdf8 100644
--- a/sys/directsound/meson.build
+++ b/sys/directsound/meson.build
@@ -6,7 +6,7 @@ directsoundsink_sources = [
 if host_machine.system() == 'windows' and cc.has_header('dsound.h')
   directsoundsink_dep = [cc.find_library('dsound'), cc.find_library('winmm'), cc.find_library('ole32')]
 
-  gstdirectsoundsink = library('gstdirectsoundsink',
+  gstdirectsoundsink = library('gstdirectsound',
     directsoundsink_sources,
     c_args : gst_plugins_good_args,
     include_directories : [configinc],
diff --git a/sys/meson.build b/sys/meson.build
index 30761f0fb..031ee783d 100644
--- a/sys/meson.build
+++ b/sys/meson.build
@@ -1,11 +1,10 @@
+subdir('directsound')
+subdir('oss')
+subdir('oss4')
 subdir('v4l2')
 subdir('ximage')
-subdir('directsound')
 
 # FIXME: Implement these
-#subdir('oss')
-#subdir('oss4')
 #subdir('osxaudio')
 #subdir('osxvideo')
-#subdir('sunaudio')
 #subdir('waveform')
diff --git a/sys/oss/Makefile.am b/sys/oss/Makefile.am
index a94766b8c..e9079a8aa 100644
--- a/sys/oss/Makefile.am
+++ b/sys/oss/Makefile.am
@@ -12,7 +12,6 @@ libgstossaudio_la_LIBADD = \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS)
 libgstossaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) 
-libgstossaudio_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = common.h            \
 		gstosssink.h	     \
diff --git a/sys/oss/Makefile.in b/sys/oss/Makefile.in
index 84ebaec9b..e21ec4b94 100644
--- a/sys/oss/Makefile.in
+++ b/sys/oss/Makefile.in
@@ -174,8 +174,8 @@ 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) \
+	$(AM_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@)
@@ -293,6 +293,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -316,6 +317,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -331,6 +334,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -353,10 +358,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -371,6 +383,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -388,6 +401,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -400,6 +415,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -418,6 +435,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -461,9 +481,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -477,11 +508,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -586,7 +622,6 @@ libgstossaudio_la_LIBADD = \
 	$(GST_LIBS)
 
 libgstossaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) 
-libgstossaudio_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = common.h            \
 		gstosssink.h	     \
 		gstosssrc.h	     \
@@ -701,32 +736,32 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstossaudio_la-gstossaudio.lo: gstossaudio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstossaudio.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstossaudio.Tpo -c -o libgstossaudio_la-gstossaudio.lo `test -f 'gstossaudio.c' || echo '$(srcdir)/'`gstossaudio.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstossaudio.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstossaudio.Tpo -c -o libgstossaudio_la-gstossaudio.lo `test -f 'gstossaudio.c' || echo '$(srcdir)/'`gstossaudio.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstossaudio_la-gstossaudio.Tpo $(DEPDIR)/libgstossaudio_la-gstossaudio.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstossaudio.c' object='libgstossaudio_la-gstossaudio.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 $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstossaudio.lo `test -f 'gstossaudio.c' || echo '$(srcdir)/'`gstossaudio.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstossaudio.lo `test -f 'gstossaudio.c' || echo '$(srcdir)/'`gstossaudio.c
 
 libgstossaudio_la-gstosshelper.lo: gstosshelper.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstosshelper.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstosshelper.Tpo -c -o libgstossaudio_la-gstosshelper.lo `test -f 'gstosshelper.c' || echo '$(srcdir)/'`gstosshelper.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstosshelper.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstosshelper.Tpo -c -o libgstossaudio_la-gstosshelper.lo `test -f 'gstosshelper.c' || echo '$(srcdir)/'`gstosshelper.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstossaudio_la-gstosshelper.Tpo $(DEPDIR)/libgstossaudio_la-gstosshelper.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstosshelper.c' object='libgstossaudio_la-gstosshelper.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 $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstosshelper.lo `test -f 'gstosshelper.c' || echo '$(srcdir)/'`gstosshelper.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstosshelper.lo `test -f 'gstosshelper.c' || echo '$(srcdir)/'`gstosshelper.c
 
 libgstossaudio_la-gstosssink.lo: gstosssink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstosssink.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstosssink.Tpo -c -o libgstossaudio_la-gstosssink.lo `test -f 'gstosssink.c' || echo '$(srcdir)/'`gstosssink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstosssink.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstosssink.Tpo -c -o libgstossaudio_la-gstosssink.lo `test -f 'gstosssink.c' || echo '$(srcdir)/'`gstosssink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstossaudio_la-gstosssink.Tpo $(DEPDIR)/libgstossaudio_la-gstosssink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstosssink.c' object='libgstossaudio_la-gstosssink.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 $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstosssink.lo `test -f 'gstosssink.c' || echo '$(srcdir)/'`gstosssink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstosssink.lo `test -f 'gstosssink.c' || echo '$(srcdir)/'`gstosssink.c
 
 libgstossaudio_la-gstosssrc.lo: gstosssrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstosssrc.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstosssrc.Tpo -c -o libgstossaudio_la-gstosssrc.lo `test -f 'gstosssrc.c' || echo '$(srcdir)/'`gstosssrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstosssrc.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstosssrc.Tpo -c -o libgstossaudio_la-gstosssrc.lo `test -f 'gstosssrc.c' || echo '$(srcdir)/'`gstosssrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstossaudio_la-gstosssrc.Tpo $(DEPDIR)/libgstossaudio_la-gstosssrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstosssrc.c' object='libgstossaudio_la-gstosssrc.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 $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstosssrc.lo `test -f 'gstosssrc.c' || echo '$(srcdir)/'`gstosssrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstosssrc.lo `test -f 'gstosssrc.c' || echo '$(srcdir)/'`gstosssrc.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/sys/oss/meson.build b/sys/oss/meson.build
new file mode 100644
index 000000000..1176e78b4
--- /dev/null
+++ b/sys/oss/meson.build
@@ -0,0 +1,28 @@
+oss_header_locations = [
+  # Linux and newer BSD versions
+  ['sys/soundcard.h', 'HAVE_OSS_INCLUDE_IN_SYS', 'OSS includes are in sys/'],
+  # Some old BSD versions and also newer OpenBSD versions
+  ['soundcard.h', 'HAVE_OSS_INCLUDE_IN_ROOT', 'OSS includes are in root'],
+  # Some old BSD versions
+  ['machine/soundcard.h', 'HAVE_OSS_INCLUDE_IN_MACHINE', 'OSS includes are in machine/'],
+]
+
+have_oss = false
+foreach hdr : oss_header_locations
+  if not have_oss
+    if cc.has_header(hdr[0])
+      cdata.set(hdr[1], 1, description: hdr[2])
+      have_oss = true
+    endif
+  endif
+endforeach
+
+if have_oss
+  library('gstossaudio',
+    'gstossaudio.c', 'gstosshelper.c', 'gstosssink.c', 'gstosssrc.c',
+    c_args : gst_plugins_good_args,
+    include_directories : [configinc, libsinc],
+    dependencies : [gstaudio_dep, gstbase_dep],
+    install : true,
+    install_dir : plugins_install_dir)
+endif
diff --git a/sys/oss4/Makefile.am b/sys/oss4/Makefile.am
index 36a05625c..a8f058add 100644
--- a/sys/oss4/Makefile.am
+++ b/sys/oss4/Makefile.am
@@ -12,7 +12,6 @@ libgstoss4_la_LIBADD = \
 	-lgstaudio-$(GST_API_VERSION) \
 	$(GST_LIBS)
 libgstoss4_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) 
-libgstoss4_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = \
 	oss4-audio.h          \
diff --git a/sys/oss4/Makefile.in b/sys/oss4/Makefile.in
index 813d3668c..a9239b12e 100644
--- a/sys/oss4/Makefile.in
+++ b/sys/oss4/Makefile.in
@@ -173,10 +173,9 @@ 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 = 
-libgstoss4_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-	$(libgstoss4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
-	$(CCLD) $(libgstoss4_la_CFLAGS) $(CFLAGS) \
-	$(libgstoss4_la_LDFLAGS) $(LDFLAGS) -o $@
+libgstoss4_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgstoss4_la_CFLAGS) \
+	$(CFLAGS) $(libgstoss4_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
@@ -293,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -316,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -331,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -353,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -371,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -388,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -400,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -418,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -461,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -477,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -586,7 +621,6 @@ libgstoss4_la_LIBADD = \
 	$(GST_LIBS)
 
 libgstoss4_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) 
-libgstoss4_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
 	oss4-audio.h          \
 	oss4-property-probe.h \
@@ -702,32 +736,32 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstoss4_la-oss4-audio.lo: oss4-audio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -MT libgstoss4_la-oss4-audio.lo -MD -MP -MF $(DEPDIR)/libgstoss4_la-oss4-audio.Tpo -c -o libgstoss4_la-oss4-audio.lo `test -f 'oss4-audio.c' || echo '$(srcdir)/'`oss4-audio.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -MT libgstoss4_la-oss4-audio.lo -MD -MP -MF $(DEPDIR)/libgstoss4_la-oss4-audio.Tpo -c -o libgstoss4_la-oss4-audio.lo `test -f 'oss4-audio.c' || echo '$(srcdir)/'`oss4-audio.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstoss4_la-oss4-audio.Tpo $(DEPDIR)/libgstoss4_la-oss4-audio.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='oss4-audio.c' object='libgstoss4_la-oss4-audio.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 $(libgstoss4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -c -o libgstoss4_la-oss4-audio.lo `test -f 'oss4-audio.c' || echo '$(srcdir)/'`oss4-audio.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -c -o libgstoss4_la-oss4-audio.lo `test -f 'oss4-audio.c' || echo '$(srcdir)/'`oss4-audio.c
 
 libgstoss4_la-oss4-property-probe.lo: oss4-property-probe.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -MT libgstoss4_la-oss4-property-probe.lo -MD -MP -MF $(DEPDIR)/libgstoss4_la-oss4-property-probe.Tpo -c -o libgstoss4_la-oss4-property-probe.lo `test -f 'oss4-property-probe.c' || echo '$(srcdir)/'`oss4-property-probe.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -MT libgstoss4_la-oss4-property-probe.lo -MD -MP -MF $(DEPDIR)/libgstoss4_la-oss4-property-probe.Tpo -c -o libgstoss4_la-oss4-property-probe.lo `test -f 'oss4-property-probe.c' || echo '$(srcdir)/'`oss4-property-probe.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstoss4_la-oss4-property-probe.Tpo $(DEPDIR)/libgstoss4_la-oss4-property-probe.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='oss4-property-probe.c' object='libgstoss4_la-oss4-property-probe.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 $(libgstoss4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -c -o libgstoss4_la-oss4-property-probe.lo `test -f 'oss4-property-probe.c' || echo '$(srcdir)/'`oss4-property-probe.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -c -o libgstoss4_la-oss4-property-probe.lo `test -f 'oss4-property-probe.c' || echo '$(srcdir)/'`oss4-property-probe.c
 
 libgstoss4_la-oss4-sink.lo: oss4-sink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -MT libgstoss4_la-oss4-sink.lo -MD -MP -MF $(DEPDIR)/libgstoss4_la-oss4-sink.Tpo -c -o libgstoss4_la-oss4-sink.lo `test -f 'oss4-sink.c' || echo '$(srcdir)/'`oss4-sink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -MT libgstoss4_la-oss4-sink.lo -MD -MP -MF $(DEPDIR)/libgstoss4_la-oss4-sink.Tpo -c -o libgstoss4_la-oss4-sink.lo `test -f 'oss4-sink.c' || echo '$(srcdir)/'`oss4-sink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstoss4_la-oss4-sink.Tpo $(DEPDIR)/libgstoss4_la-oss4-sink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='oss4-sink.c' object='libgstoss4_la-oss4-sink.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 $(libgstoss4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -c -o libgstoss4_la-oss4-sink.lo `test -f 'oss4-sink.c' || echo '$(srcdir)/'`oss4-sink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -c -o libgstoss4_la-oss4-sink.lo `test -f 'oss4-sink.c' || echo '$(srcdir)/'`oss4-sink.c
 
 libgstoss4_la-oss4-source.lo: oss4-source.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -MT libgstoss4_la-oss4-source.lo -MD -MP -MF $(DEPDIR)/libgstoss4_la-oss4-source.Tpo -c -o libgstoss4_la-oss4-source.lo `test -f 'oss4-source.c' || echo '$(srcdir)/'`oss4-source.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -MT libgstoss4_la-oss4-source.lo -MD -MP -MF $(DEPDIR)/libgstoss4_la-oss4-source.Tpo -c -o libgstoss4_la-oss4-source.lo `test -f 'oss4-source.c' || echo '$(srcdir)/'`oss4-source.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstoss4_la-oss4-source.Tpo $(DEPDIR)/libgstoss4_la-oss4-source.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='oss4-source.c' object='libgstoss4_la-oss4-source.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 $(libgstoss4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -c -o libgstoss4_la-oss4-source.lo `test -f 'oss4-source.c' || echo '$(srcdir)/'`oss4-source.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4_la_CFLAGS) $(CFLAGS) -c -o libgstoss4_la-oss4-source.lo `test -f 'oss4-source.c' || echo '$(srcdir)/'`oss4-source.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/sys/oss4/meson.build b/sys/oss4/meson.build
new file mode 100644
index 000000000..491266e89
--- /dev/null
+++ b/sys/oss4/meson.build
@@ -0,0 +1,23 @@
+have_oss4 = true
+message('Checking headers needed for Open Sound System 4 plugin...')
+foreach hdr : ['fcntl.h', 'sys/ioctl.h', 'sys/stat.h', 'sys/types.h']
+  if have_oss4
+    if not cc.has_header(hdr)
+      have_oss4 = false
+    endif
+  endif
+endforeach
+
+if have_oss4
+  message('Required headers found, building Open Sound System 4 plugin.')
+
+  library('gstoss4',
+    'oss4-audio.c', 'oss4-property-probe.c', 'oss4-sink.c', 'oss4-source.c',
+    c_args : gst_plugins_good_args,
+    include_directories : [configinc, libsinc],
+    dependencies : [gstaudio_dep, gstbase_dep],
+    install : true,
+    install_dir : plugins_install_dir)
+else
+  message('Not building Open Sound System 4 plugin, required headers not found.')
+endif
diff --git a/sys/osxaudio/Makefile.am b/sys/osxaudio/Makefile.am
index f5f1d9c8e..a854a382d 100644
--- a/sys/osxaudio/Makefile.am
+++ b/sys/osxaudio/Makefile.am
@@ -17,7 +17,6 @@ libgstosxaudio_la_LIBADD = 			  \
     $(GST_LIBS)
 
 libgstosxaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework,CoreAudio  -Wl,-framework,AudioToolbox
-libgstosxaudio_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) --tag=CC
 
 noinst_HEADERS = gstosxaudiosink.h	  \
                  gstosxaudiodeviceprovider.h \
diff --git a/sys/osxaudio/Makefile.in b/sys/osxaudio/Makefile.in
index 8de07f9bd..85db01184 100644
--- a/sys/osxaudio/Makefile.in
+++ b/sys/osxaudio/Makefile.in
@@ -187,8 +187,8 @@ 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) \
+	$(AM_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@)
@@ -306,6 +306,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -329,6 +330,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -344,6 +347,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -366,10 +371,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -384,6 +396,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -401,6 +414,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -413,6 +428,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -431,6 +448,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -474,9 +494,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -490,11 +521,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -602,7 +638,6 @@ libgstosxaudio_la_LIBADD = \
 libgstosxaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) \
 	-Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox \
 	$(am__append_2)
-libgstosxaudio_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) --tag=CC
 noinst_HEADERS = gstosxaudiosink.h	  \
                  gstosxaudiodeviceprovider.h \
                  gstosxaudioelement.h \
@@ -725,60 +760,60 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstosxaudio_la-gstosxaudioringbuffer.lo: gstosxaudioringbuffer.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudioringbuffer.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudioringbuffer.Tpo -c -o libgstosxaudio_la-gstosxaudioringbuffer.lo `test -f 'gstosxaudioringbuffer.c' || echo '$(srcdir)/'`gstosxaudioringbuffer.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudioringbuffer.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudioringbuffer.Tpo -c -o libgstosxaudio_la-gstosxaudioringbuffer.lo `test -f 'gstosxaudioringbuffer.c' || echo '$(srcdir)/'`gstosxaudioringbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxaudioringbuffer.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxaudioringbuffer.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstosxaudioringbuffer.c' object='libgstosxaudio_la-gstosxaudioringbuffer.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 $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudioringbuffer.lo `test -f 'gstosxaudioringbuffer.c' || echo '$(srcdir)/'`gstosxaudioringbuffer.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudioringbuffer.lo `test -f 'gstosxaudioringbuffer.c' || echo '$(srcdir)/'`gstosxaudioringbuffer.c
 
 libgstosxaudio_la-gstosxaudioelement.lo: gstosxaudioelement.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudioelement.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudioelement.Tpo -c -o libgstosxaudio_la-gstosxaudioelement.lo `test -f 'gstosxaudioelement.c' || echo '$(srcdir)/'`gstosxaudioelement.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudioelement.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudioelement.Tpo -c -o libgstosxaudio_la-gstosxaudioelement.lo `test -f 'gstosxaudioelement.c' || echo '$(srcdir)/'`gstosxaudioelement.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxaudioelement.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxaudioelement.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstosxaudioelement.c' object='libgstosxaudio_la-gstosxaudioelement.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 $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudioelement.lo `test -f 'gstosxaudioelement.c' || echo '$(srcdir)/'`gstosxaudioelement.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudioelement.lo `test -f 'gstosxaudioelement.c' || echo '$(srcdir)/'`gstosxaudioelement.c
 
 libgstosxaudio_la-gstosxaudiosink.lo: gstosxaudiosink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudiosink.Tpo -c -o libgstosxaudio_la-gstosxaudiosink.lo `test -f 'gstosxaudiosink.c' || echo '$(srcdir)/'`gstosxaudiosink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudiosink.Tpo -c -o libgstosxaudio_la-gstosxaudiosink.lo `test -f 'gstosxaudiosink.c' || echo '$(srcdir)/'`gstosxaudiosink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxaudiosink.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxaudiosink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstosxaudiosink.c' object='libgstosxaudio_la-gstosxaudiosink.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 $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudiosink.lo `test -f 'gstosxaudiosink.c' || echo '$(srcdir)/'`gstosxaudiosink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudiosink.lo `test -f 'gstosxaudiosink.c' || echo '$(srcdir)/'`gstosxaudiosink.c
 
 libgstosxaudio_la-gstosxaudiosrc.lo: gstosxaudiosrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudiosrc.Tpo -c -o libgstosxaudio_la-gstosxaudiosrc.lo `test -f 'gstosxaudiosrc.c' || echo '$(srcdir)/'`gstosxaudiosrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudiosrc.Tpo -c -o libgstosxaudio_la-gstosxaudiosrc.lo `test -f 'gstosxaudiosrc.c' || echo '$(srcdir)/'`gstosxaudiosrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxaudiosrc.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxaudiosrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstosxaudiosrc.c' object='libgstosxaudio_la-gstosxaudiosrc.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 $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudiosrc.lo `test -f 'gstosxaudiosrc.c' || echo '$(srcdir)/'`gstosxaudiosrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudiosrc.lo `test -f 'gstosxaudiosrc.c' || echo '$(srcdir)/'`gstosxaudiosrc.c
 
 libgstosxaudio_la-gstosxcoreaudiocommon.lo: gstosxcoreaudiocommon.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxcoreaudiocommon.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxcoreaudiocommon.Tpo -c -o libgstosxaudio_la-gstosxcoreaudiocommon.lo `test -f 'gstosxcoreaudiocommon.c' || echo '$(srcdir)/'`gstosxcoreaudiocommon.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxcoreaudiocommon.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxcoreaudiocommon.Tpo -c -o libgstosxaudio_la-gstosxcoreaudiocommon.lo `test -f 'gstosxcoreaudiocommon.c' || echo '$(srcdir)/'`gstosxcoreaudiocommon.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxcoreaudiocommon.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxcoreaudiocommon.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstosxcoreaudiocommon.c' object='libgstosxaudio_la-gstosxcoreaudiocommon.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 $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxcoreaudiocommon.lo `test -f 'gstosxcoreaudiocommon.c' || echo '$(srcdir)/'`gstosxcoreaudiocommon.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxcoreaudiocommon.lo `test -f 'gstosxcoreaudiocommon.c' || echo '$(srcdir)/'`gstosxcoreaudiocommon.c
 
 libgstosxaudio_la-gstosxcoreaudio.lo: gstosxcoreaudio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxcoreaudio.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxcoreaudio.Tpo -c -o libgstosxaudio_la-gstosxcoreaudio.lo `test -f 'gstosxcoreaudio.c' || echo '$(srcdir)/'`gstosxcoreaudio.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxcoreaudio.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxcoreaudio.Tpo -c -o libgstosxaudio_la-gstosxcoreaudio.lo `test -f 'gstosxcoreaudio.c' || echo '$(srcdir)/'`gstosxcoreaudio.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxcoreaudio.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxcoreaudio.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstosxcoreaudio.c' object='libgstosxaudio_la-gstosxcoreaudio.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 $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxcoreaudio.lo `test -f 'gstosxcoreaudio.c' || echo '$(srcdir)/'`gstosxcoreaudio.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxcoreaudio.lo `test -f 'gstosxcoreaudio.c' || echo '$(srcdir)/'`gstosxcoreaudio.c
 
 libgstosxaudio_la-gstosxaudio.lo: gstosxaudio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudio.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudio.Tpo -c -o libgstosxaudio_la-gstosxaudio.lo `test -f 'gstosxaudio.c' || echo '$(srcdir)/'`gstosxaudio.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudio.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudio.Tpo -c -o libgstosxaudio_la-gstosxaudio.lo `test -f 'gstosxaudio.c' || echo '$(srcdir)/'`gstosxaudio.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxaudio.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxaudio.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstosxaudio.c' object='libgstosxaudio_la-gstosxaudio.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 $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudio.lo `test -f 'gstosxaudio.c' || echo '$(srcdir)/'`gstosxaudio.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudio.lo `test -f 'gstosxaudio.c' || echo '$(srcdir)/'`gstosxaudio.c
 
 libgstosxaudio_la-gstosxaudiodeviceprovider.lo: gstosxaudiodeviceprovider.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudiodeviceprovider.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudiodeviceprovider.Tpo -c -o libgstosxaudio_la-gstosxaudiodeviceprovider.lo `test -f 'gstosxaudiodeviceprovider.c' || echo '$(srcdir)/'`gstosxaudiodeviceprovider.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudiodeviceprovider.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudiodeviceprovider.Tpo -c -o libgstosxaudio_la-gstosxaudiodeviceprovider.lo `test -f 'gstosxaudiodeviceprovider.c' || echo '$(srcdir)/'`gstosxaudiodeviceprovider.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxaudiodeviceprovider.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxaudiodeviceprovider.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstosxaudiodeviceprovider.c' object='libgstosxaudio_la-gstosxaudiodeviceprovider.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 $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudiodeviceprovider.lo `test -f 'gstosxaudiodeviceprovider.c' || echo '$(srcdir)/'`gstosxaudiodeviceprovider.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudiodeviceprovider.lo `test -f 'gstosxaudiodeviceprovider.c' || echo '$(srcdir)/'`gstosxaudiodeviceprovider.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/sys/osxvideo/Makefile.am b/sys/osxvideo/Makefile.am
index 0d92a87f5..a9a3d765b 100644
--- a/sys/osxvideo/Makefile.am
+++ b/sys/osxvideo/Makefile.am
@@ -1,18 +1,17 @@
 
-plugin_LTLIBRARIES = libgstosxvideosink.la
+plugin_LTLIBRARIES = libgstosxvideo.la
 
-libgstosxvideosink_la_SOURCES = osxvideosink.m cocoawindow.m 
-libgstosxvideosink_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
+libgstosxvideo_la_SOURCES = osxvideosink.m cocoawindow.m 
+libgstosxvideo_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
 	$(GST_PLUGINS_BASE_CFLAGS)
-libgstosxvideosink_la_OBJCFLAGS = $(GST_OBJCFLAGS) $(GST_BASE_CFLAGS) \
+libgstosxvideo_la_OBJCFLAGS = $(GST_OBJCFLAGS) $(GST_BASE_CFLAGS) \
 	$(GST_PLUGINS_BASE_CFLAGS)
-libgstosxvideosink_la_LIBADD =  \
+libgstosxvideo_la_LIBADD =  \
 	$(GST_LIBS) \
 	$(GST_BASE_LIBS) \
 	$(GST_PLUGINS_BASE_LIBS) \
 	-lgstvideo-$(GST_API_VERSION)
 
-libgstosxvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,OpenGL
-libgstosxvideosink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) --tag=CC
+libgstosxvideo_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,OpenGL
 
 noinst_HEADERS = osxvideosink.h cocoawindow.h
diff --git a/sys/osxvideo/Makefile.in b/sys/osxvideo/Makefile.in
index 7b08dd800..5622ab709 100644
--- a/sys/osxvideo/Makefile.in
+++ b/sys/osxvideo/Makefile.in
@@ -163,20 +163,19 @@ am__uninstall_files_from_dir = { \
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-libgstosxvideosink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+libgstosxvideo_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am_libgstosxvideosink_la_OBJECTS =  \
-	libgstosxvideosink_la-osxvideosink.lo \
-	libgstosxvideosink_la-cocoawindow.lo
-libgstosxvideosink_la_OBJECTS = $(am_libgstosxvideosink_la_OBJECTS)
+am_libgstosxvideo_la_OBJECTS = libgstosxvideo_la-osxvideosink.lo \
+	libgstosxvideo_la-cocoawindow.lo
+libgstosxvideo_la_OBJECTS = $(am_libgstosxvideo_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 $@
+libgstosxvideo_la_LINK = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(OBJCLD) \
+	$(libgstosxvideo_la_OBJCFLAGS) $(OBJCFLAGS) \
+	$(libgstosxvideo_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
@@ -211,8 +210,8 @@ 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_OBJCLD_1 = 
-SOURCES = $(libgstosxvideosink_la_SOURCES)
-DIST_SOURCES = $(libgstosxvideosink_la_SOURCES)
+SOURCES = $(libgstosxvideo_la_SOURCES)
+DIST_SOURCES = $(libgstosxvideo_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -293,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -316,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -331,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -353,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -371,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -388,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -400,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -418,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -461,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -477,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -572,22 +607,21 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-plugin_LTLIBRARIES = libgstosxvideosink.la
-libgstosxvideosink_la_SOURCES = osxvideosink.m cocoawindow.m 
-libgstosxvideosink_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
+plugin_LTLIBRARIES = libgstosxvideo.la
+libgstosxvideo_la_SOURCES = osxvideosink.m cocoawindow.m 
+libgstosxvideo_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
 	$(GST_PLUGINS_BASE_CFLAGS)
 
-libgstosxvideosink_la_OBJCFLAGS = $(GST_OBJCFLAGS) $(GST_BASE_CFLAGS) \
+libgstosxvideo_la_OBJCFLAGS = $(GST_OBJCFLAGS) $(GST_BASE_CFLAGS) \
 	$(GST_PLUGINS_BASE_CFLAGS)
 
-libgstosxvideosink_la_LIBADD = \
+libgstosxvideo_la_LIBADD = \
 	$(GST_LIBS) \
 	$(GST_BASE_LIBS) \
 	$(GST_PLUGINS_BASE_LIBS) \
 	-lgstvideo-$(GST_API_VERSION)
 
-libgstosxvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,OpenGL
-libgstosxvideosink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) --tag=CC
+libgstosxvideo_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,OpenGL
 noinst_HEADERS = osxvideosink.h cocoawindow.h
 all: all-am
 
@@ -658,8 +692,8 @@ clean-pluginLTLIBRARIES:
 	  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)
+libgstosxvideo.la: $(libgstosxvideo_la_OBJECTS) $(libgstosxvideo_la_DEPENDENCIES) $(EXTRA_libgstosxvideo_la_DEPENDENCIES) 
+	$(AM_V_OBJCLD)$(libgstosxvideo_la_LINK) -rpath $(plugindir) $(libgstosxvideo_la_OBJECTS) $(libgstosxvideo_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -667,8 +701,8 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstosxvideosink_la-cocoawindow.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstosxvideosink_la-osxvideosink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstosxvideo_la-cocoawindow.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstosxvideo_la-osxvideosink.Plo@am__quote@
 
 .m.o:
 @am__fastdepOBJC_TRUE@	$(AM_V_OBJC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -694,19 +728,19 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepOBJC_FALSE@	DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepOBJC_FALSE@	$(AM_V_OBJC@am__nodep@)$(LTOBJCCOMPILE) -c -o $@ $<
 
-libgstosxvideosink_la-osxvideosink.lo: osxvideosink.m
-@am__fastdepOBJC_TRUE@	$(AM_V_OBJC)$(LIBTOOL) $(AM_V_lt) $(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideosink_la_OBJCFLAGS) $(OBJCFLAGS) -MT libgstosxvideosink_la-osxvideosink.lo -MD -MP -MF $(DEPDIR)/libgstosxvideosink_la-osxvideosink.Tpo -c -o libgstosxvideosink_la-osxvideosink.lo `test -f 'osxvideosink.m' || echo '$(srcdir)/'`osxvideosink.m
-@am__fastdepOBJC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxvideosink_la-osxvideosink.Tpo $(DEPDIR)/libgstosxvideosink_la-osxvideosink.Plo
-@AMDEP_TRUE@@am__fastdepOBJC_FALSE@	$(AM_V_OBJC)source='osxvideosink.m' object='libgstosxvideosink_la-osxvideosink.lo' libtool=yes @AMDEPBACKSLASH@
+libgstosxvideo_la-osxvideosink.lo: osxvideosink.m
+@am__fastdepOBJC_TRUE@	$(AM_V_OBJC)$(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideo_la_OBJCFLAGS) $(OBJCFLAGS) -MT libgstosxvideo_la-osxvideosink.lo -MD -MP -MF $(DEPDIR)/libgstosxvideo_la-osxvideosink.Tpo -c -o libgstosxvideo_la-osxvideosink.lo `test -f 'osxvideosink.m' || echo '$(srcdir)/'`osxvideosink.m
+@am__fastdepOBJC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxvideo_la-osxvideosink.Tpo $(DEPDIR)/libgstosxvideo_la-osxvideosink.Plo
+@AMDEP_TRUE@@am__fastdepOBJC_FALSE@	$(AM_V_OBJC)source='osxvideosink.m' object='libgstosxvideo_la-osxvideosink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepOBJC_FALSE@	DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepOBJC_FALSE@	$(AM_V_OBJC@am__nodep@)$(LIBTOOL) $(AM_V_lt) $(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideosink_la_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstosxvideosink_la-osxvideosink.lo `test -f 'osxvideosink.m' || echo '$(srcdir)/'`osxvideosink.m
+@am__fastdepOBJC_FALSE@	$(AM_V_OBJC@am__nodep@)$(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideo_la_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstosxvideo_la-osxvideosink.lo `test -f 'osxvideosink.m' || echo '$(srcdir)/'`osxvideosink.m
 
-libgstosxvideosink_la-cocoawindow.lo: cocoawindow.m
-@am__fastdepOBJC_TRUE@	$(AM_V_OBJC)$(LIBTOOL) $(AM_V_lt) $(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideosink_la_OBJCFLAGS) $(OBJCFLAGS) -MT libgstosxvideosink_la-cocoawindow.lo -MD -MP -MF $(DEPDIR)/libgstosxvideosink_la-cocoawindow.Tpo -c -o libgstosxvideosink_la-cocoawindow.lo `test -f 'cocoawindow.m' || echo '$(srcdir)/'`cocoawindow.m
-@am__fastdepOBJC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxvideosink_la-cocoawindow.Tpo $(DEPDIR)/libgstosxvideosink_la-cocoawindow.Plo
-@AMDEP_TRUE@@am__fastdepOBJC_FALSE@	$(AM_V_OBJC)source='cocoawindow.m' object='libgstosxvideosink_la-cocoawindow.lo' libtool=yes @AMDEPBACKSLASH@
+libgstosxvideo_la-cocoawindow.lo: cocoawindow.m
+@am__fastdepOBJC_TRUE@	$(AM_V_OBJC)$(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideo_la_OBJCFLAGS) $(OBJCFLAGS) -MT libgstosxvideo_la-cocoawindow.lo -MD -MP -MF $(DEPDIR)/libgstosxvideo_la-cocoawindow.Tpo -c -o libgstosxvideo_la-cocoawindow.lo `test -f 'cocoawindow.m' || echo '$(srcdir)/'`cocoawindow.m
+@am__fastdepOBJC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxvideo_la-cocoawindow.Tpo $(DEPDIR)/libgstosxvideo_la-cocoawindow.Plo
+@AMDEP_TRUE@@am__fastdepOBJC_FALSE@	$(AM_V_OBJC)source='cocoawindow.m' object='libgstosxvideo_la-cocoawindow.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepOBJC_FALSE@	DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepOBJC_FALSE@	$(AM_V_OBJC@am__nodep@)$(LIBTOOL) $(AM_V_lt) $(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideosink_la_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstosxvideosink_la-cocoawindow.lo `test -f 'cocoawindow.m' || echo '$(srcdir)/'`cocoawindow.m
+@am__fastdepOBJC_FALSE@	$(AM_V_OBJC@am__nodep@)$(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxvideo_la_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstosxvideo_la-cocoawindow.lo `test -f 'cocoawindow.m' || echo '$(srcdir)/'`cocoawindow.m
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/sys/osxvideo/cocoawindow.m b/sys/osxvideo/cocoawindow.m
index 71e1ca050..dab04256b 100644
--- a/sys/osxvideo/cocoawindow.m
+++ b/sys/osxvideo/cocoawindow.m
@@ -41,6 +41,14 @@
 /* Debugging category */
 #include <gst/gstinfo.h>
 
+#if MAC_OS_X_VERSION_MAX_ALLOWED < 101200
+#define NSEventTypeMouseMoved                NSMouseMoved
+#define NSEventTypeLeftMouseDown             NSLeftMouseDown
+#define NSEventTypeLeftMouseUp               NSLeftMouseUp
+#define NSEventTypeRightMouseDown            NSRightMouseDown
+#define NSEventTypeRightMouseUp              NSRightMouseUp
+#endif
+
 static
 const gchar* gst_keycode_to_keyname(gint16 keycode)
 {
@@ -736,15 +744,15 @@ const gchar* gst_keycode_to_keyname(gint16 keycode)
     return;
 
   switch ([event type]) {
-    case NSMouseMoved:
+    case NSEventTypeMouseMoved:
       button = 0;
       break;
-    case NSLeftMouseDown:
-    case NSLeftMouseUp:
+    case NSEventTypeLeftMouseDown:
+    case NSEventTypeLeftMouseUp:
       button = 1;
       break;
-    case NSRightMouseDown:
-    case NSRightMouseUp:
+    case NSEventTypeRightMouseDown:
+    case NSEventTypeRightMouseUp:
       button = 2;
       break;
     default:
diff --git a/sys/osxvideo/osxvideosink.m b/sys/osxvideo/osxvideosink.m
index 152c6e8e1..a140d518d 100644
--- a/sys/osxvideo/osxvideosink.m
+++ b/sys/osxvideo/osxvideosink.m
@@ -82,6 +82,15 @@ static GCond _run_loop_cond;
 static GstOSXVideoSinkClass *sink_class = NULL;
 static GstVideoSinkClass *parent_class = NULL;
 
+#if MAC_OS_X_VERSION_MAX_ALLOWED < 101200
+#define NSEventMaskAny                       NSAnyEventMask
+#define NSWindowStyleMaskTitled              NSTitledWindowMask
+#define NSWindowStyleMaskClosable            NSClosableWindowMask
+#define NSWindowStyleMaskResizable           NSResizableWindowMask
+#define NSWindowStyleMaskTexturedBackground  NSTexturedBackgroundWindowMask
+#define NSWindowStyleMaskMiniaturizable      NSMiniaturizableWindowMask
+#endif
+
 /* Helper to trigger calls from the main thread */
 static void
 gst_osx_video_sink_call_from_main_thread(GstOSXVideoSink *osxvideosink,
@@ -114,7 +123,7 @@ run_ns_app_loop (void) {
   pollTime = [NSDate distantFuture];
 
   do {
-      event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:pollTime
+      event = [NSApp nextEventMatchingMask:NSEventMaskAny untilDate:pollTime
           inMode:NSDefaultRunLoopMode dequeue:YES];
       [NSApp sendEvent:event];
     }
@@ -776,11 +785,11 @@ gst_osx_video_sink_get_type (void)
 
   osxwindow->internal = TRUE;
 
-  mask =  NSTitledWindowMask             |
-          NSClosableWindowMask           |
-          NSResizableWindowMask          |
-          NSTexturedBackgroundWindowMask |
-          NSMiniaturizableWindowMask;
+  mask =  NSWindowStyleMaskTitled             |
+          NSWindowStyleMaskClosable           |
+          NSWindowStyleMaskResizable          |
+          NSWindowStyleMaskTexturedBackground |
+          NSWindowStyleMaskMiniaturizable;
 
   rect.origin.x = 100.0;
   rect.origin.y = 100.0;
diff --git a/sys/sunaudio/Makefile.am b/sys/sunaudio/Makefile.am
deleted file mode 100644
index 86b62da83..000000000
--- a/sys/sunaudio/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-plugin_LTLIBRARIES = libgstsunaudio.la
-
-libgstsunaudio_la_SOURCES = gstsunaudio.c \
-                            gstsunaudiosink.c \
-                            gstsunaudiomixerctrl.c \
-                            gstsunaudiomixer.c \
-                            gstsunaudiomixertrack.c \
-                            gstsunaudiomixeroptions.c \
-                            gstsunaudiosrc.c
-
-libgstsunaudio_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-libgstsunaudio_la_LIBADD = \
-        -lgstinterfaces-@GST_API_VERSION@ \
-        -lgstaudio-@GST_API_VERSION@ \
-        $(GST_PLUGINS_BASE_LIBS) \
-        $(GST_LIBS)
-libgstsunaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstsunaudio_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
-
-noinst_HEADERS = gstsunaudiosink.h \
-                 gstsunaudiomixer.h \
-                 gstsunaudiomixerctrl.h \
-                 gstsunaudiomixertrack.h \
-                 gstsunaudiomixeroptions.h \
-                 gstsunaudiosrc.h
-
diff --git a/sys/sunaudio/gstsunaudiomixer.c b/sys/sunaudio/gstsunaudiomixer.c
deleted file mode 100644
index 0a431bf19..000000000
--- a/sys/sunaudio/gstsunaudiomixer.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * GStreamer - SunAudio mixer
- * Copyright (C) 2005,2006 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.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-sunaudiomixer
- *
- * sunaudiomixer is an mixer that controls the sound input and output
- * levels with the Sun Audio interface available in Solaris.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "gstsunaudiomixer.h"
-
-GST_BOILERPLATE_WITH_INTERFACE (GstSunAudioMixer, gst_sunaudiomixer,
-    GstElement, GST_TYPE_ELEMENT, GstMixer, GST_TYPE_MIXER, gst_sunaudiomixer);
-
-GST_IMPLEMENT_SUNAUDIO_MIXER_CTRL_METHODS (GstSunAudioMixer, gst_sunaudiomixer);
-
-static GstStateChangeReturn gst_sunaudiomixer_change_state (GstElement *
-    element, GstStateChange transition);
-
-static void
-gst_sunaudiomixer_base_init (gpointer klass)
-{
-  gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
-      "Sun Audio Mixer", "Generic/Audio",
-      "Control sound input and output levels with Sun Audio",
-      "Brian Cameron <brian.cameron@sun.com>");
-}
-
-static void
-gst_sunaudiomixer_class_init (GstSunAudioMixerClass * klass)
-{
-  GstElementClass *element_class;
-
-  element_class = (GstElementClass *) klass;
-
-  element_class->change_state = gst_sunaudiomixer_change_state;
-}
-
-static void
-gst_sunaudiomixer_init (GstSunAudioMixer * this,
-    GstSunAudioMixerClass * g_class)
-{
-  this->mixer = NULL;
-}
-
-static GstStateChangeReturn
-gst_sunaudiomixer_change_state (GstElement * element, GstStateChange transition)
-{
-  GstSunAudioMixer *this = GST_SUNAUDIO_MIXER (element);
-
-  switch (transition) {
-    case GST_STATE_CHANGE_NULL_TO_READY:
-      if (!this->mixer) {
-        const char *audiodev;
-
-        audiodev = g_getenv ("AUDIODEV");
-        if (audiodev == NULL) {
-          this->mixer = gst_sunaudiomixer_ctrl_new ("/dev/audioctl");
-        } else {
-          gchar *device = g_strdup_printf ("%sctl", audiodev);
-
-          this->mixer = gst_sunaudiomixer_ctrl_new (device);
-          g_free (device);
-        }
-      }
-      break;
-    case GST_STATE_CHANGE_READY_TO_NULL:
-      if (this->mixer) {
-        gst_sunaudiomixer_ctrl_free (this->mixer);
-        this->mixer = NULL;
-      }
-      break;
-    default:
-      break;
-  }
-
-  if (GST_ELEMENT_CLASS (parent_class)->change_state)
-    return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
-
-  return GST_STATE_CHANGE_SUCCESS;
-}
diff --git a/sys/sunaudio/gstsunaudiomixer.h b/sys/sunaudio/gstsunaudiomixer.h
deleted file mode 100644
index 03292ed96..000000000
--- a/sys/sunaudio/gstsunaudiomixer.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * GStreamer - SunAudio mixer
- * Copyright (C) 2005,2006 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.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_SUNAUDIO_MIXER_H__
-#define __GST_SUNAUDIO_MIXER_H__
-
-#include "gstsunaudiomixerctrl.h"
-
-G_BEGIN_DECLS
-
-#define GST_SUNAUDIO_MIXER(obj)		   (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SUNAUDIO_MIXER,GstSunAudioMixer))
-#define GST_SUNAUDIO_MIXER_CLASS(klass)	   (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SUNAUDIO_MIXER,GstSunAudioMixerClass))
-#define GST_IS_SUNAUDIO_MIXER(obj)	   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SUNAUDIO_MIXER))
-#define GST_IS_SUNAUDIO_MIXER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SUNAUDIO_MIXER))
-#define GST_TYPE_SUNAUDIO_MIXER		   (gst_sunaudiomixer_get_type())
-
-typedef struct _GstSunAudioMixer GstSunAudioMixer;
-typedef struct _GstSunAudioMixerClass GstSunAudioMixerClass;
-
-struct _GstSunAudioMixer {
-  GstElement		parent;
-
-  GstSunAudioMixerCtrl	*mixer;
-};
-
-struct _GstSunAudioMixerClass {
-  GstElementClass	parent;
-};
-
-GType		gst_sunaudiomixer_get_type		(void);
-
-G_END_DECLS
-
-#endif /* __GST_SUNAUDIO_MIXER_H__ */
diff --git a/sys/sunaudio/gstsunaudiomixerctrl.c b/sys/sunaudio/gstsunaudiomixerctrl.c
deleted file mode 100644
index 32fc4e2d9..000000000
--- a/sys/sunaudio/gstsunaudiomixerctrl.c
+++ /dev/null
@@ -1,585 +0,0 @@
-/*
- * GStreamer - SunAudio mixer interface element
- * Copyright (C) 2005,2006,2008,2009 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.com>
- * Copyright (C) 2008 Sun Microsystems, Inc.,
- *               Jan Schmidt <jan.schmidt@sun.com> 
- * Copyright (C) 2009 Sun Microsystems, Inc.,
- *               Garrett D'Amore <garrett.damore@sun.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 <stdio.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/ioctl.h>
-#include <sys/audio.h>
-#include <sys/mixer.h>
-
-#include <gst/gst-i18n-plugin.h>
-
-#include "gstsunaudiomixerctrl.h"
-#include "gstsunaudiomixertrack.h"
-#include "gstsunaudiomixeroptions.h"
-
-GST_DEBUG_CATEGORY_EXTERN (sunaudio_debug);
-#define GST_CAT_DEFAULT sunaudio_debug
-
-static gboolean
-gst_sunaudiomixer_ctrl_open (GstSunAudioMixerCtrl * mixer)
-{
-  int fd;
-
-  /* First try to open non-blocking */
-  fd = open (mixer->device, O_RDWR | O_NONBLOCK);
-
-  if (fd >= 0) {
-    close (fd);
-    fd = open (mixer->device, O_WRONLY);
-  }
-
-  if (fd == -1) {
-    GST_DEBUG_OBJECT (mixer,
-        "Failed to open mixer device %s, mixing disabled: %s", mixer->device,
-        strerror (errno));
-
-    return FALSE;
-  }
-  mixer->mixer_fd = fd;
-
-  /* Try to set the multiple open flag if we can, but ignore errors */
-  ioctl (mixer->mixer_fd, AUDIO_MIXER_MULTIPLE_OPEN);
-
-  GST_DEBUG_OBJECT (mixer, "Opened mixer device %s", mixer->device);
-
-  return TRUE;
-}
-
-void
-gst_sunaudiomixer_ctrl_build_list (GstSunAudioMixerCtrl * mixer)
-{
-  GstMixerTrack *track;
-  GstMixerOptions *options;
-
-  struct audio_info audioinfo;
-
-  /*
-   * Do not continue appending the same 3 static tracks onto the list
-   */
-  if (mixer->tracklist == NULL) {
-    g_return_if_fail (mixer->mixer_fd != -1);
-
-    /* query available ports */
-    if (ioctl (mixer->mixer_fd, AUDIO_GETINFO, &audioinfo) < 0) {
-      g_warning ("Error getting audio device volume");
-      return;
-    }
-
-    /* Output & should be MASTER when it's the only one. */
-    track = gst_sunaudiomixer_track_new (GST_SUNAUDIO_TRACK_OUTPUT);
-    mixer->tracklist = g_list_append (mixer->tracklist, track);
-
-    /* Input */
-    track = gst_sunaudiomixer_track_new (GST_SUNAUDIO_TRACK_RECORD);
-    mixer->tracklist = g_list_append (mixer->tracklist, track);
-
-    /* Monitor */
-    track = gst_sunaudiomixer_track_new (GST_SUNAUDIO_TRACK_MONITOR);
-    mixer->tracklist = g_list_append (mixer->tracklist, track);
-
-    if (audioinfo.play.avail_ports & AUDIO_SPEAKER) {
-      track = gst_sunaudiomixer_track_new (GST_SUNAUDIO_TRACK_SPEAKER);
-      mixer->tracklist = g_list_append (mixer->tracklist, track);
-    }
-    if (audioinfo.play.avail_ports & AUDIO_HEADPHONE) {
-      track = gst_sunaudiomixer_track_new (GST_SUNAUDIO_TRACK_HP);
-      mixer->tracklist = g_list_append (mixer->tracklist, track);
-    }
-    if (audioinfo.play.avail_ports & AUDIO_LINE_OUT) {
-      track = gst_sunaudiomixer_track_new (GST_SUNAUDIO_TRACK_LINEOUT);
-      mixer->tracklist = g_list_append (mixer->tracklist, track);
-    }
-    if (audioinfo.play.avail_ports & AUDIO_SPDIF_OUT) {
-      track = gst_sunaudiomixer_track_new (GST_SUNAUDIO_TRACK_SPDIFOUT);
-      mixer->tracklist = g_list_append (mixer->tracklist, track);
-    }
-    if (audioinfo.play.avail_ports & AUDIO_AUX1_OUT) {
-      track = gst_sunaudiomixer_track_new (GST_SUNAUDIO_TRACK_AUX1OUT);
-      mixer->tracklist = g_list_append (mixer->tracklist, track);
-    }
-    if (audioinfo.play.avail_ports & AUDIO_AUX2_OUT) {
-      track = gst_sunaudiomixer_track_new (GST_SUNAUDIO_TRACK_AUX2OUT);
-      mixer->tracklist = g_list_append (mixer->tracklist, track);
-    }
-
-    if (audioinfo.record.avail_ports != AUDIO_NONE) {
-      options =
-          gst_sunaudiomixer_options_new (mixer, GST_SUNAUDIO_TRACK_RECSRC);
-      mixer->tracklist = g_list_append (mixer->tracklist, options);
-    }
-  }
-}
-
-GstSunAudioMixerCtrl *
-gst_sunaudiomixer_ctrl_new (const char *device)
-{
-  GstSunAudioMixerCtrl *ret = NULL;
-
-  g_return_val_if_fail (device != NULL, NULL);
-
-  ret = g_new0 (GstSunAudioMixerCtrl, 1);
-
-  ret->device = g_strdup (device);
-  ret->mixer_fd = -1;
-  ret->tracklist = NULL;
-
-  if (!gst_sunaudiomixer_ctrl_open (ret))
-    goto error;
-
-  return ret;
-
-error:
-  if (ret)
-    gst_sunaudiomixer_ctrl_free (ret);
-
-  return NULL;
-}
-
-void
-gst_sunaudiomixer_ctrl_free (GstSunAudioMixerCtrl * mixer)
-{
-  g_return_if_fail (mixer != NULL);
-
-  if (mixer->device) {
-    g_free (mixer->device);
-    mixer->device = NULL;
-  }
-
-  if (mixer->tracklist) {
-    g_list_foreach (mixer->tracklist, (GFunc) g_object_unref, NULL);
-    g_list_free (mixer->tracklist);
-    mixer->tracklist = NULL;
-  }
-
-  if (mixer->mixer_fd != -1) {
-    close (mixer->mixer_fd);
-    mixer->mixer_fd = -1;
-  }
-
-  g_free (mixer);
-}
-
-GstMixerFlags
-gst_sunaudiomixer_ctrl_get_mixer_flags (GstSunAudioMixerCtrl * mixer)
-{
-  return GST_MIXER_FLAG_HAS_WHITELIST | GST_MIXER_FLAG_GROUPING;
-}
-
-const GList *
-gst_sunaudiomixer_ctrl_list_tracks (GstSunAudioMixerCtrl * mixer)
-{
-  gst_sunaudiomixer_ctrl_build_list (mixer);
-
-  return (const GList *) mixer->tracklist;
-}
-
-void
-gst_sunaudiomixer_ctrl_get_volume (GstSunAudioMixerCtrl * mixer,
-    GstMixerTrack * track, gint * volumes)
-{
-  gint gain, balance;
-  float ratio;
-  struct audio_info audioinfo;
-  GstSunAudioMixerTrack *sunaudiotrack;
-
-  g_return_if_fail (GST_IS_SUNAUDIO_MIXER_TRACK (track));
-  sunaudiotrack = GST_SUNAUDIO_MIXER_TRACK (track);
-
-  g_return_if_fail (mixer->mixer_fd != -1);
-
-  if (ioctl (mixer->mixer_fd, AUDIO_GETINFO, &audioinfo) < 0) {
-    g_warning ("Error getting audio device volume");
-    return;
-  }
-
-  balance = AUDIO_MID_BALANCE;
-  gain = 0;
-
-  switch (sunaudiotrack->track_num) {
-    case GST_SUNAUDIO_TRACK_OUTPUT:
-      gain = (int) audioinfo.play.gain;
-      balance = audioinfo.play.balance;
-      break;
-    case GST_SUNAUDIO_TRACK_RECORD:
-      gain = (int) audioinfo.record.gain;
-      balance = audioinfo.record.balance;
-      break;
-    case GST_SUNAUDIO_TRACK_MONITOR:
-      gain = (int) audioinfo.monitor_gain;
-      balance = audioinfo.record.balance;
-      break;
-    case GST_SUNAUDIO_TRACK_SPEAKER:
-      if (audioinfo.play.port & AUDIO_SPEAKER)
-        gain = AUDIO_MAX_GAIN;
-      break;
-    case GST_SUNAUDIO_TRACK_HP:
-      if (audioinfo.play.port & AUDIO_HEADPHONE)
-        gain = AUDIO_MAX_GAIN;
-      break;
-    case GST_SUNAUDIO_TRACK_LINEOUT:
-      if (audioinfo.play.port & AUDIO_LINE_OUT)
-        gain = AUDIO_MAX_GAIN;
-      break;
-    case GST_SUNAUDIO_TRACK_SPDIFOUT:
-      if (audioinfo.play.port & AUDIO_SPDIF_OUT)
-        gain = AUDIO_MAX_GAIN;
-      break;
-    case GST_SUNAUDIO_TRACK_AUX1OUT:
-      if (audioinfo.play.port & AUDIO_AUX1_OUT)
-        gain = AUDIO_MAX_GAIN;
-      break;
-    case GST_SUNAUDIO_TRACK_AUX2OUT:
-      if (audioinfo.play.port & AUDIO_AUX2_OUT)
-        gain = AUDIO_MAX_GAIN;
-      break;
-    default:
-      break;
-  }
-
-  switch (track->num_channels) {
-    case 2:
-      if (balance == AUDIO_MID_BALANCE) {
-        volumes[0] = gain;
-        volumes[1] = gain;
-      } else if (balance < AUDIO_MID_BALANCE) {
-        volumes[0] = gain;
-        ratio = 1 - (float) (AUDIO_MID_BALANCE - balance) /
-            (float) AUDIO_MID_BALANCE;
-        volumes[1] = (int) ((float) gain * ratio + 0.5);
-      } else {
-        volumes[1] = gain;
-        ratio = 1 - (float) (balance - AUDIO_MID_BALANCE) /
-            (float) AUDIO_MID_BALANCE;
-        volumes[0] = (int) ((float) gain * ratio + 0.5);
-      }
-      break;
-    case 1:
-      volumes[0] = gain;
-      break;
-  }
-
-  /* Likewise reset MUTE */
-  if ((sunaudiotrack->track_num == GST_SUNAUDIO_TRACK_OUTPUT
-          && audioinfo.output_muted == 1)
-      || (sunaudiotrack->track_num != GST_SUNAUDIO_TRACK_OUTPUT && gain == 0)) {
-    /*
-     * If MUTE is set, then gain is always 0, so don't bother
-     * resetting our internal value.
-     */
-    track->flags |= GST_MIXER_TRACK_MUTE;
-  } else {
-    sunaudiotrack->gain = gain;
-    sunaudiotrack->balance = balance;
-    track->flags &= ~GST_MIXER_TRACK_MUTE;
-  }
-}
-
-void
-gst_sunaudiomixer_ctrl_set_volume (GstSunAudioMixerCtrl * mixer,
-    GstMixerTrack * track, gint * volumes)
-{
-  gint gain;
-  gint balance;
-  gint l_real_gain;
-  gint r_real_gain;
-  float ratio;
-  struct audio_info audioinfo;
-  GstSunAudioMixerTrack *sunaudiotrack = GST_SUNAUDIO_MIXER_TRACK (track);
-
-  l_real_gain = volumes[0];
-  r_real_gain = volumes[1];
-
-  if (l_real_gain == r_real_gain) {
-    gain = l_real_gain;
-    balance = AUDIO_MID_BALANCE;
-  } else if (l_real_gain < r_real_gain) {
-    gain = r_real_gain;
-    ratio = (float) l_real_gain / (float) r_real_gain;
-    balance =
-        AUDIO_RIGHT_BALANCE - (int) (ratio * (float) AUDIO_MID_BALANCE + 0.5);
-  } else {
-    gain = l_real_gain;
-    ratio = (float) r_real_gain / (float) l_real_gain;
-    balance =
-        AUDIO_LEFT_BALANCE + (int) (ratio * (float) AUDIO_MID_BALANCE + 0.5);
-  }
-
-  sunaudiotrack->gain = gain;
-  sunaudiotrack->balance = balance;
-
-  if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE)) {
-    if (sunaudiotrack->track_num == GST_SUNAUDIO_TRACK_OUTPUT) {
-      return;
-    } else if (gain == 0) {
-      return;
-    } else {
-      /*
-       * If the volume is set to a non-zero value for LINE_IN
-       * or MONITOR, then unset MUTE.
-       */
-      track->flags &= ~GST_MIXER_TRACK_MUTE;
-    }
-  }
-
-  /* Set the volume */
-  AUDIO_INITINFO (&audioinfo);
-
-  switch (sunaudiotrack->track_num) {
-    case GST_SUNAUDIO_TRACK_OUTPUT:
-      audioinfo.play.gain = gain;
-      audioinfo.play.balance = balance;
-      break;
-    case GST_SUNAUDIO_TRACK_RECORD:
-      audioinfo.record.gain = gain;
-      audioinfo.record.balance = balance;
-      break;
-    case GST_SUNAUDIO_TRACK_MONITOR:
-      audioinfo.monitor_gain = gain;
-      audioinfo.record.balance = balance;
-      break;
-    default:
-      break;
-  }
-
-  g_return_if_fail (mixer->mixer_fd != -1);
-
-  if (ioctl (mixer->mixer_fd, AUDIO_SETINFO, &audioinfo) < 0) {
-    g_warning ("Error setting audio device volume");
-    return;
-  }
-}
-
-void
-gst_sunaudiomixer_ctrl_set_mute (GstSunAudioMixerCtrl * mixer,
-    GstMixerTrack * track, gboolean mute)
-{
-  struct audio_info audioinfo;
-  struct audio_info oldinfo;
-  GstSunAudioMixerTrack *sunaudiotrack = GST_SUNAUDIO_MIXER_TRACK (track);
-  gint volume, balance;
-
-  AUDIO_INITINFO (&audioinfo);
-
-  if (ioctl (mixer->mixer_fd, AUDIO_GETINFO, &oldinfo) < 0) {
-    g_warning ("Error getting audio device volume");
-    return;
-  }
-
-  if (mute) {
-    volume = 0;
-    track->flags |= GST_MIXER_TRACK_MUTE;
-  } else {
-    volume = sunaudiotrack->gain;
-    track->flags &= ~GST_MIXER_TRACK_MUTE;
-  }
-
-  balance = sunaudiotrack->balance;
-
-  switch (sunaudiotrack->track_num) {
-    case GST_SUNAUDIO_TRACK_OUTPUT:
-      if (mute)
-        audioinfo.output_muted = 1;
-      else
-        audioinfo.output_muted = 0;
-
-      audioinfo.play.gain = volume;
-      audioinfo.play.balance = balance;
-      break;
-    case GST_SUNAUDIO_TRACK_RECORD:
-      audioinfo.record.gain = volume;
-      audioinfo.record.balance = balance;
-      break;
-    case GST_SUNAUDIO_TRACK_MONITOR:
-      audioinfo.monitor_gain = volume;
-      audioinfo.record.balance = balance;
-      break;
-    case GST_SUNAUDIO_TRACK_SPEAKER:
-      if (mute) {
-        audioinfo.play.port = oldinfo.play.port & ~AUDIO_SPEAKER;
-      } else {
-        audioinfo.play.port = oldinfo.play.port | AUDIO_SPEAKER;
-      }
-      break;
-    case GST_SUNAUDIO_TRACK_HP:
-      if (mute) {
-        audioinfo.play.port = oldinfo.play.port & ~AUDIO_HEADPHONE;
-      } else {
-        audioinfo.play.port = oldinfo.play.port | AUDIO_HEADPHONE;
-      }
-      break;
-    case GST_SUNAUDIO_TRACK_LINEOUT:
-      if (mute) {
-        audioinfo.play.port = oldinfo.play.port & ~AUDIO_LINE_OUT;
-      } else {
-        audioinfo.play.port = oldinfo.play.port | AUDIO_LINE_OUT;
-      }
-      break;
-    case GST_SUNAUDIO_TRACK_SPDIFOUT:
-      if (mute) {
-        audioinfo.play.port = oldinfo.play.port & ~AUDIO_SPDIF_OUT;
-      } else {
-        audioinfo.play.port = oldinfo.play.port | AUDIO_SPDIF_OUT;
-      }
-      break;
-    case GST_SUNAUDIO_TRACK_AUX1OUT:
-      if (mute) {
-        audioinfo.play.port = oldinfo.play.port & ~AUDIO_AUX1_OUT;
-      } else {
-        audioinfo.play.port = oldinfo.play.port | AUDIO_AUX1_OUT;
-      }
-      break;
-    case GST_SUNAUDIO_TRACK_AUX2OUT:
-      if (mute) {
-        audioinfo.play.port = oldinfo.play.port & ~AUDIO_AUX2_OUT;
-      } else {
-        audioinfo.play.port = oldinfo.play.port | AUDIO_AUX2_OUT;
-      }
-      break;
-    default:
-      break;
-  }
-
-  if (audioinfo.play.port != ((unsigned) ~0)) {
-    /* mask off ports we can't modify. Hack for broken drivers where mod_ports == 0 */
-    if (oldinfo.play.mod_ports != 0) {
-      audioinfo.play.port &= oldinfo.play.mod_ports;
-      /* and add in any that are forced to be on */
-      audioinfo.play.port |= (oldinfo.play.port & ~oldinfo.play.mod_ports);
-    }
-  }
-  g_return_if_fail (mixer->mixer_fd != -1);
-
-  if (audioinfo.play.port != (guint) (-1) &&
-      audioinfo.play.port != oldinfo.play.port)
-    GST_LOG_OBJECT (mixer, "Changing play port mask to 0x%08x",
-        audioinfo.play.port);
-
-  if (ioctl (mixer->mixer_fd, AUDIO_SETINFO, &audioinfo) < 0) {
-    g_warning ("Error setting audio settings");
-    return;
-  }
-}
-
-void
-gst_sunaudiomixer_ctrl_set_record (GstSunAudioMixerCtrl * mixer,
-    GstMixerTrack * track, gboolean record)
-{
-}
-
-void
-gst_sunaudiomixer_ctrl_set_option (GstSunAudioMixerCtrl * mixer,
-    GstMixerOptions * options, gchar * value)
-{
-  struct audio_info audioinfo;
-  GstMixerTrack *track;
-  GstSunAudioMixerOptions *opts;
-  GQuark q;
-  int i;
-
-  g_return_if_fail (mixer != NULL);
-  g_return_if_fail (mixer->mixer_fd != -1);
-  g_return_if_fail (value != NULL);
-  g_return_if_fail (GST_IS_SUNAUDIO_MIXER_OPTIONS (options));
-
-  track = GST_MIXER_TRACK (options);
-  opts = GST_SUNAUDIO_MIXER_OPTIONS (options);
-
-  if (opts->track_num != GST_SUNAUDIO_TRACK_RECSRC) {
-    g_warning ("set_option not supported on track %s", track->label);
-    return;
-  }
-
-  q = g_quark_try_string (value);
-  if (q == 0) {
-    g_warning ("unknown option '%s'", value);
-    return;
-  }
-
-  for (i = 0; i < 8; i++) {
-    if (opts->names[i] == q) {
-      break;
-    }
-  }
-
-  if (((1 << (i)) & opts->avail) == 0) {
-    g_warning ("Record port %s not available", g_quark_to_string (q));
-    return;
-  }
-
-  AUDIO_INITINFO (&audioinfo);
-  audioinfo.record.port = (1 << (i));
-
-  if (ioctl (mixer->mixer_fd, AUDIO_SETINFO, &audioinfo) < 0) {
-    g_warning ("Error setting audio record port");
-  }
-}
-
-const gchar *
-gst_sunaudiomixer_ctrl_get_option (GstSunAudioMixerCtrl * mixer,
-    GstMixerOptions * options)
-{
-  GstMixerTrack *track;
-  GstSunAudioMixerOptions *opts;
-  struct audio_info audioinfo;
-  int i;
-
-  g_return_val_if_fail (mixer != NULL, NULL);
-  g_return_val_if_fail (mixer->fd != -1, NULL);
-  g_return_val_if_fail (GST_IS_SUNAUDIO_MIXER_OPTIONS (options), NULL);
-
-  track = GST_MIXER_TRACK (options);
-  opts = GST_SUNAUDIO_MIXER_OPTIONS (options);
-
-  g_return_val_if_fail (opts->track_num == GST_SUNAUDIO_TRACK_RECSRC, NULL);
-
-  if (ioctl (mixer->mixer_fd, AUDIO_GETINFO, &audioinfo) < 0) {
-    g_warning ("Error getting audio device settings");
-    return (NULL);
-  }
-
-  for (i = 0; i < 8; i++) {
-    if ((1 << i) == audioinfo.record.port) {
-      const gchar *s = g_quark_to_string (opts->names[i]);
-      GST_DEBUG_OBJECT (mixer, "Getting value for option %d: %s",
-          opts->track_num, s);
-      return (s);
-    }
-  }
-
-  GST_DEBUG_OBJECT (mixer, "Unable to get value for option %d",
-      opts->track_num);
-
-  g_warning ("Record port value %d seems illegal", audioinfo.record.port);
-  return (NULL);
-}
diff --git a/sys/sunaudio/gstsunaudiomixerctrl.h b/sys/sunaudio/gstsunaudiomixerctrl.h
deleted file mode 100644
index f9aa477b9..000000000
--- a/sys/sunaudio/gstsunaudiomixerctrl.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * GStreamer - SunAudio mixer interface element.
- * Copyright (C) 2005,2006,2009 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.com>
- * Copyright (C) 2009 Sun Microsystems, Inc.,
- *               Garrett D'Amore <garrett.damore@sun.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_SUNAUDIO_MIXER_CTRL_H
-#define __GST_SUNAUDIO_MIXER_CTRL_H
-
-#include <sys/audioio.h>
-
-#include <gst/gst.h>
-#include <gst/interfaces/mixer.h>
-
-G_BEGIN_DECLS
-
-#define GST_SUNAUDIO_MIXER_CTRL(obj)              ((GstSunAudioMixerCtrl*)(obj))
-
-typedef struct _GstSunAudioMixerCtrl GstSunAudioMixerCtrl;
-
-struct _GstSunAudioMixerCtrl {
-  GList *               tracklist;      /* list of available tracks */
-
-  gint                  fd;
-  gint                  mixer_fd;
-
-  gchar *               device;
-};
-
-GstSunAudioMixerCtrl* gst_sunaudiomixer_ctrl_new          (const gchar *device);
-void                  gst_sunaudiomixer_ctrl_free         (GstSunAudioMixerCtrl *mixer);
-
-const GList*          gst_sunaudiomixer_ctrl_list_tracks  (GstSunAudioMixerCtrl * mixer);
-void                  gst_sunaudiomixer_ctrl_set_volume   (GstSunAudioMixerCtrl * mixer,
-                                                          GstMixerTrack * track,
-                                                          gint * volumes);
-void                  gst_sunaudiomixer_ctrl_get_volume   (GstSunAudioMixerCtrl * mixer,
-                                                          GstMixerTrack * track,
-                                                          gint * volumes);
-void                  gst_sunaudiomixer_ctrl_set_record   (GstSunAudioMixerCtrl * mixer,
-                                                          GstMixerTrack * track,
-                                                          gboolean record);
-void                  gst_sunaudiomixer_ctrl_set_mute     (GstSunAudioMixerCtrl * mixer,
-                                                             GstMixerTrack * track,
-                                                          gboolean mute);
-void                  gst_sunaudiomixer_ctrl_set_option   (GstSunAudioMixerCtrl * mixer,
-							  GstMixerOptions * options,
-							  gchar * value);
-const gchar *         gst_sunaudiomixer_ctrl_get_option   (GstSunAudioMixerCtrl * mixer,
-							  GstMixerOptions * options);
-GstMixerFlags	      gst_sunaudiomixer_ctrl_get_mixer_flags	  (GstSunAudioMixerCtrl *mixer);
-
-#define GST_IMPLEMENT_SUNAUDIO_MIXER_CTRL_METHODS(Type, interface_as_function)  \
-static gboolean                                                                 \
-interface_as_function ## _supported (Type *this, GType iface_type)              \
-{                                                                               \
-  g_assert (iface_type == GST_TYPE_MIXER);                                      \
-                                                                                \
-  return (this->mixer != NULL);                                                 \
-}                                                                               \
-                                                                                \
-static const GList*                                                             \
-interface_as_function ## _list_tracks (GstMixer * mixer)                        \
-{                                                                               \
-  Type *this = (Type*) mixer;                                                   \
-                                                                                \
-  g_return_val_if_fail (this != NULL, NULL);                                    \
-  g_return_val_if_fail (this->mixer != NULL, NULL);                             \
-                                                                                \
-  return gst_sunaudiomixer_ctrl_list_tracks (this->mixer);                      \
-}                                                                               \
-                                                                                \
-static void                                                                     \
-interface_as_function ## _set_volume (GstMixer * mixer, GstMixerTrack * track,  \
-    gint * volumes)                                                             \
-{                                                                               \
-  Type *this = (Type*) mixer;                                                   \
-                                                                                \
-  g_return_if_fail (this != NULL);                                              \
-  g_return_if_fail (this->mixer != NULL);                                       \
-                                                                                \
-  gst_sunaudiomixer_ctrl_set_volume (this->mixer, track, volumes);              \
-}                                                                               \
-                                                                                \
-static void                                                                     \
-interface_as_function ## _get_volume (GstMixer * mixer, GstMixerTrack * track,  \
-    gint * volumes)                                                             \
-{                                                                               \
-  Type *this = (Type*) mixer;                                                   \
-                                                                                \
-  g_return_if_fail (this != NULL);                                              \
-  g_return_if_fail (this->mixer != NULL);                                       \
-                                                                                \
-  gst_sunaudiomixer_ctrl_get_volume (this->mixer, track, volumes);              \
-}                                                                               \
-                                                                                \
-static void                                                                     \
-interface_as_function ## _set_record (GstMixer * mixer, GstMixerTrack * track,  \
-    gboolean record)                                                            \
-{                                                                               \
-  Type *this = (Type*) mixer;                                                   \
-                                                                                \
-  g_return_if_fail (this != NULL);                                              \
-  g_return_if_fail (this->mixer != NULL);                                       \
-                                                                                \
-  gst_sunaudiomixer_ctrl_set_record (this->mixer, track, record);               \
-}                                                                               \
-                                                                                \
-static void                                                                     \
-interface_as_function ## _set_mute (GstMixer * mixer, GstMixerTrack * track,    \
-    gboolean mute)                                                              \
-{                                                                               \
-  Type *this = (Type*) mixer;                                                   \
-                                                                                \
-  g_return_if_fail (this != NULL);                                              \
-  g_return_if_fail (this->mixer != NULL);                                       \
-                                                                                \
-  gst_sunaudiomixer_ctrl_set_mute (this->mixer, track, mute);                   \
-}                                                                               \
-										\
-static const gchar *								\
-interface_as_function ## _get_option (GstMixer * mixer, GstMixerOptions * opts)	\
-{                                                                               \
-  Type *this = (Type*) mixer;                                                   \
-                                                                                \
-  g_return_val_if_fail (this != NULL, NULL);					\
-  g_return_val_if_fail (this->mixer != NULL, NULL);				\
-                                                                                \
-  return gst_sunaudiomixer_ctrl_get_option (this->mixer, opts);			\
-}                                                                               \
-\
-static void									\
-interface_as_function ## _set_option (GstMixer * mixer, GstMixerOptions * opts,	\
-    gchar * value)								\
-{                                                                               \
-  Type *this = (Type*) mixer;                                                   \
-                                                                                \
-  g_return_if_fail (this != NULL);                                              \
-  g_return_if_fail (this->mixer != NULL);                                       \
-                                                                                \
-  gst_sunaudiomixer_ctrl_set_option (this->mixer, opts, value);			\
-}                                                                               \
-\
-static GstMixerFlags                                                            \
-interface_as_function ## _get_mixer_flags (GstMixer * mixer)                    \
-{                                                                               \
-  Type *this = (Type*) mixer;                                                   \
-                                                                                \
-  g_return_val_if_fail (this != NULL, GST_MIXER_FLAG_NONE);                     \
-  g_return_val_if_fail (this->mixer != NULL, GST_MIXER_FLAG_NONE);              \
-                                                                                \
-  return gst_sunaudiomixer_ctrl_get_mixer_flags (this->mixer);			\
-}                                                                               \
-										\
-static void                                                                     \
-interface_as_function ## _interface_init (GstMixerInterface * iface)                \
-{                                                                               \
-  GST_MIXER_TYPE (iface) = GST_MIXER_HARDWARE;                                  \
-                                                                                \
-  /* set up the interface hooks */                                              \
-  iface->list_tracks = interface_as_function ## _list_tracks;                   \
-  iface->set_volume  = interface_as_function ## _set_volume;                    \
-  iface->get_volume  = interface_as_function ## _get_volume;                    \
-  iface->set_mute    = interface_as_function ## _set_mute;                      \
-  iface->set_record  = interface_as_function ## _set_record;                    \
-  iface->get_option  = interface_as_function ## _get_option;			\
-  iface->set_option  = interface_as_function ## _set_option;			\
-  iface->get_mixer_flags   = interface_as_function ## _get_mixer_flags;		\
-}
-
-G_END_DECLS
-
-#endif
diff --git a/sys/sunaudio/gstsunaudiomixeroptions.c b/sys/sunaudio/gstsunaudiomixeroptions.c
deleted file mode 100644
index 4637d8288..000000000
--- a/sys/sunaudio/gstsunaudiomixeroptions.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * GStreamer SunAudio mixer track implementation
- * Copyright (C) 2009 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.com>
- *               Garrett D'Amore <garrett.damore@sun.com>
- *
- * gstsunaudiomixeroptions.c: Sun Audio mixer options object
- *
- * 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 <stdio.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/ioctl.h>
-#include <sys/audio.h>
-#include <sys/mixer.h>
-
-#include <gst/gst-i18n-plugin.h>
-
-#include "gstsunaudiomixeroptions.h"
-#include "gstsunaudiomixertrack.h"
-
-GST_DEBUG_CATEGORY_EXTERN (sunaudio_debug);
-#define GST_CAT_DEFAULT sunaudio_debug
-
-static void gst_sunaudiomixer_options_init (GstSunAudioMixerOptions * sun_opts);
-static void gst_sunaudiomixer_options_class_init (gpointer g_class,
-    gpointer class_data);
-
-static GstMixerOptionsClass *parent_class = NULL;
-
-GType
-gst_sunaudiomixer_options_get_type (void)
-{
-  static GType opts_type = 0;
-
-  if (!opts_type) {
-    static const GTypeInfo opts_info = {
-      sizeof (GstSunAudioMixerOptionsClass),
-      NULL,
-      NULL,
-      gst_sunaudiomixer_options_class_init,
-      NULL,
-      NULL,
-      sizeof (GstSunAudioMixerOptions),
-      0,
-      (GInstanceInitFunc) gst_sunaudiomixer_options_init,
-    };
-
-    opts_type =
-        g_type_register_static (GST_TYPE_MIXER_OPTIONS,
-        "GstSunAudioMixerOptions", &opts_info, 0);
-  }
-
-  return opts_type;
-}
-
-static void
-gst_sunaudiomixer_options_class_init (gpointer g_class, gpointer class_data)
-{
-  parent_class = g_type_class_peek_parent (g_class);
-}
-
-static void
-gst_sunaudiomixer_options_init (GstSunAudioMixerOptions * sun_opts)
-{
-}
-
-GstMixerOptions *
-gst_sunaudiomixer_options_new (GstSunAudioMixerCtrl * mixer, gint track_num)
-{
-  GstMixerOptions *opts;
-  GstSunAudioMixerOptions *sun_opts;
-  GstMixerTrack *track;
-  const gchar *label;
-  gint i;
-  struct audio_info audioinfo;
-
-  if ((mixer == NULL) || (mixer->mixer_fd == -1)) {
-    g_warning ("mixer not initialized");
-    return NULL;
-  }
-
-  if (track_num != GST_SUNAUDIO_TRACK_RECSRC) {
-    g_warning ("invalid options track");
-    return (NULL);
-  }
-
-  label = N_("Record Source");
-
-  opts = g_object_new (GST_TYPE_SUNAUDIO_MIXER_OPTIONS,
-      "untranslated-label", label, NULL);
-  sun_opts = GST_SUNAUDIO_MIXER_OPTIONS (opts);
-  track = GST_MIXER_TRACK (opts);
-
-  GST_DEBUG_OBJECT (opts, "New mixer options, track %d: %s",
-      track_num, GST_STR_NULL (label));
-
-  /* save off names for the record sources */
-  sun_opts->names[0] = g_quark_from_string (_("Microphone"));
-  sun_opts->names[1] = g_quark_from_string (_("Line In"));
-  sun_opts->names[2] = g_quark_from_string (_("Internal CD"));
-  sun_opts->names[3] = g_quark_from_string (_("SPDIF In"));
-  sun_opts->names[4] = g_quark_from_string (_("AUX 1 In"));
-  sun_opts->names[5] = g_quark_from_string (_("AUX 2 In"));
-  sun_opts->names[6] = g_quark_from_string (_("Codec Loopback"));
-  sun_opts->names[7] = g_quark_from_string (_("SunVTS Loopback"));
-
-  /* set basic information */
-  track->label = g_strdup (_(label));
-  track->num_channels = 0;
-  track->min_volume = 0;
-  track->max_volume = 0;
-  track->flags =
-      GST_MIXER_TRACK_INPUT | GST_MIXER_TRACK_WHITELIST |
-      GST_MIXER_TRACK_NO_RECORD;
-
-  if (ioctl (mixer->mixer_fd, AUDIO_GETINFO, &audioinfo) < 0) {
-    g_warning ("Error getting audio device settings");
-    g_object_unref (G_OBJECT (sun_opts));
-    return NULL;
-  }
-
-  sun_opts->avail = audioinfo.record.avail_ports;
-  sun_opts->track_num = track_num;
-
-  for (i = 0; i < 8; i++) {
-    if ((1 << i) & audioinfo.record.avail_ports) {
-      const char *s = g_quark_to_string (sun_opts->names[i]);
-      opts->values = g_list_append (opts->values, g_strdup (s));
-      GST_DEBUG_OBJECT (opts, "option for track %d: %s",
-          track_num, GST_STR_NULL (s));
-    }
-  }
-
-  return opts;
-}
diff --git a/sys/sunaudio/gstsunaudiomixeroptions.h b/sys/sunaudio/gstsunaudiomixeroptions.h
deleted file mode 100644
index e27ef21b7..000000000
--- a/sys/sunaudio/gstsunaudiomixeroptions.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * GStreamer SunAudio mixer track implementation
- * Copyright (C) 2009 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.com>
- *               Garrett D'Amore <garrett.damore@sun.com>
- *
- * gstsunaudiomixeroptions.h: Sun Audio mixer options object
- *
- * 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,
- */
-
-#ifndef __GST_SUNAUDIO_MIXER_OPTIONS_H__
-#define __GST_SUNAUDIO_MIXER_OPTIONS_H__
-
-
-#include "gstsunaudiomixer.h"
-#include <gst/interfaces/mixeroptions.h>
-
-
-G_BEGIN_DECLS
-
-
-#define GST_SUNAUDIO_MIXER_OPTIONS(obj)         (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SUNAUDIO_MIXER_OPTIONS, GstSunAudioMixerOptions))
-#define GST_SUNAUDIO_MIXER_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SUNAUDIO_MIXER_OPTIONS, GstSunAudioMixerOptionsClass))
-#define GST_IS_SUNAUDIO_MIXER_OPTIONS(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SUNAUDIO_MIXER_OPTIONS))
-#define GST_IS_SUNAUDIO_MIXER_OPTIONS_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SUNAUDIO_MIXER_OPTIONS))
-#define GST_TYPE_SUNAUDIO_MIXER_OPTIONS             (gst_sunaudiomixer_options_get_type())
-
-
-typedef struct _GstSunAudioMixerOptions GstSunAudioMixerOptions;
-typedef struct _GstSunAudioMixerOptionsClass GstSunAudioMixerOptionsClass;
-
-
-struct _GstSunAudioMixerOptions {
-  GstMixerOptions        parent;
-  gint                  track_num;
-  GQuark		names[8];	/* only 8 possible */
-  gint			avail;		/* mask of avail */
-};
-
-struct _GstSunAudioMixerOptionsClass {
-  GstMixerOptionsClass parent;
-};
-
-
-GType           gst_sunaudiomixer_options_get_type (void);
-GstMixerOptions *gst_sunaudiomixer_options_new     (GstSunAudioMixerCtrl *mixer, gint track_num);
-
-
-G_END_DECLS
-
-
-#endif /* __GST_SUNAUDIO_MIXER_OPTIONS_H__ */
diff --git a/sys/sunaudio/gstsunaudiomixertrack.c b/sys/sunaudio/gstsunaudiomixertrack.c
deleted file mode 100644
index 43bf0442a..000000000
--- a/sys/sunaudio/gstsunaudiomixertrack.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * GStreamer
- * Copyright (C) 2005,2008, 2009 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.com>
- * Copyright (C) 2009 Sun Microsystems, Inc.,
- *               Garrett D'Amore <garrett.damore@sun.com>
- *
- * gstsunaudiomixer.c: mixer interface implementation for OSS
- *
- * 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 <stdio.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/ioctl.h>
-#include <sys/audioio.h>
-
-#include <gst/gst-i18n-plugin.h>
-
-#include "gstsunaudiomixertrack.h"
-
-GST_DEBUG_CATEGORY_EXTERN (sunaudio_debug);
-#define GST_CAT_DEFAULT sunaudio_debug
-
-#define MASK_BIT_IS_SET(mask, bit) \
-  (mask & (1 << bit))
-
-G_DEFINE_TYPE (GstSunAudioMixerTrack, gst_sunaudiomixer_track,
-    GST_TYPE_MIXER_TRACK);
-
-static void
-gst_sunaudiomixer_track_class_init (GstSunAudioMixerTrackClass * klass)
-{
-  /* nop */
-}
-
-static void
-gst_sunaudiomixer_track_init (GstSunAudioMixerTrack * track)
-{
-  track->gain = 0;
-  track->balance = AUDIO_MID_BALANCE;
-  track->track_num = 0;
-}
-
-GstMixerTrack *
-gst_sunaudiomixer_track_new (GstSunAudioTrackType track_num)
-{
-  const gchar *labels[] = { N_("Volume"),
-    N_("Gain"),
-    N_("Monitor"),
-    N_("Built-in Speaker"),
-    N_("Headphone"),
-    N_("Line Out"),
-    N_("SPDIF Out"),
-    N_("AUX 1 Out"),
-    N_("AUX 2 Out"),
-  };
-
-
-  GstSunAudioMixerTrack *sunaudiotrack;
-  GstMixerTrack *track;
-  const gchar *untranslated_label;
-
-  if ((guint) track_num < G_N_ELEMENTS (labels))
-    untranslated_label = labels[track_num];
-  else
-    untranslated_label = NULL;
-
-  sunaudiotrack = g_object_new (GST_TYPE_SUNAUDIO_MIXER_TRACK,
-      "untranslated-label", untranslated_label, NULL);
-
-  GST_DEBUG_OBJECT (sunaudiotrack, "Creating new mixer track of type %d: %s",
-      track_num, GST_STR_NULL (untranslated_label));
-
-  switch (track_num) {
-    case GST_SUNAUDIO_TRACK_OUTPUT:
-      /* these are sliders */
-      track = GST_MIXER_TRACK (sunaudiotrack);
-      track->label = g_strdup (_(untranslated_label));
-      track->num_channels = 2;
-      track->flags = GST_MIXER_TRACK_OUTPUT | GST_MIXER_TRACK_WHITELIST |
-          GST_MIXER_TRACK_MASTER;
-      track->min_volume = 0;
-      track->max_volume = 255;
-      sunaudiotrack->track_num = track_num;
-      sunaudiotrack->gain = (0 & 0xff);
-      sunaudiotrack->balance = AUDIO_MID_BALANCE;
-      break;
-    case GST_SUNAUDIO_TRACK_RECORD:
-      /* these are sliders */
-      track = GST_MIXER_TRACK (sunaudiotrack);
-      track->label = g_strdup (_(untranslated_label));
-      track->num_channels = 2;
-      track->flags = GST_MIXER_TRACK_INPUT | GST_MIXER_TRACK_NO_RECORD |
-          GST_MIXER_TRACK_WHITELIST;
-      track->min_volume = 0;
-      track->max_volume = 255;
-      sunaudiotrack->track_num = track_num;
-      sunaudiotrack->gain = (0 & 0xff);
-      sunaudiotrack->balance = AUDIO_MID_BALANCE;
-      break;
-    case GST_SUNAUDIO_TRACK_MONITOR:
-      /* these are sliders */
-      track = GST_MIXER_TRACK (sunaudiotrack);
-      track->label = g_strdup (_(untranslated_label));
-      track->num_channels = 2;
-      track->flags = GST_MIXER_TRACK_INPUT | GST_MIXER_TRACK_NO_RECORD;
-      track->min_volume = 0;
-      track->max_volume = 255;
-      sunaudiotrack->track_num = track_num;
-      sunaudiotrack->gain = (0 & 0xff);
-      sunaudiotrack->balance = AUDIO_MID_BALANCE;
-      break;
-    case GST_SUNAUDIO_TRACK_SPEAKER:
-    case GST_SUNAUDIO_TRACK_HP:
-    case GST_SUNAUDIO_TRACK_LINEOUT:
-    case GST_SUNAUDIO_TRACK_SPDIFOUT:
-    case GST_SUNAUDIO_TRACK_AUX1OUT:
-    case GST_SUNAUDIO_TRACK_AUX2OUT:
-      /* these are switches */
-      track = GST_MIXER_TRACK (sunaudiotrack);
-      track->label = g_strdup (_(untranslated_label));
-      track->num_channels = 0;
-      track->flags = GST_MIXER_TRACK_OUTPUT | GST_MIXER_TRACK_WHITELIST;
-      track->min_volume = 0;
-      track->max_volume = 255;
-      sunaudiotrack->track_num = track_num;
-      sunaudiotrack->gain = (0 & 0xff);
-      sunaudiotrack->balance = AUDIO_MID_BALANCE;
-      break;
-    default:
-      g_warning ("Unknown sun audio track num %d", track_num);
-      track = NULL;
-  }
-
-  return track;
-}
diff --git a/sys/sunaudio/gstsunaudiomixertrack.h b/sys/sunaudio/gstsunaudiomixertrack.h
deleted file mode 100644
index 278ed81fb..000000000
--- a/sys/sunaudio/gstsunaudiomixertrack.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * GStreamer SunAudio mixer track implementation
- * Copyright (C) 2005,2006,2009 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.com>
- * Copyright (C) 2009 Sun Microsystems, Inc.,
- *               Garrett D'Amore <garrett.damore@sun.com>
- *
- * gstsunaudiomixertrack.h: SunAudio mixer tracks
- *
- * 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_SUNAUDIO_MIXER_TRACK_H__
-#define __GST_SUNAUDIO_MIXER_TRACK_H__
-
-#include <gst/gst.h>
-#include <gst/interfaces/mixer.h>
-
-G_BEGIN_DECLS
-
-typedef enum
-{
-   GST_SUNAUDIO_TRACK_OUTPUT   = 0,
-   GST_SUNAUDIO_TRACK_RECORD,
-   GST_SUNAUDIO_TRACK_MONITOR,
-   GST_SUNAUDIO_TRACK_SPEAKER,
-   GST_SUNAUDIO_TRACK_HP,
-   GST_SUNAUDIO_TRACK_LINEOUT,
-   GST_SUNAUDIO_TRACK_SPDIFOUT,
-   GST_SUNAUDIO_TRACK_AUX1OUT,
-   GST_SUNAUDIO_TRACK_AUX2OUT,
-   GST_SUNAUDIO_TRACK_RECSRC
-} GstSunAudioTrackType;
-
-#define GST_TYPE_SUNAUDIO_MIXER_TRACK \
-  (gst_sunaudiomixer_track_get_type ())
-#define GST_SUNAUDIO_MIXER_TRACK(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_SUNAUDIO_MIXER_TRACK, \
-			       GstSunAudioMixerTrack))
-#define GST_SUNAUDIO_MIXER_TRACK_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_SUNAUDIO_MIXER_TRACK, \
-			    GstSunAudioMixerTrackClass))
-#define GST_IS_SUNAUDIO_MIXER_TRACK(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_SUNAUDIO_MIXER_TRACK))
-#define GST_IS_SUNAUDIO_MIXER_TRACK_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_SUNAUDIO_MIXER_TRACK))
-
-typedef struct _GstSunAudioMixerTrack {
-  GstMixerTrack parent;
-
-  gint                  gain;
-  gint                  balance;
-  GstSunAudioTrackType track_num;
-} GstSunAudioMixerTrack;
-
-typedef struct _GstSunAudioMixerTrackClass {
-  GstMixerTrackClass parent;
-} GstSunAudioMixerTrackClass;
-
-GType		gst_sunaudiomixer_track_get_type	(void);
-GstMixerTrack*	gst_sunaudiomixer_track_new		(GstSunAudioTrackType track_num);
-
-G_END_DECLS
-
-#endif /* __GST_SUNAUDIO_MIXER_TRACK_H__ */
diff --git a/sys/sunaudio/gstsunaudiosink.c b/sys/sunaudio/gstsunaudiosink.c
deleted file mode 100644
index 4073068b9..000000000
--- a/sys/sunaudio/gstsunaudiosink.c
+++ /dev/null
@@ -1,650 +0,0 @@
-/*
- * GStreamer - SunAudio sink
- * Copyright (C) 2004 David A. Schleef <ds@schleef.org>
- * Copyright (C) 2005,2006 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.com>
- * Copyright (C) 2006 Jan Schmidt <thaytan@mad.scientist.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-/**
- * SECTION:element-sunaudiosink
- *
- * sunaudiosink is an audio sink designed to work with the Sun Audio
- * interface available in Solaris.
- *
- * <refsect2>
- * <title>Example launch line</title>
- * |[
- * gst-launch-1.0 audiotestsrc volume=0.5 ! sunaudiosink
- * ]|
- * </refsect2>
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <fcntl.h>
-#include <string.h>
-#include <stropts.h>
-#include <unistd.h>
-#include <sys/mman.h>
-
-#include "gstsunaudiosink.h"
-
-GST_DEBUG_CATEGORY_EXTERN (sunaudio_debug);
-#define GST_CAT_DEFAULT sunaudio_debug
-
-static void gst_sunaudiosink_base_init (gpointer g_class);
-static void gst_sunaudiosink_class_init (GstSunAudioSinkClass * klass);
-static void gst_sunaudiosink_init (GstSunAudioSink * filter);
-static void gst_sunaudiosink_dispose (GObject * object);
-static void gst_sunaudiosink_finalize (GObject * object);
-
-static void gst_sunaudiosink_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec);
-static void gst_sunaudiosink_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * pspec);
-
-static GstCaps *gst_sunaudiosink_getcaps (GstBaseSink * bsink);
-
-static gboolean gst_sunaudiosink_open (GstAudioSink * asink);
-static gboolean gst_sunaudiosink_close (GstAudioSink * asink);
-static gboolean gst_sunaudiosink_prepare (GstAudioSink * asink,
-    GstRingBufferSpec * spec);
-static gboolean gst_sunaudiosink_unprepare (GstAudioSink * asink);
-static guint gst_sunaudiosink_write (GstAudioSink * asink, gpointer data,
-    guint length);
-static guint gst_sunaudiosink_delay (GstAudioSink * asink);
-static void gst_sunaudiosink_reset (GstAudioSink * asink);
-
-#define DEFAULT_DEVICE  "/dev/audio"
-enum
-{
-  PROP_0,
-  PROP_DEVICE,
-};
-
-static GstStaticPadTemplate gst_sunaudiosink_factory =
-GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw-int, "
-        "endianness = (int) BYTE_ORDER, "
-        "signed = (boolean) TRUE, " "width = (int) 16, " "depth = (int) 16, "
-        /* [5510,48000] seems to be a Solaris limit */
-        "rate = (int) [ 5510, 48000 ], " "channels = (int) [ 1, 2 ]")
-    );
-
-static GstElementClass *parent_class = NULL;
-
-GType
-gst_sunaudiosink_get_type (void)
-{
-  static GType plugin_type = 0;
-
-  if (!plugin_type) {
-    static const GTypeInfo plugin_info = {
-      sizeof (GstSunAudioSinkClass),
-      gst_sunaudiosink_base_init,
-      NULL,
-      (GClassInitFunc) gst_sunaudiosink_class_init,
-      NULL,
-      NULL,
-      sizeof (GstSunAudioSink),
-      0,
-      (GInstanceInitFunc) gst_sunaudiosink_init,
-    };
-
-    plugin_type = g_type_register_static (GST_TYPE_AUDIO_SINK,
-        "GstSunAudioSink", &plugin_info, 0);
-  }
-  return plugin_type;
-}
-
-static void
-gst_sunaudiosink_dispose (GObject * object)
-{
-  G_OBJECT_CLASS (parent_class)->dispose (object);
-}
-
-static void
-gst_sunaudiosink_finalize (GObject * object)
-{
-  GstSunAudioSink *sunaudiosink = GST_SUNAUDIO_SINK (object);
-
-  g_mutex_free (sunaudiosink->write_mutex);
-  g_cond_free (sunaudiosink->sleep_cond);
-
-  g_free (sunaudiosink->device);
-
-  if (sunaudiosink->fd != -1) {
-    close (sunaudiosink->fd);
-    sunaudiosink->fd = -1;
-  }
-
-  G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-static void
-gst_sunaudiosink_base_init (gpointer g_class)
-{
-  GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
-
-  gst_element_class_add_static_pad_template (element_class,
-      &gst_sunaudiosink_factory);
-  gst_element_class_set_static_metadata (element_class, "Sun Audio Sink",
-      "Sink/Audio", "Audio sink for Sun Audio devices",
-      "David A. Schleef <ds@schleef.org>, "
-      "Brian Cameron <brian.cameron@sun.com>");
-}
-
-static void
-gst_sunaudiosink_class_init (GstSunAudioSinkClass * klass)
-{
-  GObjectClass *gobject_class;
-  GstElementClass *gstelement_class;
-  GstBaseSinkClass *gstbasesink_class;
-  GstBaseAudioSinkClass *gstbaseaudiosink_class;
-  GstAudioSinkClass *gstaudiosink_class;
-
-  gobject_class = (GObjectClass *) klass;
-  gstelement_class = (GstElementClass *) klass;
-  gstbasesink_class = (GstBaseSinkClass *) klass;
-  gstbaseaudiosink_class = (GstBaseAudioSinkClass *) klass;
-  gstaudiosink_class = (GstAudioSinkClass *) klass;
-
-  parent_class = g_type_class_peek_parent (klass);
-
-  gobject_class->dispose = gst_sunaudiosink_dispose;
-  gobject_class->finalize = gst_sunaudiosink_finalize;
-
-  gobject_class->set_property = gst_sunaudiosink_set_property;
-  gobject_class->get_property = gst_sunaudiosink_get_property;
-
-  gstbasesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_sunaudiosink_getcaps);
-
-  gstaudiosink_class->open = GST_DEBUG_FUNCPTR (gst_sunaudiosink_open);
-  gstaudiosink_class->close = GST_DEBUG_FUNCPTR (gst_sunaudiosink_close);
-  gstaudiosink_class->prepare = GST_DEBUG_FUNCPTR (gst_sunaudiosink_prepare);
-  gstaudiosink_class->unprepare =
-      GST_DEBUG_FUNCPTR (gst_sunaudiosink_unprepare);
-  gstaudiosink_class->write = GST_DEBUG_FUNCPTR (gst_sunaudiosink_write);
-  gstaudiosink_class->delay = GST_DEBUG_FUNCPTR (gst_sunaudiosink_delay);
-  gstaudiosink_class->reset = GST_DEBUG_FUNCPTR (gst_sunaudiosink_reset);
-
-  g_object_class_install_property (gobject_class, PROP_DEVICE,
-      g_param_spec_string ("device", "Device", "Audio Device (/dev/audio)",
-          DEFAULT_DEVICE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-}
-
-static void
-gst_sunaudiosink_init (GstSunAudioSink * sunaudiosink)
-{
-  const char *audiodev;
-
-  GST_DEBUG_OBJECT (sunaudiosink, "initializing sunaudiosink");
-
-  sunaudiosink->fd = -1;
-
-  audiodev = g_getenv ("AUDIODEV");
-  if (audiodev == NULL)
-    audiodev = DEFAULT_DEVICE;
-  sunaudiosink->device = g_strdup (audiodev);
-
-  /* mutex and gcond used to control the write method */
-  sunaudiosink->write_mutex = g_mutex_new ();
-  sunaudiosink->sleep_cond = g_cond_new ();
-}
-
-static void
-gst_sunaudiosink_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec)
-{
-  GstSunAudioSink *sunaudiosink;
-
-  sunaudiosink = GST_SUNAUDIO_SINK (object);
-
-  switch (prop_id) {
-    case PROP_DEVICE:
-      GST_OBJECT_LOCK (sunaudiosink);
-      g_free (sunaudiosink->device);
-      sunaudiosink->device = g_strdup (g_value_get_string (value));
-      GST_OBJECT_UNLOCK (sunaudiosink);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static void
-gst_sunaudiosink_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * pspec)
-{
-  GstSunAudioSink *sunaudiosink;
-
-  sunaudiosink = GST_SUNAUDIO_SINK (object);
-
-  switch (prop_id) {
-    case PROP_DEVICE:
-      GST_OBJECT_LOCK (sunaudiosink);
-      g_value_set_string (value, sunaudiosink->device);
-      GST_OBJECT_UNLOCK (sunaudiosink);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static GstCaps *
-gst_sunaudiosink_getcaps (GstBaseSink * bsink)
-{
-  GstPadTemplate *pad_template;
-  GstCaps *caps = NULL;
-  GstSunAudioSink *sunaudiosink = GST_SUNAUDIO_SINK (bsink);
-
-  GST_DEBUG_OBJECT (sunaudiosink, "getcaps called");
-
-  pad_template = gst_static_pad_template_get (&gst_sunaudiosink_factory);
-  caps = gst_caps_copy (gst_pad_template_get_caps (pad_template));
-
-  gst_object_unref (pad_template);
-
-  return caps;
-}
-
-static gboolean
-gst_sunaudiosink_open (GstAudioSink * asink)
-{
-  GstSunAudioSink *sunaudiosink = GST_SUNAUDIO_SINK (asink);
-  int fd, ret;
-
-  /* First try to open non-blocking */
-  GST_OBJECT_LOCK (sunaudiosink);
-  fd = open (sunaudiosink->device, O_WRONLY | O_NONBLOCK);
-
-  if (fd >= 0) {
-    close (fd);
-    fd = open (sunaudiosink->device, O_WRONLY);
-  }
-
-  if (fd == -1) {
-    GST_OBJECT_UNLOCK (sunaudiosink);
-    goto open_failed;
-  }
-
-  sunaudiosink->fd = fd;
-  GST_OBJECT_UNLOCK (sunaudiosink);
-
-  ret = ioctl (fd, AUDIO_GETDEV, &sunaudiosink->dev);
-  if (ret == -1)
-    goto ioctl_error;
-
-  GST_DEBUG_OBJECT (sunaudiosink, "name %s", sunaudiosink->dev.name);
-  GST_DEBUG_OBJECT (sunaudiosink, "version %s", sunaudiosink->dev.version);
-  GST_DEBUG_OBJECT (sunaudiosink, "config %s", sunaudiosink->dev.config);
-
-  ret = ioctl (fd, AUDIO_GETINFO, &sunaudiosink->info);
-  if (ret == -1)
-    goto ioctl_error;
-
-  GST_DEBUG_OBJECT (sunaudiosink, "monitor_gain %d",
-      sunaudiosink->info.monitor_gain);
-  GST_DEBUG_OBJECT (sunaudiosink, "output_muted %d",
-      sunaudiosink->info.output_muted);
-  GST_DEBUG_OBJECT (sunaudiosink, "hw_features %08x",
-      sunaudiosink->info.hw_features);
-  GST_DEBUG_OBJECT (sunaudiosink, "sw_features %08x",
-      sunaudiosink->info.sw_features);
-  GST_DEBUG_OBJECT (sunaudiosink, "sw_features_enabled %08x",
-      sunaudiosink->info.sw_features_enabled);
-
-  return TRUE;
-
-open_failed:
-  GST_ELEMENT_ERROR (sunaudiosink, RESOURCE, OPEN_WRITE, (NULL),
-      ("can't open connection to Sun Audio device %s", sunaudiosink->device));
-  return FALSE;
-ioctl_error:
-  close (sunaudiosink->fd);
-  GST_ELEMENT_ERROR (sunaudiosink, RESOURCE, SETTINGS, (NULL), ("%s",
-          strerror (errno)));
-  return FALSE;
-}
-
-static gboolean
-gst_sunaudiosink_close (GstAudioSink * asink)
-{
-  GstSunAudioSink *sunaudiosink = GST_SUNAUDIO_SINK (asink);
-
-  if (sunaudiosink->fd != -1) {
-    close (sunaudiosink->fd);
-    sunaudiosink->fd = -1;
-  }
-  return TRUE;
-}
-
-static gboolean
-gst_sunaudiosink_prepare (GstAudioSink * asink, GstRingBufferSpec * spec)
-{
-  GstSunAudioSink *sunaudiosink = GST_SUNAUDIO_SINK (asink);
-  audio_info_t ainfo;
-  int ret;
-  int ports;
-
-  ret = ioctl (sunaudiosink->fd, AUDIO_GETINFO, &ainfo);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosink, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-    return FALSE;
-  }
-
-  if (spec->width != 16)
-    return FALSE;
-
-  ports = ainfo.play.port;
-
-  AUDIO_INITINFO (&ainfo);
-
-  ainfo.play.sample_rate = spec->rate;
-  ainfo.play.channels = spec->channels;
-  ainfo.play.precision = spec->width;
-  ainfo.play.encoding = AUDIO_ENCODING_LINEAR;
-  ainfo.play.port = ports;
-
-  /* buffer_time for playback is not implemented in Solaris at the moment,
-     but at some point in the future, it might be */
-  ainfo.play.buffer_size =
-      gst_util_uint64_scale (spec->rate * spec->bytes_per_sample,
-      spec->buffer_time, GST_SECOND / GST_USECOND);
-
-  spec->silence_sample[0] = 0;
-  spec->silence_sample[1] = 0;
-  spec->silence_sample[2] = 0;
-  spec->silence_sample[3] = 0;
-
-  ret = ioctl (sunaudiosink->fd, AUDIO_SETINFO, &ainfo);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosink, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-    return FALSE;
-  }
-
-  /* Now read back the info to find out the actual buffer size and set 
-     segtotal */
-  AUDIO_INITINFO (&ainfo);
-
-  ret = ioctl (sunaudiosink->fd, AUDIO_GETINFO, &ainfo);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosink, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-    return FALSE;
-  }
-#if 0
-  /* We don't actually use the buffer_size from the sound device, because
-   * it seems it's just bogus sometimes */
-  sunaudiosink->segtotal = spec->segtotal =
-      ainfo.play.buffer_size / spec->segsize;
-#else
-  sunaudiosink->segtotal = spec->segtotal;
-#endif
-  sunaudiosink->segtotal_samples =
-      spec->segtotal * spec->segsize / spec->bytes_per_sample;
-
-  sunaudiosink->segs_written = (gint) ainfo.play.eof;
-  sunaudiosink->samples_written = ainfo.play.samples;
-  sunaudiosink->bytes_per_sample = spec->bytes_per_sample;
-
-  GST_DEBUG_OBJECT (sunaudiosink, "Got device buffer_size of %u",
-      ainfo.play.buffer_size);
-
-  return TRUE;
-}
-
-static gboolean
-gst_sunaudiosink_unprepare (GstAudioSink * asink)
-{
-  return TRUE;
-}
-
-#define LOOP_WHILE_EINTR(v,func) do { (v) = (func); } \
-		while ((v) == -1 && errno == EINTR);
-
-/* Called with the write_mutex held */
-static void
-gst_sunaudio_sink_do_delay (GstSunAudioSink * sink)
-{
-  GstBaseAudioSink *ba_sink = GST_BASE_AUDIO_SINK (sink);
-  GstClockTime total_sleep;
-  GstClockTime max_sleep;
-  gint sleep_usecs;
-  GTimeVal sleep_end;
-  gint err;
-  audio_info_t ainfo;
-  guint diff;
-
-  /* This code below ensures that we don't race any further than buffer_time 
-   * ahead of the audio output, by sleeping if the next write call would cause
-   * us to advance too far in the ring-buffer */
-  LOOP_WHILE_EINTR (err, ioctl (sink->fd, AUDIO_GETINFO, &ainfo));
-  if (err < 0)
-    goto write_error;
-
-  /* Compute our offset from the output (copes with overflow) */
-  diff = (guint) (sink->segs_written) - ainfo.play.eof;
-  if (diff > sink->segtotal) {
-    /* This implies that reset did a flush just as the sound device aquired
-     * some buffers internally, and it causes us to be out of sync with the
-     * eof measure. This corrects it */
-    sink->segs_written = ainfo.play.eof;
-    diff = 0;
-  }
-
-  if (diff + 1 < sink->segtotal)
-    return;                     /* no need to sleep at all */
-
-  /* Never sleep longer than the initial number of undrained segments in the 
-     device plus one */
-  total_sleep = 0;
-  max_sleep = (diff + 1) * (ba_sink->latency_time * GST_USECOND);
-  /* sleep for a segment period between .eof polls */
-  sleep_usecs = ba_sink->latency_time;
-
-  /* Current time is our reference point */
-  g_get_current_time (&sleep_end);
-
-  /* If the next segment would take us too far along the ring buffer,
-   * sleep for a bit to free up a slot. If there were a way to find out
-   * when the eof field actually increments, we could use, but the only
-   * notification mechanism seems to be SIGPOLL, which we can't use from
-   * a support library */
-  while (diff + 1 >= sink->segtotal && total_sleep < max_sleep) {
-    GST_LOG_OBJECT (sink, "need to block to drain segment(s). "
-        "Sleeping for %d us", sleep_usecs);
-
-    g_time_val_add (&sleep_end, sleep_usecs);
-
-    if (g_cond_timed_wait (sink->sleep_cond, sink->write_mutex, &sleep_end)) {
-      GST_LOG_OBJECT (sink, "Waking up early due to reset");
-      return;                   /* Got told to wake up */
-    }
-    total_sleep += (sleep_usecs * GST_USECOND);
-
-    LOOP_WHILE_EINTR (err, ioctl (sink->fd, AUDIO_GETINFO, &ainfo));
-    if (err < 0)
-      goto write_error;
-
-    /* Compute our (new) offset from the output (copes with overflow) */
-    diff = (guint) g_atomic_int_get (&sink->segs_written) - ainfo.play.eof;
-  }
-
-  return;
-
-write_error:
-  GST_ELEMENT_ERROR (sink, RESOURCE, OPEN_WRITE, (NULL),
-      ("Playback error on device '%s': %s", sink->device, strerror (errno)));
-  return;
-}
-
-static guint
-gst_sunaudiosink_write (GstAudioSink * asink, gpointer data, guint length)
-{
-  GstSunAudioSink *sink = GST_SUNAUDIO_SINK (asink);
-
-  gint bytes_written, err;
-
-  g_mutex_lock (sink->write_mutex);
-  if (sink->flushing) {
-    /* Exit immediately if reset tells us to */
-    g_mutex_unlock (sink->write_mutex);
-    return length;
-  }
-
-  LOOP_WHILE_EINTR (bytes_written, write (sink->fd, data, length));
-  if (bytes_written < 0) {
-    err = bytes_written;
-    goto write_error;
-  }
-
-  /* Increment our sample counter, for delay calcs */
-  g_atomic_int_add (&sink->samples_written, length / sink->bytes_per_sample);
-
-  /* Don't consider the segment written if we didn't output the whole lot yet */
-  if (bytes_written < length) {
-    g_mutex_unlock (sink->write_mutex);
-    return (guint) bytes_written;
-  }
-
-  /* Write a zero length output to trigger increment of the eof field */
-  LOOP_WHILE_EINTR (err, write (sink->fd, NULL, 0));
-  if (err < 0)
-    goto write_error;
-
-  /* Count this extra segment we've written */
-  sink->segs_written += 1;
-
-  /* Now delay so we don't overrun the ring buffer */
-  gst_sunaudio_sink_do_delay (sink);
-
-  g_mutex_unlock (sink->write_mutex);
-  return length;
-
-write_error:
-  g_mutex_unlock (sink->write_mutex);
-
-  GST_ELEMENT_ERROR (sink, RESOURCE, OPEN_WRITE, (NULL),
-      ("Playback error on device '%s': %s", sink->device, strerror (errno)));
-  return length;                /* Say we wrote the segment to let the ringbuffer exit */
-}
-
-/*
- * Provide the current number of unplayed samples that have been written
- * to the device */
-static guint
-gst_sunaudiosink_delay (GstAudioSink * asink)
-{
-  GstSunAudioSink *sink = GST_SUNAUDIO_SINK (asink);
-  audio_info_t ainfo;
-  gint ret;
-  guint offset;
-
-  ret = ioctl (sink->fd, AUDIO_GETINFO, &ainfo);
-  if (G_UNLIKELY (ret == -1))
-    return 0;
-
-  offset = (g_atomic_int_get (&sink->samples_written) - ainfo.play.samples);
-
-  /* If the offset is larger than the total ringbuffer size, then we asked
-     between the write call and when samples_written is updated */
-  if (G_UNLIKELY (offset > sink->segtotal_samples))
-    return 0;
-
-  return offset;
-}
-
-static void
-gst_sunaudiosink_reset (GstAudioSink * asink)
-{
-  /* Get current values */
-  GstSunAudioSink *sunaudiosink = GST_SUNAUDIO_SINK (asink);
-  audio_info_t ainfo;
-  int ret;
-
-  ret = ioctl (sunaudiosink->fd, AUDIO_GETINFO, &ainfo);
-  if (ret == -1) {
-    /*
-     * Should never happen, but if we couldn't getinfo, then no point
-     * trying to setinfo
-     */
-    GST_ELEMENT_ERROR (sunaudiosink, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-    return;
-  }
-
-  /*
-   * Pause the audio - so audio stops playing immediately rather than
-   * waiting for the ringbuffer to empty.
-   */
-  ainfo.play.pause = !NULL;
-  ret = ioctl (sunaudiosink->fd, AUDIO_SETINFO, &ainfo);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosink, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-  }
-
-  /* Flush the audio */
-  ret = ioctl (sunaudiosink->fd, I_FLUSH, FLUSHW);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosink, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-  }
-
-  /* Now, we take the write_mutex and signal to ensure the write thread
-   * is not busy, and we signal the condition to wake up any sleeper,
-   * then we flush again in case the write wrote something after we flushed,
-   * and finally release the lock and unpause */
-  g_mutex_lock (sunaudiosink->write_mutex);
-  sunaudiosink->flushing = TRUE;
-
-  g_cond_signal (sunaudiosink->sleep_cond);
-
-  ret = ioctl (sunaudiosink->fd, I_FLUSH, FLUSHW);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosink, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-  }
-
-  /* unpause the audio */
-  ainfo.play.pause = NULL;
-  ret = ioctl (sunaudiosink->fd, AUDIO_SETINFO, &ainfo);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosink, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-  }
-
-  /* After flushing the audio device, we need to remeasure the sample count
-   * and segments written count so we're in sync with the device */
-
-  sunaudiosink->segs_written = ainfo.play.eof;
-  g_atomic_int_set (&sunaudiosink->samples_written, ainfo.play.samples);
-
-  sunaudiosink->flushing = FALSE;
-  g_mutex_unlock (sunaudiosink->write_mutex);
-}
diff --git a/sys/sunaudio/gstsunaudiosink.h b/sys/sunaudio/gstsunaudiosink.h
deleted file mode 100644
index fb30e6a80..000000000
--- a/sys/sunaudio/gstsunaudiosink.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * GStreamer - SunAudio sink
- * Copyright (C) 2004 David A. Schleef <ds@schleef.org>
- * Copyright (C) 2005,2006 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.com>
- * Copyright (C) 2006 Jan Schmidt <thaytan@mad.scientist.com>
- *
- * gstsunaudiosink.h:
- *
- * 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_SUNAUDIO_SINK_H__
-#define __GST_SUNAUDIO_SINK_H__
-
-#include <sys/audioio.h>
-#include <gst/gst.h>
-#include <gst/audio/gstaudiosink.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_SUNAUDIO_SINK            (gst_sunaudiosink_get_type())
-#define GST_SUNAUDIO_SINK(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SUNAUDIO_SINK,GstSunAudioSink))
-#define GST_SUNAUDIO_SINK_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SUNAUDIO_SINK,GstSunAudioSinkClass))
-#define GST_IS_SUNAUDIO_SINK(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SUNAUDIO_SINK))
-#define GST_IS_SUNAUDIO_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SUNAUDIO_SINK))
-
-typedef struct _GstSunAudioSink GstSunAudioSink;
-typedef struct _GstSunAudioSinkClass GstSunAudioSinkClass;
-
-struct _GstSunAudioSink {
-  GstAudioSink    sink;
-
-  gchar *device;
-  gint   fd;
-
-  audio_device_t dev;
-  audio_info_t info;
-
-  /* Number of segments the ringbuffer is configured for */
-  guint segtotal;
-  guint segtotal_samples;
-
-  /* Number of segments written to the device */
-  gint segs_written;
-  /* Number of samples written to the device */
-  gint samples_written;
-  guint bytes_per_sample;
-
-  /* mutex and gcond used to control the write method */
-  GMutex *write_mutex;
-  GCond *sleep_cond;
-  gboolean flushing;
-};
-
-struct _GstSunAudioSinkClass {
-  GstAudioSinkClass parent_class;
-};
-
-GType gst_sunaudiosink_get_type(void);
-
-G_END_DECLS
-
-#endif /* __GST_SUNAUDIO_SINK_H__ */
-
diff --git a/sys/sunaudio/gstsunaudiosrc.c b/sys/sunaudio/gstsunaudiosrc.c
deleted file mode 100644
index 79cc4e9c5..000000000
--- a/sys/sunaudio/gstsunaudiosrc.c
+++ /dev/null
@@ -1,421 +0,0 @@
-/*
- * GStreamer - SunAudio source
- * Copyright (C) 2005,2006 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.com>
- *
- * gstsunaudiosrc.c: 
- *
- * 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-sunaudiosrc
- *
- * sunaudiosrc is an audio source designed to work with the Sun Audio
- * interface available in Solaris.
- *
- * <refsect2>
- * <title>Example launch line</title>
- * |[
- * gst-launch-1.0 sunaudiosrc ! wavenc ! filesink location=audio.wav
- * ]|
- * </refsect2>
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <fcntl.h>
-#include <string.h>
-#include <unistd.h>
-#include <stropts.h>
-#include <sys/mixer.h>
-
-#include "gstsunaudiosrc.h"
-
-GST_DEBUG_CATEGORY_EXTERN (sunaudio_debug);
-#define GST_CAT_DEFAULT sunaudio_debug
-
-static void gst_sunaudiosrc_base_init (gpointer g_class);
-static void gst_sunaudiosrc_class_init (GstSunAudioSrcClass * klass);
-static void gst_sunaudiosrc_init (GstSunAudioSrc * sunaudiosrc,
-    GstSunAudioSrcClass * g_class);
-static void gst_sunaudiosrc_dispose (GObject * object);
-
-static void gst_sunaudiosrc_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec);
-static void gst_sunaudiosrc_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * pspec);
-
-static GstCaps *gst_sunaudiosrc_getcaps (GstBaseSrc * bsrc);
-
-static gboolean gst_sunaudiosrc_open (GstAudioSrc * asrc);
-static gboolean gst_sunaudiosrc_close (GstAudioSrc * asrc);
-static gboolean gst_sunaudiosrc_prepare (GstAudioSrc * asrc,
-    GstRingBufferSpec * spec);
-static gboolean gst_sunaudiosrc_unprepare (GstAudioSrc * asrc);
-static guint gst_sunaudiosrc_read (GstAudioSrc * asrc, gpointer data,
-    guint length);
-static guint gst_sunaudiosrc_delay (GstAudioSrc * asrc);
-static void gst_sunaudiosrc_reset (GstAudioSrc * asrc);
-
-#define DEFAULT_DEVICE          "/dev/audio"
-
-enum
-{
-  PROP_0,
-  PROP_DEVICE
-};
-
-GST_BOILERPLATE_WITH_INTERFACE (GstSunAudioSrc, gst_sunaudiosrc,
-    GstAudioSrc, GST_TYPE_AUDIO_SRC, GstMixer, GST_TYPE_MIXER, gst_sunaudiosrc);
-
-GST_IMPLEMENT_SUNAUDIO_MIXER_CTRL_METHODS (GstSunAudioSrc, gst_sunaudiosrc);
-
-static GstStaticPadTemplate gst_sunaudiosrc_factory =
-GST_STATIC_PAD_TEMPLATE ("src",
-    GST_PAD_SRC,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw-int, "
-        "endianness = (int) BYTE_ORDER, "
-        "signed = (boolean) TRUE, " "width = (int) 16, " "depth = (int) 16, "
-        /* [5510,48000] seems to be a Solaris limit */
-        "rate = (int) [ 5510, 48000 ], " "channels = (int) [ 1, 2 ]")
-    );
-
-static void
-gst_sunaudiosrc_dispose (GObject * object)
-{
-  G_OBJECT_CLASS (parent_class)->dispose (object);
-}
-
-static void
-gst_sunaudiosrc_base_init (gpointer g_class)
-{
-  GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
-
-  gst_element_class_add_static_pad_template (element_class,
-      &gst_sunaudiosrc_factory);
-  gst_element_class_set_static_metadata (element_class, "Sun Audio Source",
-      "Source/Audio", "Audio source for Sun Audio devices",
-      "Brian Cameron <brian.cameron@sun.com>");
-}
-
-static void
-gst_sunaudiosrc_class_init (GstSunAudioSrcClass * klass)
-{
-  GObjectClass *gobject_class;
-  GstElementClass *gstelement_class;
-  GstBaseSrcClass *gstbasesrc_class;
-  GstBaseAudioSrcClass *gstbaseaudiosrc_class;
-  GstAudioSrcClass *gstaudiosrc_class;
-
-  gobject_class = (GObjectClass *) klass;
-  gstelement_class = (GstElementClass *) klass;
-  gstbasesrc_class = (GstBaseSrcClass *) klass;
-  gstbaseaudiosrc_class = (GstBaseAudioSrcClass *) klass;
-  gstaudiosrc_class = (GstAudioSrcClass *) klass;
-
-  gobject_class->dispose = gst_sunaudiosrc_dispose;
-  gobject_class->get_property = gst_sunaudiosrc_get_property;
-  gobject_class->set_property = gst_sunaudiosrc_set_property;
-
-  gstbasesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_sunaudiosrc_getcaps);
-
-  gstaudiosrc_class->open = GST_DEBUG_FUNCPTR (gst_sunaudiosrc_open);
-  gstaudiosrc_class->prepare = GST_DEBUG_FUNCPTR (gst_sunaudiosrc_prepare);
-  gstaudiosrc_class->unprepare = GST_DEBUG_FUNCPTR (gst_sunaudiosrc_unprepare);
-  gstaudiosrc_class->close = GST_DEBUG_FUNCPTR (gst_sunaudiosrc_close);
-  gstaudiosrc_class->read = GST_DEBUG_FUNCPTR (gst_sunaudiosrc_read);
-  gstaudiosrc_class->delay = GST_DEBUG_FUNCPTR (gst_sunaudiosrc_delay);
-  gstaudiosrc_class->reset = GST_DEBUG_FUNCPTR (gst_sunaudiosrc_reset);
-
-  g_object_class_install_property (gobject_class, PROP_DEVICE,
-      g_param_spec_string ("device", "Device",
-          "SunAudio device (usually /dev/audio)", DEFAULT_DEVICE,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-}
-
-static void
-gst_sunaudiosrc_init (GstSunAudioSrc * sunaudiosrc,
-    GstSunAudioSrcClass * g_class)
-{
-  const char *audiodev;
-
-  GST_DEBUG_OBJECT (sunaudiosrc, "initializing sunaudiosrc");
-
-  sunaudiosrc->fd = -1;
-
-  audiodev = g_getenv ("AUDIODEV");
-  if (audiodev == NULL)
-    audiodev = DEFAULT_DEVICE;
-  sunaudiosrc->device = g_strdup (audiodev);
-}
-
-static void
-gst_sunaudiosrc_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec)
-{
-  GstSunAudioSrc *sunaudiosrc;
-
-  sunaudiosrc = GST_SUNAUDIO_SRC (object);
-
-  switch (prop_id) {
-    case PROP_DEVICE:
-      g_free (sunaudiosrc->device);
-      sunaudiosrc->device = g_value_dup_string (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static void
-gst_sunaudiosrc_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * pspec)
-{
-  GstSunAudioSrc *sunaudiosrc;
-
-  sunaudiosrc = GST_SUNAUDIO_SRC (object);
-
-  switch (prop_id) {
-    case PROP_DEVICE:
-      g_value_set_string (value, sunaudiosrc->device);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static GstCaps *
-gst_sunaudiosrc_getcaps (GstBaseSrc * bsrc)
-{
-  GstPadTemplate *pad_template;
-  GstCaps *caps = NULL;
-  GstSunAudioSrc *sunaudiosrc = GST_SUNAUDIO_SRC (bsrc);
-
-  GST_DEBUG_OBJECT (sunaudiosrc, "getcaps called");
-
-  pad_template = gst_static_pad_template_get (&gst_sunaudiosrc_factory);
-  caps = gst_caps_copy (gst_pad_template_get_caps (pad_template));
-
-  gst_object_unref (pad_template);
-
-  return caps;
-}
-
-static gboolean
-gst_sunaudiosrc_open (GstAudioSrc * asrc)
-{
-  GstSunAudioSrc *sunaudiosrc = GST_SUNAUDIO_SRC (asrc);
-  int fd, ret;
-
-  fd = open (sunaudiosrc->device, O_RDONLY);
-
-  if (fd == -1) {
-    GST_ELEMENT_ERROR (sunaudiosrc, RESOURCE, OPEN_READ, (NULL),
-        ("can't open connection to Sun Audio device %s", sunaudiosrc->device));
-
-    return FALSE;
-  }
-
-  sunaudiosrc->fd = fd;
-
-  ret = ioctl (fd, AUDIO_GETDEV, &sunaudiosrc->dev);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosrc, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-    return FALSE;
-  }
-
-  GST_DEBUG_OBJECT (sunaudiosrc, "name %s", sunaudiosrc->dev.name);
-  GST_DEBUG_OBJECT (sunaudiosrc, "version %s", sunaudiosrc->dev.version);
-  GST_DEBUG_OBJECT (sunaudiosrc, "config %s", sunaudiosrc->dev.config);
-
-  ret = ioctl (fd, AUDIO_GETINFO, &sunaudiosrc->info);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosrc, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-    return FALSE;
-  }
-
-  GST_DEBUG_OBJECT (sunaudiosrc, "monitor_gain %d",
-      sunaudiosrc->info.monitor_gain);
-  GST_DEBUG_OBJECT (sunaudiosrc, "output_muted %d",
-      sunaudiosrc->info.output_muted);
-  GST_DEBUG_OBJECT (sunaudiosrc, "hw_features %08x",
-      sunaudiosrc->info.hw_features);
-  GST_DEBUG_OBJECT (sunaudiosrc, "sw_features %08x",
-      sunaudiosrc->info.sw_features);
-  GST_DEBUG_OBJECT (sunaudiosrc, "sw_features_enabled %08x",
-      sunaudiosrc->info.sw_features_enabled);
-
-  if (!sunaudiosrc->mixer) {
-    const char *audiodev;
-
-    audiodev = g_getenv ("AUDIODEV");
-    if (audiodev == NULL) {
-      sunaudiosrc->mixer = gst_sunaudiomixer_ctrl_new ("/dev/audioctl");
-    } else {
-      gchar *device = g_strdup_printf ("%sctl", audiodev);
-
-      sunaudiosrc->mixer = gst_sunaudiomixer_ctrl_new (device);
-      g_free (device);
-    }
-  }
-
-  return TRUE;
-}
-
-static gboolean
-gst_sunaudiosrc_close (GstAudioSrc * asrc)
-{
-  GstSunAudioSrc *sunaudiosrc = GST_SUNAUDIO_SRC (asrc);
-
-  close (sunaudiosrc->fd);
-  sunaudiosrc->fd = -1;
-
-  if (sunaudiosrc->mixer) {
-    gst_sunaudiomixer_ctrl_free (sunaudiosrc->mixer);
-    sunaudiosrc->mixer = NULL;
-  }
-
-  return TRUE;
-}
-
-static gboolean
-gst_sunaudiosrc_prepare (GstAudioSrc * asrc, GstRingBufferSpec * spec)
-{
-  GstSunAudioSrc *sunaudiosrc = GST_SUNAUDIO_SRC (asrc);
-  audio_info_t ainfo;
-  int ret;
-  GstSunAudioMixerCtrl *mixer;
-  struct audio_info audioinfo;
-
-  ret = ioctl (sunaudiosrc->fd, AUDIO_GETINFO, &ainfo);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosrc, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-    return FALSE;
-  }
-
-  if (spec->width != 16)
-    return FALSE;
-
-  AUDIO_INITINFO (&ainfo);
-
-  ainfo.record.sample_rate = spec->rate;
-  ainfo.record.precision = spec->width;
-  ainfo.record.channels = spec->channels;
-  ainfo.record.encoding = AUDIO_ENCODING_LINEAR;
-  ainfo.record.buffer_size = spec->buffer_time;
-
-  mixer = sunaudiosrc->mixer;
-
-  if (ioctl (mixer->mixer_fd, AUDIO_GETINFO, &audioinfo) < 0) {
-    g_warning ("Error getting audio device volume");
-  }
-  ainfo.record.port = audioinfo.record.port;
-  ainfo.record.gain = audioinfo.record.gain;
-  ainfo.record.balance = audioinfo.record.balance;
-
-  spec->segsize = 128;
-  spec->segtotal = spec->buffer_time / 128;
-
-  spec->silence_sample[0] = 0;
-  spec->silence_sample[1] = 0;
-  spec->silence_sample[2] = 0;
-  spec->silence_sample[3] = 0;
-
-  ret = ioctl (sunaudiosrc->fd, AUDIO_SETINFO, &ainfo);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosrc, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-    return FALSE;
-  }
-
-
-  ioctl (sunaudiosrc->fd, I_FLUSH, FLUSHR);
-
-  return TRUE;
-}
-
-static gboolean
-gst_sunaudiosrc_unprepare (GstAudioSrc * asrc)
-{
-  return TRUE;
-}
-
-static guint
-gst_sunaudiosrc_read (GstAudioSrc * asrc, gpointer data, guint length)
-{
-  return read (GST_SUNAUDIO_SRC (asrc)->fd, data, length);
-}
-
-static guint
-gst_sunaudiosrc_delay (GstAudioSrc * asrc)
-{
-  return 0;
-}
-
-static void
-gst_sunaudiosrc_reset (GstAudioSrc * asrc)
-{
-  /* Get current values */
-  GstSunAudioSrc *sunaudiosrc = GST_SUNAUDIO_SRC (asrc);
-  audio_info_t ainfo;
-  int ret;
-
-  ret = ioctl (sunaudiosrc->fd, AUDIO_GETINFO, &ainfo);
-  if (ret == -1) {
-    /*
-     * Should never happen, but if we couldn't getinfo, then no point
-     * trying to setinfo
-     */
-    GST_ELEMENT_ERROR (sunaudiosrc, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-    return;
-  }
-
-  /*
-   * Pause the audio - so audio stops playing immediately rather than
-   * waiting for the ringbuffer to empty.
-   */
-  ainfo.record.pause = !NULL;
-  ret = ioctl (sunaudiosrc->fd, AUDIO_SETINFO, &ainfo);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosrc, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-  }
-
-  /* Flush the audio */
-  ret = ioctl (sunaudiosrc->fd, I_FLUSH, FLUSHR);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosrc, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-  }
-
-  /* unpause the audio */
-  ainfo.record.pause = NULL;
-  ret = ioctl (sunaudiosrc->fd, AUDIO_SETINFO, &ainfo);
-  if (ret == -1) {
-    GST_ELEMENT_ERROR (sunaudiosrc, RESOURCE, SETTINGS, (NULL), ("%s",
-            strerror (errno)));
-  }
-}
diff --git a/sys/sunaudio/gstsunaudiosrc.h b/sys/sunaudio/gstsunaudiosrc.h
deleted file mode 100644
index e165f3be9..000000000
--- a/sys/sunaudio/gstsunaudiosrc.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* GStreamer - SunAudio source
- * Copyright (C) 2005,2006 Sun Microsystems, Inc.,
- *               Brian Cameron <brian.cameron@sun.com>
- *
- * gstsunaudiosrc.h:
- *
- * 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_SUNAUDIO_SRC_H__
-#define __GST_SUNAUDIO_SRC_H__
-
-#include <sys/audioio.h>
-#include <gst/gst.h>
-#include <gst/audio/gstaudiosrc.h>
-
-#include "gstsunaudiomixerctrl.h"
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_SUNAUDIO_SRC     (gst_sunaudiosrc_get_type())
-#define GST_SUNAUDIO_SRC(obj)     (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SUNAUDIO_SRC,GstSunAudioSrc))
-#define GST_SUNAUDIO_SRC_CLASS(klass)  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SUNAUDIO_SRC,GstSunAudioSrcClass))
-#define GST_IS_SUNAUDIO_SRC(obj)       (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SUNAUDIO_SRC))
-#define GST_IS_SUNAUDIO_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SUNAUDIO_SRC))
-
-typedef struct _GstSunAudioSrc GstSunAudioSrc;
-typedef struct _GstSunAudioSrcClass GstSunAudioSrcClass;
-
-struct _GstSunAudioSrc {
-  GstAudioSrc    src;
-
-  gchar *device;
-  gint   fd;
-  gint   control_fd;
-
-  audio_device_t dev;
-  audio_info_t info;
-
-  gint   bytes_per_sample;
-
-  GstSunAudioMixerCtrl *mixer;
-};
-
-struct _GstSunAudioSrcClass {
-  GstAudioSrcClass parent_class;
-};
-
-GType gst_sunaudiosrc_get_type(void);
-
-G_END_DECLS
-
-#endif /* __GST_SUNAUDIO_SRC_H__ */
-
diff --git a/sys/v4l2/Makefile.am b/sys/v4l2/Makefile.am
index 5ccea1a0e..3126c11ef 100644
--- a/sys/v4l2/Makefile.am
+++ b/sys/v4l2/Makefile.am
@@ -14,7 +14,13 @@ libgstvideo4linux2_la_SOURCES = gstv4l2.c \
 				gstv4l2tuner.c \
 				gstv4l2transform.c \
 				gstv4l2videodec.c \
+				gstv4l2videoenc.c \
+				gstv4l2h263enc.c \
+				gstv4l2h264enc.c \
+				gstv4l2mpeg4enc.c \
 				gstv4l2vidorient.c \
+				gstv4l2vp8enc.c \
+				gstv4l2vp9enc.c \
 				v4l2_calls.c \
 				v4l2-utils.c \
 				tuner.c \
@@ -29,7 +35,6 @@ libgstvideo4linux2_la_CFLAGS =   $(GST_PLUGINS_BASE_CFLAGS) \
 				 $(GUDEV_CFLAGS)
 
 libgstvideo4linux2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideo4linux2_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 libgstvideo4linux2_la_LIBADD =   $(GST_PLUGINS_BASE_LIBS) \
 				 -lgstallocators-$(GST_API_VERSION) \
 				 -lgstvideo-$(GST_API_VERSION) \
@@ -55,8 +60,13 @@ noinst_HEADERS = \
 	gstv4l2tuner.h \
 	gstv4l2transform.h \
 	gstv4l2videodec.h \
+	gstv4l2videoenc.h \
+	gstv4l2h263enc.h \
+	gstv4l2h264enc.h \
+	gstv4l2mpeg4enc.h \
 	gstv4l2vidorient.h \
-	v4l2_calls.h \
+	gstv4l2vp8enc.h \
+	gstv4l2vp9enc.h \
 	v4l2-utils.h \
 	tuner.h \
 	tunerchannel.h \
diff --git a/sys/v4l2/Makefile.in b/sys/v4l2/Makefile.in
index 88ecf68f6..4d9ef68a7 100644
--- a/sys/v4l2/Makefile.in
+++ b/sys/v4l2/Makefile.in
@@ -188,7 +188,13 @@ am_libgstvideo4linux2_la_OBJECTS = libgstvideo4linux2_la-gstv4l2.lo \
 	libgstvideo4linux2_la-gstv4l2tuner.lo \
 	libgstvideo4linux2_la-gstv4l2transform.lo \
 	libgstvideo4linux2_la-gstv4l2videodec.lo \
+	libgstvideo4linux2_la-gstv4l2videoenc.lo \
+	libgstvideo4linux2_la-gstv4l2h263enc.lo \
+	libgstvideo4linux2_la-gstv4l2h264enc.lo \
+	libgstvideo4linux2_la-gstv4l2mpeg4enc.lo \
 	libgstvideo4linux2_la-gstv4l2vidorient.lo \
+	libgstvideo4linux2_la-gstv4l2vp8enc.lo \
+	libgstvideo4linux2_la-gstv4l2vp9enc.lo \
 	libgstvideo4linux2_la-v4l2_calls.lo \
 	libgstvideo4linux2_la-v4l2-utils.lo \
 	libgstvideo4linux2_la-tuner.lo \
@@ -200,8 +206,8 @@ 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) \
+	$(AM_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@)
@@ -321,6 +327,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -344,6 +351,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -359,6 +368,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -381,10 +392,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -399,6 +417,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -416,6 +435,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -428,6 +449,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -446,6 +469,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -489,9 +515,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -505,11 +542,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -614,7 +656,13 @@ libgstvideo4linux2_la_SOURCES = gstv4l2.c \
 				gstv4l2tuner.c \
 				gstv4l2transform.c \
 				gstv4l2videodec.c \
+				gstv4l2videoenc.c \
+				gstv4l2h263enc.c \
+				gstv4l2h264enc.c \
+				gstv4l2mpeg4enc.c \
 				gstv4l2vidorient.c \
+				gstv4l2vp8enc.c \
+				gstv4l2vp9enc.c \
 				v4l2_calls.c \
 				v4l2-utils.c \
 				tuner.c \
@@ -629,7 +677,6 @@ libgstvideo4linux2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
 				 $(GUDEV_CFLAGS)
 
 libgstvideo4linux2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideo4linux2_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 libgstvideo4linux2_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 				 -lgstallocators-$(GST_API_VERSION) \
 				 -lgstvideo-$(GST_API_VERSION) \
@@ -655,8 +702,13 @@ noinst_HEADERS = \
 	gstv4l2tuner.h \
 	gstv4l2transform.h \
 	gstv4l2videodec.h \
+	gstv4l2videoenc.h \
+	gstv4l2h263enc.h \
+	gstv4l2h264enc.h \
+	gstv4l2mpeg4enc.h \
 	gstv4l2vidorient.h \
-	v4l2_calls.h \
+	gstv4l2vp8enc.h \
+	gstv4l2vp9enc.h \
 	v4l2-utils.h \
 	tuner.h \
 	tunerchannel.h \
@@ -746,6 +798,9 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2bufferpool.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2colorbalance.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2deviceprovider.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2h263enc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2h264enc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2mpeg4enc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2object.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2radio.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2sink.Plo@am__quote@
@@ -753,7 +808,10 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2transform.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2tuner.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2videodec.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2videoenc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2vidorient.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2vp8enc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2vp9enc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-tuner.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-tunerchannel.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-tunernorm.Plo@am__quote@
@@ -785,130 +843,172 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstvideo4linux2_la-gstv4l2.lo: gstv4l2.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2.Tpo -c -o libgstvideo4linux2_la-gstv4l2.lo `test -f 'gstv4l2.c' || echo '$(srcdir)/'`gstv4l2.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2.Tpo -c -o libgstvideo4linux2_la-gstv4l2.lo `test -f 'gstv4l2.c' || echo '$(srcdir)/'`gstv4l2.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2.c' object='libgstvideo4linux2_la-gstv4l2.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2.lo `test -f 'gstv4l2.c' || echo '$(srcdir)/'`gstv4l2.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2.lo `test -f 'gstv4l2.c' || echo '$(srcdir)/'`gstv4l2.c
 
 libgstvideo4linux2_la-gstv4l2allocator.lo: gstv4l2allocator.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2allocator.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2allocator.Tpo -c -o libgstvideo4linux2_la-gstv4l2allocator.lo `test -f 'gstv4l2allocator.c' || echo '$(srcdir)/'`gstv4l2allocator.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2allocator.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2allocator.Tpo -c -o libgstvideo4linux2_la-gstv4l2allocator.lo `test -f 'gstv4l2allocator.c' || echo '$(srcdir)/'`gstv4l2allocator.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2allocator.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2allocator.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2allocator.c' object='libgstvideo4linux2_la-gstv4l2allocator.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2allocator.lo `test -f 'gstv4l2allocator.c' || echo '$(srcdir)/'`gstv4l2allocator.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2allocator.lo `test -f 'gstv4l2allocator.c' || echo '$(srcdir)/'`gstv4l2allocator.c
 
 libgstvideo4linux2_la-gstv4l2colorbalance.lo: gstv4l2colorbalance.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2colorbalance.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2colorbalance.Tpo -c -o libgstvideo4linux2_la-gstv4l2colorbalance.lo `test -f 'gstv4l2colorbalance.c' || echo '$(srcdir)/'`gstv4l2colorbalance.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2colorbalance.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2colorbalance.Tpo -c -o libgstvideo4linux2_la-gstv4l2colorbalance.lo `test -f 'gstv4l2colorbalance.c' || echo '$(srcdir)/'`gstv4l2colorbalance.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2colorbalance.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2colorbalance.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2colorbalance.c' object='libgstvideo4linux2_la-gstv4l2colorbalance.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2colorbalance.lo `test -f 'gstv4l2colorbalance.c' || echo '$(srcdir)/'`gstv4l2colorbalance.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2colorbalance.lo `test -f 'gstv4l2colorbalance.c' || echo '$(srcdir)/'`gstv4l2colorbalance.c
 
 libgstvideo4linux2_la-gstv4l2deviceprovider.lo: gstv4l2deviceprovider.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2deviceprovider.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2deviceprovider.Tpo -c -o libgstvideo4linux2_la-gstv4l2deviceprovider.lo `test -f 'gstv4l2deviceprovider.c' || echo '$(srcdir)/'`gstv4l2deviceprovider.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2deviceprovider.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2deviceprovider.Tpo -c -o libgstvideo4linux2_la-gstv4l2deviceprovider.lo `test -f 'gstv4l2deviceprovider.c' || echo '$(srcdir)/'`gstv4l2deviceprovider.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2deviceprovider.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2deviceprovider.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2deviceprovider.c' object='libgstvideo4linux2_la-gstv4l2deviceprovider.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2deviceprovider.lo `test -f 'gstv4l2deviceprovider.c' || echo '$(srcdir)/'`gstv4l2deviceprovider.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2deviceprovider.lo `test -f 'gstv4l2deviceprovider.c' || echo '$(srcdir)/'`gstv4l2deviceprovider.c
 
 libgstvideo4linux2_la-gstv4l2object.lo: gstv4l2object.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2object.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2object.Tpo -c -o libgstvideo4linux2_la-gstv4l2object.lo `test -f 'gstv4l2object.c' || echo '$(srcdir)/'`gstv4l2object.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2object.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2object.Tpo -c -o libgstvideo4linux2_la-gstv4l2object.lo `test -f 'gstv4l2object.c' || echo '$(srcdir)/'`gstv4l2object.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2object.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2object.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2object.c' object='libgstvideo4linux2_la-gstv4l2object.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2object.lo `test -f 'gstv4l2object.c' || echo '$(srcdir)/'`gstv4l2object.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2object.lo `test -f 'gstv4l2object.c' || echo '$(srcdir)/'`gstv4l2object.c
 
 libgstvideo4linux2_la-gstv4l2bufferpool.lo: gstv4l2bufferpool.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2bufferpool.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2bufferpool.Tpo -c -o libgstvideo4linux2_la-gstv4l2bufferpool.lo `test -f 'gstv4l2bufferpool.c' || echo '$(srcdir)/'`gstv4l2bufferpool.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2bufferpool.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2bufferpool.Tpo -c -o libgstvideo4linux2_la-gstv4l2bufferpool.lo `test -f 'gstv4l2bufferpool.c' || echo '$(srcdir)/'`gstv4l2bufferpool.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2bufferpool.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2bufferpool.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2bufferpool.c' object='libgstvideo4linux2_la-gstv4l2bufferpool.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2bufferpool.lo `test -f 'gstv4l2bufferpool.c' || echo '$(srcdir)/'`gstv4l2bufferpool.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2bufferpool.lo `test -f 'gstv4l2bufferpool.c' || echo '$(srcdir)/'`gstv4l2bufferpool.c
 
 libgstvideo4linux2_la-gstv4l2sink.lo: gstv4l2sink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2sink.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2sink.Tpo -c -o libgstvideo4linux2_la-gstv4l2sink.lo `test -f 'gstv4l2sink.c' || echo '$(srcdir)/'`gstv4l2sink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2sink.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2sink.Tpo -c -o libgstvideo4linux2_la-gstv4l2sink.lo `test -f 'gstv4l2sink.c' || echo '$(srcdir)/'`gstv4l2sink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2sink.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2sink.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2sink.c' object='libgstvideo4linux2_la-gstv4l2sink.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2sink.lo `test -f 'gstv4l2sink.c' || echo '$(srcdir)/'`gstv4l2sink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2sink.lo `test -f 'gstv4l2sink.c' || echo '$(srcdir)/'`gstv4l2sink.c
 
 libgstvideo4linux2_la-gstv4l2src.lo: gstv4l2src.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2src.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2src.Tpo -c -o libgstvideo4linux2_la-gstv4l2src.lo `test -f 'gstv4l2src.c' || echo '$(srcdir)/'`gstv4l2src.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2src.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2src.Tpo -c -o libgstvideo4linux2_la-gstv4l2src.lo `test -f 'gstv4l2src.c' || echo '$(srcdir)/'`gstv4l2src.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2src.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2src.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2src.c' object='libgstvideo4linux2_la-gstv4l2src.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2src.lo `test -f 'gstv4l2src.c' || echo '$(srcdir)/'`gstv4l2src.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2src.lo `test -f 'gstv4l2src.c' || echo '$(srcdir)/'`gstv4l2src.c
 
 libgstvideo4linux2_la-gstv4l2radio.lo: gstv4l2radio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2radio.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2radio.Tpo -c -o libgstvideo4linux2_la-gstv4l2radio.lo `test -f 'gstv4l2radio.c' || echo '$(srcdir)/'`gstv4l2radio.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2radio.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2radio.Tpo -c -o libgstvideo4linux2_la-gstv4l2radio.lo `test -f 'gstv4l2radio.c' || echo '$(srcdir)/'`gstv4l2radio.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2radio.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2radio.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2radio.c' object='libgstvideo4linux2_la-gstv4l2radio.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2radio.lo `test -f 'gstv4l2radio.c' || echo '$(srcdir)/'`gstv4l2radio.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2radio.lo `test -f 'gstv4l2radio.c' || echo '$(srcdir)/'`gstv4l2radio.c
 
 libgstvideo4linux2_la-gstv4l2tuner.lo: gstv4l2tuner.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2tuner.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2tuner.Tpo -c -o libgstvideo4linux2_la-gstv4l2tuner.lo `test -f 'gstv4l2tuner.c' || echo '$(srcdir)/'`gstv4l2tuner.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2tuner.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2tuner.Tpo -c -o libgstvideo4linux2_la-gstv4l2tuner.lo `test -f 'gstv4l2tuner.c' || echo '$(srcdir)/'`gstv4l2tuner.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2tuner.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2tuner.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2tuner.c' object='libgstvideo4linux2_la-gstv4l2tuner.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2tuner.lo `test -f 'gstv4l2tuner.c' || echo '$(srcdir)/'`gstv4l2tuner.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2tuner.lo `test -f 'gstv4l2tuner.c' || echo '$(srcdir)/'`gstv4l2tuner.c
 
 libgstvideo4linux2_la-gstv4l2transform.lo: gstv4l2transform.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2transform.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2transform.Tpo -c -o libgstvideo4linux2_la-gstv4l2transform.lo `test -f 'gstv4l2transform.c' || echo '$(srcdir)/'`gstv4l2transform.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2transform.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2transform.Tpo -c -o libgstvideo4linux2_la-gstv4l2transform.lo `test -f 'gstv4l2transform.c' || echo '$(srcdir)/'`gstv4l2transform.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2transform.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2transform.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2transform.c' object='libgstvideo4linux2_la-gstv4l2transform.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2transform.lo `test -f 'gstv4l2transform.c' || echo '$(srcdir)/'`gstv4l2transform.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2transform.lo `test -f 'gstv4l2transform.c' || echo '$(srcdir)/'`gstv4l2transform.c
 
 libgstvideo4linux2_la-gstv4l2videodec.lo: gstv4l2videodec.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2videodec.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videodec.Tpo -c -o libgstvideo4linux2_la-gstv4l2videodec.lo `test -f 'gstv4l2videodec.c' || echo '$(srcdir)/'`gstv4l2videodec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2videodec.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videodec.Tpo -c -o libgstvideo4linux2_la-gstv4l2videodec.lo `test -f 'gstv4l2videodec.c' || echo '$(srcdir)/'`gstv4l2videodec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videodec.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videodec.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2videodec.c' object='libgstvideo4linux2_la-gstv4l2videodec.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2videodec.lo `test -f 'gstv4l2videodec.c' || echo '$(srcdir)/'`gstv4l2videodec.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2videodec.lo `test -f 'gstv4l2videodec.c' || echo '$(srcdir)/'`gstv4l2videodec.c
+
+libgstvideo4linux2_la-gstv4l2videoenc.lo: gstv4l2videoenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2videoenc.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videoenc.Tpo -c -o libgstvideo4linux2_la-gstv4l2videoenc.lo `test -f 'gstv4l2videoenc.c' || echo '$(srcdir)/'`gstv4l2videoenc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videoenc.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videoenc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2videoenc.c' object='libgstvideo4linux2_la-gstv4l2videoenc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2videoenc.lo `test -f 'gstv4l2videoenc.c' || echo '$(srcdir)/'`gstv4l2videoenc.c
+
+libgstvideo4linux2_la-gstv4l2h263enc.lo: gstv4l2h263enc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2h263enc.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2h263enc.Tpo -c -o libgstvideo4linux2_la-gstv4l2h263enc.lo `test -f 'gstv4l2h263enc.c' || echo '$(srcdir)/'`gstv4l2h263enc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2h263enc.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2h263enc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2h263enc.c' object='libgstvideo4linux2_la-gstv4l2h263enc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2h263enc.lo `test -f 'gstv4l2h263enc.c' || echo '$(srcdir)/'`gstv4l2h263enc.c
+
+libgstvideo4linux2_la-gstv4l2h264enc.lo: gstv4l2h264enc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2h264enc.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2h264enc.Tpo -c -o libgstvideo4linux2_la-gstv4l2h264enc.lo `test -f 'gstv4l2h264enc.c' || echo '$(srcdir)/'`gstv4l2h264enc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2h264enc.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2h264enc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2h264enc.c' object='libgstvideo4linux2_la-gstv4l2h264enc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2h264enc.lo `test -f 'gstv4l2h264enc.c' || echo '$(srcdir)/'`gstv4l2h264enc.c
+
+libgstvideo4linux2_la-gstv4l2mpeg4enc.lo: gstv4l2mpeg4enc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2mpeg4enc.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2mpeg4enc.Tpo -c -o libgstvideo4linux2_la-gstv4l2mpeg4enc.lo `test -f 'gstv4l2mpeg4enc.c' || echo '$(srcdir)/'`gstv4l2mpeg4enc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2mpeg4enc.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2mpeg4enc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2mpeg4enc.c' object='libgstvideo4linux2_la-gstv4l2mpeg4enc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2mpeg4enc.lo `test -f 'gstv4l2mpeg4enc.c' || echo '$(srcdir)/'`gstv4l2mpeg4enc.c
 
 libgstvideo4linux2_la-gstv4l2vidorient.lo: gstv4l2vidorient.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2vidorient.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vidorient.Tpo -c -o libgstvideo4linux2_la-gstv4l2vidorient.lo `test -f 'gstv4l2vidorient.c' || echo '$(srcdir)/'`gstv4l2vidorient.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2vidorient.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vidorient.Tpo -c -o libgstvideo4linux2_la-gstv4l2vidorient.lo `test -f 'gstv4l2vidorient.c' || echo '$(srcdir)/'`gstv4l2vidorient.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vidorient.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vidorient.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2vidorient.c' object='libgstvideo4linux2_la-gstv4l2vidorient.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2vidorient.lo `test -f 'gstv4l2vidorient.c' || echo '$(srcdir)/'`gstv4l2vidorient.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2vidorient.lo `test -f 'gstv4l2vidorient.c' || echo '$(srcdir)/'`gstv4l2vidorient.c
+
+libgstvideo4linux2_la-gstv4l2vp8enc.lo: gstv4l2vp8enc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2vp8enc.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vp8enc.Tpo -c -o libgstvideo4linux2_la-gstv4l2vp8enc.lo `test -f 'gstv4l2vp8enc.c' || echo '$(srcdir)/'`gstv4l2vp8enc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vp8enc.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vp8enc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2vp8enc.c' object='libgstvideo4linux2_la-gstv4l2vp8enc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2vp8enc.lo `test -f 'gstv4l2vp8enc.c' || echo '$(srcdir)/'`gstv4l2vp8enc.c
+
+libgstvideo4linux2_la-gstv4l2vp9enc.lo: gstv4l2vp9enc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2vp9enc.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vp9enc.Tpo -c -o libgstvideo4linux2_la-gstv4l2vp9enc.lo `test -f 'gstv4l2vp9enc.c' || echo '$(srcdir)/'`gstv4l2vp9enc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vp9enc.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vp9enc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstv4l2vp9enc.c' object='libgstvideo4linux2_la-gstv4l2vp9enc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2vp9enc.lo `test -f 'gstv4l2vp9enc.c' || echo '$(srcdir)/'`gstv4l2vp9enc.c
 
 libgstvideo4linux2_la-v4l2_calls.lo: v4l2_calls.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-v4l2_calls.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-v4l2_calls.Tpo -c -o libgstvideo4linux2_la-v4l2_calls.lo `test -f 'v4l2_calls.c' || echo '$(srcdir)/'`v4l2_calls.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-v4l2_calls.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-v4l2_calls.Tpo -c -o libgstvideo4linux2_la-v4l2_calls.lo `test -f 'v4l2_calls.c' || echo '$(srcdir)/'`v4l2_calls.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-v4l2_calls.Tpo $(DEPDIR)/libgstvideo4linux2_la-v4l2_calls.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='v4l2_calls.c' object='libgstvideo4linux2_la-v4l2_calls.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-v4l2_calls.lo `test -f 'v4l2_calls.c' || echo '$(srcdir)/'`v4l2_calls.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-v4l2_calls.lo `test -f 'v4l2_calls.c' || echo '$(srcdir)/'`v4l2_calls.c
 
 libgstvideo4linux2_la-v4l2-utils.lo: v4l2-utils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-v4l2-utils.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-v4l2-utils.Tpo -c -o libgstvideo4linux2_la-v4l2-utils.lo `test -f 'v4l2-utils.c' || echo '$(srcdir)/'`v4l2-utils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-v4l2-utils.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-v4l2-utils.Tpo -c -o libgstvideo4linux2_la-v4l2-utils.lo `test -f 'v4l2-utils.c' || echo '$(srcdir)/'`v4l2-utils.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-v4l2-utils.Tpo $(DEPDIR)/libgstvideo4linux2_la-v4l2-utils.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='v4l2-utils.c' object='libgstvideo4linux2_la-v4l2-utils.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-v4l2-utils.lo `test -f 'v4l2-utils.c' || echo '$(srcdir)/'`v4l2-utils.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-v4l2-utils.lo `test -f 'v4l2-utils.c' || echo '$(srcdir)/'`v4l2-utils.c
 
 libgstvideo4linux2_la-tuner.lo: tuner.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-tuner.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-tuner.Tpo -c -o libgstvideo4linux2_la-tuner.lo `test -f 'tuner.c' || echo '$(srcdir)/'`tuner.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-tuner.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-tuner.Tpo -c -o libgstvideo4linux2_la-tuner.lo `test -f 'tuner.c' || echo '$(srcdir)/'`tuner.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-tuner.Tpo $(DEPDIR)/libgstvideo4linux2_la-tuner.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tuner.c' object='libgstvideo4linux2_la-tuner.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-tuner.lo `test -f 'tuner.c' || echo '$(srcdir)/'`tuner.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-tuner.lo `test -f 'tuner.c' || echo '$(srcdir)/'`tuner.c
 
 libgstvideo4linux2_la-tunerchannel.lo: tunerchannel.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-tunerchannel.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-tunerchannel.Tpo -c -o libgstvideo4linux2_la-tunerchannel.lo `test -f 'tunerchannel.c' || echo '$(srcdir)/'`tunerchannel.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-tunerchannel.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-tunerchannel.Tpo -c -o libgstvideo4linux2_la-tunerchannel.lo `test -f 'tunerchannel.c' || echo '$(srcdir)/'`tunerchannel.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-tunerchannel.Tpo $(DEPDIR)/libgstvideo4linux2_la-tunerchannel.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tunerchannel.c' object='libgstvideo4linux2_la-tunerchannel.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-tunerchannel.lo `test -f 'tunerchannel.c' || echo '$(srcdir)/'`tunerchannel.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-tunerchannel.lo `test -f 'tunerchannel.c' || echo '$(srcdir)/'`tunerchannel.c
 
 libgstvideo4linux2_la-tunernorm.lo: tunernorm.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-tunernorm.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-tunernorm.Tpo -c -o libgstvideo4linux2_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-tunernorm.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-tunernorm.Tpo -c -o libgstvideo4linux2_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-tunernorm.Tpo $(DEPDIR)/libgstvideo4linux2_la-tunernorm.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tunernorm.c' object='libgstvideo4linux2_la-tunernorm.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/sys/v4l2/ext/types-compat.h b/sys/v4l2/ext/types-compat.h
index f1095cb06..0126d7e23 100644
--- a/sys/v4l2/ext/types-compat.h
+++ b/sys/v4l2/ext/types-compat.h
@@ -25,15 +25,20 @@
 #define __TYPES_COMPAT_H__
 
 /* From linux/types.h */
-#ifdef __CHECKER__
-#define __bitwise__ __attribute__((bitwise))
-#else
-#define __bitwise__
+#ifndef __bitwise__
+#  ifdef __CHECKER__
+#    define __bitwise__ __attribute__((bitwise))
+#  else
+#    define __bitwise__
+#  endif
 #endif
-#ifdef __CHECK_ENDIAN__
-#define __bitwise __bitwise__
-#else
-#define __bitwise
+
+#ifndef __bitwise
+#  ifdef __CHECK_ENDIAN__
+#    define __bitwise __bitwise__
+#  else
+#    define __bitwise
+#  endif
 #endif
 
 #define __u64 guint64
diff --git a/sys/v4l2/ext/v4l2-common.h b/sys/v4l2/ext/v4l2-common.h
index e2da59303..2a2c88ab1 100644
--- a/sys/v4l2/ext/v4l2-common.h
+++ b/sys/v4l2/ext/v4l2-common.h
@@ -10,19 +10,43 @@
  * Copyright (C) 2012 Nokia Corporation
  * Contact: Sakari Ailus <sakari.ailus@iki.fi>
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2 as published by the Free Software Foundation.
+ *  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 of the License, 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.
+ *  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, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
+ *  Alternatively you can redistribute this file under the terms of the
+ *  BSD license as stated below:
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *  1. Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *  2. Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in
+ *     the documentation and/or other materials provided with the
+ *     distribution.
+ *  3. The names of its contributors may not 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
+ *  OWNER 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/sys/v4l2/ext/v4l2-controls.h b/sys/v4l2/ext/v4l2-controls.h
index 9f6e108ff..31bfc68f8 100644
--- a/sys/v4l2/ext/v4l2-controls.h
+++ b/sys/v4l2/ext/v4l2-controls.h
@@ -158,8 +158,10 @@ enum v4l2_colorfx {
  * We reserve 16 controls for this driver. */
 #define V4L2_CID_USER_S2255_BASE		(V4L2_CID_USER_BASE + 0x1030)
 
-/* The base for the si476x driver controls. See include/media/si476x.h for the list
- * of controls. Total of 16 controls is reserved for this driver */
+/*
+ * The base for the si476x driver controls. See include/media/drv-intf/si476x.h
+ * for the list of controls. Total of 16 controls is reserved for this driver
+ */
 #define V4L2_CID_USER_SI476X_BASE		(V4L2_CID_USER_BASE + 0x1040)
 
 /* The base for the TI VPE driver controls. Total of 16 controls is reserved for
@@ -174,6 +176,19 @@ enum v4l2_colorfx {
  * We reserve 16 controls for this driver. */
 #define V4L2_CID_USER_ADV7180_BASE		(V4L2_CID_USER_BASE + 0x1070)
 
+/* The base for the tc358743 driver controls.
+ * We reserve 16 controls for this driver. */
+#define V4L2_CID_USER_TC358743_BASE		(V4L2_CID_USER_BASE + 0x1080)
+
+/* The base for the max217x driver controls.
+ * We reserve 32 controls for this driver
+ */
+#define V4L2_CID_USER_MAX217X_BASE		(V4L2_CID_USER_BASE + 0x1090)
+
+/* The base for the imx driver controls.
+ * We reserve 16 controls for this driver. */
+#define V4L2_CID_USER_IMX_BASE			(V4L2_CID_USER_BASE + 0x1090)
+
 /* MPEG-class control IDs */
 /* The MPEG controls are applicable to all codec controls
  * and the 'MPEG' part of the define is historical */
@@ -384,6 +399,7 @@ enum v4l2_mpeg_video_multi_slice_mode {
 #define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER		(V4L2_CID_MPEG_BASE+226)
 #define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE		(V4L2_CID_MPEG_BASE+227)
 #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE		(V4L2_CID_MPEG_BASE+228)
+#define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME		(V4L2_CID_MPEG_BASE+229)
 
 #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP		(V4L2_CID_MPEG_BASE+300)
 #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP		(V4L2_CID_MPEG_BASE+301)
@@ -885,7 +901,8 @@ enum v4l2_jpeg_chroma_subsampling {
 #define V4L2_CID_LINK_FREQ			(V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)
 #define V4L2_CID_PIXEL_RATE			(V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)
 #define V4L2_CID_TEST_PATTERN			(V4L2_CID_IMAGE_PROC_CLASS_BASE + 3)
-
+#define V4L2_CID_DEINTERLACING_MODE		(V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)
+#define V4L2_CID_DIGITAL_GAIN			(V4L2_CID_IMAGE_PROC_CLASS_BASE + 5)
 
 /*  DV-class control IDs defined by V4L2 */
 #define V4L2_CID_DV_CLASS_BASE			(V4L2_CTRL_CLASS_DV | 0x900)
@@ -906,8 +923,18 @@ enum v4l2_dv_rgb_range {
 	V4L2_DV_RGB_RANGE_FULL	  = 2,
 };
 
+#define V4L2_CID_DV_TX_IT_CONTENT_TYPE		(V4L2_CID_DV_CLASS_BASE + 6)
+enum v4l2_dv_it_content_type {
+	V4L2_DV_IT_CONTENT_TYPE_GRAPHICS  = 0,
+	V4L2_DV_IT_CONTENT_TYPE_PHOTO	  = 1,
+	V4L2_DV_IT_CONTENT_TYPE_CINEMA	  = 2,
+	V4L2_DV_IT_CONTENT_TYPE_GAME	  = 3,
+	V4L2_DV_IT_CONTENT_TYPE_NO_ITC	  = 4,
+};
+
 #define	V4L2_CID_DV_RX_POWER_PRESENT		(V4L2_CID_DV_CLASS_BASE + 100)
 #define V4L2_CID_DV_RX_RGB_RANGE		(V4L2_CID_DV_CLASS_BASE + 101)
+#define V4L2_CID_DV_RX_IT_CONTENT_TYPE		(V4L2_CID_DV_CLASS_BASE + 102)
 
 #define V4L2_CID_FM_RX_CLASS_BASE		(V4L2_CTRL_CLASS_FM_RX | 0x900)
 #define V4L2_CID_FM_RX_CLASS			(V4L2_CTRL_CLASS_FM_RX | 1)
@@ -932,6 +959,7 @@ enum v4l2_deemphasis {
 
 #define V4L2_CID_RF_TUNER_BANDWIDTH_AUTO	(V4L2_CID_RF_TUNER_CLASS_BASE + 11)
 #define V4L2_CID_RF_TUNER_BANDWIDTH		(V4L2_CID_RF_TUNER_CLASS_BASE + 12)
+#define V4L2_CID_RF_TUNER_RF_GAIN		(V4L2_CID_RF_TUNER_CLASS_BASE + 32)
 #define V4L2_CID_RF_TUNER_LNA_GAIN_AUTO		(V4L2_CID_RF_TUNER_CLASS_BASE + 41)
 #define V4L2_CID_RF_TUNER_LNA_GAIN		(V4L2_CID_RF_TUNER_CLASS_BASE + 42)
 #define V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO	(V4L2_CID_RF_TUNER_CLASS_BASE + 51)
diff --git a/sys/v4l2/ext/videodev2.h b/sys/v4l2/ext/videodev2.h
index 68e82be44..59e1f3df8 100644
--- a/sys/v4l2/ext/videodev2.h
+++ b/sys/v4l2/ext/videodev2.h
@@ -46,15 +46,15 @@
  * All kernel-specific stuff were moved to media/v4l2-dev.h, so
  * no #if __KERNEL tests are allowed here
  *
- *	See http://linuxtv.org for more info
+ *	See https://linuxtv.org for more info
  *
  *	Author: Bill Dirks <bill@thedirks.org>
  *		Justin Schoeman
  *              Hans Verkuil <hverkuil@xs4all.nl>
  *		et al.
  */
-#ifndef __LINUX_VIDEODEV2_H
-#define __LINUX_VIDEODEV2_H
+#ifndef _UAPI__LINUX_VIDEODEV2_H
+#define _UAPI__LINUX_VIDEODEV2_H
 
 #include <sys/time.h>
 #include <sys/ioctl.h>
@@ -136,13 +136,12 @@ enum v4l2_buf_type {
 	V4L2_BUF_TYPE_VBI_OUTPUT           = 5,
 	V4L2_BUF_TYPE_SLICED_VBI_CAPTURE   = 6,
 	V4L2_BUF_TYPE_SLICED_VBI_OUTPUT    = 7,
-#if 1
-	/* Experimental */
 	V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8,
-#endif
 	V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9,
 	V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE  = 10,
 	V4L2_BUF_TYPE_SDR_CAPTURE          = 11,
+	V4L2_BUF_TYPE_SDR_OUTPUT           = 12,
+	V4L2_BUF_TYPE_META_CAPTURE         = 13,
 	/* Deprecated, do not use */
 	V4L2_BUF_TYPE_PRIVATE              = 0x80,
 };
@@ -157,16 +156,20 @@ enum v4l2_buf_type {
 	 || (type) == V4L2_BUF_TYPE_VIDEO_OVERLAY		\
 	 || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY	\
 	 || (type) == V4L2_BUF_TYPE_VBI_OUTPUT			\
-	 || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT)
+	 || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT		\
+	 || (type) == V4L2_BUF_TYPE_SDR_OUTPUT)
 
 enum v4l2_tuner_type {
 	V4L2_TUNER_RADIO	     = 1,
 	V4L2_TUNER_ANALOG_TV	     = 2,
 	V4L2_TUNER_DIGITAL_TV	     = 3,
-	V4L2_TUNER_ADC               = 4,
+	V4L2_TUNER_SDR               = 4,
 	V4L2_TUNER_RF                = 5,
 };
 
+/* Deprecated, do not use */
+#define V4L2_TUNER_ADC  V4L2_TUNER_SDR
+
 enum v4l2_memory {
 	V4L2_MEMORY_MMAP             = 1,
 	V4L2_MEMORY_USERPTR          = 2,
@@ -227,6 +230,9 @@ enum v4l2_colorspace {
 
 	/* Raw colorspace: for RAW unprocessed images */
 	V4L2_COLORSPACE_RAW           = 11,
+
+	/* DCI-P3 colorspace, used by cinema projectors */
+	V4L2_COLORSPACE_DCI_P3        = 12,
 };
 
 /*
@@ -254,6 +260,8 @@ enum v4l2_xfer_func {
 	 * V4L2_COLORSPACE_SMPTE240M: V4L2_XFER_FUNC_SMPTE240M
 	 *
 	 * V4L2_COLORSPACE_RAW: V4L2_XFER_FUNC_NONE
+	 *
+	 * V4L2_COLORSPACE_DCI_P3: V4L2_XFER_FUNC_DCI_P3
 	 */
 	V4L2_XFER_FUNC_DEFAULT     = 0,
 	V4L2_XFER_FUNC_709         = 1,
@@ -261,6 +269,8 @@ enum v4l2_xfer_func {
 	V4L2_XFER_FUNC_ADOBERGB    = 3,
 	V4L2_XFER_FUNC_SMPTE240M   = 4,
 	V4L2_XFER_FUNC_NONE        = 5,
+	V4L2_XFER_FUNC_DCI_P3      = 6,
+	V4L2_XFER_FUNC_SMPTE2084   = 7,
 };
 
 /*
@@ -268,11 +278,12 @@ enum v4l2_xfer_func {
  * This depends on the colorspace.
  */
 #define V4L2_MAP_XFER_FUNC_DEFAULT(colsp) \
-	((colsp) == V4L2_XFER_FUNC_ADOBERGB ? V4L2_XFER_FUNC_ADOBERGB : \
+	((colsp) == V4L2_COLORSPACE_ADOBERGB ? V4L2_XFER_FUNC_ADOBERGB : \
 	 ((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_XFER_FUNC_SMPTE240M : \
-	  ((colsp) == V4L2_COLORSPACE_RAW ? V4L2_XFER_FUNC_NONE : \
-	   ((colsp) == V4L2_COLORSPACE_SRGB || (colsp) == V4L2_COLORSPACE_JPEG ? \
-	    V4L2_XFER_FUNC_SRGB : V4L2_XFER_FUNC_709))))
+	  ((colsp) == V4L2_COLORSPACE_DCI_P3 ? V4L2_XFER_FUNC_DCI_P3 : \
+	   ((colsp) == V4L2_COLORSPACE_RAW ? V4L2_XFER_FUNC_NONE : \
+	    ((colsp) == V4L2_COLORSPACE_SRGB || (colsp) == V4L2_COLORSPACE_JPEG ? \
+	     V4L2_XFER_FUNC_SRGB : V4L2_XFER_FUNC_709)))))
 
 enum v4l2_ycbcr_encoding {
 	/*
@@ -280,12 +291,10 @@ enum v4l2_ycbcr_encoding {
 	 * various colorspaces:
 	 *
 	 * V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_470_SYSTEM_M,
-	 * V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_ADOBERGB and
-	 * V4L2_COLORSPACE_JPEG: V4L2_YCBCR_ENC_601
+	 * V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_SRGB,
+	 * V4L2_COLORSPACE_ADOBERGB and V4L2_COLORSPACE_JPEG: V4L2_YCBCR_ENC_601
 	 *
-	 * V4L2_COLORSPACE_REC709: V4L2_YCBCR_ENC_709
-	 *
-	 * V4L2_COLORSPACE_SRGB: V4L2_YCBCR_ENC_SYCC
+	 * V4L2_COLORSPACE_REC709 and V4L2_COLORSPACE_DCI_P3: V4L2_YCBCR_ENC_709
 	 *
 	 * V4L2_COLORSPACE_BT2020: V4L2_YCBCR_ENC_BT2020
 	 *
@@ -305,8 +314,14 @@ enum v4l2_ycbcr_encoding {
 	/* Rec. 709/EN 61966-2-4 Extended Gamut -- HDTV */
 	V4L2_YCBCR_ENC_XV709          = 4,
 
-	/* sYCC (Y'CbCr encoding of sRGB) */
+#ifndef __KERNEL__
+	/*
+	 * sYCC (Y'CbCr encoding of sRGB), identical to ENC_601. It was added
+	 * originally due to a misunderstanding of the sYCC standard. It should
+	 * not be used, instead use V4L2_YCBCR_ENC_601.
+	 */
 	V4L2_YCBCR_ENC_SYCC           = 5,
+#endif
 
 	/* BT.2020 Non-constant Luminance Y'CbCr */
 	V4L2_YCBCR_ENC_BT2020         = 6,
@@ -318,12 +333,26 @@ enum v4l2_ycbcr_encoding {
 	V4L2_YCBCR_ENC_SMPTE240M      = 8,
 };
 
+/*
+ * enum v4l2_hsv_encoding values should not collide with the ones from
+ * enum v4l2_ycbcr_encoding.
+ */
+enum v4l2_hsv_encoding {
+
+	/* Hue mapped to 0 - 179 */
+	V4L2_HSV_ENC_180		= 128,
+
+	/* Hue mapped to 0-255 */
+	V4L2_HSV_ENC_256		= 129,
+};
+
 /*
  * Determine how YCBCR_ENC_DEFAULT should map to a proper Y'CbCr encoding.
  * This depends on the colorspace.
  */
 #define V4L2_MAP_YCBCR_ENC_DEFAULT(colsp) \
-	((colsp) == V4L2_COLORSPACE_REC709 ? V4L2_YCBCR_ENC_709 : \
+	(((colsp) == V4L2_COLORSPACE_REC709 || \
+	  (colsp) == V4L2_COLORSPACE_DCI_P3) ? V4L2_YCBCR_ENC_709 : \
 	 ((colsp) == V4L2_COLORSPACE_BT2020 ? V4L2_YCBCR_ENC_BT2020 : \
 	  ((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_YCBCR_ENC_SMPTE240M : \
 	   V4L2_YCBCR_ENC_601)))
@@ -332,8 +361,7 @@ enum v4l2_quantization {
 	/*
 	 * The default for R'G'B' quantization is always full range, except
 	 * for the BT2020 colorspace. For Y'CbCr the quantization is always
-	 * limited range, except for COLORSPACE_JPEG, SYCC, XV601 or XV709:
-	 * those are full range.
+	 * limited range, except for COLORSPACE_JPEG: this is full range.
 	 */
 	V4L2_QUANTIZATION_DEFAULT     = 0,
 	V4L2_QUANTIZATION_FULL_RANGE  = 1,
@@ -345,10 +373,10 @@ enum v4l2_quantization {
  * This depends on whether the image is RGB or not, the colorspace and the
  * Y'CbCr encoding.
  */
-#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb, colsp, ycbcr_enc) \
-	(((is_rgb) && (colsp) == V4L2_COLORSPACE_BT2020) ? V4L2_QUANTIZATION_LIM_RANGE : \
-	 (((is_rgb) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
-	  (ycbcr_enc) == V4L2_YCBCR_ENC_XV709 || (colsp) == V4L2_COLORSPACE_JPEG) ? \
+#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb_or_hsv, colsp, ycbcr_enc) \
+	(((is_rgb_or_hsv) && (colsp) == V4L2_COLORSPACE_BT2020) ? \
+	 V4L2_QUANTIZATION_LIM_RANGE : \
+	 (((is_rgb_or_hsv) || (colsp) == V4L2_COLORSPACE_JPEG) ? \
 	 V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE))
 
 enum v4l2_priority {
@@ -421,11 +449,15 @@ struct v4l2_capability {
 
 #define V4L2_CAP_SDR_CAPTURE		0x00100000  /* Is a SDR capture device */
 #define V4L2_CAP_EXT_PIX_FORMAT		0x00200000  /* Supports the extended pixel format */
+#define V4L2_CAP_SDR_OUTPUT		0x00400000  /* Is a SDR output device */
+#define V4L2_CAP_META_CAPTURE		0x00800000  /* Is a metadata capture device */
 
 #define V4L2_CAP_READWRITE              0x01000000  /* read/write systemcalls */
 #define V4L2_CAP_ASYNCIO                0x02000000  /* async I/O */
 #define V4L2_CAP_STREAMING              0x04000000  /* streaming I/O ioctls */
 
+#define V4L2_CAP_TOUCH                  0x10000000  /* Is a touch device */
+
 #define V4L2_CAP_DEVICE_CAPS            0x80000000  /* sets device capabilities field */
 
 /*
@@ -441,7 +473,12 @@ struct v4l2_pix_format {
 	__u32			colorspace;	/* enum v4l2_colorspace */
 	__u32			priv;		/* private data, depends on pixelformat */
 	__u32			flags;		/* format flags (V4L2_PIX_FMT_FLAG_*) */
-	__u32			ycbcr_enc;	/* enum v4l2_ycbcr_encoding */
+	union {
+		/* enum v4l2_ycbcr_encoding */
+		__u32			ycbcr_enc;
+		/* enum v4l2_hsv_encoding */
+		__u32			hsv_enc;
+	};
 	__u32			quantization;	/* enum v4l2_quantization */
 	__u32			xfer_func;	/* enum v4l2_xfer_func */
 };
@@ -490,22 +527,16 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_UV8     v4l2_fourcc('U', 'V', '8', ' ') /*  8  UV 4:4 */
 
 /* Luminance+Chrominance formats */
-#define V4L2_PIX_FMT_YVU410  v4l2_fourcc('Y', 'V', 'U', '9') /*  9  YVU 4:1:0     */
-#define V4L2_PIX_FMT_YVU420  v4l2_fourcc('Y', 'V', '1', '2') /* 12  YVU 4:2:0     */
 #define V4L2_PIX_FMT_YUYV    v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16  YUV 4:2:2     */
 #define V4L2_PIX_FMT_YYUV    v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16  YUV 4:2:2     */
 #define V4L2_PIX_FMT_YVYU    v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */
 #define V4L2_PIX_FMT_UYVY    v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16  YUV 4:2:2     */
 #define V4L2_PIX_FMT_VYUY    v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16  YUV 4:2:2     */
-#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16  YVU422 planar */
-#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16  YVU411 planar */
 #define V4L2_PIX_FMT_Y41P    v4l2_fourcc('Y', '4', '1', 'P') /* 12  YUV 4:1:1     */
 #define V4L2_PIX_FMT_YUV444  v4l2_fourcc('Y', '4', '4', '4') /* 16  xxxxyyyy uuuuvvvv */
 #define V4L2_PIX_FMT_YUV555  v4l2_fourcc('Y', 'U', 'V', 'O') /* 16  YUV-5-5-5     */
 #define V4L2_PIX_FMT_YUV565  v4l2_fourcc('Y', 'U', 'V', 'P') /* 16  YUV-5-6-5     */
 #define V4L2_PIX_FMT_YUV32   v4l2_fourcc('Y', 'U', 'V', '4') /* 32  YUV-8-8-8-8   */
-#define V4L2_PIX_FMT_YUV410  v4l2_fourcc('Y', 'U', 'V', '9') /*  9  YUV 4:1:0     */
-#define V4L2_PIX_FMT_YUV420  v4l2_fourcc('Y', 'U', '1', '2') /* 12  YUV 4:2:0     */
 #define V4L2_PIX_FMT_HI240   v4l2_fourcc('H', 'I', '2', '4') /*  8  8-bit color   */
 #define V4L2_PIX_FMT_HM12    v4l2_fourcc('H', 'M', '1', '2') /*  8  YUV 4:2:0 16x16 macroblocks */
 #define V4L2_PIX_FMT_M420    v4l2_fourcc('M', '4', '2', '0') /* 12  YUV 4:2:0 2 lines y, 1 line uv interleaved */
@@ -526,9 +557,21 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_NV12MT  v4l2_fourcc('T', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 64x32 macroblocks */
 #define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 macroblocks */
 
+/* three planes - Y Cb, Cr */
+#define V4L2_PIX_FMT_YUV410  v4l2_fourcc('Y', 'U', 'V', '9') /*  9  YUV 4:1:0     */
+#define V4L2_PIX_FMT_YVU410  v4l2_fourcc('Y', 'V', 'U', '9') /*  9  YVU 4:1:0     */
+#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 12  YVU411 planar */
+#define V4L2_PIX_FMT_YUV420  v4l2_fourcc('Y', 'U', '1', '2') /* 12  YUV 4:2:0     */
+#define V4L2_PIX_FMT_YVU420  v4l2_fourcc('Y', 'V', '1', '2') /* 12  YVU 4:2:0     */
+#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16  YVU422 planar */
+
 /* three non contiguous planes - Y, Cb, Cr */
 #define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12  YUV420 planar */
 #define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12  YVU420 planar */
+#define V4L2_PIX_FMT_YUV422M v4l2_fourcc('Y', 'M', '1', '6') /* 16  YUV422 planar */
+#define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1') /* 16  YVU422 planar */
+#define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4') /* 24  YUV444 planar */
+#define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2') /* 24  YVU444 planar */
 
 /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
 #define V4L2_PIX_FMT_SBGGR8  v4l2_fourcc('B', 'A', '8', '1') /*  8  BGBG.. GRGR.. */
@@ -559,6 +602,13 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12  GRGR.. BGBG.. */
 #define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12  RGRG.. GBGB.. */
 #define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16  BGBG.. GRGR.. */
+#define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16  GBGB.. RGRG.. */
+#define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16  GRGR.. BGBG.. */
+#define V4L2_PIX_FMT_SRGGB16 v4l2_fourcc('R', 'G', '1', '6') /* 16  RGRG.. GBGB.. */
+
+/* HSV formats */
+#define V4L2_PIX_FMT_HSV24 v4l2_fourcc('H', 'S', 'V', '3')
+#define V4L2_PIX_FMT_HSV32 v4l2_fourcc('H', 'S', 'V', '4')
 
 /* compressed formats */
 #define V4L2_PIX_FMT_MJPEG    v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG   */
@@ -576,6 +626,7 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */
 #define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */
 #define V4L2_PIX_FMT_VP8      v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
+#define V4L2_PIX_FMT_VP9      v4l2_fourcc('V', 'P', '9', '0') /* VP9 */
 
 /*  Vendor-specific formats   */
 #define V4L2_PIX_FMT_CPIA1    v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */
@@ -604,6 +655,11 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_JPGL	v4l2_fourcc('J', 'P', 'G', 'L') /* JPEG-Lite */
 #define V4L2_PIX_FMT_SE401      v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */
 #define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */
+#define V4L2_PIX_FMT_Y8I      v4l2_fourcc('Y', '8', 'I', ' ') /* Greyscale 8-bit L/R interleaved */
+#define V4L2_PIX_FMT_Y12I     v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */
+#define V4L2_PIX_FMT_Z16      v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */
+#define V4L2_PIX_FMT_MT21C    v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode  */
+#define V4L2_PIX_FMT_INZI     v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */
 
 /* SDR formats - used only for Software Defined Radio devices */
 #define V4L2_SDR_FMT_CU8          v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */
@@ -611,6 +667,19 @@ struct v4l2_pix_format {
 #define V4L2_SDR_FMT_CS8          v4l2_fourcc('C', 'S', '0', '8') /* complex s8 */
 #define V4L2_SDR_FMT_CS14LE       v4l2_fourcc('C', 'S', '1', '4') /* complex s14le */
 #define V4L2_SDR_FMT_RU12LE       v4l2_fourcc('R', 'U', '1', '2') /* real u12le */
+#define V4L2_SDR_FMT_PCU16BE	  v4l2_fourcc('P', 'C', '1', '6') /* planar complex u16be */
+#define V4L2_SDR_FMT_PCU18BE	  v4l2_fourcc('P', 'C', '1', '8') /* planar complex u18be */
+#define V4L2_SDR_FMT_PCU20BE	  v4l2_fourcc('P', 'C', '2', '0') /* planar complex u20be */
+
+/* Touch formats - used for Touch devices */
+#define V4L2_TCH_FMT_DELTA_TD16	v4l2_fourcc('T', 'D', '1', '6') /* 16-bit signed deltas */
+#define V4L2_TCH_FMT_DELTA_TD08	v4l2_fourcc('T', 'D', '0', '8') /* 8-bit signed deltas */
+#define V4L2_TCH_FMT_TU16	v4l2_fourcc('T', 'U', '1', '6') /* 16-bit unsigned touch data */
+#define V4L2_TCH_FMT_TU08	v4l2_fourcc('T', 'U', '0', '8') /* 8-bit unsigned touch data */
+
+/* Meta-data formats */
+#define V4L2_META_FMT_VSP1_HGO    v4l2_fourcc('V', 'S', 'P', 'H') /* R-Car VSP1 1-D Histogram */
+#define V4L2_META_FMT_VSP1_HGT    v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */
 
 /* priv field value to indicates that subsequent fields are valid. */
 #define V4L2_PIX_FMT_PRIV_MAGIC		0xfeedcafe
@@ -633,8 +702,7 @@ struct v4l2_fmtdesc {
 #define V4L2_FMT_FLAG_COMPRESSED 0x0001
 #define V4L2_FMT_FLAG_EMULATED   0x0002
 
-#if 1
-	/* Experimental Frame Size and frame rate enumeration */
+	/* Frame Size and frame rate enumeration */
 /*
  *	F R A M E   S I Z E   E N U M E R A T I O N
  */
@@ -700,7 +768,6 @@ struct v4l2_frmivalenum {
 
 	__u32	reserved[2];			/* Reserved space for future use */
 };
-#endif
 
 /*
  *	T I M E C O D E
@@ -1195,6 +1262,9 @@ struct v4l2_standard {
  *		(aka field 2) of interlaced field formats
  * @standards:	Standards the timing belongs to
  * @flags:	Flags
+ * @picture_aspect: The picture aspect ratio (hor/vert).
+ * @cea861_vic:	VIC code as per the CEA-861 standard.
+ * @hdmi_vic:	VIC code as per the HDMI standard.
  * @reserved:	Reserved fields, must be zeroed.
  *
  * A note regarding vertical interlaced timings: height refers to the total
@@ -1224,7 +1294,10 @@ struct v4l2_bt_timings {
 	__u32	il_vbackporch;
 	__u32	standards;
 	__u32	flags;
-	__u32	reserved[14];
+	struct v4l2_fract picture_aspect;
+	__u8	cea861_vic;
+	__u8	hdmi_vic;
+	__u8	reserved[46];
 } __attribute__ ((packed));
 
 /* Interlaced or progressive format */
@@ -1240,37 +1313,70 @@ struct v4l2_bt_timings {
 #define V4L2_DV_BT_STD_DMT	(1 << 1)  /* VESA Discrete Monitor Timings */
 #define V4L2_DV_BT_STD_CVT	(1 << 2)  /* VESA Coordinated Video Timings */
 #define V4L2_DV_BT_STD_GTF	(1 << 3)  /* VESA Generalized Timings Formula */
+#define V4L2_DV_BT_STD_SDI	(1 << 4)  /* SDI Timings */
 
 /* Flags */
 
-/* CVT/GTF specific: timing uses reduced blanking (CVT) or the 'Secondary
-   GTF' curve (GTF). In both cases the horizontal and/or vertical blanking
-   intervals are reduced, allowing a higher resolution over the same
-   bandwidth. This is a read-only flag. */
+/*
+ * CVT/GTF specific: timing uses reduced blanking (CVT) or the 'Secondary
+ * GTF' curve (GTF). In both cases the horizontal and/or vertical blanking
+ * intervals are reduced, allowing a higher resolution over the same
+ * bandwidth. This is a read-only flag.
+ */
 #define V4L2_DV_FL_REDUCED_BLANKING		(1 << 0)
-/* CEA-861 specific: set for CEA-861 formats with a framerate of a multiple
-   of six. These formats can be optionally played at 1 / 1.001 speed.
-   This is a read-only flag. */
+/*
+ * CEA-861 specific: set for CEA-861 formats with a framerate of a multiple
+ * of six. These formats can be optionally played at 1 / 1.001 speed.
+ * This is a read-only flag.
+ */
 #define V4L2_DV_FL_CAN_REDUCE_FPS		(1 << 1)
-/* CEA-861 specific: only valid for video transmitters, the flag is cleared
-   by receivers.
-   If the framerate of the format is a multiple of six, then the pixelclock
-   used to set up the transmitter is divided by 1.001 to make it compatible
-   with 60 Hz based standards such as NTSC and PAL-M that use a framerate of
-   29.97 Hz. Otherwise this flag is cleared. If the transmitter can't generate
-   such frequencies, then the flag will also be cleared. */
+/*
+ * CEA-861 specific: only valid for video transmitters, the flag is cleared
+ * by receivers.
+ * If the framerate of the format is a multiple of six, then the pixelclock
+ * used to set up the transmitter is divided by 1.001 to make it compatible
+ * with 60 Hz based standards such as NTSC and PAL-M that use a framerate of
+ * 29.97 Hz. Otherwise this flag is cleared. If the transmitter can't generate
+ * such frequencies, then the flag will also be cleared.
+ */
 #define V4L2_DV_FL_REDUCED_FPS			(1 << 2)
-/* Specific to interlaced formats: if set, then field 1 is really one half-line
-   longer and field 2 is really one half-line shorter, so each field has
-   exactly the same number of half-lines. Whether half-lines can be detected
-   or used depends on the hardware. */
+/*
+ * Specific to interlaced formats: if set, then field 1 is really one half-line
+ * longer and field 2 is really one half-line shorter, so each field has
+ * exactly the same number of half-lines. Whether half-lines can be detected
+ * or used depends on the hardware.
+ */
 #define V4L2_DV_FL_HALF_LINE			(1 << 3)
-/* If set, then this is a Consumer Electronics (CE) video format. Such formats
+/*
+ * If set, then this is a Consumer Electronics (CE) video format. Such formats
  * differ from other formats (commonly called IT formats) in that if RGB
  * encoding is used then by default the RGB values use limited range (i.e.
  * use the range 16-235) as opposed to 0-255. All formats defined in CEA-861
- * except for the 640x480 format are CE formats. */
+ * except for the 640x480 format are CE formats.
+ */
 #define V4L2_DV_FL_IS_CE_VIDEO			(1 << 4)
+/* Some formats like SMPTE-125M have an interlaced signal with a odd
+ * total height. For these formats, if this flag is set, the first
+ * field has the extra line. If not, it is the second field.
+ */
+#define V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE	(1 << 5)
+/*
+ * If set, then the picture_aspect field is valid. Otherwise assume that the
+ * pixels are square, so the picture aspect ratio is the same as the width to
+ * height ratio.
+ */
+#define V4L2_DV_FL_HAS_PICTURE_ASPECT		(1 << 6)
+/*
+ * If set, then the cea861_vic field is valid and contains the Video
+ * Identification Code as per the CEA-861 standard.
+ */
+#define V4L2_DV_FL_HAS_CEA861_VIC		(1 << 7)
+/*
+ * If set, then the hdmi_vic field is valid and contains the Video
+ * Identification Code as per the HDMI standard (HDMI Vendor Specific
+ * InfoFrame).
+ */
+#define V4L2_DV_FL_HAS_HDMI_VIC			(1 << 8)
 
 /* A few useful defines to calculate the total blanking and frame sizes */
 #define V4L2_DV_BT_BLANKING_WIDTH(bt) \
@@ -1380,6 +1486,7 @@ struct v4l2_input {
 /*  Values for the 'type' field */
 #define V4L2_INPUT_TYPE_TUNER		1
 #define V4L2_INPUT_TYPE_CAMERA		2
+#define V4L2_INPUT_TYPE_TOUCH		3
 
 /* field 'status' - general */
 #define V4L2_IN_ST_NO_POWER    0x00000001  /* Attached device is off */
@@ -1394,6 +1501,8 @@ struct v4l2_input {
 /* field 'status' - analog */
 #define V4L2_IN_ST_NO_H_LOCK   0x00000100  /* No horizontal sync lock */
 #define V4L2_IN_ST_COLOR_KILL  0x00000200  /* Color killer is active */
+#define V4L2_IN_ST_NO_V_LOCK   0x00000400  /* No vertical sync lock */
+#define V4L2_IN_ST_NO_STD_LOCK 0x00000800  /* No standard format lock */
 
 /* field 'status' - digital */
 #define V4L2_IN_ST_NO_SYNC     0x00010000  /* No synchronization lock */
@@ -1459,7 +1568,12 @@ struct v4l2_ext_control {
 } __attribute__ ((packed));
 
 struct v4l2_ext_controls {
-	__u32 ctrl_class;
+	union {
+#ifndef __KERNEL__
+		__u32 ctrl_class;
+#endif
+		__u32 which;
+	};
 	__u32 count;
 	__u32 error_idx;
 	__u32 reserved[2];
@@ -1467,9 +1581,14 @@ struct v4l2_ext_controls {
 };
 
 #define V4L2_CTRL_ID_MASK      	  (0x0fffffff)
+#ifndef __KERNEL__
 #define V4L2_CTRL_ID2CLASS(id)    ((id) & 0x0fff0000UL)
+#endif
+#define V4L2_CTRL_ID2WHICH(id)    ((id) & 0x0fff0000UL)
 #define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000)
 #define V4L2_CTRL_MAX_DIMS	  (4)
+#define V4L2_CTRL_WHICH_CUR_VAL   0
+#define V4L2_CTRL_WHICH_DEF_VAL   0x0f000000
 
 enum v4l2_ctrl_type {
 	V4L2_CTRL_TYPE_INTEGER	     = 1,
@@ -1541,6 +1660,7 @@ struct v4l2_querymenu {
 #define V4L2_CTRL_FLAG_VOLATILE		0x0080
 #define V4L2_CTRL_FLAG_HAS_PAYLOAD	0x0100
 #define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE	0x0200
+#define V4L2_CTRL_FLAG_MODIFY_LAYOUT	0x0400
 
 /*  Query flags, to be ORed with the control ID */
 #define V4L2_CTRL_FLAG_NEXT_CTRL	0x80000000
@@ -1576,7 +1696,8 @@ struct v4l2_modulator {
 	__u32			rangelow;
 	__u32			rangehigh;
 	__u32			txsubchans;
-	__u32			reserved[4];
+	__u32			type;	/* enum v4l2_tuner_type */
+	__u32			reserved[3];
 };
 
 /*  Flags for the 'capability' field */
@@ -1693,8 +1814,6 @@ struct v4l2_audioout {
 
 /*
  *	M P E G   S E R V I C E S
- *
- *	NOTE: EXPERIMENTAL API
  */
 #if 1
 #define V4L2_ENC_IDX_FRAME_I    (0)
@@ -1954,7 +2073,10 @@ struct v4l2_pix_format_mplane {
 	struct v4l2_plane_pix_format	plane_fmt[VIDEO_MAX_PLANES];
 	__u8				num_planes;
 	__u8				flags;
-	__u8				ycbcr_enc;
+	 union {
+		__u8				ycbcr_enc;
+		__u8				hsv_enc;
+	};
 	__u8				quantization;
 	__u8				xfer_func;
 	__u8				reserved[7];
@@ -1971,6 +2093,16 @@ struct v4l2_sdr_format {
 	__u8				reserved[24];
 } __attribute__ ((packed));
 
+/**
+ * struct v4l2_meta_format - metadata format definition
+ * @dataformat:		little endian four character code (fourcc)
+ * @buffersize:		maximum size in bytes required for data
+ */
+struct v4l2_meta_format {
+	__u32				dataformat;
+	__u32				buffersize;
+} __attribute__ ((packed));
+
 /**
  * struct v4l2_format - stream data format
  * @type:	enum v4l2_buf_type; type of the data stream
@@ -1990,6 +2122,7 @@ struct v4l2_format {
 		struct v4l2_vbi_format		vbi;     /* V4L2_BUF_TYPE_VBI_CAPTURE */
 		struct v4l2_sliced_vbi_format	sliced;  /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */
 		struct v4l2_sdr_format		sdr;     /* V4L2_BUF_TYPE_SDR_CAPTURE */
+		struct v4l2_meta_format		meta;    /* V4L2_BUF_TYPE_META_CAPTURE */
 		__u8	raw_data[200];                   /* user-defined */
 	} fmt;
 };
@@ -2224,53 +2357,42 @@ struct v4l2_create_buffers {
 #define VIDIOC_ENCODER_CMD      _IOWR('V', 77, struct v4l2_encoder_cmd)
 #define VIDIOC_TRY_ENCODER_CMD  _IOWR('V', 78, struct v4l2_encoder_cmd)
 
-/* Experimental, meant for debugging, testing and internal use.
-   Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.
-   You must be root to use these ioctls. Never use these in applications! */
+/*
+ * Experimental, meant for debugging, testing and internal use.
+ * Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.
+ * You must be root to use these ioctls. Never use these in applications!
+ */
 #define	VIDIOC_DBG_S_REGISTER 	 _IOW('V', 79, struct v4l2_dbg_register)
 #define	VIDIOC_DBG_G_REGISTER 	_IOWR('V', 80, struct v4l2_dbg_register)
 
 #define VIDIOC_S_HW_FREQ_SEEK	 _IOW('V', 82, struct v4l2_hw_freq_seek)
-
 #define	VIDIOC_S_DV_TIMINGS	_IOWR('V', 87, struct v4l2_dv_timings)
 #define	VIDIOC_G_DV_TIMINGS	_IOWR('V', 88, struct v4l2_dv_timings)
 #define	VIDIOC_DQEVENT		 _IOR('V', 89, struct v4l2_event)
 #define	VIDIOC_SUBSCRIBE_EVENT	 _IOW('V', 90, struct v4l2_event_subscription)
 #define	VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription)
-
-/* Experimental, the below two ioctls may change over the next couple of kernel
-   versions */
 #define VIDIOC_CREATE_BUFS	_IOWR('V', 92, struct v4l2_create_buffers)
 #define VIDIOC_PREPARE_BUF	_IOWR('V', 93, struct v4l2_buffer)
-
-/* Experimental selection API */
 #define VIDIOC_G_SELECTION	_IOWR('V', 94, struct v4l2_selection)
 #define VIDIOC_S_SELECTION	_IOWR('V', 95, struct v4l2_selection)
-
-/* Experimental, these two ioctls may change over the next couple of kernel
-   versions. */
 #define VIDIOC_DECODER_CMD	_IOWR('V', 96, struct v4l2_decoder_cmd)
 #define VIDIOC_TRY_DECODER_CMD	_IOWR('V', 97, struct v4l2_decoder_cmd)
-
-/* Experimental, these three ioctls may change over the next couple of kernel
-   versions. */
 #define VIDIOC_ENUM_DV_TIMINGS  _IOWR('V', 98, struct v4l2_enum_dv_timings)
 #define VIDIOC_QUERY_DV_TIMINGS  _IOR('V', 99, struct v4l2_dv_timings)
 #define VIDIOC_DV_TIMINGS_CAP   _IOWR('V', 100, struct v4l2_dv_timings_cap)
-
-/* Experimental, this ioctl may change over the next couple of kernel
-   versions. */
 #define VIDIOC_ENUM_FREQ_BANDS	_IOWR('V', 101, struct v4l2_frequency_band)
 
-/* Experimental, meant for debugging, testing and internal use.
-   Never use these in applications! */
+/*
+ * Experimental, meant for debugging, testing and internal use.
+ * Never use this in applications!
+ */
 #define VIDIOC_DBG_G_CHIP_INFO  _IOWR('V', 102, struct v4l2_dbg_chip_info)
 
 #define VIDIOC_QUERY_EXT_CTRL	_IOWR('V', 103, struct v4l2_query_ext_ctrl)
 
 /* Reminder: when adding new ioctls please add support for them to
-   drivers/media/video/v4l2-compat-ioctl32.c as well! */
+   drivers/media/v4l2-core/v4l2-compat-ioctl32.c as well! */
 
 #define BASE_VIDIOC_PRIVATE	192		/* 192-255 are private */
 
-#endif /* __LINUX_VIDEODEV2_H */
+#endif /* _UAPI__LINUX_VIDEODEV2_H */
diff --git a/sys/v4l2/gstv4l2.c b/sys/v4l2/gstv4l2.c
index 340b01b5e..07a2873b5 100644
--- a/sys/v4l2/gstv4l2.c
+++ b/sys/v4l2/gstv4l2.c
@@ -47,10 +47,15 @@
 #include "gstv4l2sink.h"
 #include "gstv4l2radio.h"
 #include "gstv4l2videodec.h"
+#include "gstv4l2h263enc.h"
+#include "gstv4l2h264enc.h"
+#include "gstv4l2mpeg4enc.h"
+#include "gstv4l2vp8enc.h"
+#include "gstv4l2vp9enc.h"
 #include "gstv4l2deviceprovider.h"
 #include "gstv4l2transform.h"
 
-/* used in v4l2_calls.c and v4l2src_calls.c */
+/* used in gstv4l2object.c and v4l2_calls.c */
 GST_DEBUG_CATEGORY (v4l2_debug);
 #define GST_CAT_DEFAULT v4l2_debug
 
@@ -118,7 +123,6 @@ gst_v4l2_probe_and_register (GstPlugin * plugin)
   GstV4l2Iterator *it;
   gint video_fd = -1;
   struct v4l2_capability vcap;
-  gboolean ret = TRUE;
   guint32 device_caps;
 
   it = gst_v4l2_iterator_new ();
@@ -182,20 +186,38 @@ gst_v4l2_probe_and_register (GstPlugin * plugin)
 
     basename = g_path_get_basename (it->device_path);
 
-    if (gst_v4l2_is_video_dec (sink_caps, src_caps))
-      ret = gst_v4l2_video_dec_register (plugin, basename, it->device_path,
+    if (gst_v4l2_is_video_dec (sink_caps, src_caps)) {
+      gst_v4l2_video_dec_register (plugin, basename, it->device_path,
           sink_caps, src_caps);
-    else if (gst_v4l2_is_transform (sink_caps, src_caps))
-      ret = gst_v4l2_transform_register (plugin, basename, it->device_path,
+    } else if (gst_v4l2_is_video_enc (sink_caps, src_caps, NULL)) {
+      if (gst_v4l2_is_h264_enc (sink_caps, src_caps))
+        gst_v4l2_h264_enc_register (plugin, basename, it->device_path,
+            sink_caps, src_caps);
+
+      if (gst_v4l2_is_mpeg4_enc (sink_caps, src_caps))
+        gst_v4l2_mpeg4_enc_register (plugin, basename, it->device_path,
+            sink_caps, src_caps);
+
+      if (gst_v4l2_is_h263_enc (sink_caps, src_caps))
+        gst_v4l2_h263_enc_register (plugin, basename, it->device_path,
+            sink_caps, src_caps);
+
+      if (gst_v4l2_is_vp8_enc (sink_caps, src_caps))
+        gst_v4l2_vp8_enc_register (plugin, basename, it->device_path,
+            sink_caps, src_caps);
+
+      if (gst_v4l2_is_vp9_enc (sink_caps, src_caps))
+        gst_v4l2_vp9_enc_register (plugin, basename, it->device_path,
+            sink_caps, src_caps);
+    } else if (gst_v4l2_is_transform (sink_caps, src_caps)) {
+      gst_v4l2_transform_register (plugin, basename, it->device_path,
           sink_caps, src_caps);
+    }
     /* else if ( ... etc. */
 
     gst_caps_unref (sink_caps);
     gst_caps_unref (src_caps);
     g_free (basename);
-
-    if (!ret)
-      break;
   }
 
   if (video_fd >= 0)
@@ -203,7 +225,7 @@ gst_v4l2_probe_and_register (GstPlugin * plugin)
 
   gst_v4l2_iterator_free (it);
 
-  return ret;
+  return TRUE;
 }
 #endif
 
diff --git a/sys/v4l2/gstv4l2allocator.c b/sys/v4l2/gstv4l2allocator.c
index 20473830a..34a581bcf 100644
--- a/sys/v4l2/gstv4l2allocator.c
+++ b/sys/v4l2/gstv4l2allocator.c
@@ -26,8 +26,9 @@
 #endif
 
 #include "ext/videodev2.h"
+
+#include "gstv4l2object.h"
 #include "gstv4l2allocator.h"
-#include "v4l2_calls.h"
 
 #include <gst/allocators/gstdmabuf.h>
 
@@ -36,6 +37,7 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <sys/mman.h>
+#include <unistd.h>
 
 #define GST_V4L2_MEMORY_TYPE "V4l2Memory"
 
@@ -240,9 +242,9 @@ gst_v4l2_memory_group_free (GstV4l2MemoryGroup * group)
 static GstV4l2MemoryGroup *
 gst_v4l2_memory_group_new (GstV4l2Allocator * allocator, guint32 index)
 {
-  gint video_fd = allocator->video_fd;
+  GstV4l2Object *obj = allocator->obj;
   guint32 memory = allocator->memory;
-  struct v4l2_format *format = &allocator->format;
+  struct v4l2_format *format = &obj->format;
   GstV4l2MemoryGroup *group;
   gsize img_size, buf_size;
 
@@ -259,7 +261,7 @@ gst_v4l2_memory_group_new (GstV4l2Allocator * allocator, guint32 index)
     group->n_mem = 1;
   }
 
-  if (v4l2_ioctl (video_fd, VIDIOC_QUERYBUF, &group->buffer) < 0)
+  if (obj->ioctl (obj->video_fd, VIDIOC_QUERYBUF, &group->buffer) < 0)
     goto querybuf_failed;
 
   if (group->buffer.index != index) {
@@ -272,17 +274,17 @@ gst_v4l2_memory_group_new (GstV4l2Allocator * allocator, guint32 index)
 
   /* Check that provided size matches the format we have negotiation. Failing
    * there usually means a driver of libv4l bug. */
-  if (V4L2_TYPE_IS_MULTIPLANAR (allocator->type)) {
+  if (V4L2_TYPE_IS_MULTIPLANAR (obj->type)) {
     gint i;
 
     for (i = 0; i < group->n_mem; i++) {
-      img_size = allocator->format.fmt.pix_mp.plane_fmt[i].sizeimage;
+      img_size = obj->format.fmt.pix_mp.plane_fmt[i].sizeimage;
       buf_size = group->planes[i].length;
       if (buf_size < img_size)
         goto buffer_too_short;
     }
   } else {
-    img_size = allocator->format.fmt.pix.sizeimage;
+    img_size = obj->format.fmt.pix.sizeimage;
     buf_size = group->buffer.length;
     if (buf_size < img_size)
       goto buffer_too_short;
@@ -293,6 +295,7 @@ gst_v4l2_memory_group_new (GstV4l2Allocator * allocator, guint32 index)
   if (!V4L2_TYPE_IS_MULTIPLANAR (format->type)) {
     group->planes[0].bytesused = group->buffer.bytesused;
     group->planes[0].length = group->buffer.length;
+    group->planes[0].data_offset = 0;
     g_assert (sizeof (group->planes[0].m) == sizeof (group->buffer.m));
     memcpy (&group->planes[0].m, &group->buffer.m, sizeof (group->buffer.m));
   }
@@ -309,8 +312,10 @@ gst_v4l2_memory_group_new (GstV4l2Allocator * allocator, guint32 index)
   if (memory == V4L2_MEMORY_MMAP) {
     gint i;
     for (i = 0; i < group->n_mem; i++) {
-      GST_LOG_OBJECT (allocator, "  [%u] bytesused: %u, length: %u", i,
-          group->planes[i].bytesused, group->planes[i].length);
+      GST_LOG_OBJECT (allocator,
+          "  [%u] bytesused: %u, length: %u, offset: %u", i,
+          group->planes[i].bytesused, group->planes[i].length,
+          group->planes[i].data_offset);
       GST_LOG_OBJECT (allocator, "  [%u] MMAP offset:  %u", i,
           group->planes[i].m.mem_offset);
     }
@@ -377,6 +382,7 @@ static void
 gst_v4l2_allocator_free (GstAllocator * gallocator, GstMemory * gmem)
 {
   GstV4l2Allocator *allocator = (GstV4l2Allocator *) gallocator;
+  GstV4l2Object *obj = allocator->obj;
   GstV4l2Memory *mem = (GstV4l2Memory *) gmem;
   GstV4l2MemoryGroup *group = mem->group;
 
@@ -387,7 +393,7 @@ gst_v4l2_allocator_free (GstAllocator * gallocator, GstMemory * gmem)
 
     if (allocator->memory == V4L2_MEMORY_MMAP) {
       if (mem->data)
-        v4l2_munmap (mem->data, group->planes[mem->plane].length);
+        obj->munmap (mem->data, group->planes[mem->plane].length);
     }
 
     /* This apply for both mmap with expbuf, and dmabuf imported memory */
@@ -423,8 +429,8 @@ gst_v4l2_allocator_finalize (GObject * obj)
 
   GST_LOG_OBJECT (obj, "called");
 
-  v4l2_close (allocator->video_fd);
   gst_atomic_queue_unref (allocator->free_queue);
+  gst_object_unref (allocator->obj->element);
 
   G_OBJECT_CLASS (parent_class)->finalize (obj);
 }
@@ -477,22 +483,23 @@ static guint32
 gst_v4l2_allocator_probe (GstV4l2Allocator * allocator, guint32 memory,
     guint32 breq_flag, guint32 bcreate_flag)
 {
+  GstV4l2Object *obj = allocator->obj;
   struct v4l2_requestbuffers breq = { 0 };
   guint32 flags = 0;
 
-  breq.type = allocator->type;
+  breq.type = obj->type;
   breq.count = 0;
   breq.memory = memory;
 
-  if (v4l2_ioctl (allocator->video_fd, VIDIOC_REQBUFS, &breq) == 0) {
+  if (obj->ioctl (obj->video_fd, VIDIOC_REQBUFS, &breq) == 0) {
     struct v4l2_create_buffers bcreate = { 0 };
 
     flags |= breq_flag;
 
     bcreate.memory = memory;
-    bcreate.format = allocator->format;
+    bcreate.format = obj->format;
 
-    if ((v4l2_ioctl (allocator->video_fd, VIDIOC_CREATE_BUFS, &bcreate) == 0))
+    if ((obj->ioctl (obj->video_fd, VIDIOC_CREATE_BUFS, &bcreate) == 0))
       flags |= bcreate_flag;
   }
 
@@ -502,6 +509,7 @@ gst_v4l2_allocator_probe (GstV4l2Allocator * allocator, guint32 memory,
 static GstV4l2MemoryGroup *
 gst_v4l2_allocator_create_buf (GstV4l2Allocator * allocator)
 {
+  GstV4l2Object *obj = allocator->obj;
   struct v4l2_create_buffers bcreate = { 0 };
   GstV4l2MemoryGroup *group = NULL;
 
@@ -511,13 +519,13 @@ gst_v4l2_allocator_create_buf (GstV4l2Allocator * allocator)
     goto done;
 
   bcreate.memory = allocator->memory;
-  bcreate.format = allocator->format;
+  bcreate.format = obj->format;
   bcreate.count = 1;
 
   if (!allocator->can_allocate)
     goto done;
 
-  if (v4l2_ioctl (allocator->video_fd, VIDIOC_CREATE_BUFS, &bcreate) < 0)
+  if (obj->ioctl (obj->video_fd, VIDIOC_CREATE_BUFS, &bcreate) < 0)
     goto create_bufs_failed;
 
   if (allocator->groups[bcreate.index] != NULL)
@@ -576,35 +584,11 @@ static void
 gst_v4l2_allocator_reset_size (GstV4l2Allocator * allocator,
     GstV4l2MemoryGroup * group)
 {
-  gsize size;
-  gboolean imported = FALSE;
-
-  switch (allocator->memory) {
-    case V4L2_MEMORY_USERPTR:
-    case V4L2_MEMORY_DMABUF:
-      imported = TRUE;
-      break;
-  }
-
-  if (V4L2_TYPE_IS_MULTIPLANAR (allocator->type)) {
-    gint i;
-
-    for (i = 0; i < group->n_mem; i++) {
-      size = allocator->format.fmt.pix_mp.plane_fmt[i].sizeimage;
-
-      if (imported)
-        group->mem[i]->maxsize = size;
-
-      gst_memory_resize (group->mem[i], 0, size);
-    }
-
-  } else {
-    size = allocator->format.fmt.pix.sizeimage;
-
-    if (imported)
-      group->mem[0]->maxsize = size;
-
-    gst_memory_resize (group->mem[0], 0, size);
+  gint i;
+  for (i = 0; i < group->n_mem; i++) {
+    group->mem[i]->maxsize = group->planes[i].length;
+    group->mem[i]->offset = 0;
+    group->mem[i]->size = group->planes[i].length;
   }
 }
 
@@ -627,8 +611,7 @@ _cleanup_failed_alloc (GstV4l2Allocator * allocator, GstV4l2MemoryGroup * group)
 
 
 GstV4l2Allocator *
-gst_v4l2_allocator_new (GstObject * parent, gint video_fd,
-    struct v4l2_format *format)
+gst_v4l2_allocator_new (GstObject * parent, GstV4l2Object * v4l2object)
 {
   GstV4l2Allocator *allocator;
   guint32 flags = 0;
@@ -639,12 +622,14 @@ gst_v4l2_allocator_new (GstObject * parent, gint video_fd,
   g_free (parent_name);
 
   allocator = g_object_new (GST_TYPE_V4L2_ALLOCATOR, "name", name, NULL);
+  gst_object_ref_sink (allocator);
   g_free (name);
 
   /* Save everything */
-  allocator->video_fd = v4l2_dup (video_fd);
-  allocator->type = format->type;
-  allocator->format = *format;
+  allocator->obj = v4l2object;
+
+  /* Keep a ref on the elemnt so obj does not disapear */
+  gst_object_ref (allocator->obj->element);
 
   flags |= GST_V4L2_ALLOCATOR_PROBE (allocator, MMAP);
   flags |= GST_V4L2_ALLOCATOR_PROBE (allocator, USERPTR);
@@ -670,7 +655,8 @@ guint
 gst_v4l2_allocator_start (GstV4l2Allocator * allocator, guint32 count,
     guint32 memory)
 {
-  struct v4l2_requestbuffers breq = { count, allocator->type, memory };
+  GstV4l2Object *obj = allocator->obj;
+  struct v4l2_requestbuffers breq = { count, obj->type, memory };
   gboolean can_allocate;
   gint i;
 
@@ -681,7 +667,7 @@ gst_v4l2_allocator_start (GstV4l2Allocator * allocator, guint32 count,
   if (g_atomic_int_get (&allocator->active))
     goto already_active;
 
-  if (v4l2_ioctl (allocator->video_fd, VIDIOC_REQBUFS, &breq) < 0)
+  if (obj->ioctl (obj->video_fd, VIDIOC_REQBUFS, &breq) < 0)
     goto reqbufs_failed;
 
   if (breq.count < 1)
@@ -750,7 +736,8 @@ error:
 GstV4l2Return
 gst_v4l2_allocator_stop (GstV4l2Allocator * allocator)
 {
-  struct v4l2_requestbuffers breq = { 0, allocator->type, allocator->memory };
+  GstV4l2Object *obj = allocator->obj;
+  struct v4l2_requestbuffers breq = { 0, obj->type, allocator->memory };
   gint i = 0;
   GstV4l2Return ret = GST_V4L2_OK;
 
@@ -779,7 +766,7 @@ gst_v4l2_allocator_stop (GstV4l2Allocator * allocator)
   }
 
   /* Not all drivers support rebufs(0), so warn only */
-  if (v4l2_ioctl (allocator->video_fd, VIDIOC_REQBUFS, &breq) < 0)
+  if (obj->ioctl (obj->video_fd, VIDIOC_REQBUFS, &breq) < 0)
     GST_WARNING_OBJECT (allocator,
         "error releasing buffers buffers: %s", g_strerror (errno));
 
@@ -795,6 +782,7 @@ done:
 GstV4l2MemoryGroup *
 gst_v4l2_allocator_alloc_mmap (GstV4l2Allocator * allocator)
 {
+  GstV4l2Object *obj = allocator->obj;
   GstV4l2MemoryGroup *group;
   gint i;
 
@@ -808,8 +796,8 @@ gst_v4l2_allocator_alloc_mmap (GstV4l2Allocator * allocator)
   for (i = 0; i < group->n_mem; i++) {
     if (group->mem[i] == NULL) {
       gpointer data;
-      data = v4l2_mmap (NULL, group->planes[i].length, PROT_READ | PROT_WRITE,
-          MAP_SHARED, allocator->video_fd, group->planes[i].m.mem_offset);
+      data = obj->mmap (NULL, group->planes[i].length, PROT_READ | PROT_WRITE,
+          MAP_SHARED, obj->video_fd, group->planes[i].m.mem_offset);
 
       if (data == MAP_FAILED)
         goto mmap_failed;
@@ -819,8 +807,8 @@ gst_v4l2_allocator_alloc_mmap (GstV4l2Allocator * allocator)
           group->planes[i].length, group->planes[i].data_offset, i);
 
       group->mem[i] = (GstMemory *) _v4l2mem_new (0, GST_ALLOCATOR (allocator),
-          NULL, group->planes[i].length, 0, 0, group->planes[i].length, i,
-          data, -1, group);
+          NULL, group->planes[i].length, 0, 0, group->planes[i].length, i, data,
+          -1, group);
     } else {
       /* Take back the allocator reference */
       gst_object_ref (allocator);
@@ -850,6 +838,7 @@ GstV4l2MemoryGroup *
 gst_v4l2_allocator_alloc_dmabuf (GstV4l2Allocator * allocator,
     GstAllocator * dmabuf_allocator)
 {
+  GstV4l2Object *obj = allocator->obj;
   GstV4l2MemoryGroup *group;
   gint i;
 
@@ -868,25 +857,28 @@ gst_v4l2_allocator_alloc_dmabuf (GstV4l2Allocator * allocator,
     if (group->mem[i] == NULL) {
       struct v4l2_exportbuffer expbuf = { 0 };
 
-      expbuf.type = allocator->type;
+      expbuf.type = obj->type;
       expbuf.index = group->buffer.index;
       expbuf.plane = i;
       expbuf.flags = O_CLOEXEC | O_RDWR;
 
-      if (v4l2_ioctl (allocator->video_fd, VIDIOC_EXPBUF, &expbuf) < 0)
+      if (obj->ioctl (obj->video_fd, VIDIOC_EXPBUF, &expbuf) < 0)
         goto expbuf_failed;
 
       GST_LOG_OBJECT (allocator, "exported DMABUF as fd %i plane %d",
           expbuf.fd, i);
 
       group->mem[i] = (GstMemory *) _v4l2mem_new (0, GST_ALLOCATOR (allocator),
-          NULL, group->planes[i].length, 0, 0, group->planes[i].length, i,
-          NULL, expbuf.fd, group);
+          NULL, group->planes[i].length, 0, group->planes[i].data_offset,
+          group->planes[i].length - group->planes[i].data_offset, i, NULL,
+          expbuf.fd, group);
     } else {
       /* Take back the allocator reference */
       gst_object_ref (allocator);
     }
 
+    group->mems_allocated++;
+
     g_assert (gst_is_v4l2_memory (group->mem[i]));
     mem = (GstV4l2Memory *) group->mem[i];
 
@@ -894,13 +886,14 @@ gst_v4l2_allocator_alloc_dmabuf (GstV4l2Allocator * allocator,
       goto dup_failed;
 
     dma_mem = gst_dmabuf_allocator_alloc (dmabuf_allocator, dmafd,
-        mem->mem.maxsize);
+        group->planes[i].length);
+    gst_memory_resize (dma_mem, group->planes[i].data_offset,
+        group->planes[i].length - group->planes[i].data_offset);
 
     gst_mini_object_set_qdata (GST_MINI_OBJECT (dma_mem),
         GST_V4L2_MEMORY_QUARK, mem, (GDestroyNotify) gst_memory_unref);
 
     group->mem[i] = dma_mem;
-    group->mems_allocated++;
   }
 
   gst_v4l2_allocator_reset_size (allocator, group);
@@ -930,6 +923,7 @@ static void
 gst_v4l2_allocator_clear_dmabufin (GstV4l2Allocator * allocator,
     GstV4l2MemoryGroup * group)
 {
+  GstV4l2Object *obj = allocator->obj;
   GstV4l2Memory *mem;
   gint i;
 
@@ -958,7 +952,7 @@ gst_v4l2_allocator_clear_dmabufin (GstV4l2Allocator * allocator,
     group->planes[i].data_offset = 0;
   }
 
-  if (!V4L2_TYPE_IS_MULTIPLANAR (allocator->type)) {
+  if (!V4L2_TYPE_IS_MULTIPLANAR (obj->type)) {
     group->buffer.bytesused = 0;
     group->buffer.length = 0;
     group->buffer.m.fd = -1;
@@ -1001,6 +995,7 @@ static void
 gst_v4l2_allocator_clear_userptr (GstV4l2Allocator * allocator,
     GstV4l2MemoryGroup * group)
 {
+  GstV4l2Object *obj = allocator->obj;
   GstV4l2Memory *mem;
   gint i;
 
@@ -1021,7 +1016,7 @@ gst_v4l2_allocator_clear_userptr (GstV4l2Allocator * allocator,
     group->planes[i].m.userptr = 0;
   }
 
-  if (!V4L2_TYPE_IS_MULTIPLANAR (allocator->type)) {
+  if (!V4L2_TYPE_IS_MULTIPLANAR (obj->type)) {
     group->buffer.bytesused = 0;
     group->buffer.length = 0;
     group->buffer.m.userptr = 0;
@@ -1065,6 +1060,7 @@ gboolean
 gst_v4l2_allocator_import_dmabuf (GstV4l2Allocator * allocator,
     GstV4l2MemoryGroup * group, gint n_mem, GstMemory ** dma_mem)
 {
+  GstV4l2Object *obj = allocator->obj;
   GstV4l2Memory *mem;
   gint i;
 
@@ -1097,16 +1093,19 @@ gst_v4l2_allocator_import_dmabuf (GstV4l2Allocator * allocator,
 
     /* Update v4l2 structure */
     group->planes[i].length = maxsize;
-    group->planes[i].bytesused = size;
+    group->planes[i].bytesused = size + offset;
     group->planes[i].m.fd = dmafd;
     group->planes[i].data_offset = offset;
   }
 
   /* Copy into buffer structure if not using planes */
-  if (!V4L2_TYPE_IS_MULTIPLANAR (allocator->type)) {
+  if (!V4L2_TYPE_IS_MULTIPLANAR (obj->type)) {
     group->buffer.bytesused = group->planes[0].bytesused;
     group->buffer.length = group->planes[0].length;
     group->buffer.m.fd = group->planes[0].m.userptr;
+
+    /* FIXME Check if data_offset > 0 and fail for non-multi-planar */
+    g_assert (group->planes[0].data_offset == 0);
   } else {
     group->buffer.length = group->n_mem;
   }
@@ -1137,24 +1136,24 @@ gst_v4l2_allocator_import_userptr (GstV4l2Allocator * allocator,
     GstV4l2MemoryGroup * group, gsize img_size, int n_planes,
     gpointer * data, gsize * size)
 {
+  GstV4l2Object *obj = allocator->obj;
   GstV4l2Memory *mem;
   gint i;
 
   g_return_val_if_fail (allocator->memory == V4L2_MEMORY_USERPTR, FALSE);
 
   /* TODO Support passing N plane from 1 memory to MPLANE v4l2 format */
-  if (V4L2_TYPE_IS_MULTIPLANAR (allocator->type) && n_planes != group->n_mem)
+  if (V4L2_TYPE_IS_MULTIPLANAR (obj->type) && n_planes != group->n_mem)
     goto n_mem_missmatch;
 
   for (i = 0; i < group->n_mem; i++) {
     gsize maxsize, psize;
 
-    if (V4L2_TYPE_IS_MULTIPLANAR (allocator->type)) {
-      struct v4l2_pix_format_mplane *pix = &allocator->format.fmt.pix_mp;
-      maxsize = pix->plane_fmt[i].sizeimage;
+    if (V4L2_TYPE_IS_MULTIPLANAR (obj->type)) {
+      maxsize = group->planes[i].length;
       psize = size[i];
     } else {
-      maxsize = allocator->format.fmt.pix.sizeimage;
+      maxsize = group->planes[i].length;
       psize = img_size;
     }
 
@@ -1176,7 +1175,7 @@ gst_v4l2_allocator_import_userptr (GstV4l2Allocator * allocator,
   }
 
   /* Copy into buffer structure if not using planes */
-  if (!V4L2_TYPE_IS_MULTIPLANAR (allocator->type)) {
+  if (!V4L2_TYPE_IS_MULTIPLANAR (obj->type)) {
     group->buffer.bytesused = group->planes[0].bytesused;
     group->buffer.length = group->planes[0].length;
     group->buffer.m.userptr = group->planes[0].m.userptr;
@@ -1226,13 +1225,14 @@ gboolean
 gst_v4l2_allocator_qbuf (GstV4l2Allocator * allocator,
     GstV4l2MemoryGroup * group)
 {
+  GstV4l2Object *obj = allocator->obj;
   gboolean ret = TRUE;
   gint i;
 
   g_return_val_if_fail (g_atomic_int_get (&allocator->active), FALSE);
 
   /* update sizes */
-  if (V4L2_TYPE_IS_MULTIPLANAR (allocator->type)) {
+  if (V4L2_TYPE_IS_MULTIPLANAR (obj->type)) {
     for (i = 0; i < group->n_mem; i++)
       group->planes[i].bytesused =
           gst_memory_get_sizes (group->mem[i], NULL, NULL);
@@ -1244,7 +1244,7 @@ gst_v4l2_allocator_qbuf (GstV4l2Allocator * allocator,
   for (i = 0; i < group->n_mem; i++)
     gst_memory_ref (group->mem[i]);
 
-  if (v4l2_ioctl (allocator->video_fd, VIDIOC_QBUF, &group->buffer) < 0) {
+  if (obj->ioctl (obj->video_fd, VIDIOC_QBUF, &group->buffer) < 0) {
     GST_ERROR_OBJECT (allocator, "failed queueing buffer %i: %s",
         group->buffer.index, g_strerror (errno));
 
@@ -1278,6 +1278,7 @@ GstFlowReturn
 gst_v4l2_allocator_dqbuf (GstV4l2Allocator * allocator,
     GstV4l2MemoryGroup ** group_out)
 {
+  GstV4l2Object *obj = allocator->obj;
   struct v4l2_buffer buffer = { 0 };
   struct v4l2_plane planes[VIDEO_MAX_PLANES] = { {0} };
   gint i;
@@ -1286,15 +1287,15 @@ gst_v4l2_allocator_dqbuf (GstV4l2Allocator * allocator,
 
   g_return_val_if_fail (g_atomic_int_get (&allocator->active), GST_FLOW_ERROR);
 
-  buffer.type = allocator->type;
+  buffer.type = obj->type;
   buffer.memory = allocator->memory;
 
-  if (V4L2_TYPE_IS_MULTIPLANAR (allocator->type)) {
-    buffer.length = allocator->format.fmt.pix_mp.num_planes;
+  if (V4L2_TYPE_IS_MULTIPLANAR (obj->type)) {
+    buffer.length = obj->format.fmt.pix_mp.num_planes;
     buffer.m.planes = planes;
   }
 
-  if (v4l2_ioctl (allocator->video_fd, VIDIOC_DQBUF, &buffer) < 0)
+  if (obj->ioctl (obj->video_fd, VIDIOC_DQBUF, &buffer) < 0)
     goto error;
 
   group = allocator->groups[buffer.index];
@@ -1316,7 +1317,7 @@ gst_v4l2_allocator_dqbuf (GstV4l2Allocator * allocator,
     UNSET_QUEUED (group->buffer);
   }
 
-  if (V4L2_TYPE_IS_MULTIPLANAR (allocator->type)) {
+  if (V4L2_TYPE_IS_MULTIPLANAR (obj->type)) {
     group->buffer.m.planes = group->planes;
     memcpy (group->planes, buffer.m.planes, sizeof (planes));
   } else {
@@ -1327,19 +1328,38 @@ gst_v4l2_allocator_dqbuf (GstV4l2Allocator * allocator,
   }
 
   /* And update memory size */
-  if (V4L2_TYPE_IS_OUTPUT (allocator->type)) {
+  if (V4L2_TYPE_IS_OUTPUT (obj->type)) {
     gst_v4l2_allocator_reset_size (allocator, group);
   } else {
     /* for capture, simply read the size */
     for (i = 0; i < group->n_mem; i++) {
-      if (G_LIKELY (group->planes[i].bytesused <= group->mem[i]->maxsize))
-        gst_memory_resize (group->mem[i], 0, group->planes[i].bytesused);
+      gsize size, offset;
+
+      GST_LOG_OBJECT (allocator,
+          "Dequeued capture buffer, length: %u bytesused: %u data_offset: %u",
+          group->planes[i].length, group->planes[i].bytesused,
+          group->planes[i].data_offset);
+
+      offset = group->planes[i].data_offset;
+
+      if (group->planes[i].bytesused > group->planes[i].data_offset) {
+        size = group->planes[i].bytesused - group->planes[i].data_offset;
+      } else {
+        GST_WARNING_OBJECT (allocator, "V4L2 provided buffer has bytesused %"
+            G_GUINT32_FORMAT " which is too small to include data_offset %"
+            G_GUINT32_FORMAT, group->planes[i].bytesused,
+            group->planes[i].data_offset);
+        size = group->planes[i].bytesused;
+      }
+
+      if (G_LIKELY (size + offset <= group->mem[i]->maxsize))
+        gst_memory_resize (group->mem[i], offset, size);
       else {
         GST_WARNING_OBJECT (allocator,
             "v4l2 provided buffer that is too big for the memory it was "
-            "writing into.  v4l2 claims %" G_GUINT32_FORMAT " bytes used but "
+            "writing into.  v4l2 claims %" G_GSIZE_FORMAT " bytes used but "
             "memory is only %" G_GSIZE_FORMAT "B.  This is probably a driver "
-            "bug.", group->planes[i].bytesused, group->mem[i]->maxsize);
+            "bug.", size, group->mem[i]->maxsize);
         gst_memory_resize (group->mem[i], 0, group->mem[i]->maxsize);
       }
     }
diff --git a/sys/v4l2/gstv4l2allocator.h b/sys/v4l2/gstv4l2allocator.h
index a26038977..982681585 100644
--- a/sys/v4l2/gstv4l2allocator.h
+++ b/sys/v4l2/gstv4l2allocator.h
@@ -50,6 +50,7 @@ typedef struct _GstV4l2MemoryGroup GstV4l2MemoryGroup;
 typedef struct _GstV4l2Memory GstV4l2Memory;
 typedef enum _GstV4l2Capabilities GstV4l2Capabilities;
 typedef enum _GstV4l2Return GstV4l2Return;
+typedef struct _GstV4l2Object GstV4l2Object;
 
 enum _GstV4l2AllocatorFlags
 {
@@ -89,11 +90,9 @@ struct _GstV4l2MemoryGroup
 struct _GstV4l2Allocator
 {
   GstAllocator parent;
-  gint video_fd;
+  GstV4l2Object *obj;
   guint32 count;
-  guint32 type;
   guint32 memory;
-  struct v4l2_format format;
   gboolean can_allocate;
   gboolean active;
 
@@ -117,8 +116,7 @@ gboolean             gst_v4l2_allocator_is_active      (GstV4l2Allocator * alloc
 
 guint                gst_v4l2_allocator_get_size       (GstV4l2Allocator * allocator);
 
-GstV4l2Allocator*    gst_v4l2_allocator_new            (GstObject *parent, gint video_fd,
-                                                        struct v4l2_format * format);
+GstV4l2Allocator*    gst_v4l2_allocator_new            (GstObject *parent, GstV4l2Object * obj);
 
 guint                gst_v4l2_allocator_start          (GstV4l2Allocator * allocator,
                                                         guint32 count, guint32 memory);
diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
index 28553554c..86d5c8bfa 100644
--- a/sys/v4l2/gstv4l2bufferpool.c
+++ b/sys/v4l2/gstv4l2bufferpool.c
@@ -42,7 +42,7 @@
 
 #include <gstv4l2bufferpool.h>
 
-#include "v4l2_calls.h"
+#include "gstv4l2object.h"
 #include "gst/gst-i18n-plugin.h"
 #include <gst/glib-compat-private.h>
 
@@ -610,24 +610,60 @@ wrong_config:
   }
 }
 
+static GstFlowReturn
+gst_v4l2_buffer_pool_resurect_buffer (GstV4l2BufferPool * pool)
+{
+  GstBufferPoolAcquireParams params = { 0 };
+  GstBuffer *buffer = NULL;
+  GstFlowReturn ret;
+
+  GST_DEBUG_OBJECT (pool, "A buffer was lost, reallocating it");
+
+  /* block recursive calls to this function */
+  g_signal_handler_block (pool->vallocator, pool->group_released_handler);
+
+  params.flags =
+      (GstBufferPoolAcquireFlags) GST_V4L2_BUFFER_POOL_ACQUIRE_FLAG_RESURRECT |
+      GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT;
+  ret =
+      gst_buffer_pool_acquire_buffer (GST_BUFFER_POOL (pool), &buffer, &params);
+
+  if (ret == GST_FLOW_OK)
+    gst_buffer_unref (buffer);
+
+  g_signal_handler_unblock (pool->vallocator, pool->group_released_handler);
+
+  return ret;
+}
+
 static gboolean
 gst_v4l2_buffer_pool_streamon (GstV4l2BufferPool * pool)
 {
   GstV4l2Object *obj = pool->obj;
 
+  if (pool->streaming)
+    return TRUE;
+
   switch (obj->mode) {
     case GST_V4L2_IO_MMAP:
     case GST_V4L2_IO_USERPTR:
     case GST_V4L2_IO_DMABUF:
     case GST_V4L2_IO_DMABUF_IMPORT:
-      if (!pool->streaming) {
-        if (v4l2_ioctl (pool->video_fd, VIDIOC_STREAMON, &obj->type) < 0)
-          goto streamon_failed;
+      if (!V4L2_TYPE_IS_OUTPUT (pool->obj->type)) {
+        /* For captures, we need to enqueue buffers before we start streaming,
+         * so the driver don't underflow immediatly. As we have put then back
+         * into the base class queue, resurect them, then releasing will queue
+         * them back. */
+        while (gst_v4l2_buffer_pool_resurect_buffer (pool) == GST_FLOW_OK)
+          continue;
+      }
 
-        pool->streaming = TRUE;
+      if (obj->ioctl (pool->video_fd, VIDIOC_STREAMON, &obj->type) < 0)
+        goto streamon_failed;
 
-        GST_DEBUG_OBJECT (pool, "Started streaming");
-      }
+      pool->streaming = TRUE;
+
+      GST_DEBUG_OBJECT (pool, "Started streaming");
       break;
     default:
       break;
@@ -643,58 +679,53 @@ streamon_failed:
   }
 }
 
+/* Call with streamlock held, or when streaming threads are down */
 static void
 gst_v4l2_buffer_pool_streamoff (GstV4l2BufferPool * pool)
 {
+  GstBufferPoolClass *pclass = GST_BUFFER_POOL_CLASS (parent_class);
   GstV4l2Object *obj = pool->obj;
+  gint i;
+
+  if (!pool->streaming)
+    return;
 
   switch (obj->mode) {
     case GST_V4L2_IO_MMAP:
     case GST_V4L2_IO_USERPTR:
     case GST_V4L2_IO_DMABUF:
     case GST_V4L2_IO_DMABUF_IMPORT:
-      if (pool->streaming) {
-        if (v4l2_ioctl (pool->video_fd, VIDIOC_STREAMOFF, &obj->type) < 0)
-          GST_WARNING_OBJECT (pool, "STREAMOFF failed with errno %d (%s)",
-              errno, g_strerror (errno));
 
-        pool->streaming = FALSE;
+      if (obj->ioctl (pool->video_fd, VIDIOC_STREAMOFF, &obj->type) < 0)
+        GST_WARNING_OBJECT (pool, "STREAMOFF failed with errno %d (%s)",
+            errno, g_strerror (errno));
 
-        GST_DEBUG_OBJECT (pool, "Stopped streaming");
+      pool->streaming = FALSE;
 
-        if (pool->vallocator)
-          gst_v4l2_allocator_flush (pool->vallocator);
-      }
+      GST_DEBUG_OBJECT (pool, "Stopped streaming");
+
+      if (pool->vallocator)
+        gst_v4l2_allocator_flush (pool->vallocator);
       break;
     default:
       break;
   }
-}
 
-static GstFlowReturn
-gst_v4l2_buffer_pool_resurect_buffer (GstV4l2BufferPool * pool)
-{
-  GstBufferPoolAcquireParams params = { 0 };
-  GstBuffer *buffer = NULL;
-  GstFlowReturn ret;
-
-  GST_DEBUG_OBJECT (pool, "A buffer was lost, reallocating it");
-
-  /* block recursive calls to this function */
-  g_signal_handler_block (pool->vallocator, pool->group_released_handler);
-
-  params.flags =
-      (GstBufferPoolAcquireFlags) GST_V4L2_BUFFER_POOL_ACQUIRE_FLAG_RESURRECT |
-      GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT;
-  ret =
-      gst_buffer_pool_acquire_buffer (GST_BUFFER_POOL (pool), &buffer, &params);
+  for (i = 0; i < VIDEO_MAX_FRAME; i++) {
+    if (pool->buffers[i]) {
+      GstBuffer *buffer = pool->buffers[i];
+      GstBufferPool *bpool = GST_BUFFER_POOL (pool);
 
-  if (ret == GST_FLOW_OK)
-    gst_buffer_unref (buffer);
+      pool->buffers[i] = NULL;
 
-  g_signal_handler_unblock (pool->vallocator, pool->group_released_handler);
+      if (V4L2_TYPE_IS_OUTPUT (pool->obj->type))
+        gst_v4l2_buffer_pool_release_buffer (bpool, buffer);
+      else                      /* Don't re-enqueue capture buffer on stop */
+        pclass->release_buffer (bpool, buffer);
 
-  return ret;
+      g_atomic_int_add (&pool->num_queued, -1);
+    }
+  }
 }
 
 static gboolean
@@ -707,7 +738,7 @@ gst_v4l2_buffer_pool_start (GstBufferPool * bpool)
   GstCaps *caps;
   guint size, min_buffers, max_buffers;
   guint max_latency, min_latency, copy_threshold = 0;
-  gboolean can_allocate = FALSE;
+  gboolean can_allocate = FALSE, ret = TRUE;
 
   GST_DEBUG_OBJECT (pool, "activating pool");
 
@@ -728,7 +759,7 @@ gst_v4l2_buffer_pool_start (GstBufferPool * bpool)
        * queue to be initialized now. We only do this if we have a streaming
        * driver. */
       if (obj->device_caps & V4L2_CAP_STREAMING)
-        v4l2_read (obj->video_fd, NULL, 0);
+        obj->read (obj->video_fd, NULL, 0);
 #endif
       break;
     case GST_V4L2_IO_DMABUF:
@@ -838,12 +869,14 @@ gst_v4l2_buffer_pool_start (GstBufferPool * bpool)
   if (!pclass->start (bpool))
     goto start_failed;
 
-  if (!V4L2_TYPE_IS_OUTPUT (obj->type))
+  if (!V4L2_TYPE_IS_OUTPUT (obj->type)) {
     pool->group_released_handler =
         g_signal_connect_swapped (pool->vallocator, "group-released",
         G_CALLBACK (gst_v4l2_buffer_pool_resurect_buffer), pool);
+    ret = gst_v4l2_buffer_pool_streamon (pool);
+  }
 
-  return TRUE;
+  return ret;
 
   /* ERRORS */
 wrong_config:
@@ -862,7 +895,7 @@ no_buffers:
   }
 start_failed:
   {
-    GST_ERROR_OBJECT (pool, "failed to start streaming");
+    GST_ERROR_OBJECT (pool, "allocate failed");
     return FALSE;
   }
 other_pool_failed:
@@ -877,9 +910,7 @@ static gboolean
 gst_v4l2_buffer_pool_stop (GstBufferPool * bpool)
 {
   GstV4l2BufferPool *pool = GST_V4L2_BUFFER_POOL (bpool);
-  GstBufferPoolClass *pclass = GST_BUFFER_POOL_CLASS (parent_class);
   gboolean ret;
-  gint i;
 
   GST_DEBUG_OBJECT (pool, "stopping pool");
 
@@ -897,21 +928,6 @@ gst_v4l2_buffer_pool_stop (GstBufferPool * bpool)
 
   gst_v4l2_buffer_pool_streamoff (pool);
 
-  for (i = 0; i < VIDEO_MAX_FRAME; i++) {
-    if (pool->buffers[i]) {
-      GstBuffer *buffer = pool->buffers[i];
-
-      pool->buffers[i] = NULL;
-
-      if (V4L2_TYPE_IS_OUTPUT (pool->obj->type))
-        gst_v4l2_buffer_pool_release_buffer (bpool, buffer);
-      else                      /* Don't re-enqueue capture buffer on stop */
-        pclass->release_buffer (bpool, buffer);
-
-      g_atomic_int_add (&pool->num_queued, -1);
-    }
-  }
-
   ret = GST_BUFFER_POOL_CLASS (parent_class)->stop (bpool);
 
   if (ret && pool->vallocator) {
@@ -950,65 +966,12 @@ static void
 gst_v4l2_buffer_pool_flush_stop (GstBufferPool * bpool)
 {
   GstV4l2BufferPool *pool = GST_V4L2_BUFFER_POOL (bpool);
-  GstV4l2Object *obj = pool->obj;
-  GstBuffer *buffers[VIDEO_MAX_FRAME];
-  gint i;
 
   GST_DEBUG_OBJECT (pool, "stop flushing");
 
-  /* If we haven't started streaming yet, simply call streamon */
-  if (!pool->streaming)
-    goto streamon;
-
   if (pool->other_pool)
     gst_buffer_pool_set_flushing (pool->other_pool, FALSE);
 
-  GST_OBJECT_LOCK (pool);
-  gst_v4l2_buffer_pool_streamoff (pool);
-  /* Remember buffers to re-enqueue */
-  memcpy (buffers, pool->buffers, sizeof (buffers));
-  memset (pool->buffers, 0, sizeof (pool->buffers));
-  GST_OBJECT_UNLOCK (pool);
-
-  /* Reset our state */
-  switch (obj->mode) {
-    case GST_V4L2_IO_RW:
-      break;
-    case GST_V4L2_IO_MMAP:
-    case GST_V4L2_IO_USERPTR:
-    case GST_V4L2_IO_DMABUF:
-    case GST_V4L2_IO_DMABUF_IMPORT:
-    {
-      for (i = 0; i < VIDEO_MAX_FRAME; i++) {
-        /* Re-enqueue buffers */
-        if (buffers[i]) {
-          GstBufferPool *bpool = (GstBufferPool *) pool;
-          GstBuffer *buffer = buffers[i];
-
-          /* Remove qdata, this will unmap any map data in
-           * userptr/dmabuf-import */
-          gst_mini_object_set_qdata (GST_MINI_OBJECT (buffer),
-              GST_V4L2_IMPORT_QUARK, NULL, NULL);
-
-          if (buffer->pool == NULL)
-            gst_v4l2_buffer_pool_release_buffer (bpool, buffer);
-
-          g_atomic_int_add (&pool->num_queued, -1);
-        }
-      }
-
-      break;
-    }
-    default:
-      g_assert_not_reached ();
-      break;
-  }
-
-streamon:
-  /* Start streaming on capture device only */
-  if (!V4L2_TYPE_IS_OUTPUT (obj->type))
-    gst_v4l2_buffer_pool_streamon (pool);
-
   gst_poll_set_flushing (pool->poll, FALSE);
 }
 
@@ -1080,9 +1043,8 @@ gst_v4l2_buffer_pool_qbuf (GstV4l2BufferPool * pool, GstBuffer * buf)
   gint index;
 
   if (!gst_v4l2_is_buffer_valid (buf, &group)) {
-    GST_LOG_OBJECT (pool, "unref copied/invalid buffer %p", buf);
-    gst_buffer_unref (buf);
-    return GST_FLOW_OK;
+    GST_ERROR_OBJECT (pool, "invalid buffer %p", buf);
+    return GST_FLOW_ERROR;
   }
 
   index = group->buffer.index;
@@ -1157,6 +1119,8 @@ gst_v4l2_buffer_pool_dqbuf (GstV4l2BufferPool * pool, GstBuffer ** buffer)
   GstV4l2Object *obj = pool->obj;
   GstClockTime timestamp;
   GstV4l2MemoryGroup *group;
+  GstVideoMeta *vmeta;
+  gsize size;
   gint i;
 
   if ((res = gst_v4l2_buffer_pool_poll (pool)) != GST_FLOW_OK)
@@ -1187,7 +1151,8 @@ gst_v4l2_buffer_pool_dqbuf (GstV4l2BufferPool * pool, GstBuffer ** buffer)
 
   timestamp = GST_TIMEVAL_TO_TIME (group->buffer.timestamp);
 
-#ifndef GST_DISABLE_GST_DEBUG
+  size = 0;
+  vmeta = gst_buffer_get_video_meta (outbuf);
   for (i = 0; i < group->n_mem; i++) {
     GST_LOG_OBJECT (pool,
         "dequeued buffer %p seq:%d (ix=%d), mem %p used %d, plane=%d, flags %08x, ts %"
@@ -1195,8 +1160,12 @@ gst_v4l2_buffer_pool_dqbuf (GstV4l2BufferPool * pool, GstBuffer ** buffer)
         group->buffer.sequence, group->buffer.index, group->mem[i],
         group->planes[i].bytesused, i, group->buffer.flags,
         GST_TIME_ARGS (timestamp), pool->num_queued, outbuf);
+
+    if (vmeta) {
+      vmeta->offset[i] = size;
+      size += gst_memory_get_sizes (group->mem[i], NULL, NULL);
+    }
   }
-#endif
 
   /* Ignore timestamp and field for OUTPUT device */
   if (V4L2_TYPE_IS_OUTPUT (obj->type))
@@ -1520,12 +1489,11 @@ gst_v4l2_buffer_pool_finalize (GObject * object)
   GstV4l2BufferPool *pool = GST_V4L2_BUFFER_POOL (object);
 
   if (pool->video_fd >= 0)
-    v4l2_close (pool->video_fd);
+    pool->obj->close (pool->video_fd);
 
   gst_poll_free (pool->poll);
 
-  /* FIXME Is this required to keep around ?
-   * This can't be done in dispose method because we must not set pointer
+  /* This can't be done in dispose method because we must not set pointer
    * to NULL as it is part of the v4l2object and dispose could be called
    * multiple times */
   gst_object_unref (pool->obj->element);
@@ -1585,7 +1553,7 @@ gst_v4l2_buffer_pool_new (GstV4l2Object * obj, GstCaps * caps)
   gchar *name, *parent_name;
   gint fd;
 
-  fd = v4l2_dup (obj->video_fd);
+  fd = obj->dup (obj->video_fd);
   if (fd < 0)
     goto dup_failed;
 
@@ -1597,6 +1565,7 @@ gst_v4l2_buffer_pool_new (GstV4l2Object * obj, GstCaps * caps)
 
   pool = (GstV4l2BufferPool *) g_object_new (GST_TYPE_V4L2_BUFFER_POOL,
       "name", name, NULL);
+  g_object_ref_sink (pool);
   g_free (name);
 
   gst_poll_fd_init (&pool->pollfd);
@@ -1611,8 +1580,7 @@ gst_v4l2_buffer_pool_new (GstV4l2Object * obj, GstCaps * caps)
   pool->obj = obj;
   pool->can_poll_device = TRUE;
 
-  pool->vallocator =
-      gst_v4l2_allocator_new (GST_OBJECT (pool), obj->video_fd, &obj->format);
+  pool->vallocator = gst_v4l2_allocator_new (GST_OBJECT (pool), obj);
   if (pool->vallocator == NULL)
     goto allocator_failed;
 
@@ -1659,7 +1627,7 @@ gst_v4l2_do_read (GstV4l2BufferPool * pool, GstBuffer * buf)
     if ((res = gst_v4l2_buffer_pool_poll (pool)) != GST_FLOW_OK)
       goto poll_error;
 
-    amount = v4l2_read (obj->video_fd, map.data, toread);
+    amount = obj->read (obj->video_fd, map.data, toread);
 
     if (amount == toread) {
       break;
@@ -1751,14 +1719,6 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer ** buf)
                 goto eos;
             }
 
-            /* verify that buffer contains a full frame for raw video */
-            if (GST_VIDEO_INFO_FORMAT (&obj->info) != GST_VIDEO_FORMAT_ENCODED
-                && size < GST_VIDEO_INFO_SIZE (&obj->info)) {
-              GST_WARNING_OBJECT (pool, "Invalid buffer size, this is likely "
-                  "due to a bug in your driver, dropping");
-              goto buffer_corrupted;
-            }
-
             num_queued = g_atomic_int_get (&pool->num_queued);
             GST_TRACE_OBJECT (pool, "Only %i buffer left in the capture queue.",
                 num_queued);
@@ -1827,12 +1787,20 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer ** buf)
         case GST_V4L2_IO_USERPTR:
         {
           struct UserPtrData *data;
+          GstBuffer *tmp;
 
           /* Replace our buffer with downstream allocated buffer */
           data = gst_mini_object_steal_qdata (GST_MINI_OBJECT (*buf),
               GST_V4L2_IMPORT_QUARK);
-          gst_buffer_replace (buf, data->buffer);
+          tmp = gst_buffer_ref (data->buffer);
           _unmap_userptr_frame (data);
+
+          /* Now tmp is writable, copy the flags and timestamp */
+          gst_buffer_copy_into (tmp, *buf,
+              GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
+
+          gst_buffer_replace (buf, tmp);
+          gst_buffer_unref (tmp);
           break;
         }
 
@@ -1843,6 +1811,10 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer ** buf)
           /* Replace our buffer with downstream allocated buffer */
           tmp = gst_mini_object_steal_qdata (GST_MINI_OBJECT (*buf),
               GST_V4L2_IMPORT_QUARK);
+
+          gst_buffer_copy_into (tmp, *buf,
+              GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
+
           gst_buffer_replace (buf, tmp);
           gst_buffer_unref (tmp);
           break;
@@ -2027,3 +1999,17 @@ gst_v4l2_buffer_pool_copy_at_threshold (GstV4l2BufferPool * pool, gboolean copy)
   pool->enable_copy_threshold = copy;
   GST_OBJECT_UNLOCK (pool);
 }
+
+gboolean
+gst_v4l2_buffer_pool_flush (GstBufferPool * bpool)
+{
+  GstV4l2BufferPool *pool = GST_V4L2_BUFFER_POOL (bpool);
+  gboolean ret = TRUE;
+
+  gst_v4l2_buffer_pool_streamoff (pool);
+
+  if (!V4L2_TYPE_IS_OUTPUT (pool->obj->type))
+    ret = gst_v4l2_buffer_pool_streamon (pool);
+
+  return ret;
+}
diff --git a/sys/v4l2/gstv4l2bufferpool.h b/sys/v4l2/gstv4l2bufferpool.h
index 4949a2210..0fffc71c0 100644
--- a/sys/v4l2/gstv4l2bufferpool.h
+++ b/sys/v4l2/gstv4l2bufferpool.h
@@ -34,11 +34,8 @@ typedef struct _GstV4l2Meta GstV4l2Meta;
 #include "gstv4l2object.h"
 #include "gstv4l2allocator.h"
 
-GST_DEBUG_CATEGORY_EXTERN (v4l2buffer_debug);
-
 G_BEGIN_DECLS
 
-
 #define GST_TYPE_V4L2_BUFFER_POOL      (gst_v4l2_buffer_pool_get_type())
 #define GST_IS_V4L2_BUFFER_POOL(obj)   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_V4L2_BUFFER_POOL))
 #define GST_V4L2_BUFFER_POOL(obj)      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_V4L2_BUFFER_POOL, GstV4l2BufferPool))
@@ -110,6 +107,8 @@ void                gst_v4l2_buffer_pool_set_other_pool (GstV4l2BufferPool * poo
 void                gst_v4l2_buffer_pool_copy_at_threshold (GstV4l2BufferPool * pool,
                                                             gboolean copy);
 
+gboolean            gst_v4l2_buffer_pool_flush   (GstBufferPool *pool);
+
 G_END_DECLS
 
 #endif /*__GST_V4L2_BUFFER_POOL_H__ */
diff --git a/sys/v4l2/gstv4l2colorbalance.h b/sys/v4l2/gstv4l2colorbalance.h
index 2668906f2..90ba7ab03 100644
--- a/sys/v4l2/gstv4l2colorbalance.h
+++ b/sys/v4l2/gstv4l2colorbalance.h
@@ -26,7 +26,8 @@
 
 #include <gst/gst.h>
 #include <gst/video/colorbalance.h>
-#include "v4l2_calls.h"
+
+#include "gstv4l2object.h"
 
 G_BEGIN_DECLS
 
diff --git a/sys/v4l2/gstv4l2deviceprovider.c b/sys/v4l2/gstv4l2deviceprovider.c
index 23959ca57..8f6e9ea8b 100644
--- a/sys/v4l2/gstv4l2deviceprovider.c
+++ b/sys/v4l2/gstv4l2deviceprovider.c
@@ -31,18 +31,12 @@
 #include <gst/gst.h>
 
 #include "gstv4l2object.h"
-#include "v4l2_calls.h"
 #include "v4l2-utils.h"
 
 #ifdef HAVE_GUDEV
 #include <gudev/gudev.h>
 #endif
 
-/* Only available since Linux 4.8 */
-#ifndef V4L2_CAP_TOUCH
-#define V4L2_CAP_TOUCH 0x10000000
-#endif
-
 static GstV4l2Device *gst_v4l2_device_new (const gchar * device_path,
     const gchar * device_name, GstCaps * caps, GstV4l2DeviceType type,
     GstStructure * props);
@@ -119,7 +113,7 @@ gst_v4l2_device_provider_probe_device (GstV4l2DeviceProvider * provider,
   if (!S_ISCHR (st.st_mode))
     goto destroy;
 
-  v4l2obj = gst_v4l2_object_new ((GstElement *) provider,
+  v4l2obj = gst_v4l2_object_new (NULL, GST_OBJECT (provider),
       V4L2_BUF_TYPE_VIDEO_CAPTURE, device_path, NULL, NULL, NULL);
 
   if (!gst_v4l2_open (v4l2obj))
@@ -148,6 +142,7 @@ gst_v4l2_device_provider_probe_device (GstV4l2DeviceProvider * provider,
       goto close;
 
     type = GST_V4L2_DEVICE_TYPE_SOURCE;
+    v4l2obj->skip_try_fmt_probes = TRUE;
   }
 
   if (v4l2obj->device_caps &
diff --git a/sys/v4l2/gstv4l2h263enc.c b/sys/v4l2/gstv4l2h263enc.c
new file mode 100644
index 000000000..3b63af5d2
--- /dev/null
+++ b/sys/v4l2/gstv4l2h263enc.c
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2017 Collabora Inc.
+ *    Author: Nicolas Dufresne <nicolas.dufresne@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 <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <unistd.h>
+#include <string.h>
+
+#include "gstv4l2object.h"
+#include "gstv4l2h263enc.h"
+
+#include <string.h>
+#include <gst/gst-i18n-plugin.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_v4l2_h263_enc_debug);
+#define GST_CAT_DEFAULT gst_v4l2_h263_enc_debug
+
+
+static GstStaticCaps src_template_caps =
+GST_STATIC_CAPS ("video/x-h263, variant=(string) itu");
+
+enum
+{
+  PROP_0,
+  V4L2_STD_OBJECT_PROPS,
+/* TODO add H263 controls */
+};
+
+#define gst_v4l2_h263_enc_parent_class parent_class
+G_DEFINE_TYPE (GstV4l2H263Enc, gst_v4l2_h263_enc, GST_TYPE_V4L2_VIDEO_ENC);
+
+static void
+gst_v4l2_h263_enc_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+  /* TODO */
+}
+
+static void
+gst_v4l2_h263_enc_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec)
+{
+  /* TODO */
+}
+
+static void
+gst_v4l2_h263_enc_init (GstV4l2H263Enc * self)
+{
+
+}
+
+static void
+gst_v4l2_h263_enc_class_init (GstV4l2H263EncClass * klass)
+{
+  GstElementClass *element_class;
+  GObjectClass *gobject_class;
+
+  parent_class = g_type_class_peek_parent (klass);
+
+  element_class = (GstElementClass *) klass;
+  gobject_class = (GObjectClass *) klass;
+
+  GST_DEBUG_CATEGORY_INIT (gst_v4l2_h263_enc_debug, "v4l2h263enc", 0,
+      "V4L2 H.263 Encoder");
+
+  gst_element_class_set_static_metadata (element_class,
+      "V4L2 H.263 Encoder",
+      "Codec/Encoder/Video",
+      "Encode H.263 video streams via V4L2 API",
+      "Nicolas Dufresne <nicolas.dufresne@collabora.com>");
+
+  gobject_class->set_property =
+      GST_DEBUG_FUNCPTR (gst_v4l2_h263_enc_set_property);
+  gobject_class->get_property =
+      GST_DEBUG_FUNCPTR (gst_v4l2_h263_enc_get_property);
+}
+
+/* Probing functions */
+gboolean
+gst_v4l2_is_h263_enc (GstCaps * sink_caps, GstCaps * src_caps)
+{
+  return gst_v4l2_is_video_enc (sink_caps, src_caps,
+      gst_static_caps_get (&src_template_caps));
+}
+
+void
+gst_v4l2_h263_enc_register (GstPlugin * plugin, const gchar * basename,
+    const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps)
+{
+  gst_v4l2_video_enc_register (plugin, GST_TYPE_V4L2_H263_ENC,
+      "h263", basename, device_path, sink_caps,
+      gst_static_caps_get (&src_template_caps), src_caps);
+}
diff --git a/sys/v4l2/gstv4l2h263enc.h b/sys/v4l2/gstv4l2h263enc.h
new file mode 100644
index 000000000..fa5a35644
--- /dev/null
+++ b/sys/v4l2/gstv4l2h263enc.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2017 Collabora Inc.
+ *    Author: Nicolas Dufresne <nicolas.dufresne@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.
+ *
+ */
+
+#ifndef __GST_V4L2_H263_ENC_H__
+#define __GST_V4L2_H263_ENC_H__
+
+#include <gst/gst.h>
+#include "gstv4l2videoenc.h"
+
+G_BEGIN_DECLS
+#define GST_TYPE_V4L2_H263_ENC \
+  (gst_v4l2_h263_enc_get_type())
+#define GST_V4L2_H263_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_V4L2_H263_ENC,GstV4l2H263Enc))
+#define GST_V4L2_H263_ENC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_V4L2_H263_ENC,GstV4l2H263EncClass))
+#define GST_IS_V4L2_H263_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_V4L2_H263_ENC))
+#define GST_IS_V4L2_H263_ENC_CLASS(obj) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_V4L2_H263_ENC))
+typedef struct _GstV4l2H263Enc GstV4l2H263Enc;
+typedef struct _GstV4l2H263EncClass GstV4l2H263EncClass;
+
+struct _GstV4l2H263Enc
+{
+  GstV4l2VideoEnc parent;
+};
+
+struct _GstV4l2H263EncClass
+{
+  GstV4l2VideoEncClass parent_class;
+};
+
+GType gst_v4l2_h263_enc_get_type (void);
+
+gboolean gst_v4l2_is_h263_enc (GstCaps * sink_caps, GstCaps * src_caps);
+
+void gst_v4l2_h263_enc_register (GstPlugin * plugin, const gchar * basename,
+    const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps);
+
+G_END_DECLS
+#endif /* __GST_V4L2_H263_ENC_H__ */
diff --git a/sys/v4l2/gstv4l2h264enc.c b/sys/v4l2/gstv4l2h264enc.c
new file mode 100644
index 000000000..d1c603690
--- /dev/null
+++ b/sys/v4l2/gstv4l2h264enc.c
@@ -0,0 +1,325 @@
+/*
+ * Copyright (C) 2014 SUMOMO Computer Association
+ *     Author: ayaka <ayaka@soulik.info>
+ *
+ * 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 <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <unistd.h>
+#include <string.h>
+
+#include "gstv4l2object.h"
+#include "gstv4l2h264enc.h"
+
+#include <string.h>
+#include <gst/gst-i18n-plugin.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_v4l2_h264_enc_debug);
+#define GST_CAT_DEFAULT gst_v4l2_h264_enc_debug
+
+
+static GstStaticCaps src_template_caps =
+GST_STATIC_CAPS ("video/x-h264, stream-format=(string) byte-stream, "
+    "alignment=(string) au");
+
+enum
+{
+  PROP_0,
+  V4L2_STD_OBJECT_PROPS,
+/* TODO add H264 controls
+ * PROP_I_FRAME_QP,
+ * PROP_P_FRAME_QP,
+ * PROP_B_FRAME_QP,
+ * PROP_MIN_QP,
+ * PROP_MAX_QP,
+ * PROP_8x8_TRANSFORM,
+ * PROP_CPB_SIZE,
+ * PROP_ENTROPY_MODE,
+ * PROP_I_PERIOD,
+ * PROP_LOOP_FILTER_ALPHA,
+ * PROP_LOOP_FILTER_BETA,
+ * PROP_LOOP_FILTER_MODE,
+ * PROP_VUI_EXT_SAR_HEIGHT,
+ * PROP_VUI_EXT_SAR_WIDTH,
+ * PROP_VUI_SAR_ENABLED,
+ * PROP_VUI_SAR_IDC,
+ * PROP_SEI_FRAME_PACKING,
+ * PROP_SEI_FP_CURRENT_FRAME_0,
+ * PROP_SEI_FP_ARRANGEMENT_TYP,
+ * ...
+ * */
+};
+
+#define gst_v4l2_h264_enc_parent_class parent_class
+G_DEFINE_TYPE (GstV4l2H264Enc, gst_v4l2_h264_enc, GST_TYPE_V4L2_VIDEO_ENC);
+
+static void
+gst_v4l2_h264_enc_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+  /* TODO */
+}
+
+static void
+gst_v4l2_h264_enc_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec)
+{
+  /* TODO */
+}
+
+static gint
+v4l2_profile_from_string (const gchar * profile)
+{
+  gint v4l2_profile = -1;
+
+  if (g_str_equal (profile, "baseline")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE;
+  } else if (g_str_equal (profile, "constrained-baseline")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE;
+  } else if (g_str_equal (profile, "main")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_MAIN;
+  } else if (g_str_equal (profile, "extended")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED;
+  } else if (g_str_equal (profile, "high")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH;
+  } else if (g_str_equal (profile, "high-10")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10;
+  } else if (g_str_equal (profile, "high-4:2:2")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422;
+  } else if (g_str_equal (profile, "high-4:4:4")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE;
+  } else if (g_str_equal (profile, "high-10-intra")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA;
+  } else if (g_str_equal (profile, "high-4:2:2-intra")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA;
+  } else if (g_str_equal (profile, "high-4:4:4-intra")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA;
+  } else if (g_str_equal (profile, "cavlc-4:4:4-intra")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA;
+  } else if (g_str_equal (profile, "scalable-baseline")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE;
+  } else if (g_str_equal (profile, "scalable-high")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH;
+  } else if (g_str_equal (profile, "scalable-high-intra")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA;
+  } else if (g_str_equal (profile, "stereo-high")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH;
+  } else if (g_str_equal (profile, "multiview-high")) {
+    v4l2_profile = V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH;
+  } else {
+    GST_WARNING ("Unsupported profile string '%s'", profile);
+  }
+
+  return v4l2_profile;
+}
+
+static const gchar *
+v4l2_profile_to_string (gint v4l2_profile)
+{
+  switch (v4l2_profile) {
+    case V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE:
+      return "baseline";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE:
+      return "constrained-baseline";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_MAIN:
+      return "main";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED:
+      return "extended";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH:
+      return "high";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10:
+      return "high-10";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422:
+      return "high-4:2:2";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE:
+      return "high-4:4:4";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA:
+      return "high-10-intra";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA:
+      return "high-4:2:2-intra";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA:
+      return "high-4:4:4-intra";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA:
+      return "cavlc-4:4:4-intra";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE:
+      return "scalable-baseline";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH:
+      return "scalable-high";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA:
+      return "scalable-high-intra";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH:
+      return "stereo-high";
+    case V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH:
+      return "multiview-high";
+    default:
+      GST_WARNING ("Unsupported V4L2 profile %i", v4l2_profile);
+      break;
+  }
+
+  return NULL;
+}
+
+static gint
+v4l2_level_from_string (const gchar * level)
+{
+  gint v4l2_level = -1;
+
+  if (g_str_equal (level, "1"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_1_0;
+  else if (g_str_equal (level, "1b"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_1B;
+  else if (g_str_equal (level, "1.1"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_1_1;
+  else if (g_str_equal (level, "1.2"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_1_2;
+  else if (g_str_equal (level, "1.3"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_1_3;
+  else if (g_str_equal (level, "2"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_2_0;
+  else if (g_str_equal (level, "2.1"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_2_1;
+  else if (g_str_equal (level, "2.2"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_2_2;
+  else if (g_str_equal (level, "3"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_3_0;
+  else if (g_str_equal (level, "3.1"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_3_1;
+  else if (g_str_equal (level, "3.2"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_3_2;
+  else if (g_str_equal (level, "4"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_4_0;
+  else if (g_str_equal (level, "4.1"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_4_1;
+  else if (g_str_equal (level, "4.2"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_4_2;
+  else if (g_str_equal (level, "5"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_5_0;
+  else if (g_str_equal (level, "5.1"))
+    v4l2_level = V4L2_MPEG_VIDEO_H264_LEVEL_5_1;
+  else
+    GST_WARNING ("Unsupported level '%s'", level);
+
+  return v4l2_level;
+}
+
+static const gchar *
+v4l2_level_to_string (gint v4l2_level)
+{
+  switch (v4l2_level) {
+    case V4L2_MPEG_VIDEO_H264_LEVEL_1_0:
+      return "1";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_1B:
+      return "1b";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_1_1:
+      return "1.1";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_1_2:
+      return "1.2";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_1_3:
+      return "1.3";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_2_0:
+      return "2";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_2_1:
+      return "2.1";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_2_2:
+      return "2.2";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_3_0:
+      return "3.0";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_3_1:
+      return "3.1";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_3_2:
+      return "3.2";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_4_0:
+      return "4";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_4_1:
+      return "4.1";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_4_2:
+      return "4.2";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_5_0:
+      return "5";
+    case V4L2_MPEG_VIDEO_H264_LEVEL_5_1:
+      return "5.1";
+    default:
+      GST_WARNING ("Unsupported V4L2 level %i", v4l2_level);
+      break;
+  }
+
+  return NULL;
+}
+
+static void
+gst_v4l2_h264_enc_init (GstV4l2H264Enc * self)
+{
+}
+
+static void
+gst_v4l2_h264_enc_class_init (GstV4l2H264EncClass * klass)
+{
+  GstElementClass *element_class;
+  GObjectClass *gobject_class;
+  GstV4l2VideoEncClass *baseclass;
+
+  parent_class = g_type_class_peek_parent (klass);
+
+  element_class = (GstElementClass *) klass;
+  gobject_class = (GObjectClass *) klass;
+  baseclass = (GstV4l2VideoEncClass *) (klass);
+
+  GST_DEBUG_CATEGORY_INIT (gst_v4l2_h264_enc_debug, "v4l2h264enc", 0,
+      "V4L2 H.264 Encoder");
+
+  gst_element_class_set_static_metadata (element_class,
+      "V4L2 H.264 Encoder",
+      "Codec/Encoder/Video",
+      "Encode H.264 video streams via V4L2 API", "ayaka <ayaka@soulik.info>");
+
+  gobject_class->set_property =
+      GST_DEBUG_FUNCPTR (gst_v4l2_h264_enc_set_property);
+  gobject_class->get_property =
+      GST_DEBUG_FUNCPTR (gst_v4l2_h264_enc_get_property);
+
+  baseclass->codec_name = "H264";
+  baseclass->profile_cid = V4L2_CID_MPEG_VIDEO_H264_PROFILE;
+  baseclass->profile_to_string = v4l2_profile_to_string;
+  baseclass->profile_from_string = v4l2_profile_from_string;
+  baseclass->level_cid = V4L2_CID_MPEG_VIDEO_H264_LEVEL;
+  baseclass->level_to_string = v4l2_level_to_string;
+  baseclass->level_from_string = v4l2_level_from_string;
+}
+
+/* Probing functions */
+gboolean
+gst_v4l2_is_h264_enc (GstCaps * sink_caps, GstCaps * src_caps)
+{
+  return gst_v4l2_is_video_enc (sink_caps, src_caps,
+      gst_static_caps_get (&src_template_caps));
+}
+
+void
+gst_v4l2_h264_enc_register (GstPlugin * plugin, const gchar * basename,
+    const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps)
+{
+  gst_v4l2_video_enc_register (plugin, GST_TYPE_V4L2_H264_ENC,
+      "h264", basename, device_path, sink_caps,
+      gst_static_caps_get (&src_template_caps), src_caps);
+}
diff --git a/sys/v4l2/gstv4l2h264enc.h b/sys/v4l2/gstv4l2h264enc.h
new file mode 100644
index 000000000..3bfa34346
--- /dev/null
+++ b/sys/v4l2/gstv4l2h264enc.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2014 SUMOMO Computer Association.
+ *     Author: ayaka <ayaka@soulik.info>
+ *
+ * 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_V4L2_H264_ENC_H__
+#define __GST_V4L2_H264_ENC_H__
+
+#include <gst/gst.h>
+#include "gstv4l2videoenc.h"
+
+G_BEGIN_DECLS
+#define GST_TYPE_V4L2_H264_ENC \
+  (gst_v4l2_h264_enc_get_type())
+#define GST_V4L2_H264_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_V4L2_H264_ENC,GstV4l2H264Enc))
+#define GST_V4L2_H264_ENC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_V4L2_H264_ENC,GstV4l2H264EncClass))
+#define GST_IS_V4L2_H264_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_V4L2_H264_ENC))
+#define GST_IS_V4L2_H264_ENC_CLASS(obj) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_V4L2_H264_ENC))
+typedef struct _GstV4l2H264Enc GstV4l2H264Enc;
+typedef struct _GstV4l2H264EncClass GstV4l2H264EncClass;
+
+struct _GstV4l2H264Enc
+{
+  GstV4l2VideoEnc parent;
+};
+
+struct _GstV4l2H264EncClass
+{
+  GstV4l2VideoEncClass parent_class;
+};
+
+GType gst_v4l2_h264_enc_get_type (void);
+
+gboolean gst_v4l2_is_h264_enc (GstCaps * sink_caps, GstCaps * src_caps);
+
+void gst_v4l2_h264_enc_register (GstPlugin * plugin, const gchar * basename,
+    const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps);
+
+G_END_DECLS
+#endif /* __GST_V4L2_H264_ENC_H__ */
diff --git a/sys/v4l2/gstv4l2mpeg4enc.c b/sys/v4l2/gstv4l2mpeg4enc.c
new file mode 100644
index 000000000..7b0bb7765
--- /dev/null
+++ b/sys/v4l2/gstv4l2mpeg4enc.c
@@ -0,0 +1,222 @@
+/*
+ * Copyright (C) 2017 Collabora Inc.
+ *    Author: Nicolas Dufresne <nicolas.dufresne@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 <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <unistd.h>
+#include <string.h>
+
+#include "gstv4l2object.h"
+#include "gstv4l2mpeg4enc.h"
+
+#include <string.h>
+#include <gst/gst-i18n-plugin.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_v4l2_mpeg4_enc_debug);
+#define GST_CAT_DEFAULT gst_v4l2_mpeg4_enc_debug
+
+static GstStaticCaps src_template_caps =
+GST_STATIC_CAPS ("video/mpeg, mpegversion=(int)4, systemstream=(boolean)FALSE");
+
+enum
+{
+  PROP_0,
+  V4L2_STD_OBJECT_PROPS,
+  /* TODO */
+};
+
+#define gst_v4l2_mpeg4_enc_parent_class parent_class
+G_DEFINE_TYPE (GstV4l2Mpeg4Enc, gst_v4l2_mpeg4_enc, GST_TYPE_V4L2_VIDEO_ENC);
+
+static void
+gst_v4l2_mpeg4_enc_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+  /* TODO */
+}
+
+static void
+gst_v4l2_mpeg4_enc_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec)
+{
+  /* TODO */
+}
+
+static gint
+v4l2_profile_from_string (const gchar * profile)
+{
+  gint v4l2_profile = -1;
+
+  if (g_str_equal (profile, "simple"))
+    v4l2_profile = V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE;
+  else if (g_str_equal (profile, "advanced-simple"))
+    v4l2_profile = V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE;
+  else if (g_str_equal (profile, "core"))
+    v4l2_profile = V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE;
+  else if (g_str_equal (profile, "simple-scalable"))
+    v4l2_profile = V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE;
+  else if (g_str_equal (profile, "advanced-coding-efficiency"))
+    v4l2_profile = V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY;
+  else
+    GST_WARNING ("Unsupported profile string '%s'", profile);
+
+  return v4l2_profile;
+}
+
+static const gchar *
+v4l2_profile_to_string (gint v4l2_profile)
+{
+  switch (v4l2_profile) {
+    case V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE:
+      return "simple";
+    case V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE:
+      return "advanced-simple";
+    case V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE:
+      return "core";
+    case V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE:
+      return "simple-scalable";
+    case V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY:
+      return "advanced-coding-efficiency";
+    default:
+      GST_WARNING ("Unsupported V4L2 profile %i", v4l2_profile);
+      break;
+  }
+
+  return NULL;
+}
+
+static gint
+v4l2_level_from_string (const gchar * level)
+{
+  gint v4l2_level = -1;
+
+  if (g_str_equal (level, "0"))
+    v4l2_level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_0;
+  else if (g_str_equal (level, "0b"))
+    v4l2_level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B;
+  else if (g_str_equal (level, "1"))
+    v4l2_level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_1;
+  else if (g_str_equal (level, "2"))
+    v4l2_level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_2;
+  else if (g_str_equal (level, "3"))
+    v4l2_level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_3;
+  else if (g_str_equal (level, "3b"))
+    v4l2_level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B;
+  else if (g_str_equal (level, "4"))
+    v4l2_level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_4;
+  else if (g_str_equal (level, "5"))
+    v4l2_level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_5;
+  else
+    GST_WARNING ("Unsupported level '%s'", level);
+
+  return v4l2_level;
+}
+
+static const gchar *
+v4l2_level_to_string (gint v4l2_level)
+{
+  switch (v4l2_level) {
+    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_0:
+      return "0";
+    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B:
+      return "0b";
+    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_1:
+      return "1";
+    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_2:
+      return "2";
+    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_3:
+      return "3";
+    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B:
+      return "3b";
+    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_4:
+      return "4";
+    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_5:
+      return "5";
+    default:
+      GST_WARNING ("Unsupported V4L2 level %i", v4l2_level);
+      break;
+  }
+
+  return NULL;
+}
+
+static void
+gst_v4l2_mpeg4_enc_init (GstV4l2Mpeg4Enc * self)
+{
+}
+
+static void
+gst_v4l2_mpeg4_enc_class_init (GstV4l2Mpeg4EncClass * klass)
+{
+  GstElementClass *element_class;
+  GObjectClass *gobject_class;
+  GstV4l2VideoEncClass *baseclass;
+
+  parent_class = g_type_class_peek_parent (klass);
+
+  element_class = (GstElementClass *) klass;
+  gobject_class = (GObjectClass *) klass;
+  baseclass = (GstV4l2VideoEncClass *) (klass);
+
+  GST_DEBUG_CATEGORY_INIT (gst_v4l2_mpeg4_enc_debug, "v4l2mpeg4enc", 0,
+      "V4L2 MPEG4 Encoder");
+
+  gst_element_class_set_static_metadata (element_class,
+      "V4L2 MPEG4 Encoder",
+      "Codec/Encoder/Video",
+      "Encode MPEG4 video streams via V4L2 API",
+      "Nicolas Dufresne <nicolas.dufresne@collabora.com");
+
+  gobject_class->set_property =
+      GST_DEBUG_FUNCPTR (gst_v4l2_mpeg4_enc_set_property);
+  gobject_class->get_property =
+      GST_DEBUG_FUNCPTR (gst_v4l2_mpeg4_enc_get_property);
+
+  baseclass->codec_name = "MPEG4";
+  baseclass->profile_cid = V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE;
+  baseclass->profile_to_string = v4l2_profile_to_string;
+  baseclass->profile_from_string = v4l2_profile_from_string;
+  baseclass->level_cid = V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL;
+  baseclass->level_to_string = v4l2_level_to_string;
+  baseclass->level_from_string = v4l2_level_from_string;
+}
+
+/* Probing functions */
+gboolean
+gst_v4l2_is_mpeg4_enc (GstCaps * sink_caps, GstCaps * src_caps)
+{
+  return gst_v4l2_is_video_enc (sink_caps, src_caps,
+      gst_static_caps_get (&src_template_caps));
+}
+
+void
+gst_v4l2_mpeg4_enc_register (GstPlugin * plugin, const gchar * basename,
+    const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps)
+{
+  gst_v4l2_video_enc_register (plugin, GST_TYPE_V4L2_MPEG4_ENC,
+      "mpeg4", basename, device_path, sink_caps,
+      gst_static_caps_get (&src_template_caps), src_caps);
+}
diff --git a/sys/v4l2/gstv4l2mpeg4enc.h b/sys/v4l2/gstv4l2mpeg4enc.h
new file mode 100644
index 000000000..84941037f
--- /dev/null
+++ b/sys/v4l2/gstv4l2mpeg4enc.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2017 Collabora Inc.
+ *    Author: Nicolas Dufresne <nicolas.dufresne@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.
+ *
+ */
+
+#ifndef __GST_V4L2_MPEG4_ENC_H__
+#define __GST_V4L2_MPEG4_ENC_H__
+
+#include <gst/gst.h>
+#include "gstv4l2videoenc.h"
+
+G_BEGIN_DECLS
+#define GST_TYPE_V4L2_MPEG4_ENC \
+  (gst_v4l2_mpeg4_enc_get_type())
+#define GST_V4L2_MPEG4_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_V4L2_MPEG4_ENC,GstV4l2Mpeg4Enc))
+#define GST_V4L2_MPEG4_ENC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_V4L2_MPEG4_ENC,GstV4l2Mpeg4EncClass))
+#define GST_IS_V4L2_MPEG4_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_V4L2_MPEG4_ENC))
+#define GST_IS_V4L2_MPEG4_ENC_CLASS(obj) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_V4L2_MPEG4_ENC))
+typedef struct _GstV4l2Mpeg4Enc GstV4l2Mpeg4Enc;
+typedef struct _GstV4l2Mpeg4EncClass GstV4l2Mpeg4EncClass;
+
+struct _GstV4l2Mpeg4Enc
+{
+  GstV4l2VideoEnc parent;
+};
+
+struct _GstV4l2Mpeg4EncClass
+{
+  GstV4l2VideoEncClass parent_class;
+};
+
+GType gst_v4l2_mpeg4_enc_get_type (void);
+
+gboolean gst_v4l2_is_mpeg4_enc (GstCaps * sink_caps, GstCaps * src_caps);
+
+void gst_v4l2_mpeg4_enc_register (GstPlugin * plugin, const gchar * basename,
+    const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps);
+
+G_END_DECLS
+#endif /* __GST_V4L2_MPEG4_ENC_H__ */
diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
index 09a688c6b..a5e67076f 100644
--- a/sys/v4l2/gstv4l2object.c
+++ b/sys/v4l2/gstv4l2object.c
@@ -27,12 +27,16 @@
 #include <errno.h>
 #include <unistd.h>
 #include <string.h>
+#include <sys/mman.h>
+#include <sys/ioctl.h>
+
 
 #ifdef HAVE_GUDEV
 #include <gudev/gudev.h>
 #endif
 
-#include "v4l2_calls.h"
+#include "ext/videodev2.h"
+#include "gstv4l2object.h"
 #include "gstv4l2tuner.h"
 #include "gstv4l2colorbalance.h"
 
@@ -47,11 +51,13 @@ GST_DEBUG_CATEGORY_EXTERN (v4l2_debug);
 #define DEFAULT_PROP_DEVICE_FD          -1
 #define DEFAULT_PROP_FLAGS              0
 #define DEFAULT_PROP_TV_NORM            0
-#define DEFAULT_PROP_CHANNEL            NULL
-#define DEFAULT_PROP_FREQUENCY          0
 #define DEFAULT_PROP_IO_MODE            GST_V4L2_IO_AUTO
 
-#define ENCODED_BUFFER_SIZE             (1 * 1024 * 1024)
+#define ENCODED_BUFFER_SIZE             (2 * 1024 * 1024)
+
+#if SIZEOF_OFF_T == 8 && !defined(mmap64)
+#define mmap64 mmap
+#endif
 
 enum
 {
@@ -178,6 +184,7 @@ static const GstV4L2FormatDesc gst_v4l2_formats[] = {
   {V4L2_PIX_FMT_VC1_ANNEX_G, FALSE, GST_V4L2_CODEC},
   {V4L2_PIX_FMT_VC1_ANNEX_L, FALSE, GST_V4L2_CODEC},
   {V4L2_PIX_FMT_VP8, FALSE, GST_V4L2_CODEC | GST_V4L2_NO_PARSE},
+  {V4L2_PIX_FMT_VP9, FALSE, GST_V4L2_CODEC | GST_V4L2_NO_PARSE},
 
   /*  Vendor-specific formats   */
   {V4L2_PIX_FMT_WNVA, TRUE, GST_V4L2_CODEC},
@@ -455,6 +462,7 @@ gst_v4l2_object_install_m2m_properties_helper (GObjectClass * gobject_class)
 
 GstV4l2Object *
 gst_v4l2_object_new (GstElement * element,
+    GstObject * debug_object,
     enum v4l2_buf_type type,
     const char *default_device,
     GstV4l2GetInOutFunction get_in_out_func,
@@ -472,6 +480,7 @@ gst_v4l2_object_new (GstElement * element,
   v4l2object->formats = NULL;
 
   v4l2object->element = element;
+  v4l2object->dbg_obj = debug_object;
   v4l2object->get_in_out_func = get_in_out_func;
   v4l2object->set_in_out_func = set_in_out_func;
   v4l2object->update_fps_func = update_fps_func;
@@ -484,14 +493,34 @@ gst_v4l2_object_new (GstElement * element,
   v4l2object->channels = NULL;
   v4l2object->colors = NULL;
 
-  v4l2object->xwindow_id = 0;
-
   v4l2object->keep_aspect = TRUE;
 
   v4l2object->n_v4l2_planes = 0;
 
   v4l2object->no_initial_format = FALSE;
 
+  /* We now disable libv4l2 by default, but have an env to enable it. */
+#ifdef HAVE_LIBV4L2
+  if (g_getenv ("GST_V4L2_USE_LIBV4L2")) {
+    v4l2object->fd_open = v4l2_fd_open;
+    v4l2object->close = v4l2_close;
+    v4l2object->dup = v4l2_dup;
+    v4l2object->ioctl = v4l2_ioctl;
+    v4l2object->read = v4l2_read;
+    v4l2object->mmap = v4l2_mmap;
+    v4l2object->munmap = v4l2_munmap;
+  } else
+#endif
+  {
+    v4l2object->fd_open = NULL;
+    v4l2object->close = close;
+    v4l2object->dup = dup;
+    v4l2object->ioctl = ioctl;
+    v4l2object->read = read;
+    v4l2object->mmap = mmap;
+    v4l2object->munmap = munmap;
+  }
+
   return v4l2object;
 }
 
@@ -655,7 +684,7 @@ gst_v4l2_object_set_property_helper (GstV4l2Object * v4l2object,
         gst_value_set_fraction (v4l2object->par, 1, 1);
       }
 
-      GST_DEBUG_OBJECT (v4l2object->element, "set PAR to %d/%d",
+      GST_DEBUG_OBJECT (v4l2object->dbg_obj, "set PAR to %d/%d",
           gst_value_get_fraction_numerator (v4l2object->par),
           gst_value_get_fraction_denominator (v4l2object->par));
       break;
@@ -781,8 +810,8 @@ gst_v4l2_get_driver_min_buffers (GstV4l2Object * v4l2object)
   else
     control.id = V4L2_CID_MIN_BUFFERS_FOR_CAPTURE;
 
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_CTRL, &control) == 0) {
-    GST_DEBUG_OBJECT (v4l2object->element,
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_CTRL, &control) == 0) {
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj,
         "driver requires a minimum of %d buffers", control.value);
     v4l2object->min_buffers = control.value;
   } else {
@@ -804,7 +833,7 @@ gst_v4l2_set_defaults (GstV4l2Object * v4l2object)
 
   if (v4l2object->tv_norm)
     norm = gst_v4l2_tuner_get_norm_by_std_id (v4l2object, v4l2object->tv_norm);
-  GST_DEBUG_OBJECT (v4l2object->element, "tv_norm=0x%" G_GINT64_MODIFIER "x, "
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "tv_norm=0x%" G_GINT64_MODIFIER "x, "
       "norm=%p", (guint64) v4l2object->tv_norm, norm);
   if (norm) {
     gst_tuner_set_norm (tuner, norm);
@@ -1116,7 +1145,7 @@ gst_v4l2_object_fill_format_list (GstV4l2Object * v4l2object,
   gint n;
   struct v4l2_fmtdesc *format;
 
-  GST_DEBUG_OBJECT (v4l2object->element, "getting src format enumerations");
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "getting src format enumerations");
 
   /* format enumeration */
   for (n = 0;; n++) {
@@ -1125,7 +1154,7 @@ gst_v4l2_object_fill_format_list (GstV4l2Object * v4l2object,
     format->index = n;
     format->type = type;
 
-    if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_ENUM_FMT, format) < 0) {
+    if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_ENUM_FMT, format) < 0) {
       if (errno == EINVAL) {
         g_free (format);
         break;                  /* end of enumeration */
@@ -1134,12 +1163,12 @@ gst_v4l2_object_fill_format_list (GstV4l2Object * v4l2object,
       }
     }
 
-    GST_LOG_OBJECT (v4l2object->element, "index:       %u", format->index);
-    GST_LOG_OBJECT (v4l2object->element, "type:        %d", format->type);
-    GST_LOG_OBJECT (v4l2object->element, "flags:       %08x", format->flags);
-    GST_LOG_OBJECT (v4l2object->element, "description: '%s'",
+    GST_LOG_OBJECT (v4l2object->dbg_obj, "index:       %u", format->index);
+    GST_LOG_OBJECT (v4l2object->dbg_obj, "type:        %d", format->type);
+    GST_LOG_OBJECT (v4l2object->dbg_obj, "flags:       %08x", format->flags);
+    GST_LOG_OBJECT (v4l2object->dbg_obj, "description: '%s'",
         format->description);
-    GST_LOG_OBJECT (v4l2object->element, "pixelformat: %" GST_FOURCC_FORMAT,
+    GST_LOG_OBJECT (v4l2object->dbg_obj, "pixelformat: %" GST_FOURCC_FORMAT,
         GST_FOURCC_ARGS (format->pixelformat));
 
     /* sort formats according to our preference;  we do this, because caps
@@ -1153,11 +1182,11 @@ gst_v4l2_object_fill_format_list (GstV4l2Object * v4l2object,
   {
     GSList *l;
 
-    GST_INFO_OBJECT (v4l2object->element, "got %d format(s):", n);
+    GST_INFO_OBJECT (v4l2object->dbg_obj, "got %d format(s):", n);
     for (l = v4l2object->formats; l != NULL; l = l->next) {
       format = l->data;
 
-      GST_INFO_OBJECT (v4l2object->element,
+      GST_INFO_OBJECT (v4l2object->dbg_obj,
           "  %" GST_FOURCC_FORMAT "%s", GST_FOURCC_ARGS (format->pixelformat),
           ((format->flags & V4L2_FMT_FLAG_EMULATED)) ? " (emulated)" : "");
     }
@@ -1171,7 +1200,7 @@ failed:
   {
     g_free (format);
 
-    if (!GST_IS_ELEMENT (v4l2object->element))
+    if (v4l2object->element)
       return FALSE;
 
     GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,
@@ -1399,6 +1428,9 @@ gst_v4l2_object_v4l2fourcc_to_bare_struct (guint32 fourcc)
     case V4L2_PIX_FMT_VP8:
       structure = gst_structure_new_empty ("video/x-vp8");
       break;
+    case V4L2_PIX_FMT_VP9:
+      structure = gst_structure_new_empty ("video/x-vp9");
+      break;
     case V4L2_PIX_FMT_GREY:    /*  8  Greyscale     */
     case V4L2_PIX_FMT_Y16:
     case V4L2_PIX_FMT_Y16_BE:
@@ -1766,6 +1798,8 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
         fourcc = V4L2_PIX_FMT_H264;
     } else if (g_str_equal (mimetype, "video/x-vp8")) {
       fourcc = V4L2_PIX_FMT_VP8;
+    } else if (g_str_equal (mimetype, "video/x-vp9")) {
+      fourcc = V4L2_PIX_FMT_VP9;
     } else if (g_str_equal (mimetype, "video/x-bayer")) {
       const gchar *format = gst_structure_get_string (structure, "format");
       if (format) {
@@ -1833,42 +1867,8 @@ gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object,
 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;
-
-  /* Ignore PAR that are 0/0 */
-  if (den == 0)
-    return;
-
-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;
+  if (v4l2object->keep_aspect && v4l2object->par)
+    gst_structure_set_value (s, "pixel-aspect-ratio", v4l2object->par);
 }
 
 /* returns TRUE if the value was changed in place, otherwise FALSE */
@@ -2111,7 +2111,7 @@ gst_v4l2_object_try_fmt (GstV4l2Object * v4l2object,
   int r;
 
   memcpy (&fmt, try_fmt, sizeof (fmt));
-  r = v4l2_ioctl (fd, VIDIOC_TRY_FMT, &fmt);
+  r = v4l2object->ioctl (fd, VIDIOC_TRY_FMT, &fmt);
 
   if (r < 0 && errno == ENOTTY) {
     /* The driver might not implement TRY_FMT, in which case we will try
@@ -2120,14 +2120,15 @@ gst_v4l2_object_try_fmt (GstV4l2Object * v4l2object,
       goto error;
 
     memcpy (&fmt, try_fmt, sizeof (fmt));
-    r = v4l2_ioctl (fd, VIDIOC_S_FMT, &fmt);
+    r = v4l2object->ioctl (fd, VIDIOC_S_FMT, &fmt);
   }
   memcpy (try_fmt, &fmt, sizeof (fmt));
+
   return r;
 
 error:
   memcpy (try_fmt, &fmt, sizeof (fmt));
-  GST_WARNING_OBJECT (v4l2object->element,
+  GST_WARNING_OBJECT (v4l2object->dbg_obj,
       "Unable to try format: %s", g_strerror (errno));
   return r;
 }
@@ -2308,13 +2309,13 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object,
   ival.width = width;
   ival.height = height;
 
-  GST_LOG_OBJECT (v4l2object->element,
+  GST_LOG_OBJECT (v4l2object->dbg_obj,
       "get frame interval for %ux%u, %" GST_FOURCC_FORMAT, width, height,
       GST_FOURCC_ARGS (pixelformat));
 
   /* keep in mind that v4l2 gives us frame intervals (durations); we invert the
    * fraction to get framerate */
-  if (v4l2_ioctl (fd, VIDIOC_ENUM_FRAMEINTERVALS, &ival) < 0)
+  if (v4l2object->ioctl (fd, VIDIOC_ENUM_FRAMEINTERVALS, &ival) < 0)
     goto enum_frameintervals_failed;
 
   if (ival.type == V4L2_FRMIVAL_TYPE_DISCRETE) {
@@ -2333,7 +2334,7 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object,
         denom >>= 1;
       }
 
-      GST_LOG_OBJECT (v4l2object->element, "adding discrete framerate: %d/%d",
+      GST_LOG_OBJECT (v4l2object->dbg_obj, "adding discrete framerate: %d/%d",
           denom, num);
 
       /* swap to get the framerate */
@@ -2341,7 +2342,7 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object,
       gst_value_list_append_value (&rates, &rate);
 
       ival.index++;
-    } while (v4l2_ioctl (fd, VIDIOC_ENUM_FRAMEINTERVALS, &ival) >= 0);
+    } while (v4l2object->ioctl (fd, VIDIOC_ENUM_FRAMEINTERVALS, &ival) >= 0);
   } else if (ival.type == V4L2_FRMIVAL_TYPE_STEPWISE) {
     GValue min = { 0, };
     GValue step = { 0, };
@@ -2363,7 +2364,7 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object,
       minnum >>= 1;
       mindenom >>= 1;
     }
-    GST_LOG_OBJECT (v4l2object->element, "stepwise min frame interval: %d/%d",
+    GST_LOG_OBJECT (v4l2object->dbg_obj, "stepwise min frame interval: %d/%d",
         minnum, mindenom);
     gst_value_set_fraction (&min, minnum, mindenom);
 
@@ -2375,7 +2376,7 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object,
       maxdenom >>= 1;
     }
 
-    GST_LOG_OBJECT (v4l2object->element, "stepwise max frame interval: %d/%d",
+    GST_LOG_OBJECT (v4l2object->dbg_obj, "stepwise max frame interval: %d/%d",
         maxnum, maxdenom);
     gst_value_set_fraction (&max, maxnum, maxdenom);
 
@@ -2396,7 +2397,7 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object,
 
     /* since we only have gst_value_fraction_subtract and not add, negate the
      * numerator */
-    GST_LOG_OBJECT (v4l2object->element, "stepwise step frame interval: %d/%d",
+    GST_LOG_OBJECT (v4l2object->dbg_obj, "stepwise step frame interval: %d/%d",
         num, denom);
     gst_value_set_fraction (&step, -num, denom);
 
@@ -2405,7 +2406,7 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object,
 
       num = gst_value_get_fraction_numerator (&min);
       denom = gst_value_get_fraction_denominator (&min);
-      GST_LOG_OBJECT (v4l2object->element, "adding stepwise framerate: %d/%d",
+      GST_LOG_OBJECT (v4l2object->dbg_obj, "adding stepwise framerate: %d/%d",
           denom, num);
 
       /* invert to get the framerate */
@@ -2417,13 +2418,13 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object,
       /* we're actually adding because step was negated above. This is because
        * there is no _add function... */
       if (!gst_value_fraction_subtract (&min, &min, &step)) {
-        GST_WARNING_OBJECT (v4l2object->element, "could not step fraction!");
+        GST_WARNING_OBJECT (v4l2object->dbg_obj, "could not step fraction!");
         break;
       }
     }
     if (!added) {
       /* no range was added, leave the default range from the template */
-      GST_WARNING_OBJECT (v4l2object->element,
+      GST_WARNING_OBJECT (v4l2object->dbg_obj,
           "no range added, leaving default");
       g_value_unset (&rates);
     }
@@ -2446,7 +2447,7 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object,
       maxdenom >>= 1;
     }
 
-    GST_LOG_OBJECT (v4l2object->element,
+    GST_LOG_OBJECT (v4l2object->dbg_obj,
         "continuous frame interval %d/%d to %d/%d", maxdenom, maxnum, denom,
         num);
 
@@ -2459,10 +2460,14 @@ return_data:
   s = gst_structure_copy (template);
   gst_structure_set (s, "width", G_TYPE_INT, (gint) width,
       "height", G_TYPE_INT, (gint) height, NULL);
+
   gst_v4l2_object_add_aspect_ratio (v4l2object, s);
-  gst_v4l2_object_add_interlace_mode (v4l2object, s, width, height,
-      pixelformat);
-  gst_v4l2_object_add_colorspace (v4l2object, s, width, height, pixelformat);
+
+  if (!v4l2object->skip_try_fmt_probes) {
+    gst_v4l2_object_add_interlace_mode (v4l2object, s, width, height,
+        pixelformat);
+    gst_v4l2_object_add_colorspace (v4l2object, s, width, height, pixelformat);
+  }
 
   if (G_IS_VALUE (&rates)) {
     gst_v4l2src_value_simplify (&rates);
@@ -2479,7 +2484,7 @@ return_data:
   /* ERRORS */
 enum_frameintervals_failed:
   {
-    GST_DEBUG_OBJECT (v4l2object->element,
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj,
         "Unable to enumerate intervals for %" GST_FOURCC_FORMAT "@%ux%u",
         GST_FOURCC_ARGS (pixelformat), width, height);
     goto return_data;
@@ -2487,7 +2492,7 @@ enum_frameintervals_failed:
 unknown_type:
   {
     /* I don't see how this is actually an error, we ignore the format then */
-    GST_WARNING_OBJECT (v4l2object->element,
+    GST_WARNING_OBJECT (v4l2object->dbg_obj,
         "Unknown frame interval type at %" GST_FOURCC_FORMAT "@%ux%u: %u",
         GST_FOURCC_ARGS (pixelformat), width, height, ival.type);
     return NULL;
@@ -2572,16 +2577,16 @@ gst_v4l2_object_probe_caps_for_format (GstV4l2Object * v4l2object,
   size.index = 0;
   size.pixel_format = pixelformat;
 
-  GST_DEBUG_OBJECT (v4l2object->element,
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj,
       "Enumerating frame sizes for %" GST_FOURCC_FORMAT,
       GST_FOURCC_ARGS (pixelformat));
 
-  if (v4l2_ioctl (fd, VIDIOC_ENUM_FRAMESIZES, &size) < 0)
+  if (v4l2object->ioctl (fd, VIDIOC_ENUM_FRAMESIZES, &size) < 0)
     goto enum_framesizes_failed;
 
   if (size.type == V4L2_FRMSIZE_TYPE_DISCRETE) {
     do {
-      GST_LOG_OBJECT (v4l2object->element, "got discrete frame size %dx%d",
+      GST_LOG_OBJECT (v4l2object->dbg_obj, "got discrete frame size %dx%d",
           size.discrete.width, size.discrete.height);
 
       w = MIN (size.discrete.width, G_MAXINT);
@@ -2597,24 +2602,24 @@ gst_v4l2_object_probe_caps_for_format (GstV4l2Object * v4l2object,
       }
 
       size.index++;
-    } while (v4l2_ioctl (fd, VIDIOC_ENUM_FRAMESIZES, &size) >= 0);
-    GST_DEBUG_OBJECT (v4l2object->element,
+    } while (v4l2object->ioctl (fd, VIDIOC_ENUM_FRAMESIZES, &size) >= 0);
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj,
         "done iterating discrete frame sizes");
   } else if (size.type == V4L2_FRMSIZE_TYPE_STEPWISE) {
     guint32 maxw, maxh, step_w, step_h;
 
-    GST_DEBUG_OBJECT (v4l2object->element, "we have stepwise frame sizes:");
-    GST_DEBUG_OBJECT (v4l2object->element, "min width:   %d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "we have stepwise frame sizes:");
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "min width:   %d",
         size.stepwise.min_width);
-    GST_DEBUG_OBJECT (v4l2object->element, "min height:  %d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "min height:  %d",
         size.stepwise.min_height);
-    GST_DEBUG_OBJECT (v4l2object->element, "max width:   %d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "max width:   %d",
         size.stepwise.max_width);
-    GST_DEBUG_OBJECT (v4l2object->element, "min height:  %d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "min height:  %d",
         size.stepwise.max_height);
-    GST_DEBUG_OBJECT (v4l2object->element, "step width:  %d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "step width:  %d",
         size.stepwise.step_width);
-    GST_DEBUG_OBJECT (v4l2object->element, "step height: %d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "step height: %d",
         size.stepwise.step_height);
 
     w = MAX (size.stepwise.min_width, 1);
@@ -2648,14 +2653,14 @@ gst_v4l2_object_probe_caps_for_format (GstV4l2Object * v4l2object,
   } else if (size.type == V4L2_FRMSIZE_TYPE_CONTINUOUS) {
     guint32 maxw, maxh;
 
-    GST_DEBUG_OBJECT (v4l2object->element, "we have continuous frame sizes:");
-    GST_DEBUG_OBJECT (v4l2object->element, "min width:   %d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "we have continuous frame sizes:");
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "min width:   %d",
         size.stepwise.min_width);
-    GST_DEBUG_OBJECT (v4l2object->element, "min height:  %d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "min height:  %d",
         size.stepwise.min_height);
-    GST_DEBUG_OBJECT (v4l2object->element, "max width:   %d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "max width:   %d",
         size.stepwise.max_width);
-    GST_DEBUG_OBJECT (v4l2object->element, "min height:  %d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "min height:  %d",
         size.stepwise.max_height);
 
     w = MAX (size.stepwise.min_width, 1);
@@ -2699,7 +2704,7 @@ gst_v4l2_object_probe_caps_for_format (GstV4l2Object * v4l2object,
 enum_framesizes_failed:
   {
     /* I don't see how this is actually an error */
-    GST_DEBUG_OBJECT (v4l2object->element,
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj,
         "Failed to enumerate frame sizes for pixelformat %" GST_FOURCC_FORMAT
         " (%s)", GST_FOURCC_ARGS (pixelformat), g_strerror (errno));
     goto default_frame_sizes;
@@ -2708,7 +2713,7 @@ enum_framesizes_no_results:
   {
     /* it's possible that VIDIOC_ENUM_FRAMESIZES is defined but the driver in
      * question doesn't actually support it yet */
-    GST_DEBUG_OBJECT (v4l2object->element,
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj,
         "No results for pixelformat %" GST_FOURCC_FORMAT
         " enumerating frame sizes, trying fallback",
         GST_FOURCC_ARGS (pixelformat));
@@ -2716,7 +2721,7 @@ enum_framesizes_no_results:
   }
 unknown_type:
   {
-    GST_WARNING_OBJECT (v4l2object->element,
+    GST_WARNING_OBJECT (v4l2object->dbg_obj,
         "Unknown frame sizeenum type for pixelformat %" GST_FOURCC_FORMAT
         ": %u", GST_FOURCC_ARGS (pixelformat), size.type);
     goto default_frame_sizes;
@@ -2731,13 +2736,13 @@ default_frame_sizes:
     max_w = max_h = GST_V4L2_MAX_SIZE;
     if (!gst_v4l2_object_get_nearest_size (v4l2object, pixelformat, &min_w,
             &min_h)) {
-      GST_WARNING_OBJECT (v4l2object->element,
+      GST_WARNING_OBJECT (v4l2object->dbg_obj,
           "Could not probe minimum capture size for pixelformat %"
           GST_FOURCC_FORMAT, GST_FOURCC_ARGS (pixelformat));
     }
     if (!gst_v4l2_object_get_nearest_size (v4l2object, pixelformat, &max_w,
             &max_h)) {
-      GST_WARNING_OBJECT (v4l2object->element,
+      GST_WARNING_OBJECT (v4l2object->dbg_obj,
           "Could not probe maximum capture size for pixelformat %"
           GST_FOURCC_FORMAT, GST_FOURCC_ARGS (pixelformat));
     }
@@ -2782,13 +2787,17 @@ default_frame_sizes:
     else
       gst_structure_set (tmp, "height", GST_TYPE_INT_RANGE, min_h, max_h, NULL);
 
-    /* We could consider setting interlace mode from min and max. */
-    gst_v4l2_object_add_interlace_mode (v4l2object, tmp, max_w, max_h,
-        pixelformat);
     gst_v4l2_object_add_aspect_ratio (v4l2object, tmp);
-    /* We could consider to check colorspace for min too, in case it depends on
-     * the size. But in this case, min and max could not be enough */
-    gst_v4l2_object_add_colorspace (v4l2object, tmp, max_w, max_h, pixelformat);
+
+    if (!v4l2object->skip_try_fmt_probes) {
+      /* We could consider setting interlace mode from min and max. */
+      gst_v4l2_object_add_interlace_mode (v4l2object, tmp, max_w, max_h,
+          pixelformat);
+      /* We could consider to check colorspace for min too, in case it depends on
+       * the size. But in this case, min and max could not be enough */
+      gst_v4l2_object_add_colorspace (v4l2object, tmp, max_w, max_h,
+          pixelformat);
+    }
 
     gst_v4l2_object_update_and_append (v4l2object, pixelformat, ret, tmp);
     return ret;
@@ -2806,7 +2815,7 @@ gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object,
   g_return_val_if_fail (width != NULL, FALSE);
   g_return_val_if_fail (height != NULL, FALSE);
 
-  GST_LOG_OBJECT (v4l2object->element,
+  GST_LOG_OBJECT (v4l2object->dbg_obj,
       "getting nearest size to %dx%d with format %" GST_FOURCC_FORMAT,
       *width, *height, GST_FOURCC_ARGS (pixelformat));
 
@@ -2823,14 +2832,14 @@ gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object,
   if (gst_v4l2_object_try_fmt (v4l2object, &fmt) < 0)
     goto error;
 
-  GST_LOG_OBJECT (v4l2object->element,
+  GST_LOG_OBJECT (v4l2object->dbg_obj,
       "got nearest size %dx%d", fmt.fmt.pix.width, fmt.fmt.pix.height);
 
   *width = fmt.fmt.pix.width;
   *height = fmt.fmt.pix.height;
 
   if (!gst_v4l2_object_get_interlace_mode (fmt.fmt.pix.field, &interlace_mode)) {
-    GST_WARNING_OBJECT (v4l2object->element,
+    GST_WARNING_OBJECT (v4l2object->dbg_obj,
         "Unsupported field type for %" GST_FOURCC_FORMAT "@%ux%u: %u",
         GST_FOURCC_ARGS (pixelformat), *width, *height, fmt.fmt.pix.field);
     goto error;
@@ -2840,19 +2849,38 @@ gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object,
 
 error:
   if (!ret) {
-    GST_WARNING_OBJECT (v4l2object->element,
+    GST_WARNING_OBJECT (v4l2object->dbg_obj,
         "Unable to try format: %s", g_strerror (errno));
   }
 
   return ret;
 }
 
+static gboolean
+gst_v4l2_object_is_dmabuf_supported (GstV4l2Object * v4l2object)
+{
+  gboolean ret = TRUE;
+  struct v4l2_exportbuffer expbuf = {
+    .type = v4l2object->type,
+    .index = -1,
+    .plane = -1,
+    .flags = O_CLOEXEC | O_RDWR,
+  };
+
+  /* Expected to fail, but ENOTTY tells us that it is not implemented. */
+  v4l2object->ioctl (v4l2object->video_fd, VIDIOC_EXPBUF, &expbuf);
+  if (errno == ENOTTY)
+    ret = FALSE;
+
+  return ret;
+}
+
 static gboolean
 gst_v4l2_object_setup_pool (GstV4l2Object * v4l2object, GstCaps * caps)
 {
   GstV4l2IOMode mode;
 
-  GST_DEBUG_OBJECT (v4l2object->element, "initializing the %s system",
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "initializing the %s system",
       V4L2_TYPE_IS_OUTPUT (v4l2object->type) ? "output" : "capture");
 
   GST_V4L2_CHECK_OPEN (v4l2object);
@@ -2868,8 +2896,14 @@ gst_v4l2_object_setup_pool (GstV4l2Object * v4l2object, GstCaps * caps)
     goto method_not_supported;
 
   if (v4l2object->device_caps & V4L2_CAP_STREAMING) {
-    if (v4l2object->req_mode == GST_V4L2_IO_AUTO)
-      mode = GST_V4L2_IO_MMAP;
+    if (v4l2object->req_mode == GST_V4L2_IO_AUTO) {
+      if (!V4L2_TYPE_IS_OUTPUT (v4l2object->type) &&
+          gst_v4l2_object_is_dmabuf_supported (v4l2object)) {
+        mode = GST_V4L2_IO_DMABUF;
+      } else {
+        mode = GST_V4L2_IO_MMAP;
+      }
+    }
   } else if (v4l2object->req_mode == GST_V4L2_IO_MMAP)
     goto method_not_supported;
 
@@ -2877,7 +2911,7 @@ gst_v4l2_object_setup_pool (GstV4l2Object * v4l2object, GstCaps * caps)
   if (mode == GST_V4L2_IO_AUTO)
     goto no_supported_capture_method;
 
-  GST_INFO_OBJECT (v4l2object->element, "accessing buffers via mode %d", mode);
+  GST_INFO_OBJECT (v4l2object->dbg_obj, "accessing buffers via mode %d", mode);
   v4l2object->mode = mode;
 
   /* If min_buffers is not set, the driver either does not support the control or
@@ -2886,7 +2920,7 @@ gst_v4l2_object_setup_pool (GstV4l2Object * v4l2object, GstCaps * caps)
     gst_v4l2_get_driver_min_buffers (v4l2object);
 
   /* Map the buffers */
-  GST_LOG_OBJECT (v4l2object->element, "initiating buffer pool");
+  GST_LOG_OBJECT (v4l2object->dbg_obj, "initiating buffer pool");
 
   if (!(v4l2object->pool = gst_v4l2_buffer_pool_new (v4l2object, caps)))
     goto buffer_pool_new_failed;
@@ -2967,7 +3001,7 @@ gst_v4l2_object_extrapolate_info (GstV4l2Object * v4l2object,
     offs += estride *
         GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (finfo, i, padded_height);
 
-    GST_DEBUG_OBJECT (v4l2object->element,
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj,
         "Extrapolated for plane %d with base stride %d: "
         "stride %d, offset %" G_GSIZE_FORMAT, i, stride, info->stride[i],
         info->offset[i]);
@@ -2988,7 +3022,7 @@ gst_v4l2_object_save_format (GstV4l2Object * v4l2object,
 {
   const GstVideoFormatInfo *finfo = info->finfo;
   gboolean standard_stride = TRUE;
-  gint stride, padded_width, padded_height, i;
+  gint stride, pstride, padded_width, padded_height, i;
 
   if (GST_VIDEO_INFO_FORMAT (info) == GST_VIDEO_FORMAT_ENCODED) {
     v4l2object->n_v4l2_planes = 1;
@@ -3002,11 +3036,21 @@ gst_v4l2_object_save_format (GstV4l2Object * v4l2object,
   else
     stride = format->fmt.pix.bytesperline;
 
-  padded_width = stride / GST_VIDEO_FORMAT_INFO_PSTRIDE (finfo, 0);
+  pstride = GST_VIDEO_FORMAT_INFO_PSTRIDE (finfo, 0);
+  if (pstride) {
+    padded_width = stride / pstride;
+  } else {
+    /* pstride can be 0 for complex formats */
+    GST_WARNING_OBJECT (v4l2object->element,
+        "format %s has a pstride of 0, cannot compute padded with",
+        gst_video_format_to_string (GST_VIDEO_INFO_FORMAT (info)));
+    padded_width = stride;
+  }
 
   if (padded_width < format->fmt.pix.width)
-    GST_WARNING_OBJECT (v4l2object->element,
-        "Driver bug detected, stride is too small for the width");
+    GST_WARNING_OBJECT (v4l2object->dbg_obj,
+        "Driver bug detected, stride (%d) is too small for the width (%d)",
+        padded_width, format->fmt.pix.width);
 
   align->padding_right = padded_width - info->width - align->padding_left;
 
@@ -3062,7 +3106,7 @@ gst_v4l2_object_save_format (GstV4l2Object * v4l2object,
   /* adjust the offset to take into account left and top */
   if (GST_VIDEO_FORMAT_INFO_IS_TILED (finfo)) {
     if ((align->padding_left + align->padding_top) > 0)
-      GST_WARNING_OBJECT (v4l2object->element,
+      GST_WARNING_OBJECT (v4l2object->dbg_obj,
           "Left and top padding is not permitted for tiled formats");
   } else {
     for (i = 0; i < finfo->n_planes; i++) {
@@ -3080,7 +3124,7 @@ gst_v4l2_object_save_format (GstV4l2Object * v4l2object,
   }
 
 store_info:
-  GST_DEBUG_OBJECT (v4l2object->element, "Got sizeimage %" G_GSIZE_FORMAT,
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Got sizeimage %" G_GSIZE_FORMAT,
       info->size);
 
   /* to avoid copies we need video meta if there is padding */
@@ -3154,6 +3198,10 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
   enum v4l2_quantization range = 0;
   enum v4l2_ycbcr_encoding matrix = 0;
   enum v4l2_xfer_func transfer = 0;
+  GstStructure *s;
+
+  g_return_val_if_fail (!v4l2object->skip_try_fmt_probes ||
+      gst_caps_is_writable (caps), FALSE);
 
   GST_V4L2_CHECK_OPEN (v4l2object);
   if (!try_only)
@@ -3180,13 +3228,13 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
     n_v4l_planes = 1;
 
   if (GST_VIDEO_INFO_IS_INTERLACED (&info)) {
-    GST_DEBUG_OBJECT (v4l2object->element, "interlaced video");
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "interlaced video");
     /* ideally we would differentiate between types of interlaced video
      * but there is not sufficient information in the caps..
      */
     field = V4L2_FIELD_INTERLACED;
   } else {
-    GST_DEBUG_OBJECT (v4l2object->element, "progressive video");
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "progressive video");
     field = V4L2_FIELD_NONE;
   }
 
@@ -3223,7 +3271,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
         break;
 
       default:
-        GST_WARNING_OBJECT (v4l2object->element,
+        GST_WARNING_OBJECT (v4l2object->dbg_obj,
             "Unknown colorimetry primaries %d", info.colorimetry.primaries);
         break;
     }
@@ -3239,7 +3287,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
         /* We let the driver pick a default one */
         break;
       default:
-        GST_WARNING_OBJECT (v4l2object->element,
+        GST_WARNING_OBJECT (v4l2object->dbg_obj,
             "Unknown colorimetry range %d", info.colorimetry.range);
         break;
     }
@@ -3266,7 +3314,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
         /* We let the driver pick a default one */
         break;
       default:
-        GST_WARNING_OBJECT (v4l2object->element,
+        GST_WARNING_OBJECT (v4l2object->dbg_obj,
             "Unknown colorimetry matrix %d", info.colorimetry.matrix);
         break;
     }
@@ -3276,7 +3324,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
       case GST_VIDEO_TRANSFER_GAMMA20:
       case GST_VIDEO_TRANSFER_GAMMA22:
       case GST_VIDEO_TRANSFER_GAMMA28:
-        GST_WARNING_OBJECT (v4l2object->element,
+        GST_WARNING_OBJECT (v4l2object->dbg_obj,
             "GAMMA 18, 20, 22, 28 transfer functions not supported");
         /* fallthrough */
       case GST_VIDEO_TRANSFER_GAMMA10:
@@ -3294,7 +3342,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
         break;
       case GST_VIDEO_TRANSFER_LOG100:
       case GST_VIDEO_TRANSFER_LOG316:
-        GST_WARNING_OBJECT (v4l2object->element,
+        GST_WARNING_OBJECT (v4l2object->dbg_obj,
             "LOG 100, 316 transfer functions not supported");
         /* FIXME No known sensible default, maybe AdobeRGB ? */
         break;
@@ -3302,7 +3350,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
         /* We let the driver pick a default one */
         break;
       default:
-        GST_WARNING_OBJECT (v4l2object->element,
+        GST_WARNING_OBJECT (v4l2object->dbg_obj,
             "Unknown colorimetry tranfer %d", info.colorimetry.transfer);
         break;
     }
@@ -3322,7 +3370,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
     }
   }
 
-  GST_DEBUG_OBJECT (v4l2object->element, "Desired format %dx%d, format "
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Desired format %dx%d, format "
       "%" GST_FOURCC_FORMAT " stride: %d", width, height,
       GST_FOURCC_ARGS (pixelformat), GST_VIDEO_INFO_PLANE_STRIDE (&info, 0));
 
@@ -3355,6 +3403,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
     gint stride = GST_VIDEO_INFO_PLANE_STRIDE (&info, 0);
 
     format.type = v4l2object->type;
+
     format.fmt.pix.width = width;
     format.fmt.pix.height = height;
     format.fmt.pix.pixelformat = pixelformat;
@@ -3371,7 +3420,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
       format.fmt.pix.sizeimage = ENCODED_BUFFER_SIZE;
   }
 
-  GST_DEBUG_OBJECT (v4l2object->element, "Desired format is %dx%d, format "
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Desired format is %dx%d, format "
       "%" GST_FOURCC_FORMAT ", nb planes %d", format.fmt.pix.width,
       format.fmt.pix_mp.height,
       GST_FOURCC_ARGS (format.fmt.pix.pixelformat),
@@ -3380,10 +3429,10 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
 #ifndef GST_DISABLE_GST_DEBUG
   if (is_mplane) {
     for (i = 0; i < format.fmt.pix_mp.num_planes; i++)
-      GST_DEBUG_OBJECT (v4l2object->element, "  stride %d",
+      GST_DEBUG_OBJECT (v4l2object->dbg_obj, "  stride %d",
           format.fmt.pix_mp.plane_fmt[i].bytesperline);
   } else {
-    GST_DEBUG_OBJECT (v4l2object->element, "  stride %d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "  stride %d",
         format.fmt.pix.bytesperline);
   }
 #endif
@@ -3401,19 +3450,19 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
       format.fmt.pix.xfer_func = transfer;
     }
 
-    GST_DEBUG_OBJECT (v4l2object->element, "Desired colorspace is %d:%d:%d:%d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Desired colorspace is %d:%d:%d:%d",
         colorspace, range, matrix, transfer);
   }
 
   if (try_only) {
-    if (v4l2_ioctl (fd, VIDIOC_TRY_FMT, &format) < 0)
+    if (v4l2object->ioctl (fd, VIDIOC_TRY_FMT, &format) < 0)
       goto try_fmt_failed;
   } else {
-    if (v4l2_ioctl (fd, VIDIOC_S_FMT, &format) < 0)
+    if (v4l2object->ioctl (fd, VIDIOC_S_FMT, &format) < 0)
       goto set_fmt_failed;
   }
 
-  GST_DEBUG_OBJECT (v4l2object->element, "Got format of %dx%d, format "
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Got format of %dx%d, format "
       "%" GST_FOURCC_FORMAT ", nb planes %d, colorspace %d",
       format.fmt.pix.width, format.fmt.pix_mp.height,
       GST_FOURCC_ARGS (format.fmt.pix.pixelformat),
@@ -3423,11 +3472,11 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
 #ifndef GST_DISABLE_GST_DEBUG
   if (is_mplane) {
     for (i = 0; i < format.fmt.pix_mp.num_planes; i++)
-      GST_DEBUG_OBJECT (v4l2object->element, "  stride %d, sizeimage %d",
+      GST_DEBUG_OBJECT (v4l2object->dbg_obj, "  stride %d, sizeimage %d",
           format.fmt.pix_mp.plane_fmt[i].bytesperline,
           format.fmt.pix_mp.plane_fmt[i].sizeimage);
   } else {
-    GST_DEBUG_OBJECT (v4l2object->element, "  stride %d, sizeimage %d",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "  stride %d, sizeimage %d",
         format.fmt.pix.bytesperline, format.fmt.pix.sizeimage);
   }
 #endif
@@ -3454,6 +3503,35 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
   if (is_mplane && format.fmt.pix_mp.num_planes != n_v4l_planes)
     goto invalid_planes;
 
+  if ((is_mplane && format.fmt.pix_mp.field != field)
+      || format.fmt.pix.field != field)
+    goto invalid_field;
+
+  gst_v4l2_object_get_colorspace (&format, &info.colorimetry);
+
+  s = gst_caps_get_structure (caps, 0);
+  if (gst_structure_has_field (s, "colorimetry")) {
+    GstVideoColorimetry ci;
+    if (!gst_video_colorimetry_from_string (&ci,
+            gst_structure_get_string (s, "colorimetry"))
+        || !gst_video_colorimetry_is_equal (&ci, &info.colorimetry))
+      goto invalid_colorimetry;
+  }
+
+  /* In case we have skipped the try_fmt probes, we'll need to set the
+   * colorimetry and interlace-mode back into the caps. */
+  if (v4l2object->skip_try_fmt_probes) {
+    if (!gst_structure_has_field (s, "colorimetry")) {
+      gchar *str = gst_video_colorimetry_to_string (&info.colorimetry);
+      gst_structure_set (s, "colorimetry", G_TYPE_STRING, str, NULL);
+      g_free (str);
+    }
+
+    if (!gst_structure_has_field (s, "interlace-mode"))
+      gst_structure_set (s, "interlace-mode", G_TYPE_STRING,
+          gst_video_interlace_mode_to_string (info.interlace_mode), NULL);
+  }
+
   if (try_only)                 /* good enough for trying only */
     return TRUE;
 
@@ -3462,19 +3540,19 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
     ctl.id = V4L2_CID_ALPHA_COMPONENT;
     ctl.value = 0xff;
 
-    if (v4l2_ioctl (fd, VIDIOC_S_CTRL, &ctl) < 0)
-      GST_WARNING_OBJECT (v4l2object->element,
+    if (v4l2object->ioctl (fd, VIDIOC_S_CTRL, &ctl) < 0)
+      GST_WARNING_OBJECT (v4l2object->dbg_obj,
           "Failed to set alpha component value");
   }
 
   /* Is there a reason we require the caller to always specify a framerate? */
-  GST_DEBUG_OBJECT (v4l2object->element, "Desired framerate: %u/%u", fps_n,
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Desired framerate: %u/%u", fps_n,
       fps_d);
 
   memset (&streamparm, 0x00, sizeof (struct v4l2_streamparm));
   streamparm.type = v4l2object->type;
 
-  if (v4l2_ioctl (fd, VIDIOC_G_PARM, &streamparm) < 0)
+  if (v4l2object->ioctl (fd, VIDIOC_G_PARM, &streamparm) < 0)
     goto get_parm_failed;
 
   if (v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE
@@ -3484,7 +3562,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
     GST_VIDEO_INFO_FPS_D (&info) =
         streamparm.parm.capture.timeperframe.numerator;
 
-    GST_DEBUG_OBJECT (v4l2object->element, "Got capture framerate: %u/%u",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Got capture framerate: %u/%u",
         streamparm.parm.capture.timeperframe.denominator,
         streamparm.parm.capture.timeperframe.numerator);
 
@@ -3493,12 +3571,12 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
      * causing them to not output data (several models of Thinkpad cameras
      * have this problem at least).
      * So, don't skip. */
-    GST_LOG_OBJECT (v4l2object->element, "Setting capture framerate to %u/%u",
+    GST_LOG_OBJECT (v4l2object->dbg_obj, "Setting capture framerate to %u/%u",
         fps_n, fps_d);
     /* We want to change the frame rate, so check whether we can. Some cheap USB
      * cameras don't have the capability */
     if ((streamparm.parm.capture.capability & V4L2_CAP_TIMEPERFRAME) == 0) {
-      GST_DEBUG_OBJECT (v4l2object->element,
+      GST_DEBUG_OBJECT (v4l2object->dbg_obj,
           "Not setting capture framerate (not supported)");
       goto done;
     }
@@ -3508,7 +3586,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
     streamparm.parm.capture.timeperframe.denominator = fps_n;
 
     /* some cheap USB cam's won't accept any change */
-    if (v4l2_ioctl (fd, VIDIOC_S_PARM, &streamparm) < 0)
+    if (v4l2object->ioctl (fd, VIDIOC_S_PARM, &streamparm) < 0)
       goto set_parm_failed;
 
     if (streamparm.parm.capture.timeperframe.numerator > 0 &&
@@ -3517,11 +3595,11 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
       fps_d = streamparm.parm.capture.timeperframe.numerator;
       fps_n = streamparm.parm.capture.timeperframe.denominator;
 
-      GST_INFO_OBJECT (v4l2object->element, "Set capture framerate to %u/%u",
+      GST_INFO_OBJECT (v4l2object->dbg_obj, "Set capture framerate to %u/%u",
           fps_n, fps_d);
     } else {
       /* fix v4l2 capture driver to provide framerate values */
-      GST_WARNING_OBJECT (v4l2object->element,
+      GST_WARNING_OBJECT (v4l2object->dbg_obj,
           "Reuse caps framerate %u/%u - fix v4l2 capture driver", fps_n, fps_d);
     }
 
@@ -3534,14 +3612,14 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
     GST_VIDEO_INFO_FPS_D (&info) =
         streamparm.parm.output.timeperframe.numerator;
 
-    GST_DEBUG_OBJECT (v4l2object->element, "Got output framerate: %u/%u",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Got output framerate: %u/%u",
         streamparm.parm.output.timeperframe.denominator,
         streamparm.parm.output.timeperframe.numerator);
 
-    GST_LOG_OBJECT (v4l2object->element, "Setting output framerate to %u/%u",
+    GST_LOG_OBJECT (v4l2object->dbg_obj, "Setting output framerate to %u/%u",
         fps_n, fps_d);
     if ((streamparm.parm.output.capability & V4L2_CAP_TIMEPERFRAME) == 0) {
-      GST_DEBUG_OBJECT (v4l2object->element,
+      GST_DEBUG_OBJECT (v4l2object->dbg_obj,
           "Not setting output framerate (not supported)");
       goto done;
     }
@@ -3550,7 +3628,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
     streamparm.parm.output.timeperframe.numerator = fps_d;
     streamparm.parm.output.timeperframe.denominator = fps_n;
 
-    if (v4l2_ioctl (fd, VIDIOC_S_PARM, &streamparm) < 0)
+    if (v4l2object->ioctl (fd, VIDIOC_S_PARM, &streamparm) < 0)
       goto set_parm_failed;
 
     if (streamparm.parm.output.timeperframe.numerator > 0 &&
@@ -3559,11 +3637,11 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
       fps_d = streamparm.parm.output.timeperframe.numerator;
       fps_n = streamparm.parm.output.timeperframe.denominator;
 
-      GST_INFO_OBJECT (v4l2object->element, "Set output framerate to %u/%u",
+      GST_INFO_OBJECT (v4l2object->dbg_obj, "Set output framerate to %u/%u",
           fps_n, fps_d);
     } else {
       /* fix v4l2 output driver to provide framerate values */
-      GST_WARNING_OBJECT (v4l2object->element,
+      GST_WARNING_OBJECT (v4l2object->dbg_obj,
           "Reuse caps framerate %u/%u - fix v4l2 output driver", fps_n, fps_d);
     }
 
@@ -3584,15 +3662,22 @@ done:
   /* ERRORS */
 invalid_caps:
   {
-    GST_DEBUG_OBJECT (v4l2object->element, "can't parse caps %" GST_PTR_FORMAT,
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "can't parse caps %" GST_PTR_FORMAT,
         caps);
     return FALSE;
   }
 try_fmt_failed:
   {
-    if (errno == EBUSY) {
-      GST_V4L2_ERROR (error, RESOURCE, BUSY,
-          (_("Device '%s' is busy"), v4l2object->videodev),
+    if (errno == EINVAL) {
+      GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
+          (_("Device '%s' has no supported format"), v4l2object->videodev),
+          ("Call to TRY_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
+              GST_FOURCC_ARGS (pixelformat), width, height,
+              g_strerror (errno)));
+    } else {
+      GST_V4L2_ERROR (error, RESOURCE, FAILED,
+          (_("Device '%s' failed during initialization"),
+              v4l2object->videodev),
           ("Call to TRY_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
               GST_FOURCC_ARGS (pixelformat), width, height,
               g_strerror (errno)));
@@ -3607,10 +3692,16 @@ set_fmt_failed:
           ("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
               GST_FOURCC_ARGS (pixelformat), width, height,
               g_strerror (errno)));
-    } else {
+    } else if (errno == EINVAL) {
       GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
-          (_("Device '%s' cannot capture at %dx%d"),
-              v4l2object->videodev, width, height),
+          (_("Device '%s' has no supported format"), v4l2object->videodev),
+          ("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
+              GST_FOURCC_ARGS (pixelformat), width, height,
+              g_strerror (errno)));
+    } else {
+      GST_V4L2_ERROR (error, RESOURCE, FAILED,
+          (_("Device '%s' failed during initialization"),
+              v4l2object->videodev),
           ("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
               GST_FOURCC_ARGS (pixelformat), width, height,
               g_strerror (errno)));
@@ -3619,36 +3710,61 @@ set_fmt_failed:
   }
 invalid_dimensions:
   {
-    if (!try_only) {
-      GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
-          (_("Device '%s' cannot capture at %dx%d"),
-              v4l2object->videodev, width, height),
-          ("Tried to capture at %dx%d, but device returned size %dx%d",
-              width, height, format.fmt.pix.width, format.fmt.pix.height));
-    }
+    GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
+        (_("Device '%s' cannot capture at %dx%d"),
+            v4l2object->videodev, width, height),
+        ("Tried to capture at %dx%d, but device returned size %dx%d",
+            width, height, format.fmt.pix.width, format.fmt.pix.height));
     return FALSE;
   }
 invalid_pixelformat:
   {
-    if (!try_only) {
-      GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
-          (_("Device '%s' cannot capture in the specified format"),
-              v4l2object->videodev),
-          ("Tried to capture in %" GST_FOURCC_FORMAT
-              ", but device returned format" " %" GST_FOURCC_FORMAT,
-              GST_FOURCC_ARGS (pixelformat),
-              GST_FOURCC_ARGS (format.fmt.pix.pixelformat)));
-    }
+    GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
+        (_("Device '%s' cannot capture in the specified format"),
+            v4l2object->videodev),
+        ("Tried to capture in %" GST_FOURCC_FORMAT
+            ", but device returned format" " %" GST_FOURCC_FORMAT,
+            GST_FOURCC_ARGS (pixelformat),
+            GST_FOURCC_ARGS (format.fmt.pix.pixelformat)));
     return FALSE;
   }
 invalid_planes:
   {
-    if (!try_only) {
-      GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
-          (_("Device '%s' does support non-contiguous planes"),
-              v4l2object->videodev),
-          ("Device wants %d planes", format.fmt.pix_mp.num_planes));
-    }
+    GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
+        (_("Device '%s' does support non-contiguous planes"),
+            v4l2object->videodev),
+        ("Device wants %d planes", format.fmt.pix_mp.num_planes));
+    return FALSE;
+  }
+invalid_field:
+  {
+    enum v4l2_field wanted_field;
+
+    if (is_mplane)
+      wanted_field = format.fmt.pix_mp.field;
+    else
+      wanted_field = format.fmt.pix.field;
+
+    GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
+        (_("Device '%s' does not support %s interlacing"),
+            v4l2object->videodev,
+            field == V4L2_FIELD_NONE ? "progressive" : "interleaved"),
+        ("Device wants %s interlacing",
+            wanted_field == V4L2_FIELD_NONE ? "progressive" : "interleaved"));
+    return FALSE;
+  }
+invalid_colorimetry:
+  {
+    gchar *wanted_colorimetry;
+
+    wanted_colorimetry = gst_video_colorimetry_to_string (&info.colorimetry);
+
+    GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
+        (_("Device '%s' does not support %s colorimetry"),
+            v4l2object->videodev, gst_structure_get_string (s, "colorimetry")),
+        ("Device wants %s colorimetry", wanted_colorimetry));
+
+    g_free (wanted_colorimetry);
     return FALSE;
   }
 get_parm_failed:
@@ -3679,6 +3795,8 @@ gboolean
 gst_v4l2_object_set_format (GstV4l2Object * v4l2object, GstCaps * caps,
     GstV4l2Error * error)
 {
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Setting format to %" GST_PTR_FORMAT,
+      caps);
   return gst_v4l2_object_set_format_full (v4l2object, caps, FALSE, error);
 }
 
@@ -3686,6 +3804,8 @@ gboolean
 gst_v4l2_object_try_format (GstV4l2Object * v4l2object, GstCaps * caps,
     GstV4l2Error * error)
 {
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Trying format %" GST_PTR_FORMAT,
+      caps);
   return gst_v4l2_object_set_format_full (v4l2object, caps, TRUE, error);
 }
 
@@ -3716,7 +3836,7 @@ gst_v4l2_object_acquire_format (GstV4l2Object * v4l2object, GstVideoInfo * info)
 
   memset (&fmt, 0x00, sizeof (struct v4l2_format));
   fmt.type = v4l2object->type;
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_FMT, &fmt) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_FMT, &fmt) < 0)
     goto get_fmt_failed;
 
   fmtdesc = gst_v4l2_object_get_format_from_fourcc (v4l2object,
@@ -3741,13 +3861,13 @@ gst_v4l2_object_acquire_format (GstV4l2Object * v4l2object, GstVideoInfo * info)
   memset (&sel, 0, sizeof (struct v4l2_selection));
   sel.type = v4l2object->type;
   sel.target = V4L2_SEL_TGT_COMPOSE_DEFAULT;
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_SELECTION, &sel) >= 0) {
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_SELECTION, &sel) >= 0) {
     r = &sel.r;
   } else {
     /* For ancient kernels, fall back to G_CROP */
     memset (&crop, 0, sizeof (struct v4l2_crop));
     crop.type = v4l2object->type;
-    if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_CROP, &crop) >= 0)
+    if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_CROP, &crop) >= 0)
       r = &crop.c;
   }
   if (r) {
@@ -3827,25 +3947,25 @@ gst_v4l2_object_set_crop (GstV4l2Object * obj)
 
   if (obj->align.padding_left + obj->align.padding_top +
       obj->align.padding_right + obj->align.padding_bottom == 0) {
-    GST_DEBUG_OBJECT (obj->element, "no cropping needed");
+    GST_DEBUG_OBJECT (obj->dbg_obj, "no cropping needed");
     return TRUE;
   }
 
-  GST_DEBUG_OBJECT (obj->element,
+  GST_DEBUG_OBJECT (obj->dbg_obj,
       "Desired cropping left %u, top %u, size %ux%u", crop.c.left, crop.c.top,
       crop.c.width, crop.c.height);
 
-  if (v4l2_ioctl (obj->video_fd, VIDIOC_S_CROP, &crop) < 0) {
-    GST_WARNING_OBJECT (obj->element, "VIDIOC_S_CROP failed");
+  if (obj->ioctl (obj->video_fd, VIDIOC_S_CROP, &crop) < 0) {
+    GST_WARNING_OBJECT (obj->dbg_obj, "VIDIOC_S_CROP failed");
     return FALSE;
   }
 
-  if (v4l2_ioctl (obj->video_fd, VIDIOC_G_CROP, &crop) < 0) {
-    GST_WARNING_OBJECT (obj->element, "VIDIOC_G_CROP failed");
+  if (obj->ioctl (obj->video_fd, VIDIOC_G_CROP, &crop) < 0) {
+    GST_WARNING_OBJECT (obj->dbg_obj, "VIDIOC_G_CROP failed");
     return FALSE;
   }
 
-  GST_DEBUG_OBJECT (obj->element,
+  GST_DEBUG_OBJECT (obj->dbg_obj,
       "Got cropping left %u, top %u, size %ux%u", crop.c.left, crop.c.top,
       crop.c.width, crop.c.height);
 
@@ -3877,7 +3997,7 @@ gst_v4l2_object_unlock (GstV4l2Object * v4l2object)
 {
   gboolean ret = TRUE;
 
-  GST_LOG_OBJECT (v4l2object->element, "start flushing");
+  GST_LOG_OBJECT (v4l2object->dbg_obj, "start flushing");
 
   if (v4l2object->pool && gst_buffer_pool_is_active (v4l2object->pool))
     gst_buffer_pool_set_flushing (v4l2object->pool, TRUE);
@@ -3890,7 +4010,7 @@ gst_v4l2_object_unlock_stop (GstV4l2Object * v4l2object)
 {
   gboolean ret = TRUE;
 
-  GST_LOG_OBJECT (v4l2object->element, "stop flushing");
+  GST_LOG_OBJECT (v4l2object->dbg_obj, "stop flushing");
 
   if (v4l2object->pool && gst_buffer_pool_is_active (v4l2object->pool))
     gst_buffer_pool_set_flushing (v4l2object->pool, FALSE);
@@ -3901,7 +4021,7 @@ gst_v4l2_object_unlock_stop (GstV4l2Object * v4l2object)
 gboolean
 gst_v4l2_object_stop (GstV4l2Object * v4l2object)
 {
-  GST_DEBUG_OBJECT (v4l2object->element, "stopping");
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "stopping");
 
   if (!GST_V4L2_IS_OPEN (v4l2object))
     goto done;
@@ -3909,7 +4029,7 @@ gst_v4l2_object_stop (GstV4l2Object * v4l2object)
     goto done;
 
   if (v4l2object->pool) {
-    GST_DEBUG_OBJECT (v4l2object->element, "deactivating pool");
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "deactivating pool");
     gst_buffer_pool_set_active (v4l2object->pool, FALSE);
     gst_object_unref (v4l2object->pool);
     v4l2object->pool = NULL;
@@ -3932,27 +4052,62 @@ gst_v4l2_object_probe_caps (GstV4l2Object * v4l2object, GstCaps * filter)
 
   ret = gst_caps_new_empty ();
 
+  if (v4l2object->keep_aspect && !v4l2object->par) {
+    struct v4l2_cropcap cropcap;
+
+    memset (&cropcap, 0, sizeof (cropcap));
+
+    cropcap.type = v4l2object->type;
+    if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_CROPCAP, &cropcap) < 0) {
+      if (errno != ENOTTY)
+        GST_WARNING_OBJECT (v4l2object->dbg_obj,
+            "Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: %s",
+            g_strerror (errno));
+    } else {
+      v4l2object->par = g_new0 (GValue, 1);
+      g_value_init (v4l2object->par, GST_TYPE_FRACTION);
+      gst_value_set_fraction (v4l2object->par, cropcap.pixelaspect.numerator,
+          cropcap.pixelaspect.denominator);
+    }
+  }
+
   for (walk = formats; walk; walk = walk->next) {
     struct v4l2_fmtdesc *format;
     GstStructure *template;
+    GstCaps *tmp;
 
     format = (struct v4l2_fmtdesc *) walk->data;
 
     template = gst_v4l2_object_v4l2fourcc_to_bare_struct (format->pixelformat);
 
-    if (template) {
-      GstCaps *tmp;
+    if (!template) {
+      GST_DEBUG_OBJECT (v4l2object->dbg_obj,
+          "unknown format %" GST_FOURCC_FORMAT,
+          GST_FOURCC_ARGS (format->pixelformat));
+      continue;
+    }
 
-      tmp = gst_v4l2_object_probe_caps_for_format (v4l2object,
-          format->pixelformat, template);
-      if (tmp)
-        gst_caps_append (ret, tmp);
+    /* If we have a filter, check if we need to probe this format or not */
+    if (filter) {
+      GstCaps *format_caps = gst_caps_new_empty ();
 
-      gst_structure_free (template);
-    } else {
-      GST_DEBUG_OBJECT (v4l2object->element, "unknown format %u",
-          format->pixelformat);
+      gst_caps_append_structure (format_caps, gst_structure_copy (template));
+
+      if (!gst_caps_can_intersect (format_caps, filter)) {
+        gst_caps_unref (format_caps);
+        gst_structure_free (template);
+        continue;
+      }
+
+      gst_caps_unref (format_caps);
     }
+
+    tmp = gst_v4l2_object_probe_caps_for_format (v4l2object,
+        format->pixelformat, template);
+    if (tmp)
+      gst_caps_append (ret, tmp);
+
+    gst_structure_free (template);
   }
 
   if (filter) {
@@ -3963,6 +4118,8 @@ gst_v4l2_object_probe_caps (GstV4l2Object * v4l2object, GstCaps * filter)
     gst_caps_unref (tmp);
   }
 
+  GST_INFO_OBJECT (v4l2object->dbg_obj, "probed caps: %" GST_PTR_FORMAT, ret);
+
   return ret;
 }
 
@@ -3981,8 +4138,6 @@ gst_v4l2_object_get_caps (GstV4l2Object * v4l2object, GstCaps * filter)
     ret = gst_caps_ref (v4l2object->probed_caps);
   }
 
-  GST_INFO_OBJECT (v4l2object->element, "probed caps: %" GST_PTR_FORMAT, ret);
-
   return ret;
 }
 
@@ -3999,7 +4154,7 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
   GstAllocator *allocator = NULL;
   GstAllocationParams params = { 0 };
 
-  GST_DEBUG_OBJECT (obj->element, "decide allocation");
+  GST_DEBUG_OBJECT (obj->dbg_obj, "decide allocation");
 
   g_return_val_if_fail (obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE ||
       obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, FALSE);
@@ -4024,7 +4179,7 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
     update = FALSE;
   }
 
-  GST_DEBUG_OBJECT (obj->element, "allocation: size:%u min:%u max:%u pool:%"
+  GST_DEBUG_OBJECT (obj->dbg_obj, "allocation: size:%u min:%u max:%u pool:%"
       GST_PTR_FORMAT, size, min, max, pool);
 
   has_video_meta =
@@ -4043,7 +4198,7 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
       if (pool) {
         /* in READ/WRITE mode, prefer a downstream pool because our own pool
          * doesn't help much, we have to write to it as well */
-        GST_DEBUG_OBJECT (obj->element,
+        GST_DEBUG_OBJECT (obj->dbg_obj,
             "read/write mode: using downstream pool");
         /* use the bigest size, when we use our own pool we can't really do any
          * other size than what the hardware gives us but for downstream pools
@@ -4051,7 +4206,7 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
         size = MAX (size, obj->info.size);
       } else if (can_share_own_pool) {
         /* no downstream pool, use our own then */
-        GST_DEBUG_OBJECT (obj->element,
+        GST_DEBUG_OBJECT (obj->dbg_obj,
             "read/write mode: no downstream pool, using our own");
         pool = gst_object_ref (obj->pool);
         size = obj->info.size;
@@ -4082,22 +4237,22 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
           gst_object_unref (pool);
         pool = gst_object_ref (obj->pool);
         size = obj->info.size;
-        GST_DEBUG_OBJECT (obj->element,
+        GST_DEBUG_OBJECT (obj->dbg_obj,
             "streaming mode: using our own pool %" GST_PTR_FORMAT, pool);
         pushing_from_our_pool = TRUE;
       } else if (pool) {
-        GST_DEBUG_OBJECT (obj->element,
+        GST_DEBUG_OBJECT (obj->dbg_obj,
             "streaming mode: copying to downstream pool %" GST_PTR_FORMAT,
             pool);
       } else {
-        GST_DEBUG_OBJECT (obj->element,
+        GST_DEBUG_OBJECT (obj->dbg_obj,
             "streaming mode: no usable pool, copying to generic pool");
         size = MAX (size, obj->info.size);
       }
       break;
     case GST_V4L2_IO_AUTO:
     default:
-      GST_WARNING_OBJECT (obj->element, "unhandled mode");
+      GST_WARNING_OBJECT (obj->dbg_obj, "unhandled mode");
       break;
   }
 
@@ -4109,14 +4264,16 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
   if (pushing_from_our_pool) {
     /* When pushing from our own pool, we need what downstream one, to be able
      * to fill the pipeline, the minimum required to decoder according to the
-     * driver and 1 more, so we don't endup up with everything downstream or
-     * held by the decoder. */
-    own_min = min + obj->min_buffers + 1;
+     * driver and 2 more, so we don't endup up with everything downstream or
+     * held by the decoder. We account 2 buffers for v4l2 so when one is being
+     * pushed downstream the other one can already be queued for the next
+     * frame. */
+    own_min = min + obj->min_buffers + 2;
 
     /* If no allocation parameters where provided, allow for a little more
      * buffers and enable copy threshold */
     if (!update) {
-      own_min += 3;
+      own_min += 2;
       gst_v4l2_buffer_pool_copy_at_threshold (GST_V4L2_BUFFER_POOL (pool),
           TRUE);
     } else {
@@ -4148,7 +4305,7 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
   config = gst_buffer_pool_get_config (obj->pool);
 
   if (obj->need_video_meta || has_video_meta) {
-    GST_DEBUG_OBJECT (obj->element, "activate Video Meta");
+    GST_DEBUG_OBJECT (obj->dbg_obj, "activate Video Meta");
     gst_buffer_pool_config_add_option (config,
         GST_BUFFER_POOL_OPTION_VIDEO_META);
   }
@@ -4156,14 +4313,14 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
   gst_buffer_pool_config_set_allocator (config, allocator, &params);
   gst_buffer_pool_config_set_params (config, caps, size, own_min, 0);
 
-  GST_DEBUG_OBJECT (obj->element, "setting own pool config to %"
+  GST_DEBUG_OBJECT (obj->dbg_obj, "setting own pool config to %"
       GST_PTR_FORMAT, config);
 
   /* Our pool often need to adjust the value */
   if (!gst_buffer_pool_set_config (obj->pool, config)) {
     config = gst_buffer_pool_get_config (obj->pool);
 
-    GST_DEBUG_OBJECT (obj->element, "own pool config changed to %"
+    GST_DEBUG_OBJECT (obj->dbg_obj, "own pool config changed to %"
         GST_PTR_FORMAT, config);
 
     /* our pool will adjust the maximum buffer, which we are fine with */
@@ -4180,12 +4337,12 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
     gst_buffer_pool_config_set_allocator (config, allocator, &params);
     gst_buffer_pool_config_set_params (config, caps, size, min, max);
 
-    GST_DEBUG_OBJECT (obj->element, "setting other pool config to %"
+    GST_DEBUG_OBJECT (obj->dbg_obj, "setting other pool config to %"
         GST_PTR_FORMAT, config);
 
     /* if downstream supports video metadata, add this to the pool config */
     if (has_video_meta) {
-      GST_DEBUG_OBJECT (obj->element, "activate Video Meta");
+      GST_DEBUG_OBJECT (obj->dbg_obj, "activate Video Meta");
       gst_buffer_pool_config_add_option (config,
           GST_BUFFER_POOL_OPTION_VIDEO_META);
     }
@@ -4290,7 +4447,7 @@ gst_v4l2_object_propose_allocation (GstV4l2Object * obj, GstQuery * query)
     config = gst_buffer_pool_get_config (pool);
     gst_buffer_pool_config_get_params (config, &pcaps, NULL, NULL, NULL);
 
-    GST_DEBUG_OBJECT (obj->element,
+    GST_DEBUG_OBJECT (obj->dbg_obj,
         "we had a pool with caps %" GST_PTR_FORMAT, pcaps);
     if (!gst_caps_is_equal (caps, pcaps)) {
       gst_structure_free (config);
@@ -4316,13 +4473,13 @@ gst_v4l2_object_propose_allocation (GstV4l2Object * obj, GstQuery * query)
   /* ERRORS */
 no_caps:
   {
-    GST_DEBUG_OBJECT (obj->element, "no caps specified");
+    GST_DEBUG_OBJECT (obj->dbg_obj, "no caps specified");
     return FALSE;
   }
 different_caps:
   {
     /* different caps, we can't use this pool */
-    GST_DEBUG_OBJECT (obj->element, "pool has different caps");
+    GST_DEBUG_OBJECT (obj->dbg_obj, "pool has different caps");
     return FALSE;
   }
 }
diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
index 231b1ab3a..73ba62416 100644
--- a/sys/v4l2/gstv4l2object.h
+++ b/sys/v4l2/gstv4l2object.h
@@ -25,6 +25,10 @@
 #define __GST_V4L2_OBJECT_H__
 
 #include "ext/videodev2.h"
+#ifdef HAVE_LIBV4L2
+#  include <libv4l2.h>
+#endif
+
 #include "v4l2-utils.h"
 
 #include <gst/gst.h>
@@ -34,7 +38,6 @@
 
 typedef struct _GstV4l2Object GstV4l2Object;
 typedef struct _GstV4l2ObjectClassHelper GstV4l2ObjectClassHelper;
-typedef struct _GstV4l2Xv GstV4l2Xv;
 
 #include <gstv4l2bufferpool.h>
 
@@ -78,8 +81,37 @@ typedef gboolean  (*GstV4l2UpdateFpsFunction) (GstV4l2Object * v4l2object);
 #define GST_V4L2_SET_ACTIVE(o)   ((o)->active = TRUE)
 #define GST_V4L2_SET_INACTIVE(o) ((o)->active = FALSE)
 
+/* checks whether the current v4lv4l2object has already been open()'ed or not */
+#define GST_V4L2_CHECK_OPEN(v4l2object)				\
+  if (!GST_V4L2_IS_OPEN(v4l2object))				\
+  {								\
+    GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,	\
+      (_("Device is not open.")), (NULL));                      \
+    return FALSE;						\
+  }
+
+/* checks whether the current v4lv4l2object is close()'ed or whether it is still open */
+#define GST_V4L2_CHECK_NOT_OPEN(v4l2object)			\
+  if (GST_V4L2_IS_OPEN(v4l2object))				\
+  {								\
+    GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,	\
+      (_("Device is open.")), (NULL));                          \
+    return FALSE;						\
+  }
+
+/* checks whether we're out of capture mode or not */
+#define GST_V4L2_CHECK_NOT_ACTIVE(v4l2object)			\
+  if (GST_V4L2_IS_ACTIVE(v4l2object))				\
+  {								\
+    GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS, \
+      (NULL), ("Device is in streaming mode"));                 \
+    return FALSE;						\
+  }
+
+
 struct _GstV4l2Object {
   GstElement * element;
+  GstObject * dbg_obj;
 
   enum v4l2_buf_type type;   /* V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_BUF_TYPE_VIDEO_OUTPUT */
 
@@ -122,9 +154,6 @@ struct _GstV4l2Object {
    * calculate the minimum latency. */
   guint32 min_buffers;
 
-  /* This will be set if supported in propose allocation. */
-  guint32 min_buffers_for_output;
-
   /* wanted mode */
   GstV4l2IOMode req_mode;
 
@@ -136,12 +165,6 @@ struct _GstV4l2Object {
   /* opened device specific capabilities */
   guint32 device_caps;
 
-  /* the video device's window properties */
-  struct v4l2_window vwin;
-
-  /* some more info about the current input's capabilities */
-  struct v4l2_input vinput;
-
   /* lists... */
   GSList *formats;              /* list of available capture formats */
   GstCaps *probed_caps;
@@ -159,21 +182,31 @@ struct _GstV4l2Object {
   gboolean keep_aspect;
   GValue *par;
 
-  /* X-overlay */
-  GstV4l2Xv *xv;
-  gulong xwindow_id;
-
   /* funcs */
   GstV4l2GetInOutFunction  get_in_out_func;
   GstV4l2SetInOutFunction  set_in_out_func;
   GstV4l2UpdateFpsFunction update_fps_func;
 
+  /* syscalls */
+  gint (*fd_open) (gint fd, gint v4l2_flags);
+  gint (*close) (gint fd);
+  gint (*dup) (gint fd);
+  gint (*ioctl) (gint fd, gulong request, ...);
+  gssize (*read) (gint fd, gpointer buffer, gsize n);
+  gpointer (*mmap) (gpointer start, gsize length, gint prot, gint flags,
+      gint fd, gint64 offset);
+  gint (*munmap) (gpointer _start, gsize length);
+
   /* Quirks */
   /* Skips interlacing probes */
   gboolean never_interlaced;
   /* Allow to skip reading initial format through G_FMT. Some devices
    * just fails if you don't call S_FMT first. (ex: M2M decoders) */
   gboolean no_initial_format;
+  /* Avoid any try_fmt probe. This is used by v4l2src to speedup start up time
+   * on slow USB firmwares. When this is set, gst_v4l2_set_format() will modify
+   * the caps to reflect what was negotiated during fixation */
+  gboolean skip_try_fmt_probes;
 };
 
 struct _GstV4l2ObjectClassHelper {
@@ -202,13 +235,14 @@ GType gst_v4l2_object_get_type (void);
 
 /* create/destroy */
 GstV4l2Object*  gst_v4l2_object_new       (GstElement * element,
+                                           GstObject * dbg_obj,
                                            enum v4l2_buf_type  type,
                                            const char * default_device,
                                            GstV4l2GetInOutFunction get_in_out_func,
                                            GstV4l2SetInOutFunction set_in_out_func,
                                            GstV4l2UpdateFpsFunction update_fps_func);
 
-void            gst_v4l2_object_destroy   (GstV4l2Object * v4l2object);
+void         gst_v4l2_object_destroy   (GstV4l2Object * v4l2object);
 
 /* properties */
 
@@ -225,49 +259,68 @@ gboolean     gst_v4l2_object_get_property_helper       (GstV4l2Object *v4l2objec
                                                         guint prop_id, GValue * value,
                                                         GParamSpec * pspec);
 /* open/close */
-gboolean     gst_v4l2_object_open            (GstV4l2Object *v4l2object);
-gboolean     gst_v4l2_object_open_shared     (GstV4l2Object *v4l2object, GstV4l2Object *other);
-gboolean     gst_v4l2_object_close           (GstV4l2Object *v4l2object);
+gboolean     gst_v4l2_object_open            (GstV4l2Object * v4l2object);
+gboolean     gst_v4l2_object_open_shared     (GstV4l2Object * v4l2object, GstV4l2Object * other);
+gboolean     gst_v4l2_object_close           (GstV4l2Object * v4l2object);
 
 /* probing */
 
-GstCaps*      gst_v4l2_object_get_all_caps (void);
+GstCaps*     gst_v4l2_object_get_all_caps (void);
 
-GstCaps*      gst_v4l2_object_get_raw_caps (void);
+GstCaps*     gst_v4l2_object_get_raw_caps (void);
 
-GstCaps*      gst_v4l2_object_get_codec_caps (void);
+GstCaps*     gst_v4l2_object_get_codec_caps (void);
 
-gint          gst_v4l2_object_extrapolate_stride (const GstVideoFormatInfo * finfo,
+gint         gst_v4l2_object_extrapolate_stride (const GstVideoFormatInfo * finfo,
                                                   gint plane, gint stride);
 
-gboolean      gst_v4l2_object_set_format  (GstV4l2Object * v4l2object, GstCaps * caps, GstV4l2Error *error);
-gboolean      gst_v4l2_object_try_format  (GstV4l2Object * v4l2object, GstCaps * caps, GstV4l2Error *error);
+gboolean     gst_v4l2_object_set_format  (GstV4l2Object * v4l2object, GstCaps * caps, GstV4l2Error * error);
+gboolean     gst_v4l2_object_try_format  (GstV4l2Object * v4l2object, GstCaps * caps, GstV4l2Error * error);
 
-gboolean      gst_v4l2_object_caps_equal  (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);
+gboolean     gst_v4l2_object_unlock      (GstV4l2Object * v4l2object);
+gboolean     gst_v4l2_object_unlock_stop (GstV4l2Object * v4l2object);
 
-gboolean      gst_v4l2_object_stop        (GstV4l2Object * v4l2object);
+gboolean     gst_v4l2_object_stop        (GstV4l2Object * v4l2object);
 
-GstCaps *     gst_v4l2_object_probe_caps  (GstV4l2Object * v4l2object,
-                                           GstCaps * filter);
-GstCaps *     gst_v4l2_object_get_caps    (GstV4l2Object * v4l2object,
-                                           GstCaps * filter);
+GstCaps *    gst_v4l2_object_probe_caps  (GstV4l2Object * v4l2object, GstCaps * filter);
+GstCaps *    gst_v4l2_object_get_caps    (GstV4l2Object * v4l2object, GstCaps * filter);
 
-gboolean      gst_v4l2_object_acquire_format (GstV4l2Object * v4l2object,
-                                              GstVideoInfo * info);
+gboolean     gst_v4l2_object_acquire_format (GstV4l2Object * v4l2object, GstVideoInfo * info);
 
-gboolean      gst_v4l2_object_set_crop    (GstV4l2Object * obj);
+gboolean     gst_v4l2_object_set_crop    (GstV4l2Object * obj);
 
-gboolean      gst_v4l2_object_decide_allocation (GstV4l2Object * v4l2object,
-                                                 GstQuery * query);
+gboolean     gst_v4l2_object_decide_allocation (GstV4l2Object * v4l2object, GstQuery * query);
 
-gboolean      gst_v4l2_object_propose_allocation (GstV4l2Object * obj,
-                                                  GstQuery * query);
+gboolean     gst_v4l2_object_propose_allocation (GstV4l2Object * obj, GstQuery * query);
 
 GstStructure * gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc);
 
+/* TODO Move to proper namespace */
+/* open/close the device */
+gboolean     gst_v4l2_open           (GstV4l2Object * v4l2object);
+gboolean     gst_v4l2_dup            (GstV4l2Object * v4l2object, GstV4l2Object * other);
+gboolean     gst_v4l2_close          (GstV4l2Object * v4l2object);
+
+/* norm/input/output */
+gboolean     gst_v4l2_get_norm       (GstV4l2Object * v4l2object, v4l2_std_id * norm);
+gboolean     gst_v4l2_set_norm       (GstV4l2Object * v4l2object, v4l2_std_id norm);
+gboolean     gst_v4l2_get_input      (GstV4l2Object * v4l2object, gint * input);
+gboolean     gst_v4l2_set_input      (GstV4l2Object * v4l2object, gint input);
+gboolean     gst_v4l2_get_output     (GstV4l2Object * v4l2object, gint * output);
+gboolean     gst_v4l2_set_output     (GstV4l2Object * v4l2object, gint output);
+
+/* frequency control */
+gboolean     gst_v4l2_get_frequency   (GstV4l2Object * v4l2object, gint tunernum, gulong * frequency);
+gboolean     gst_v4l2_set_frequency   (GstV4l2Object * v4l2object, gint tunernum, gulong frequency);
+gboolean     gst_v4l2_signal_strength (GstV4l2Object * v4l2object, gint tunernum, gulong * signal);
+
+/* attribute control */
+gboolean     gst_v4l2_get_attribute   (GstV4l2Object * v4l2object, int attribute, int * value);
+gboolean     gst_v4l2_set_attribute   (GstV4l2Object * v4l2object, int attribute, const int value);
+gboolean     gst_v4l2_set_controls    (GstV4l2Object * v4l2object, GstStructure * controls);
+
 G_END_DECLS
 
 #endif /* __GST_V4L2_OBJECT_H__ */
diff --git a/sys/v4l2/gstv4l2radio.c b/sys/v4l2/gstv4l2radio.c
index 5d74e7eb6..6bfbefb6f 100644
--- a/sys/v4l2/gstv4l2radio.c
+++ b/sys/v4l2/gstv4l2radio.c
@@ -44,9 +44,9 @@
 
 #include "gst/gst-i18n-plugin.h"
 
+#include "gstv4l2object.h"
 #include "gstv4l2tuner.h"
 #include "gstv4l2radio.h"
-#include "v4l2_calls.h"
 
 GST_DEBUG_CATEGORY_STATIC (v4l2radio_debug);
 #define GST_CAT_DEFAULT v4l2radio_debug
@@ -86,7 +86,7 @@ gst_v4l2radio_fill_channel_list (GstV4l2Radio * radio)
 
   memset (&vc, 0, sizeof (vc));
 
-  res = v4l2_ioctl (v4l2object->video_fd, VIDIOC_QUERYCAP, &vc);
+  res = v4l2object->ioctl (v4l2object->video_fd, VIDIOC_QUERYCAP, &vc);
   if (res < 0)
     goto caps_failed;
 
@@ -102,7 +102,7 @@ gst_v4l2radio_fill_channel_list (GstV4l2Radio * radio)
   memset (&vtun, 0, sizeof (vtun));
   vtun.index = 0;
 
-  res = v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_TUNER, &vtun);
+  res = v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_TUNER, &vtun);
   if (res < 0)
     goto tuner_failed;
 
@@ -326,7 +326,7 @@ static void
 gst_v4l2radio_init (GstV4l2Radio * filter)
 {
   filter->v4l2object = gst_v4l2_object_new (GST_ELEMENT (filter),
-      V4L2_BUF_TYPE_VIDEO_CAPTURE, DEFAULT_PROP_DEVICE,
+      GST_OBJECT (filter), V4L2_BUF_TYPE_VIDEO_CAPTURE, DEFAULT_PROP_DEVICE,
       gst_v4l2radio_get_input, gst_v4l2radio_set_input, NULL);
 
   filter->v4l2object->frequency = DEFAULT_FREQUENCY;
diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
index 329594777..87392187e 100644
--- a/sys/v4l2/gstv4l2sink.c
+++ b/sys/v4l2/gstv4l2sink.c
@@ -202,8 +202,8 @@ static void
 gst_v4l2sink_init (GstV4l2Sink * v4l2sink)
 {
   v4l2sink->v4l2object = gst_v4l2_object_new (GST_ELEMENT (v4l2sink),
-      V4L2_BUF_TYPE_VIDEO_OUTPUT, DEFAULT_PROP_DEVICE,
-      gst_v4l2_get_output, gst_v4l2_set_output, NULL);
+      GST_OBJECT (GST_BASE_SINK_PAD (v4l2sink)), V4L2_BUF_TYPE_VIDEO_OUTPUT,
+      DEFAULT_PROP_DEVICE, gst_v4l2_get_output, gst_v4l2_set_output, NULL);
 
   /* same default value for video output device as is used for
    * v4l2src/capture is no good..  so lets set a saner default
@@ -246,16 +246,16 @@ gst_v4l2sink_sync_overlay_fields (GstV4l2Sink * v4l2sink)
 
   if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
 
-    gint fd = v4l2sink->v4l2object->video_fd;
+    GstV4l2Object *obj = v4l2sink->v4l2object;
     struct v4l2_format format;
 
     memset (&format, 0x00, sizeof (struct v4l2_format));
-    if (v4l2sink->v4l2object->device_caps & V4L2_CAP_VIDEO_OUTPUT_OVERLAY)
+    if (obj->device_caps & V4L2_CAP_VIDEO_OUTPUT_OVERLAY)
       format.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY;
     else
       format.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
 
-    if (v4l2_ioctl (fd, VIDIOC_G_FMT, &format) < 0) {
+    if (obj->ioctl (obj->video_fd, VIDIOC_G_FMT, &format) < 0) {
       GST_WARNING_OBJECT (v4l2sink, "VIDIOC_G_FMT failed");
       return;
     }
@@ -275,7 +275,7 @@ gst_v4l2sink_sync_overlay_fields (GstV4l2Sink * v4l2sink)
     if (v4l2sink->overlay_fields_set & RECT_HEIGHT_SET)
       format.fmt.win.w.height = v4l2sink->overlay.height;
 
-    if (v4l2_ioctl (fd, VIDIOC_S_FMT, &format) < 0) {
+    if (obj->ioctl (obj->video_fd, VIDIOC_S_FMT, &format) < 0) {
       GST_WARNING_OBJECT (v4l2sink, "VIDIOC_S_FMT failed");
       return;
     }
@@ -293,13 +293,13 @@ gst_v4l2sink_sync_crop_fields (GstV4l2Sink * v4l2sink)
 
   if (GST_V4L2_IS_OPEN (v4l2sink->v4l2object)) {
 
-    gint fd = v4l2sink->v4l2object->video_fd;
+    GstV4l2Object *obj = v4l2sink->v4l2object;
     struct v4l2_crop crop;
 
     memset (&crop, 0x00, sizeof (struct v4l2_crop));
     crop.type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
 
-    if (v4l2_ioctl (fd, VIDIOC_G_CROP, &crop) < 0) {
+    if (obj->ioctl (obj->video_fd, VIDIOC_G_CROP, &crop) < 0) {
       GST_WARNING_OBJECT (v4l2sink, "VIDIOC_G_CROP failed");
       return;
     }
@@ -319,12 +319,12 @@ gst_v4l2sink_sync_crop_fields (GstV4l2Sink * v4l2sink)
     if (v4l2sink->crop_fields_set & RECT_HEIGHT_SET)
       crop.c.height = v4l2sink->crop.height;
 
-    if (v4l2_ioctl (fd, VIDIOC_S_CROP, &crop) < 0) {
+    if (obj->ioctl (obj->video_fd, VIDIOC_S_CROP, &crop) < 0) {
       GST_WARNING_OBJECT (v4l2sink, "VIDIOC_S_CROP failed");
       return;
     }
 
-    if (v4l2_ioctl (fd, VIDIOC_G_CROP, &crop) < 0) {
+    if (obj->ioctl (obj->video_fd, VIDIOC_G_CROP, &crop) < 0) {
       GST_WARNING_OBJECT (v4l2sink, "VIDIOC_G_CROP failed");
       return;
     }
diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
index 3e5129f79..33e97fb68 100644
--- a/sys/v4l2/gstv4l2sink.h
+++ b/sys/v4l2/gstv4l2sink.h
@@ -29,9 +29,6 @@
 #include <gstv4l2object.h>
 #include <gstv4l2bufferpool.h>
 
-GST_DEBUG_CATEGORY_EXTERN (v4l2sink_debug);
-
-
 G_BEGIN_DECLS
 
 #define GST_TYPE_V4L2SINK \
diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c
index 8273af409..aba449645 100644
--- a/sys/v4l2/gstv4l2src.c
+++ b/sys/v4l2/gstv4l2src.c
@@ -38,6 +38,10 @@
  * ]| This pipeline shows the video captured from a webcam that delivers jpeg
  * images.
  * </refsect2>
+ *
+ * Since 1.14, the use of libv4l2 has been disabled due to major bugs in the
+ * emulation layer. To enable usage of this library, set the environment
+ * variable GST_V4L2_USE_LIBV4L2=1.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -107,13 +111,13 @@ static gboolean gst_v4l2src_start (GstBaseSrc * src);
 static gboolean gst_v4l2src_unlock (GstBaseSrc * src);
 static gboolean gst_v4l2src_unlock_stop (GstBaseSrc * src);
 static gboolean gst_v4l2src_stop (GstBaseSrc * src);
-static gboolean gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps);
 static GstCaps *gst_v4l2src_get_caps (GstBaseSrc * src, GstCaps * filter);
 static gboolean gst_v4l2src_query (GstBaseSrc * bsrc, GstQuery * query);
 static gboolean gst_v4l2src_decide_allocation (GstBaseSrc * src,
     GstQuery * query);
 static GstFlowReturn gst_v4l2src_create (GstPushSrc * src, GstBuffer ** out);
-static GstCaps *gst_v4l2src_fixate (GstBaseSrc * basesrc, GstCaps * caps);
+static GstCaps *gst_v4l2src_fixate (GstBaseSrc * basesrc, GstCaps * caps,
+    GstStructure * pref_s);
 static gboolean gst_v4l2src_negotiate (GstBaseSrc * basesrc);
 
 static void gst_v4l2src_set_property (GObject * object, guint prop_id,
@@ -154,8 +158,6 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass)
    * happen prior to the format being set.
    * This is mostly useful for UVC H264 encoding cameras which need the H264
    * Probe & Commit to happen prior to the normal Probe & Commit.
-   *
-   * Since: 0.10.32
    */
   gst_v4l2_signals[SIGNAL_PRE_SET_FORMAT] = g_signal_new ("prepare-format",
       G_TYPE_FROM_CLASS (klass),
@@ -174,13 +176,11 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass)
           gst_v4l2_object_get_all_caps ()));
 
   basesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_v4l2src_get_caps);
-  basesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_v4l2src_set_caps);
   basesrc_class->start = GST_DEBUG_FUNCPTR (gst_v4l2src_start);
   basesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_v4l2src_unlock);
   basesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_v4l2src_unlock_stop);
   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->negotiate = GST_DEBUG_FUNCPTR (gst_v4l2src_negotiate);
   basesrc_class->decide_allocation =
       GST_DEBUG_FUNCPTR (gst_v4l2src_decide_allocation);
@@ -197,8 +197,11 @@ gst_v4l2src_init (GstV4l2Src * v4l2src)
 {
   /* fixme: give an update_fps_function */
   v4l2src->v4l2object = gst_v4l2_object_new (GST_ELEMENT (v4l2src),
-      V4L2_BUF_TYPE_VIDEO_CAPTURE, DEFAULT_PROP_DEVICE,
-      gst_v4l2_get_input, gst_v4l2_set_input, NULL);
+      GST_OBJECT (GST_BASE_SRC_PAD (v4l2src)), V4L2_BUF_TYPE_VIDEO_CAPTURE,
+      DEFAULT_PROP_DEVICE, gst_v4l2_get_input, gst_v4l2_set_input, NULL);
+
+  /* Avoid the slow probes */
+  v4l2src->v4l2object->skip_try_fmt_probes = TRUE;
 
   gst_base_src_set_format (GST_BASE_SRC (v4l2src), GST_FORMAT_TIME);
   gst_base_src_set_live (GST_BASE_SRC (v4l2src), TRUE);
@@ -246,47 +249,248 @@ gst_v4l2src_get_property (GObject * object,
   }
 }
 
-/* this function is a bit of a last resort */
+struct PreferedCapsInfo
+{
+  gint width;
+  gint height;
+  gint fps_n;
+  gint fps_d;
+};
+
+static gboolean
+gst_vl42_src_fixate_fields (GQuark field_id, GValue * value, gpointer user_data)
+{
+  GstStructure *s = user_data;
+
+  if (field_id == g_quark_from_string ("interlace-mode"))
+    return TRUE;
+
+  if (field_id == g_quark_from_string ("colorimetry"))
+    return TRUE;
+
+  gst_structure_fixate_field (s, g_quark_to_string (field_id));
+
+  return TRUE;
+}
+
+static void
+gst_v4l2_src_fixate_struct_with_preference (GstStructure * s,
+    struct PreferedCapsInfo *pref)
+{
+  if (gst_structure_has_field (s, "width"))
+    gst_structure_fixate_field_nearest_int (s, "width", pref->width);
+
+  if (gst_structure_has_field (s, "height"))
+    gst_structure_fixate_field_nearest_int (s, "height", pref->height);
+
+  if (gst_structure_has_field (s, "framerate"))
+    gst_structure_fixate_field_nearest_fraction (s, "framerate", pref->fps_n,
+        pref->fps_d);
+
+  /* Finally, fixate everything else except the interlace-mode and colorimetry
+   * which still need further negotiation as it wasn't probed */
+  gst_structure_map_in_place (s, gst_vl42_src_fixate_fields, s);
+}
+
+static void
+gst_v4l2_src_parse_fixed_struct (GstStructure * s,
+    gint * width, gint * height, gint * fps_n, gint * fps_d)
+{
+  if (gst_structure_has_field (s, "width") && width)
+    gst_structure_get_int (s, "width", width);
+
+  if (gst_structure_has_field (s, "height") && height)
+    gst_structure_get_int (s, "height", height);
+
+  if (gst_structure_has_field (s, "framerate") && fps_n && fps_d)
+    gst_structure_get_fraction (s, "framerate", fps_n, fps_d);
+}
+
+/* TODO Consider framerate */
+static gint
+gst_v4l2src_fixed_caps_compare (GstStructure * a, GstStructure * b,
+    struct PreferedCapsInfo *pref)
+{
+  gint aw = G_MAXINT, ah = G_MAXINT, ad = G_MAXINT;
+  gint bw = G_MAXINT, bh = G_MAXINT, bd = G_MAXINT;
+  gint ret;
+
+  gst_v4l2_src_parse_fixed_struct (a, &aw, &ah, NULL, NULL);
+  gst_v4l2_src_parse_fixed_struct (b, &bw, &bh, NULL, NULL);
+
+  /* When both are smaller then pref, just append to the end */
+  if ((bw < pref->width || bh < pref->height)
+      && (aw < pref->width || ah < pref->height)) {
+    ret = 1;
+    goto done;
+  }
+
+  /* If a is smaller then pref and not b, then a goes after b */
+  if (aw < pref->width || ah < pref->height) {
+    ret = 1;
+    goto done;
+  }
+
+  /* If b is smaller then pref and not a, then a goes before b */
+  if (bw < pref->width || bh < pref->height) {
+    ret = -1;
+    goto done;
+  }
+
+  /* Both are larger or equal to the preference, prefer the smallest */
+  ad = MAX (1, aw - pref->width) * MAX (1, ah - pref->height);
+  bd = MAX (1, bw - pref->width) * MAX (1, bh - pref->height);
+
+  /* Adjust slightly in case width/height matched the preference */
+  if (aw == pref->width)
+    ad -= 1;
+
+  if (ah == pref->height)
+    ad -= 1;
+
+  if (bw == pref->width)
+    bd -= 1;
+
+  if (bh == pref->height)
+    bd -= 1;
+
+  /* If the choices are equivalent, maintain the order */
+  if (ad == bd)
+    ret = 1;
+  else
+    ret = ad - bd;
+
+done:
+  GST_TRACE ("Placing %ix%i (%s) %s %ix%i (%s)", aw, ah,
+      gst_structure_get_string (a, "format"), ret > 0 ? "after" : "before", bw,
+      bh, gst_structure_get_string (b, "format"));
+  return ret;
+}
+
+static gboolean
+gst_v4l2src_set_format (GstV4l2Src * v4l2src, GstCaps * caps,
+    GstV4l2Error * error)
+{
+  GstV4l2Object *obj;
+
+  obj = v4l2src->v4l2object;
+
+  /* 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);
+
+  return gst_v4l2_object_set_format (obj, caps, error);
+}
+
 static GstCaps *
-gst_v4l2src_fixate (GstBaseSrc * basesrc, GstCaps * caps)
+gst_v4l2src_fixate (GstBaseSrc * basesrc, GstCaps * caps, GstStructure * pref_s)
 {
-  GstStructure *structure;
-  gint i;
+  /* Let's prefer a good resolutiion as of today's standard. */
+  struct PreferedCapsInfo pref = {
+    3840, 2160, 120, 1
+  };
+  GstV4l2Src *v4l2src = GST_V4L2SRC (basesrc);
+  GstV4l2Object *obj = v4l2src->v4l2object;
+  GList *caps_list = NULL;
+  GstStructure *s;
+  gint i = G_MAXINT;
+  GstV4l2Error error = GST_V4L2_ERROR_INIT;
+  GstCaps *fcaps = NULL;
 
   GST_DEBUG_OBJECT (basesrc, "fixating caps %" GST_PTR_FORMAT, caps);
 
   caps = gst_caps_make_writable (caps);
 
-  for (i = 0; i < gst_caps_get_size (caps); ++i) {
-    structure = gst_caps_get_structure (caps, i);
+  /* We consider the first structure from peercaps to be a preference. This is
+   * useful for matching a reported native display, or simply to avoid
+   * transformation to happen downstream. */
+  if (pref_s) {
+    pref_s = gst_structure_copy (pref_s);
+    gst_v4l2_src_fixate_struct_with_preference (pref_s, &pref);
+    gst_v4l2_src_parse_fixed_struct (pref_s, &pref.width, &pref.height,
+        &pref.fps_n, &pref.fps_d);
+    gst_structure_free (pref_s);
+  }
+
+  GST_DEBUG_OBJECT (basesrc, "Prefered size %ix%i", pref.width, pref.height);
 
-    /* We are fixating to a reasonable 320x200 resolution
-       and the maximum framerate resolution for that size */
-    if (gst_structure_has_field (structure, "width"))
-      gst_structure_fixate_field_nearest_int (structure, "width", 320);
+  /* Sort the structures to get the caps that is nearest to our preferences,
+   * first */
+  while ((s = gst_caps_steal_structure (caps, 0))) {
+    gst_v4l2_src_fixate_struct_with_preference (s, &pref);
+    caps_list = g_list_insert_sorted_with_data (caps_list, s,
+        (GCompareDataFunc) gst_v4l2src_fixed_caps_compare, &pref);
+  }
+
+  while (caps_list) {
+    s = caps_list->data;
+    caps_list = g_list_delete_link (caps_list, caps_list);
+    gst_caps_append_structure (caps, s);
+  }
 
-    if (gst_structure_has_field (structure, "height"))
-      gst_structure_fixate_field_nearest_int (structure, "height", 200);
+  GST_DEBUG_OBJECT (basesrc, "sorted and normalized caps %" GST_PTR_FORMAT,
+      caps);
 
-    if (gst_structure_has_field (structure, "framerate"))
-      gst_structure_fixate_field_nearest_fraction (structure, "framerate",
-          100, 1);
+  /* Each structure in the caps has been fixated, except for the
+   * interlace-mode and colorimetry. Now normalize the caps so we can
+   * enumerate the possibilities */
+  caps = gst_caps_normalize (caps);
+
+  for (i = 0; i < gst_caps_get_size (caps); ++i) {
+    gst_v4l2_clear_error (&error);
+    if (fcaps)
+      gst_caps_unref (fcaps);
+
+    fcaps = gst_caps_copy_nth (caps, i);
+
+    if (GST_V4L2_IS_ACTIVE (obj)) {
+      /* Just check if the format is acceptable, once we know
+       * no buffers should be outstanding we try S_FMT.
+       *
+       * Basesrc will do an allocation query that
+       * should indirectly reclaim buffers, after that we can
+       * set the format and then configure our pool */
+      if (gst_v4l2_object_try_format (obj, fcaps, &error)) {
+        /* make sure the caps changed before doing anything */
+        if (gst_v4l2_object_caps_equal (obj, fcaps))
+          break;
+
+        v4l2src->renegotiation_adjust = v4l2src->offset + 1;
+        v4l2src->pending_set_fmt = TRUE;
+        break;
+      }
+    } else {
+      if (gst_v4l2src_set_format (v4l2src, fcaps, &error))
+        break;
+    }
 
-    if (gst_structure_has_field (structure, "format"))
-      gst_structure_fixate_field (structure, "format");
+    /* Only EIVAL make sense, report any other errors, this way we don't keep
+     * probing if the device got disconnected, or if it's firmware stopped
+     * responding */
+    if (error.error->code != GST_RESOURCE_ERROR_SETTINGS) {
+      i = G_MAXINT;
+      break;
+    }
+  }
 
-    if (gst_structure_has_field (structure, "interlace-mode"))
-      gst_structure_fixate_field (structure, "interlace-mode");
+  if (i >= gst_caps_get_size (caps)) {
+    gst_v4l2_error (v4l2src, &error);
+    if (fcaps)
+      gst_caps_unref (fcaps);
+    gst_caps_unref (caps);
+    return NULL;
   }
 
-  GST_DEBUG_OBJECT (basesrc, "fixated caps %" GST_PTR_FORMAT, caps);
+  gst_caps_unref (caps);
 
-  caps = GST_BASE_SRC_CLASS (parent_class)->fixate (basesrc, caps);
+  GST_DEBUG_OBJECT (basesrc, "fixated caps %" GST_PTR_FORMAT, fcaps);
 
-  return caps;
+  return fcaps;
 }
 
-
 static gboolean
 gst_v4l2src_negotiate (GstBaseSrc * basesrc)
 {
@@ -307,63 +511,34 @@ gst_v4l2src_negotiate (GstBaseSrc * basesrc)
   peercaps = gst_pad_peer_query_caps (GST_BASE_SRC_PAD (basesrc), NULL);
   GST_DEBUG_OBJECT (basesrc, "caps of peer: %" GST_PTR_FORMAT, peercaps);
   if (peercaps && !gst_caps_is_any (peercaps)) {
-    GstCaps *icaps = NULL;
-
     /* Prefer the first caps we are compatible with that the peer proposed */
-    icaps = gst_caps_intersect_full (peercaps, thiscaps,
+    caps = gst_caps_intersect_full (peercaps, thiscaps,
         GST_CAPS_INTERSECT_FIRST);
 
-    GST_DEBUG_OBJECT (basesrc, "intersect: %" GST_PTR_FORMAT, icaps);
-    if (icaps) {
-      /* If there are multiple intersections pick the one with the smallest
-       * resolution strictly bigger then the first peer caps */
-      if (gst_caps_get_size (icaps) > 1) {
-        GstStructure *s = gst_caps_get_structure (peercaps, 0);
-        int best = 0;
-        int twidth, theight;
-        int width = G_MAXINT, height = G_MAXINT;
-
-        if (gst_structure_get_int (s, "width", &twidth)
-            && gst_structure_get_int (s, "height", &theight)) {
-          int i;
-
-          /* Walk the structure backwards to get the first entry of the
-           * smallest resolution bigger (or equal to) the preferred resolution)
-           */
-          for (i = gst_caps_get_size (icaps) - 1; i >= 0; i--) {
-            GstStructure *is = gst_caps_get_structure (icaps, i);
-            int w, h;
-
-            if (gst_structure_get_int (is, "width", &w)
-                && gst_structure_get_int (is, "height", &h)) {
-              if (w >= twidth && w <= width && h >= theight && h <= height) {
-                width = w;
-                height = h;
-                best = i;
-              }
-            }
-          }
-        }
-
-        caps = gst_caps_copy_nth (icaps, best);
-        gst_caps_unref (icaps);
-      } else {
-        caps = icaps;
-      }
-    }
+    GST_DEBUG_OBJECT (basesrc, "intersect: %" GST_PTR_FORMAT, caps);
+
     gst_caps_unref (thiscaps);
   } else {
     /* no peer or peer have ANY caps, work with our own caps then */
     caps = thiscaps;
   }
-  if (peercaps)
-    gst_caps_unref (peercaps);
-  if (caps) {
-    caps = gst_caps_truncate (caps);
 
+  if (caps) {
     /* now fixate */
     if (!gst_caps_is_empty (caps)) {
-      caps = gst_v4l2src_fixate (basesrc, caps);
+      GstStructure *pref = NULL;
+
+      if (peercaps && !gst_caps_is_any (peercaps))
+        pref = gst_caps_get_structure (peercaps, 0);
+
+      caps = gst_v4l2src_fixate (basesrc, caps, pref);
+
+      /* Fixating may fail as we now set the selected format */
+      if (!caps) {
+        result = FALSE;
+        goto done;
+      }
+
       GST_DEBUG_OBJECT (basesrc, "fixated to: %" GST_PTR_FORMAT, caps);
 
       if (gst_caps_is_any (caps)) {
@@ -377,6 +552,11 @@ gst_v4l2src_negotiate (GstBaseSrc * basesrc)
     }
     gst_caps_unref (caps);
   }
+
+done:
+  if (peercaps)
+    gst_caps_unref (peercaps);
+
   return result;
 
 no_nego_needed:
@@ -404,64 +584,6 @@ gst_v4l2src_get_caps (GstBaseSrc * src, GstCaps * filter)
   return gst_v4l2_object_get_caps (obj, filter);
 }
 
-static gboolean
-gst_v4l2src_set_format (GstV4l2Src * v4l2src, GstCaps * caps)
-{
-  GstV4l2Error error = GST_V4L2_ERROR_INIT;
-  GstV4l2Object *obj;
-
-  obj = v4l2src->v4l2object;
-
-  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)) {
-    gst_v4l2_error (v4l2src, &error);
-    return FALSE;
-  }
-
-  return TRUE;
-}
-
-static gboolean
-gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps)
-{
-  GstV4l2Src *v4l2src;
-  GstV4l2Object *obj;
-
-  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;
-
-  if (GST_V4L2_IS_ACTIVE (obj)) {
-    GstV4l2Error error = GST_V4L2_ERROR_INIT;
-    /* Just check if the format is acceptable, once we know
-     * no buffers should be outstanding we try S_FMT.
-     *
-     * Basesrc will do an allocation query that
-     * should indirectly reclaim buffers, after that we can
-     * set the format and then configure our pool */
-    if (gst_v4l2_object_try_format (obj, caps, &error)) {
-      v4l2src->renegotiation_adjust = v4l2src->offset + 1;
-      v4l2src->pending_set_fmt = TRUE;
-    } else {
-      gst_v4l2_error (v4l2src, &error);
-      return FALSE;
-    }
-  } else {
-    /* make sure we stop capturing and dealloc buffers */
-    if (!gst_v4l2_object_stop (obj))
-      return FALSE;
-
-    return gst_v4l2src_set_format (v4l2src, caps);
-  }
-
-  return TRUE;
-}
-
 static gboolean
 gst_v4l2src_decide_allocation (GstBaseSrc * bsrc, GstQuery * query)
 {
@@ -470,10 +592,12 @@ gst_v4l2src_decide_allocation (GstBaseSrc * bsrc, GstQuery * query)
 
   if (src->pending_set_fmt) {
     GstCaps *caps = gst_pad_get_current_caps (GST_BASE_SRC_PAD (bsrc));
+    GstV4l2Error error = GST_V4L2_ERROR_INIT;
+
+    caps = gst_caps_make_writable (caps);
+    if (!(ret = gst_v4l2src_set_format (src, caps, &error)))
+      gst_v4l2_error (src, &error);
 
-    if (!gst_v4l2_object_stop (src->v4l2object))
-      return FALSE;
-    ret = gst_v4l2src_set_format (src, caps);
     gst_caps_unref (caps);
     src->pending_set_fmt = FALSE;
   } else if (gst_buffer_pool_is_active (src->v4l2object->pool)) {
diff --git a/sys/v4l2/gstv4l2src.h b/sys/v4l2/gstv4l2src.h
index 2864775ac..cb7f75158 100644
--- a/sys/v4l2/gstv4l2src.h
+++ b/sys/v4l2/gstv4l2src.h
@@ -27,8 +27,6 @@
 #include <gstv4l2object.h>
 #include <gstv4l2bufferpool.h>
 
-GST_DEBUG_CATEGORY_EXTERN (v4l2src_debug);
-
 G_BEGIN_DECLS
 
 #define GST_TYPE_V4L2SRC \
diff --git a/sys/v4l2/gstv4l2transform.c b/sys/v4l2/gstv4l2transform.c
index 96e8ef56a..33052a8e1 100644
--- a/sys/v4l2/gstv4l2transform.c
+++ b/sys/v4l2/gstv4l2transform.c
@@ -29,8 +29,8 @@
 #include <unistd.h>
 #include <string.h>
 
+#include "gstv4l2object.h"
 #include "gstv4l2transform.h"
-#include "v4l2_calls.h"
 
 #include <string.h>
 #include <gst/gst-i18n-plugin.h>
@@ -989,6 +989,8 @@ gst_v4l2_transform_sink_event (GstBaseTransform * trans, GstEvent * event)
       GST_DEBUG_OBJECT (self, "flush stop");
       gst_v4l2_object_unlock_stop (self->v4l2capture);
       gst_v4l2_object_unlock_stop (self->v4l2output);
+      gst_v4l2_buffer_pool_flush (self->v4l2output->pool);
+      gst_v4l2_buffer_pool_flush (self->v4l2capture->pool);
       break;
     default:
       break;
@@ -1067,12 +1069,14 @@ gst_v4l2_transform_subinstance_init (GTypeInstance * instance, gpointer g_class)
   GstV4l2Transform *self = GST_V4L2_TRANSFORM (instance);
 
   self->v4l2output = gst_v4l2_object_new (GST_ELEMENT (self),
+      GST_OBJECT (GST_BASE_TRANSFORM_SINK_PAD (self)),
       V4L2_BUF_TYPE_VIDEO_OUTPUT, klass->default_device,
       gst_v4l2_get_output, gst_v4l2_set_output, NULL);
   self->v4l2output->no_initial_format = TRUE;
   self->v4l2output->keep_aspect = FALSE;
 
   self->v4l2capture = gst_v4l2_object_new (GST_ELEMENT (self),
+      GST_OBJECT (GST_BASE_TRANSFORM_SRC_PAD (self)),
       V4L2_BUF_TYPE_VIDEO_CAPTURE, klass->default_device,
       gst_v4l2_get_input, gst_v4l2_set_input, NULL);
   self->v4l2capture->no_initial_format = TRUE;
@@ -1166,7 +1170,7 @@ gst_v4l2_is_transform (GstCaps * sink_caps, GstCaps * src_caps)
   return ret;
 }
 
-gboolean
+void
 gst_v4l2_transform_register (GstPlugin * plugin, const gchar * basename,
     const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps)
 {
@@ -1193,9 +1197,8 @@ gst_v4l2_transform_register (GstPlugin * plugin, const gchar * basename,
   type_name = g_strdup_printf ("v4l2%sconvert", basename);
   subtype = g_type_register_static (type, type_name, &type_info, 0);
 
-  gst_element_register (plugin, type_name, GST_RANK_NONE, subtype);
+  if (!gst_element_register (plugin, type_name, GST_RANK_NONE, subtype))
+    GST_WARNING ("Failed to register plugin '%s'", type_name);
 
   g_free (type_name);
-
-  return TRUE;
 }
diff --git a/sys/v4l2/gstv4l2transform.h b/sys/v4l2/gstv4l2transform.h
index 13d56c3d7..ea6b9a57b 100644
--- a/sys/v4l2/gstv4l2transform.h
+++ b/sys/v4l2/gstv4l2transform.h
@@ -28,8 +28,6 @@
 #include <gstv4l2object.h>
 #include <gstv4l2bufferpool.h>
 
-GST_DEBUG_CATEGORY_EXTERN (v4l2transform_debug);
-
 G_BEGIN_DECLS
 
 #define GST_TYPE_V4L2_TRANSFORM \
@@ -74,7 +72,7 @@ struct _GstV4l2TransformClass
 GType gst_v4l2_transform_get_type (void);
 
 gboolean gst_v4l2_is_transform       (GstCaps * sink_caps, GstCaps * src_caps);
-gboolean gst_v4l2_transform_register (GstPlugin * plugin,
+void     gst_v4l2_transform_register (GstPlugin * plugin,
                                       const gchar *basename,
                                       const gchar *device_path,
                                       GstCaps * sink_caps, GstCaps * src_caps);
diff --git a/sys/v4l2/gstv4l2tuner.c b/sys/v4l2/gstv4l2tuner.c
index ac3f1b6f0..66cc2c1bd 100644
--- a/sys/v4l2/gstv4l2tuner.c
+++ b/sys/v4l2/gstv4l2tuner.c
@@ -27,9 +27,9 @@
 
 #include <gst/gst.h>
 
+#include "gstv4l2object.h"
 #include "gstv4l2tuner.h"
 #include "gstv4l2object.h"
-#include "v4l2_calls.h"
 
 G_DEFINE_TYPE (GstV4l2TunerChannel, gst_v4l2_tuner_channel,
     GST_TYPE_TUNER_CHANNEL);
diff --git a/sys/v4l2/gstv4l2videodec.c b/sys/v4l2/gstv4l2videodec.c
index 2ca5ea582..dc06774a6 100644
--- a/sys/v4l2/gstv4l2videodec.c
+++ b/sys/v4l2/gstv4l2videodec.c
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2014 Collabora Ltd.
- *     Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+ *     Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -29,8 +29,8 @@
 #include <unistd.h>
 #include <string.h>
 
+#include "gstv4l2object.h"
 #include "gstv4l2videodec.h"
-#include "v4l2_calls.h"
 
 #include <string.h>
 #include <gst/gst-i18n-plugin.h>
@@ -38,13 +38,13 @@
 GST_DEBUG_CATEGORY_STATIC (gst_v4l2_video_dec_debug);
 #define GST_CAT_DEFAULT gst_v4l2_video_dec_debug
 
-static gboolean gst_v4l2_video_dec_flush (GstVideoDecoder * decoder);
-
 typedef struct
 {
   gchar *device;
   GstCaps *sink_caps;
   GstCaps *src_caps;
+  const gchar *longname;
+  const gchar *description;
 } GstV4l2VideoDecCData;
 
 enum
@@ -57,6 +57,8 @@ enum
 G_DEFINE_ABSTRACT_TYPE (GstV4l2VideoDec, gst_v4l2_video_dec,
     GST_TYPE_VIDEO_DECODER);
 
+static GstFlowReturn gst_v4l2_video_dec_finish (GstVideoDecoder * decoder);
+
 static void
 gst_v4l2_video_dec_set_property (GObject * object,
     guint prop_id, const GValue * value, GParamSpec * pspec)
@@ -64,13 +66,11 @@ gst_v4l2_video_dec_set_property (GObject * object,
   GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (object);
 
   switch (prop_id) {
-    case PROP_OUTPUT_IO_MODE:
-      gst_v4l2_object_set_property_helper (self->v4l2output, prop_id, value,
-          pspec);
-      break;
     case PROP_CAPTURE_IO_MODE:
-      gst_v4l2_object_set_property_helper (self->v4l2capture, prop_id, value,
-          pspec);
+      if (!gst_v4l2_object_set_property_helper (self->v4l2capture,
+              prop_id, value, pspec)) {
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      }
       break;
 
       /* By default, only set on output */
@@ -90,13 +90,11 @@ gst_v4l2_video_dec_get_property (GObject * object,
   GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (object);
 
   switch (prop_id) {
-    case PROP_OUTPUT_IO_MODE:
-      gst_v4l2_object_get_property_helper (self->v4l2output, prop_id, value,
-          pspec);
-      break;
     case PROP_CAPTURE_IO_MODE:
-      gst_v4l2_object_get_property_helper (self->v4l2capture, prop_id, value,
-          pspec);
+      if (!gst_v4l2_object_get_property_helper (self->v4l2capture,
+              prop_id, value, pspec)) {
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      }
       break;
 
       /* By default read from output */
@@ -113,6 +111,7 @@ static gboolean
 gst_v4l2_video_dec_open (GstVideoDecoder * decoder)
 {
   GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder);
+  GstCaps *codec_caps;
 
   GST_DEBUG_OBJECT (self, "Opening");
 
@@ -122,13 +121,15 @@ gst_v4l2_video_dec_open (GstVideoDecoder * decoder)
   if (!gst_v4l2_object_open_shared (self->v4l2capture, self->v4l2output))
     goto failure;
 
-  self->probed_sinkcaps = gst_v4l2_object_get_caps (self->v4l2output,
-      gst_v4l2_object_get_codec_caps ());
+  codec_caps = gst_pad_get_pad_template_caps (decoder->sinkpad);
+  self->probed_sinkcaps = gst_v4l2_object_probe_caps (self->v4l2output,
+      codec_caps);
+  gst_caps_unref (codec_caps);
 
   if (gst_caps_is_empty (self->probed_sinkcaps))
     goto no_encoded_format;
 
-  self->probed_srccaps = gst_v4l2_object_get_caps (self->v4l2capture,
+  self->probed_srccaps = gst_v4l2_object_probe_caps (self->v4l2capture,
       gst_v4l2_object_get_raw_caps ());
 
   if (gst_caps_is_empty (self->probed_srccaps))
@@ -242,7 +243,31 @@ gst_v4l2_video_dec_set_format (GstVideoDecoder * decoder,
     gst_video_codec_state_unref (self->input_state);
     self->input_state = NULL;
 
-    /* FIXME we probably need to do more work if pools are active */
+    gst_v4l2_video_dec_finish (decoder);
+    gst_v4l2_object_stop (self->v4l2output);
+
+    /* The renegotiation flow don't blend with the base class flow. To
+     * properly stop the capture pool we need to reclaim our buffers, which
+     * will happend through the allocation query. The allocation query is
+     * triggered by gst_video_decoder_negotiate() which requires the output
+     * caps to be set, but we can't know this information as we rely on the
+     * decoder, which requires the capture queue to be stopped.
+     *
+     * To workaround this issue, we simply run an allocation query with the
+     * old negotiated caps in order to drain/reclaim our buffers. That breaks
+     * the complexity and should not have much impact in performance since the
+     * following allocation query will happen on a drained pipeline and won't
+     * block. */
+    {
+      GstCaps *caps = gst_pad_get_current_caps (decoder->srcpad);
+      GstQuery *query = gst_query_new_allocation (caps, FALSE);
+      gst_pad_peer_query (decoder->srcpad, query);
+      gst_query_unref (query);
+      gst_caps_unref (caps);
+    }
+
+    gst_v4l2_object_stop (self->v4l2capture);
+    self->output_flow = GST_FLOW_OK;
   }
 
   ret = gst_v4l2_object_set_format (self->v4l2output, state->caps, &error);
@@ -276,6 +301,12 @@ gst_v4l2_video_dec_flush (GstVideoDecoder * decoder)
 
   self->output_flow = GST_FLOW_OK;
 
+  if (self->v4l2output->pool)
+    gst_v4l2_buffer_pool_flush (self->v4l2output->pool);
+
+  if (self->v4l2capture->pool)
+    gst_v4l2_buffer_pool_flush (self->v4l2capture->pool);
+
   gst_v4l2_object_unlock_stop (self->v4l2output);
   gst_v4l2_object_unlock_stop (self->v4l2capture);
 
@@ -308,7 +339,7 @@ gst_v4l2_decoder_cmd (GstV4l2Object * v4l2object, guint cmd, guint flags)
 
   dcmd.cmd = cmd;
   dcmd.flags = flags;
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_DECODER_CMD, &dcmd) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_DECODER_CMD, &dcmd) < 0)
     goto dcmd_failed;
 
   return TRUE;
@@ -373,10 +404,24 @@ gst_v4l2_video_dec_finish (GstVideoDecoder * decoder)
 
   GST_DEBUG_OBJECT (decoder, "Done draining buffers");
 
+  /* TODO Shall we cleanup any reffed frame to workaround broken decoders ? */
+
 done:
   return ret;
 }
 
+static gboolean
+gst_v4l2_video_dec_drain (GstVideoDecoder * decoder)
+{
+  GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder);
+
+  GST_DEBUG_OBJECT (self, "Draining...");
+  gst_v4l2_video_dec_finish (decoder);
+  gst_v4l2_video_dec_flush (decoder);
+
+  return TRUE;
+}
+
 static GstVideoCodecFrame *
 gst_v4l2_video_dec_get_oldest_frame (GstVideoDecoder * decoder)
 {
@@ -489,13 +534,20 @@ gst_v4l2_video_remove_padding (GstCapsFeatures * features,
     return TRUE;
 
   if (align->padding_left != 0 || align->padding_top != 0 ||
-      width != info->width + align->padding_right ||
       height != info->height + align->padding_bottom)
     return TRUE;
 
-  gst_structure_set (structure,
-      "width", G_TYPE_INT, width - align->padding_right,
-      "height", G_TYPE_INT, height - align->padding_bottom, NULL);
+  if (height == info->height + align->padding_bottom) {
+    /* Some drivers may round up width to the padded with */
+    if (width == info->width + align->padding_right)
+      gst_structure_set (structure,
+          "width", G_TYPE_INT, width - align->padding_right,
+          "height", G_TYPE_INT, height - align->padding_bottom, NULL);
+    /* Some drivers may keep visible width and only round up bytesperline */
+    else if (width == info->width)
+      gst_structure_set (structure,
+          "height", G_TYPE_INT, height - align->padding_bottom, NULL);
+  }
 
   return TRUE;
 }
@@ -509,6 +561,7 @@ gst_v4l2_video_dec_handle_frame (GstVideoDecoder * decoder,
   GstFlowReturn ret = GST_FLOW_OK;
   gboolean processed = FALSE;
   GstBuffer *tmp;
+  GstTaskState task_state;
 
   GST_DEBUG_OBJECT (self, "Handling frame %d", frame->system_frame_number);
 
@@ -577,12 +630,14 @@ gst_v4l2_video_dec_handle_frame (GstVideoDecoder * decoder,
 
     /* Create caps from the acquired format, remove the format field */
     acquired_caps = gst_video_info_to_caps (&info);
+    GST_DEBUG_OBJECT (self, "Acquired caps: %" GST_PTR_FORMAT, acquired_caps);
     st = gst_caps_get_structure (acquired_caps, 0);
     gst_structure_remove_field (st, "format");
 
     /* Probe currently available pixel formats */
     available_caps = gst_v4l2_object_probe_caps (self->v4l2capture, NULL);
     available_caps = gst_caps_make_writable (available_caps);
+    GST_DEBUG_OBJECT (self, "Available caps: %" GST_PTR_FORMAT, available_caps);
 
     /* Replace coded size with visible size, we want to negotiate visible size
      * with downstream, not coded size. */
@@ -590,6 +645,7 @@ gst_v4l2_video_dec_handle_frame (GstVideoDecoder * decoder,
 
     filter = gst_caps_intersect_full (available_caps, acquired_caps,
         GST_CAPS_INTERSECT_FIRST);
+    GST_DEBUG_OBJECT (self, "Filtered caps: %" GST_PTR_FORMAT, filter);
     gst_caps_unref (acquired_caps);
     gst_caps_unref (available_caps);
     caps = gst_pad_peer_query_caps (decoder->srcpad, filter);
@@ -633,8 +689,8 @@ gst_v4l2_video_dec_handle_frame (GstVideoDecoder * decoder,
       goto activate_failed;
   }
 
-  if (gst_pad_get_task_state (GST_VIDEO_DECODER_SRC_PAD (self)) ==
-      GST_TASK_STOPPED) {
+  task_state = gst_pad_get_task_state (GST_VIDEO_DECODER_SRC_PAD (self));
+  if (task_state == GST_TASK_STOPPED || task_state == GST_TASK_PAUSED) {
     /* It's possible that the processing thread stopped due to an error */
     if (self->output_flow != GST_FLOW_OK &&
         self->output_flow != GST_FLOW_FLUSHING) {
@@ -890,12 +946,14 @@ gst_v4l2_video_dec_subinstance_init (GTypeInstance * instance, gpointer g_class)
   gst_video_decoder_set_packetized (decoder, TRUE);
 
   self->v4l2output = gst_v4l2_object_new (GST_ELEMENT (self),
+      GST_OBJECT (GST_VIDEO_DECODER_SINK_PAD (self)),
       V4L2_BUF_TYPE_VIDEO_OUTPUT, klass->default_device,
       gst_v4l2_get_output, gst_v4l2_set_output, NULL);
   self->v4l2output->no_initial_format = TRUE;
   self->v4l2output->keep_aspect = FALSE;
 
   self->v4l2capture = gst_v4l2_object_new (GST_ELEMENT (self),
+      GST_OBJECT (GST_VIDEO_DECODER_SRC_PAD (self)),
       V4L2_BUF_TYPE_VIDEO_CAPTURE, klass->default_device,
       gst_v4l2_get_input, gst_v4l2_set_input, NULL);
   self->v4l2capture->no_initial_format = TRUE;
@@ -918,12 +976,6 @@ gst_v4l2_video_dec_class_init (GstV4l2VideoDecClass * klass)
   GST_DEBUG_CATEGORY_INIT (gst_v4l2_video_dec_debug, "v4l2videodec", 0,
       "V4L2 Video Decoder");
 
-  gst_element_class_set_static_metadata (element_class,
-      "V4L2 Video Decoder",
-      "Codec/Decoder/Video",
-      "Decode video streams via V4L2 API",
-      "Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>");
-
   gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_dispose);
   gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_finalize);
   gobject_class->set_property =
@@ -937,6 +989,7 @@ gst_v4l2_video_dec_class_init (GstV4l2VideoDecClass * klass)
   video_decoder_class->stop = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_stop);
   video_decoder_class->finish = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_finish);
   video_decoder_class->flush = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_flush);
+  video_decoder_class->drain = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_drain);
   video_decoder_class->set_format =
       GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_set_format);
   video_decoder_class->negotiate =
@@ -976,6 +1029,12 @@ gst_v4l2_video_dec_subclass_init (gpointer g_class, gpointer data)
       gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
           cdata->src_caps));
 
+  gst_element_class_set_static_metadata (element_class, cdata->longname,
+      "Codec/Decoder/Video", cdata->description,
+      "Nicolas Dufresne <nicolas.dufresne@collabora.com>");
+
+  gst_caps_unref (cdata->sink_caps);
+  gst_caps_unref (cdata->src_caps);
   g_free (cdata);
 }
 
@@ -992,36 +1051,116 @@ gst_v4l2_is_video_dec (GstCaps * sink_caps, GstCaps * src_caps)
   return ret;
 }
 
-gboolean
-gst_v4l2_video_dec_register (GstPlugin * plugin, const gchar * basename,
-    const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps)
+static gchar *
+gst_v4l2_video_dec_set_metadata (GstStructure * s, GstV4l2VideoDecCData * cdata,
+    const gchar * basename)
 {
-  GTypeQuery type_query;
-  GTypeInfo type_info = { 0, };
-  GType type, subtype;
-  gchar *type_name;
-  GstV4l2VideoDecCData *cdata;
-
-  cdata = g_new0 (GstV4l2VideoDecCData, 1);
-  cdata->device = g_strdup (device_path);
-  cdata->sink_caps = gst_caps_ref (sink_caps);
-  cdata->src_caps = gst_caps_ref (src_caps);
+  gchar *codec_name = NULL;
+  gchar *type_name = NULL;
+
+#define SET_META(codec) \
+G_STMT_START { \
+  cdata->longname = "V4L2 " codec " Decoder"; \
+  cdata->description = "Decodes " codec " streams via V4L2 API"; \
+  codec_name = g_ascii_strdown (codec, -1); \
+} G_STMT_END
+
+  if (gst_structure_has_name (s, "image/jpeg")) {
+    SET_META ("JPEG");
+  } else if (gst_structure_has_name (s, "video/mpeg")) {
+    gint mpegversion = 0;
+    gst_structure_get_int (s, "mpegversion", &mpegversion);
+
+    if (mpegversion == 2) {
+      SET_META ("MPEG2");
+    } else {
+      SET_META ("MPEG4");
+    }
+  } else if (gst_structure_has_name (s, "video/x-h263")) {
+    SET_META ("H263");
+  } else if (gst_structure_has_name (s, "video/x-h264")) {
+    SET_META ("H264");
+  } else if (gst_structure_has_name (s, "video/x-wmv")) {
+    SET_META ("VC1");
+  } else if (gst_structure_has_name (s, "video/x-vp8")) {
+    SET_META ("VP8");
+  } else if (gst_structure_has_name (s, "video/x-vp9")) {
+    SET_META ("VP9");
+  } else if (gst_structure_has_name (s, "video/x-bayer")) {
+    SET_META ("BAYER");
+  } else if (gst_structure_has_name (s, "video/x-sonix")) {
+    SET_META ("SONIX");
+  } else if (gst_structure_has_name (s, "video/x-pwc1")) {
+    SET_META ("PWC1");
+  } else if (gst_structure_has_name (s, "video/x-pwc2")) {
+    SET_META ("PWC2");
+  } else {
+    /* This code should be kept on sync with the exposed CODEC type of format
+     * from gstv4l2object.c. This warning will only occure in case we forget
+     * to also add a format here. */
+    gchar *s_str = gst_structure_to_string (s);
+    g_warning ("Missing fixed name mapping for caps '%s', this is a GStreamer "
+        "bug, please report at https://bugs.gnome.org", s_str);
+    g_free (s_str);
+  }
 
-  type = gst_v4l2_video_dec_get_type ();
-  g_type_query (type, &type_query);
-  memset (&type_info, 0, sizeof (type_info));
-  type_info.class_size = type_query.class_size;
-  type_info.instance_size = type_query.instance_size;
-  type_info.class_init = gst_v4l2_video_dec_subclass_init;
-  type_info.class_data = cdata;
-  type_info.instance_init = gst_v4l2_video_dec_subinstance_init;
+  if (codec_name) {
+    type_name = g_strdup_printf ("v4l2%sdec", codec_name);
+    if (g_type_from_name (type_name) != 0) {
+      g_free (type_name);
+      type_name = g_strdup_printf ("v4l2%s%sdec", basename, codec_name);
+    }
 
-  type_name = g_strdup_printf ("v4l2%sdec", basename);
-  subtype = g_type_register_static (type, type_name, &type_info, 0);
+    g_free (codec_name);
+  }
 
-  gst_element_register (plugin, type_name, GST_RANK_PRIMARY + 1, subtype);
+  return type_name;
+#undef SET_META
+}
 
-  g_free (type_name);
+void
+gst_v4l2_video_dec_register (GstPlugin * plugin, const gchar * basename,
+    const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps)
+{
+  gint i;
+
+  for (i = 0; i < gst_caps_get_size (sink_caps); i++) {
+    GstV4l2VideoDecCData *cdata;
+    GstStructure *s;
+    GTypeQuery type_query;
+    GTypeInfo type_info = { 0, };
+    GType type, subtype;
+    gchar *type_name;
+
+    s = gst_caps_get_structure (sink_caps, i);
+
+    cdata = g_new0 (GstV4l2VideoDecCData, 1);
+    cdata->device = g_strdup (device_path);
+    cdata->sink_caps = gst_caps_new_empty ();
+    gst_caps_append_structure (cdata->sink_caps, gst_structure_copy (s));
+    cdata->src_caps = gst_caps_ref (src_caps);
+    type_name = gst_v4l2_video_dec_set_metadata (s, cdata, basename);
+
+    /* Skip over if we hit an unmapped type */
+    if (!type_name) {
+      g_free (cdata);
+      continue;
+    }
 
-  return TRUE;
+    type = gst_v4l2_video_dec_get_type ();
+    g_type_query (type, &type_query);
+    memset (&type_info, 0, sizeof (type_info));
+    type_info.class_size = type_query.class_size;
+    type_info.instance_size = type_query.instance_size;
+    type_info.class_init = gst_v4l2_video_dec_subclass_init;
+    type_info.class_data = cdata;
+    type_info.instance_init = gst_v4l2_video_dec_subinstance_init;
+
+    subtype = g_type_register_static (type, type_name, &type_info, 0);
+    if (!gst_element_register (plugin, type_name, GST_RANK_PRIMARY + 1,
+            subtype))
+      GST_WARNING ("Failed to register plugin '%s'", type_name);
+
+    g_free (type_name);
+  }
 }
diff --git a/sys/v4l2/gstv4l2videodec.h b/sys/v4l2/gstv4l2videodec.h
index dc7c170f2..be97d10aa 100644
--- a/sys/v4l2/gstv4l2videodec.h
+++ b/sys/v4l2/gstv4l2videodec.h
@@ -30,8 +30,6 @@
 #include <gstv4l2object.h>
 #include <gstv4l2bufferpool.h>
 
-GST_DEBUG_CATEGORY_EXTERN (v4l2videodec_debug);
-
 G_BEGIN_DECLS
 
 #define GST_TYPE_V4L2_VIDEO_DEC \
@@ -76,7 +74,7 @@ struct _GstV4l2VideoDecClass
 GType gst_v4l2_video_dec_get_type (void);
 
 gboolean gst_v4l2_is_video_dec       (GstCaps * sink_caps, GstCaps * src_caps);
-gboolean gst_v4l2_video_dec_register (GstPlugin * plugin,
+void     gst_v4l2_video_dec_register (GstPlugin * plugin,
                                       const gchar *basename,
                                       const gchar *device_path,
                                       GstCaps * sink_caps, GstCaps * src_caps);
diff --git a/sys/v4l2/gstv4l2videoenc.c b/sys/v4l2/gstv4l2videoenc.c
new file mode 100644
index 000000000..d365a250d
--- /dev/null
+++ b/sys/v4l2/gstv4l2videoenc.c
@@ -0,0 +1,1189 @@
+/*
+ * Copyright (C) 2014-2017 SUMOMO Computer Association
+ *     Authors Ayaka <ayaka@soulik.info>
+ * Copyright (C) 2017 Collabora Ltd.
+ *     Author: Nicolas Dufresne <nicolas.dufresne@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 <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <unistd.h>
+#include <string.h>
+
+#include "gstv4l2object.h"
+#include "gstv4l2videoenc.h"
+
+#include <string.h>
+#include <gst/gst-i18n-plugin.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_v4l2_video_enc_debug);
+#define GST_CAT_DEFAULT gst_v4l2_video_enc_debug
+
+typedef struct
+{
+  gchar *device;
+  GstCaps *sink_caps;
+  GstCaps *src_caps;
+} GstV4l2VideoEncCData;
+
+enum
+{
+  PROP_0,
+  V4L2_STD_OBJECT_PROPS,
+};
+
+#define gst_v4l2_video_enc_parent_class parent_class
+G_DEFINE_ABSTRACT_TYPE (GstV4l2VideoEnc, gst_v4l2_video_enc,
+    GST_TYPE_VIDEO_ENCODER);
+
+static void
+gst_v4l2_video_enc_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (object);
+
+  switch (prop_id) {
+    case PROP_CAPTURE_IO_MODE:
+      if (!gst_v4l2_object_set_property_helper (self->v4l2capture,
+              prop_id, value, pspec)) {
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      }
+      break;
+
+      /* By default, only set on output */
+    default:
+      if (!gst_v4l2_object_set_property_helper (self->v4l2output,
+              prop_id, value, pspec)) {
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      }
+      break;
+  }
+}
+
+static void
+gst_v4l2_video_enc_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (object);
+
+  switch (prop_id) {
+    case PROP_CAPTURE_IO_MODE:
+      if (!gst_v4l2_object_get_property_helper (self->v4l2capture,
+              prop_id, value, pspec)) {
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      }
+      break;
+
+      /* By default read from output */
+    default:
+      if (!gst_v4l2_object_get_property_helper (self->v4l2output,
+              prop_id, value, pspec)) {
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      }
+      break;
+  }
+}
+
+static gboolean
+gst_v4l2_video_enc_open (GstVideoEncoder * encoder)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+  GstCaps *codec_caps;
+
+  GST_DEBUG_OBJECT (self, "Opening");
+
+  if (!gst_v4l2_object_open (self->v4l2output))
+    goto failure;
+
+  if (!gst_v4l2_object_open_shared (self->v4l2capture, self->v4l2output))
+    goto failure;
+
+  self->probed_sinkcaps = gst_v4l2_object_probe_caps (self->v4l2output,
+      gst_v4l2_object_get_raw_caps ());
+
+  if (gst_caps_is_empty (self->probed_sinkcaps))
+    goto no_raw_format;
+
+  codec_caps = gst_pad_get_pad_template_caps (encoder->srcpad);
+  self->probed_srccaps = gst_v4l2_object_probe_caps (self->v4l2capture,
+      codec_caps);
+  gst_caps_unref (codec_caps);
+
+  if (gst_caps_is_empty (self->probed_srccaps))
+    goto no_encoded_format;
+
+  return TRUE;
+
+no_encoded_format:
+  GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS,
+      (_("Encoder on device %s has no supported output format"),
+          self->v4l2output->videodev), (NULL));
+  goto failure;
+
+
+no_raw_format:
+  GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS,
+      (_("Encoder on device %s has no supported input format"),
+          self->v4l2output->videodev), (NULL));
+  goto failure;
+
+failure:
+  if (GST_V4L2_IS_OPEN (self->v4l2output))
+    gst_v4l2_object_close (self->v4l2output);
+
+  if (GST_V4L2_IS_OPEN (self->v4l2capture))
+    gst_v4l2_object_close (self->v4l2capture);
+
+  gst_caps_replace (&self->probed_srccaps, NULL);
+  gst_caps_replace (&self->probed_sinkcaps, NULL);
+
+  return FALSE;
+}
+
+static gboolean
+gst_v4l2_video_enc_close (GstVideoEncoder * encoder)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+
+  GST_DEBUG_OBJECT (self, "Closing");
+
+  gst_v4l2_object_close (self->v4l2output);
+  gst_v4l2_object_close (self->v4l2capture);
+  gst_caps_replace (&self->probed_srccaps, NULL);
+  gst_caps_replace (&self->probed_sinkcaps, NULL);
+
+  return TRUE;
+}
+
+static gboolean
+gst_v4l2_video_enc_start (GstVideoEncoder * encoder)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+
+  GST_DEBUG_OBJECT (self, "Starting");
+
+  gst_v4l2_object_unlock (self->v4l2output);
+  g_atomic_int_set (&self->active, TRUE);
+  self->output_flow = GST_FLOW_OK;
+
+  return TRUE;
+}
+
+static gboolean
+gst_v4l2_video_enc_stop (GstVideoEncoder * encoder)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+
+  GST_DEBUG_OBJECT (self, "Stopping");
+
+  gst_v4l2_object_unlock (self->v4l2output);
+  gst_v4l2_object_unlock (self->v4l2capture);
+
+  /* Wait for capture thread to stop */
+  gst_pad_stop_task (encoder->srcpad);
+
+  GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+  self->output_flow = GST_FLOW_OK;
+  GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+  /* Should have been flushed already */
+  g_assert (g_atomic_int_get (&self->active) == FALSE);
+  g_assert (g_atomic_int_get (&self->processing) == FALSE);
+
+  gst_v4l2_object_stop (self->v4l2output);
+  gst_v4l2_object_stop (self->v4l2capture);
+
+  if (self->input_state) {
+    gst_video_codec_state_unref (self->input_state);
+    self->input_state = NULL;
+  }
+
+  GST_DEBUG_OBJECT (self, "Stopped");
+
+  return TRUE;
+}
+
+static gboolean
+gst_v4l2_encoder_cmd (GstV4l2Object * v4l2object, guint cmd, guint flags)
+{
+  struct v4l2_encoder_cmd ecmd = { 0, };
+
+  GST_DEBUG_OBJECT (v4l2object->element,
+      "sending v4l2 encoder command %u with flags %u", cmd, flags);
+
+  if (!GST_V4L2_IS_OPEN (v4l2object))
+    return FALSE;
+
+  ecmd.cmd = cmd;
+  ecmd.flags = flags;
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_ENCODER_CMD, &ecmd) < 0)
+    goto ecmd_failed;
+
+  return TRUE;
+
+ecmd_failed:
+  if (errno == ENOTTY) {
+    GST_INFO_OBJECT (v4l2object->element,
+        "Failed to send encoder command %u with flags %u for '%s'. (%s)",
+        cmd, flags, v4l2object->videodev, g_strerror (errno));
+  } else {
+    GST_ERROR_OBJECT (v4l2object->element,
+        "Failed to send encoder command %u with flags %u for '%s'. (%s)",
+        cmd, flags, v4l2object->videodev, g_strerror (errno));
+  }
+  return FALSE;
+}
+
+static GstFlowReturn
+gst_v4l2_video_enc_finish (GstVideoEncoder * encoder)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  if (gst_pad_get_task_state (encoder->srcpad) != GST_TASK_STARTED)
+    goto done;
+
+  GST_DEBUG_OBJECT (self, "Finishing encoding");
+
+  /* drop the stream lock while draining, so remaining buffers can be
+   * pushed from the src pad task thread */
+  GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+  if (gst_v4l2_encoder_cmd (self->v4l2capture, V4L2_ENC_CMD_STOP, 0)) {
+    GstTask *task = encoder->srcpad->task;
+
+    /* Wait for the task to be drained */
+    GST_OBJECT_LOCK (task);
+    while (GST_TASK_STATE (task) == GST_TASK_STARTED)
+      GST_TASK_WAIT (task);
+    GST_OBJECT_UNLOCK (task);
+    ret = GST_FLOW_FLUSHING;
+  }
+
+  /* and ensure the processing thread has stopped in case another error
+   * occured. */
+  gst_v4l2_object_unlock (self->v4l2capture);
+  gst_pad_stop_task (encoder->srcpad);
+  GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+
+  if (ret == GST_FLOW_FLUSHING)
+    ret = self->output_flow;
+
+  GST_DEBUG_OBJECT (encoder, "Done draining buffers");
+
+done:
+  return ret;
+}
+
+static gboolean
+gst_v4l2_video_enc_set_format (GstVideoEncoder * encoder,
+    GstVideoCodecState * state)
+{
+  gboolean ret = TRUE;
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+  GstV4l2Error error = GST_V4L2_ERROR_INIT;
+  GstCaps *outcaps;
+  GstVideoCodecState *output;
+
+  GST_DEBUG_OBJECT (self, "Setting format: %" GST_PTR_FORMAT, state->caps);
+
+  if (self->input_state) {
+    if (gst_v4l2_object_caps_equal (self->v4l2output, state->caps)) {
+      GST_DEBUG_OBJECT (self, "Compatible caps");
+      return TRUE;
+    }
+
+    if (gst_v4l2_video_enc_finish (encoder) != GST_FLOW_OK)
+      return FALSE;
+
+    gst_v4l2_object_stop (self->v4l2output);
+    gst_v4l2_object_stop (self->v4l2capture);
+
+    gst_video_codec_state_unref (self->input_state);
+    self->input_state = NULL;
+  }
+
+  outcaps = gst_pad_get_pad_template_caps (encoder->srcpad);
+  outcaps = gst_caps_make_writable (outcaps);
+  output = gst_video_encoder_set_output_state (encoder, outcaps, state);
+  gst_video_codec_state_unref (output);
+
+  if (!gst_video_encoder_negotiate (encoder))
+    return FALSE;
+
+  if (!gst_v4l2_object_set_format (self->v4l2output, state->caps, &error)) {
+    gst_v4l2_error (self, &error);
+    return FALSE;
+  }
+
+  /* activating a capture pool will also call STREAMON. CODA driver will
+   * refuse to configure the output if the capture is stremaing. */
+  if (!gst_buffer_pool_set_active (GST_BUFFER_POOL (self->v4l2capture->pool),
+          TRUE)) {
+    GST_WARNING_OBJECT (self, "Could not activate capture buffer pool.");
+    return FALSE;
+  }
+
+  self->input_state = gst_video_codec_state_ref (state);
+
+  GST_DEBUG_OBJECT (self, "output caps: %" GST_PTR_FORMAT, state->caps);
+
+  return ret;
+}
+
+static gboolean
+gst_v4l2_video_enc_flush (GstVideoEncoder * encoder)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+
+  GST_DEBUG_OBJECT (self, "Flushing");
+
+  /* Ensure the processing thread has stopped for the reverse playback
+   * iscount case */
+  if (g_atomic_int_get (&self->processing)) {
+    GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+    gst_v4l2_object_unlock_stop (self->v4l2output);
+    gst_v4l2_object_unlock_stop (self->v4l2capture);
+    gst_pad_stop_task (encoder->srcpad);
+
+    GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+  }
+
+  self->output_flow = GST_FLOW_OK;
+
+  gst_v4l2_object_unlock_stop (self->v4l2output);
+  gst_v4l2_object_unlock_stop (self->v4l2capture);
+
+  return TRUE;
+}
+
+struct ProfileLevelCtx
+{
+  GstV4l2VideoEnc *self;
+  const gchar *profile;
+  const gchar *level;
+};
+
+static gboolean
+get_string_list (GstStructure * s, const gchar * field, GQueue * queue)
+{
+  const GValue *value;
+
+  value = gst_structure_get_value (s, field);
+
+  if (!value)
+    return FALSE;
+
+  if (GST_VALUE_HOLDS_LIST (value)) {
+    guint i;
+
+    if (gst_value_list_get_size (value) == 0)
+      return FALSE;
+
+    for (i = 0; i < gst_value_list_get_size (value); i++) {
+      const GValue *item = gst_value_list_get_value (value, i);
+
+      if (G_VALUE_HOLDS_STRING (item))
+        g_queue_push_tail (queue, g_value_dup_string (item));
+    }
+  } else if (G_VALUE_HOLDS_STRING (value)) {
+    g_queue_push_tail (queue, g_value_dup_string (value));
+  }
+
+  return TRUE;
+}
+
+static gboolean
+negotiate_profile_and_level (GstCapsFeatures * features, GstStructure * s,
+    gpointer user_data)
+{
+  struct ProfileLevelCtx *ctx = user_data;
+  GstV4l2VideoEncClass *klass = GST_V4L2_VIDEO_ENC_GET_CLASS (ctx->self);
+  GstV4l2Object *v4l2object = GST_V4L2_VIDEO_ENC (ctx->self)->v4l2output;
+  GQueue profiles = G_QUEUE_INIT;
+  GQueue levels = G_QUEUE_INIT;
+  gboolean failed = FALSE;
+
+  if (klass->profile_cid && get_string_list (s, "profile", &profiles)) {
+    GList *l;
+
+    for (l = profiles.head; l; l = l->next) {
+      struct v4l2_control control = { 0, };
+      gint v4l2_profile;
+      const gchar *profile = l->data;
+
+      GST_TRACE_OBJECT (ctx->self, "Trying profile %s", profile);
+
+      control.id = klass->profile_cid;
+      control.value = v4l2_profile = klass->profile_from_string (profile);
+
+      if (control.value < 0)
+        continue;
+
+      if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_S_CTRL, &control) < 0) {
+        GST_WARNING_OBJECT (ctx->self, "Failed to set %s profile: '%s'",
+            klass->codec_name, g_strerror (errno));
+        break;
+      }
+
+      profile = klass->profile_to_string (control.value);
+
+      if (control.value == v4l2_profile) {
+        ctx->profile = profile;
+        break;
+      }
+
+      if (g_list_find_custom (l, profile, g_str_equal)) {
+        ctx->profile = profile;
+        break;
+      }
+    }
+
+    if (profiles.length && !ctx->profile)
+      failed = TRUE;
+
+    g_queue_foreach (&profiles, (GFunc) g_free, NULL);
+    g_queue_clear (&profiles);
+  }
+
+  if (!failed && klass->level_cid && get_string_list (s, "level", &levels)) {
+    GList *l;
+
+    for (l = levels.head; l; l = l->next) {
+      struct v4l2_control control = { 0, };
+      gint v4l2_level;
+      const gchar *level = l->data;
+
+      GST_TRACE_OBJECT (ctx->self, "Trying level %s", level);
+
+      control.id = klass->level_cid;
+      control.value = v4l2_level = klass->level_from_string (level);
+
+      if (control.value < 0)
+        continue;
+
+      if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_S_CTRL, &control) < 0) {
+        GST_WARNING_OBJECT (ctx->self, "Failed to set %s level: '%s'",
+            klass->codec_name, g_strerror (errno));
+        break;
+      }
+
+      level = klass->level_to_string (control.value);
+
+      if (control.value == v4l2_level) {
+        ctx->level = level;
+        break;
+      }
+
+      if (g_list_find_custom (l, level, g_str_equal)) {
+        ctx->level = level;
+        break;
+      }
+    }
+
+    if (levels.length && !ctx->level)
+      failed = TRUE;
+
+    g_queue_foreach (&levels, (GFunc) g_free, NULL);
+    g_queue_clear (&levels);
+  }
+
+  /* If it failed, we continue */
+  return failed;
+}
+
+static gboolean
+gst_v4l2_video_enc_negotiate (GstVideoEncoder * encoder)
+{
+  GstV4l2VideoEncClass *klass = GST_V4L2_VIDEO_ENC_GET_CLASS (encoder);
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+  GstV4l2Object *v4l2object = self->v4l2output;
+  GstCaps *allowed_caps;
+  struct ProfileLevelCtx ctx = { self, NULL, NULL };
+  GstVideoCodecState *state;
+  GstStructure *s;
+
+  GST_DEBUG_OBJECT (self, "Negotiating %s profile and level.",
+      klass->codec_name);
+
+  allowed_caps = gst_pad_get_allowed_caps (GST_VIDEO_ENCODER_SRC_PAD (encoder));
+
+  if (allowed_caps) {
+
+    if (gst_caps_is_empty (allowed_caps))
+      goto not_negotiated;
+
+    allowed_caps = gst_caps_make_writable (allowed_caps);
+
+    /* negotiate_profile_and_level() will return TRUE on failure to keep
+     * iterating, if gst_caps_foreach() returns TRUE it means there was no
+     * compatible profile and level in any of the structure */
+    if (gst_caps_foreach (allowed_caps, negotiate_profile_and_level, &ctx)) {
+      goto no_profile_level;
+    }
+  }
+
+  if (klass->profile_cid && !ctx.profile) {
+    struct v4l2_control control = { 0, };
+
+    control.id = klass->profile_cid;
+
+    if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_CTRL, &control) < 0)
+      goto g_ctrl_failed;
+
+    ctx.profile = klass->profile_to_string (control.value);
+  }
+
+  if (klass->level_cid && !ctx.level) {
+    struct v4l2_control control = { 0, };
+
+    control.id = klass->level_cid;
+
+    if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_CTRL, &control) < 0)
+      goto g_ctrl_failed;
+
+    ctx.level = klass->level_to_string (control.value);
+  }
+
+  GST_DEBUG_OBJECT (self, "Selected %s profile %s at level %s",
+      klass->codec_name, ctx.profile, ctx.level);
+
+  state = gst_video_encoder_get_output_state (encoder);
+  s = gst_caps_get_structure (state->caps, 0);
+
+  if (klass->profile_cid)
+    gst_structure_set (s, "profile", G_TYPE_STRING, ctx.profile, NULL);
+
+  if (klass->level_cid)
+    gst_structure_set (s, "level", G_TYPE_STRING, ctx.level, NULL);
+
+  if (!GST_VIDEO_ENCODER_CLASS (parent_class)->negotiate (encoder))
+    return FALSE;
+
+  return TRUE;
+
+g_ctrl_failed:
+  GST_WARNING_OBJECT (self, "Failed to get %s profile and level: '%s'",
+      klass->codec_name, g_strerror (errno));
+  goto not_negotiated;
+
+no_profile_level:
+  GST_WARNING_OBJECT (self, "No compatible level and profile in caps: %"
+      GST_PTR_FORMAT, allowed_caps);
+  goto not_negotiated;
+
+not_negotiated:
+  if (allowed_caps)
+    gst_caps_unref (allowed_caps);
+  return FALSE;
+}
+
+static GstVideoCodecFrame *
+gst_v4l2_video_enc_get_oldest_frame (GstVideoEncoder * encoder)
+{
+  GstVideoCodecFrame *frame = NULL;
+  GList *frames, *l;
+  gint count = 0;
+
+  frames = gst_video_encoder_get_frames (encoder);
+
+  for (l = frames; l != NULL; l = l->next) {
+    GstVideoCodecFrame *f = l->data;
+
+    if (!frame || frame->pts > f->pts)
+      frame = f;
+
+    count++;
+  }
+
+  if (frame) {
+    GST_LOG_OBJECT (encoder,
+        "Oldest frame is %d %" GST_TIME_FORMAT
+        " and %d frames left",
+        frame->system_frame_number, GST_TIME_ARGS (frame->pts), count - 1);
+    gst_video_codec_frame_ref (frame);
+  }
+
+  g_list_free_full (frames, (GDestroyNotify) gst_video_codec_frame_unref);
+
+  return frame;
+}
+
+static void
+gst_v4l2_video_enc_loop (GstVideoEncoder * encoder)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+  GstVideoCodecFrame *frame;
+  GstBuffer *buffer = NULL;
+  GstFlowReturn ret;
+
+  GST_LOG_OBJECT (encoder, "Allocate output buffer");
+
+  buffer = gst_video_encoder_allocate_output_buffer (encoder,
+      self->v4l2capture->info.size);
+
+  if (NULL == buffer) {
+    ret = GST_FLOW_FLUSHING;
+    goto beach;
+  }
+
+
+  /* FIXME Check if buffer isn't the last one here */
+
+  GST_LOG_OBJECT (encoder, "Process output buffer");
+  ret =
+      gst_v4l2_buffer_pool_process (GST_V4L2_BUFFER_POOL
+      (self->v4l2capture->pool), &buffer);
+
+  if (ret != GST_FLOW_OK)
+    goto beach;
+
+  frame = gst_v4l2_video_enc_get_oldest_frame (encoder);
+
+  if (frame) {
+    frame->output_buffer = buffer;
+    buffer = NULL;
+    ret = gst_video_encoder_finish_frame (encoder, frame);
+
+    if (ret != GST_FLOW_OK)
+      goto beach;
+  } else {
+    GST_WARNING_OBJECT (encoder, "Encoder is producing too many buffers");
+    gst_buffer_unref (buffer);
+  }
+
+  return;
+
+beach:
+  GST_DEBUG_OBJECT (encoder, "Leaving output thread");
+
+  gst_buffer_replace (&buffer, NULL);
+  self->output_flow = ret;
+  g_atomic_int_set (&self->processing, FALSE);
+  gst_v4l2_object_unlock (self->v4l2output);
+  gst_pad_pause_task (encoder->srcpad);
+}
+
+static void
+gst_v4l2_video_enc_loop_stopped (GstV4l2VideoEnc * self)
+{
+  if (g_atomic_int_get (&self->processing)) {
+    GST_DEBUG_OBJECT (self, "Early stop of encoding thread");
+    self->output_flow = GST_FLOW_FLUSHING;
+    g_atomic_int_set (&self->processing, FALSE);
+  }
+
+  GST_DEBUG_OBJECT (self, "Encoding task destroyed: %s",
+      gst_flow_get_name (self->output_flow));
+
+}
+
+static GstFlowReturn
+gst_v4l2_video_enc_handle_frame (GstVideoEncoder * encoder,
+    GstVideoCodecFrame * frame)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+  GstFlowReturn ret = GST_FLOW_OK;
+  GstTaskState task_state;
+
+  GST_DEBUG_OBJECT (self, "Handling frame %d", frame->system_frame_number);
+
+  if (G_UNLIKELY (!g_atomic_int_get (&self->active)))
+    goto flushing;
+
+  task_state = gst_pad_get_task_state (GST_VIDEO_DECODER_SRC_PAD (self));
+  if (task_state == GST_TASK_STOPPED || task_state == GST_TASK_PAUSED) {
+    GstBufferPool *pool = GST_BUFFER_POOL (self->v4l2output->pool);
+
+    /* It possible that the processing thread stopped due to an error */
+    if (self->output_flow != GST_FLOW_OK &&
+        self->output_flow != GST_FLOW_FLUSHING) {
+      GST_DEBUG_OBJECT (self, "Processing loop stopped with error, leaving");
+      ret = self->output_flow;
+      goto drop;
+    }
+
+    /* Ensure input internal pool is active */
+    if (!gst_buffer_pool_is_active (pool)) {
+      GstStructure *config = gst_buffer_pool_get_config (pool);
+      guint min = MAX (self->v4l2output->min_buffers, GST_V4L2_MIN_BUFFERS);
+
+      gst_buffer_pool_config_set_params (config, self->input_state->caps,
+          self->v4l2output->info.size, min, min);
+
+      /* There is no reason to refuse this config */
+      if (!gst_buffer_pool_set_config (pool, config))
+        goto activate_failed;
+
+      if (!gst_buffer_pool_set_active (pool, TRUE))
+        goto activate_failed;
+    }
+
+    GST_DEBUG_OBJECT (self, "Starting encoding thread");
+
+    /* Start the processing task, when it quits, the task will disable input
+     * processing to unlock input if draining, or prevent potential block */
+    if (!gst_pad_start_task (encoder->srcpad,
+            (GstTaskFunction) gst_v4l2_video_enc_loop, self,
+            (GDestroyNotify) gst_v4l2_video_enc_loop_stopped))
+      goto start_task_failed;
+  }
+
+  if (frame->input_buffer) {
+    GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+    ret =
+        gst_v4l2_buffer_pool_process (GST_V4L2_BUFFER_POOL
+        (self->v4l2output->pool), &frame->input_buffer);
+    GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+
+    if (ret == GST_FLOW_FLUSHING) {
+      if (gst_pad_get_task_state (GST_VIDEO_DECODER_SRC_PAD (self)) !=
+          GST_TASK_STARTED)
+        ret = self->output_flow;
+      goto drop;
+    } else if (ret != GST_FLOW_OK) {
+      goto process_failed;
+    }
+  }
+
+  gst_video_codec_frame_unref (frame);
+  return ret;
+
+  /* ERRORS */
+activate_failed:
+  {
+    GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS,
+        (_("Failed to allocate required memory.")),
+        ("Buffer pool activation failed"));
+    return GST_FLOW_ERROR;
+
+  }
+flushing:
+  {
+    ret = GST_FLOW_FLUSHING;
+    goto drop;
+  }
+start_task_failed:
+  {
+    GST_ELEMENT_ERROR (self, RESOURCE, FAILED,
+        (_("Failed to start encoding thread.")), (NULL));
+    g_atomic_int_set (&self->processing, FALSE);
+    ret = GST_FLOW_ERROR;
+    goto drop;
+  }
+process_failed:
+  {
+    GST_ELEMENT_ERROR (self, RESOURCE, FAILED,
+        (_("Failed to process frame.")),
+        ("Maybe be due to not enough memory or failing driver"));
+    ret = GST_FLOW_ERROR;
+    goto drop;
+  }
+drop:
+  {
+    gst_video_encoder_finish_frame (encoder, frame);
+    return ret;
+  }
+}
+
+static gboolean
+gst_v4l2_video_enc_decide_allocation (GstVideoEncoder *
+    encoder, GstQuery * query)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+  GstVideoCodecState *state = gst_video_encoder_get_output_state (encoder);
+  GstV4l2Error error = GST_V4L2_ERROR_INIT;
+  GstClockTime latency;
+  gboolean ret = FALSE;
+
+  /* We need to set the format here, since this is called right after
+   * GstVideoEncoder have set the width, height and framerate into the state
+   * caps. These are needed by the driver to calculate the buffer size and to
+   * implement bitrate adaptation. */
+  if (!gst_v4l2_object_set_format (self->v4l2capture, state->caps, &error)) {
+    gst_v4l2_error (self, &error);
+    ret = FALSE;
+    goto done;
+  }
+
+  if (gst_v4l2_object_decide_allocation (self->v4l2capture, query)) {
+    GstVideoEncoderClass *enc_class = GST_VIDEO_ENCODER_CLASS (parent_class);
+    ret = enc_class->decide_allocation (encoder, query);
+  }
+
+  /* FIXME This may not be entirely correct, as encoder may keep some
+   * observation withouth delaying the encoding. Linux Media API need some
+   * more work to explicitly expressed the decoder / encoder latency. This
+   * value will then become max latency, and the reported driver latency would
+   * become the min latency. */
+  latency = self->v4l2capture->min_buffers * self->v4l2capture->duration;
+  gst_video_encoder_set_latency (encoder, latency, latency);
+
+done:
+  gst_video_codec_state_unref (state);
+  return ret;
+}
+
+static gboolean
+gst_v4l2_video_enc_propose_allocation (GstVideoEncoder *
+    encoder, GstQuery * query)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+  gboolean ret = FALSE;
+
+  GST_DEBUG_OBJECT (self, "called");
+
+  if (query == NULL)
+    ret = TRUE;
+  else
+    ret = gst_v4l2_object_propose_allocation (self->v4l2output, query);
+
+  if (ret)
+    ret = GST_VIDEO_ENCODER_CLASS (parent_class)->propose_allocation (encoder,
+        query);
+
+  return ret;
+}
+
+static gboolean
+gst_v4l2_video_enc_src_query (GstVideoEncoder * encoder, GstQuery * query)
+{
+  gboolean ret = TRUE;
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CAPS:{
+      GstCaps *filter, *result = NULL;
+      GstPad *pad = GST_VIDEO_ENCODER_SRC_PAD (encoder);
+
+      gst_query_parse_caps (query, &filter);
+
+      /* FIXME Try and not probe the entire encoder, but only the implement
+       * subclass format */
+      if (self->probed_srccaps) {
+        GstCaps *tmpl = gst_pad_get_pad_template_caps (pad);
+        result = gst_caps_intersect (tmpl, self->probed_srccaps);
+        gst_caps_unref (tmpl);
+      } else
+        result = gst_pad_get_pad_template_caps (pad);
+
+      if (filter) {
+        GstCaps *tmp = result;
+        result =
+            gst_caps_intersect_full (filter, tmp, GST_CAPS_INTERSECT_FIRST);
+        gst_caps_unref (tmp);
+      }
+
+      GST_DEBUG_OBJECT (self, "Returning src caps %" GST_PTR_FORMAT, result);
+
+      gst_query_set_caps_result (query, result);
+      gst_caps_unref (result);
+      break;
+    }
+
+    default:
+      ret = GST_VIDEO_ENCODER_CLASS (parent_class)->src_query (encoder, query);
+      break;
+  }
+
+  return ret;
+}
+
+static gboolean
+gst_v4l2_video_enc_sink_query (GstVideoEncoder * encoder, GstQuery * query)
+{
+  gboolean ret = TRUE;
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CAPS:{
+      GstCaps *filter, *result = NULL;
+      GstPad *pad = GST_VIDEO_ENCODER_SINK_PAD (encoder);
+
+      gst_query_parse_caps (query, &filter);
+
+      if (self->probed_sinkcaps)
+        result = gst_caps_ref (self->probed_sinkcaps);
+      else
+        result = gst_pad_get_pad_template_caps (pad);
+
+      if (filter) {
+        GstCaps *tmp = result;
+        result =
+            gst_caps_intersect_full (filter, tmp, GST_CAPS_INTERSECT_FIRST);
+        gst_caps_unref (tmp);
+      }
+
+      GST_DEBUG_OBJECT (self, "Returning sink caps %" GST_PTR_FORMAT, result);
+
+      gst_query_set_caps_result (query, result);
+      gst_caps_unref (result);
+      break;
+    }
+
+    default:
+      ret = GST_VIDEO_ENCODER_CLASS (parent_class)->sink_query (encoder, query);
+      break;
+  }
+
+  return ret;
+}
+
+static gboolean
+gst_v4l2_video_enc_sink_event (GstVideoEncoder * encoder, GstEvent * event)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
+  gboolean ret;
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_FLUSH_START:
+      GST_DEBUG_OBJECT (self, "flush start");
+      gst_v4l2_object_unlock (self->v4l2output);
+      gst_v4l2_object_unlock (self->v4l2capture);
+      break;
+    default:
+      break;
+  }
+
+  ret = GST_VIDEO_ENCODER_CLASS (parent_class)->sink_event (encoder, event);
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_FLUSH_START:
+      gst_pad_stop_task (encoder->srcpad);
+      GST_DEBUG_OBJECT (self, "flush start done");
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+static GstStateChangeReturn
+gst_v4l2_video_enc_change_state (GstElement * element,
+    GstStateChange transition)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (element);
+
+  if (transition == GST_STATE_CHANGE_PAUSED_TO_READY) {
+    g_atomic_int_set (&self->active, FALSE);
+    gst_v4l2_object_unlock (self->v4l2output);
+    gst_v4l2_object_unlock (self->v4l2capture);
+  }
+
+  return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+}
+
+
+static void
+gst_v4l2_video_enc_dispose (GObject * object)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (object);
+
+  gst_caps_replace (&self->probed_sinkcaps, NULL);
+  gst_caps_replace (&self->probed_srccaps, NULL);
+
+  G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
+gst_v4l2_video_enc_finalize (GObject * object)
+{
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (object);
+
+  gst_v4l2_object_destroy (self->v4l2capture);
+  gst_v4l2_object_destroy (self->v4l2output);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+
+static void
+gst_v4l2_video_enc_init (GstV4l2VideoEnc * self)
+{
+  /* V4L2 object are created in subinstance_init */
+}
+
+static void
+gst_v4l2_video_enc_subinstance_init (GTypeInstance * instance, gpointer g_class)
+{
+  GstV4l2VideoEncClass *klass = GST_V4L2_VIDEO_ENC_CLASS (g_class);
+  GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (instance);
+
+  self->v4l2output = gst_v4l2_object_new (GST_ELEMENT (self),
+      GST_OBJECT (GST_VIDEO_ENCODER_SINK_PAD (self)),
+      V4L2_BUF_TYPE_VIDEO_OUTPUT, klass->default_device,
+      gst_v4l2_get_output, gst_v4l2_set_output, NULL);
+  self->v4l2output->no_initial_format = TRUE;
+  self->v4l2output->keep_aspect = FALSE;
+
+  self->v4l2capture = gst_v4l2_object_new (GST_ELEMENT (self),
+      GST_OBJECT (GST_VIDEO_ENCODER_SRC_PAD (self)),
+      V4L2_BUF_TYPE_VIDEO_CAPTURE, klass->default_device,
+      gst_v4l2_get_input, gst_v4l2_set_input, NULL);
+  self->v4l2capture->no_initial_format = TRUE;
+  self->v4l2output->keep_aspect = FALSE;
+}
+
+static void
+gst_v4l2_video_enc_class_init (GstV4l2VideoEncClass * klass)
+{
+  GstElementClass *element_class;
+  GObjectClass *gobject_class;
+  GstVideoEncoderClass *video_encoder_class;
+
+  parent_class = g_type_class_peek_parent (klass);
+
+  element_class = (GstElementClass *) klass;
+  gobject_class = (GObjectClass *) klass;
+  video_encoder_class = (GstVideoEncoderClass *) klass;
+
+  GST_DEBUG_CATEGORY_INIT (gst_v4l2_video_enc_debug, "v4l2videoenc", 0,
+      "V4L2 Video Encoder");
+
+  gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_dispose);
+  gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_finalize);
+  gobject_class->set_property =
+      GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_set_property);
+  gobject_class->get_property =
+      GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_get_property);
+
+  video_encoder_class->open = GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_open);
+  video_encoder_class->close = GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_close);
+  video_encoder_class->start = GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_start);
+  video_encoder_class->stop = GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_stop);
+  video_encoder_class->finish = GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_finish);
+  video_encoder_class->flush = GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_flush);
+  video_encoder_class->set_format =
+      GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_set_format);
+  video_encoder_class->negotiate =
+      GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_negotiate);
+  video_encoder_class->decide_allocation =
+      GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_decide_allocation);
+  video_encoder_class->propose_allocation =
+      GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_propose_allocation);
+  video_encoder_class->sink_query =
+      GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_sink_query);
+  video_encoder_class->src_query =
+      GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_src_query);
+  video_encoder_class->sink_event =
+      GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_sink_event);
+  video_encoder_class->handle_frame =
+      GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_handle_frame);
+
+  element_class->change_state =
+      GST_DEBUG_FUNCPTR (gst_v4l2_video_enc_change_state);
+
+  gst_v4l2_object_install_m2m_properties_helper (gobject_class);
+}
+
+static void
+gst_v4l2_video_enc_subclass_init (gpointer g_class, gpointer data)
+{
+  GstV4l2VideoEncClass *klass = GST_V4L2_VIDEO_ENC_CLASS (g_class);
+  GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
+  GstV4l2VideoEncCData *cdata = data;
+
+  klass->default_device = cdata->device;
+
+  /* Note: gst_pad_template_new() take the floating ref from the caps */
+  gst_element_class_add_pad_template (element_class,
+      gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
+          cdata->sink_caps));
+  gst_element_class_add_pad_template (element_class,
+      gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
+          cdata->src_caps));
+
+  gst_caps_unref (cdata->sink_caps);
+  gst_caps_unref (cdata->src_caps);
+  g_free (cdata);
+}
+
+/* Probing functions */
+gboolean
+gst_v4l2_is_video_enc (GstCaps * sink_caps, GstCaps * src_caps,
+    GstCaps * codec_caps)
+{
+  gboolean ret = FALSE;
+  gboolean (*check_caps) (const GstCaps *, const GstCaps *);
+
+  if (codec_caps) {
+    check_caps = gst_caps_can_intersect;
+  } else {
+    codec_caps = gst_v4l2_object_get_codec_caps ();
+    check_caps = gst_caps_is_subset;
+  }
+
+  if (gst_caps_is_subset (sink_caps, gst_v4l2_object_get_raw_caps ())
+      && check_caps (src_caps, codec_caps))
+    ret = TRUE;
+
+  return ret;
+}
+
+void
+gst_v4l2_video_enc_register (GstPlugin * plugin, GType type,
+    const char *codec, const gchar * basename, const gchar * device_path,
+    GstCaps * sink_caps, GstCaps * codec_caps, GstCaps * src_caps)
+{
+  GstCaps *filtered_caps;
+  GTypeQuery type_query;
+  GTypeInfo type_info = { 0, };
+  GType subtype;
+  gchar *type_name;
+  GstV4l2VideoEncCData *cdata;
+
+  filtered_caps = gst_caps_intersect (src_caps, codec_caps);
+
+  cdata = g_new0 (GstV4l2VideoEncCData, 1);
+  cdata->device = g_strdup (device_path);
+  cdata->sink_caps = gst_caps_ref (sink_caps);
+  cdata->src_caps = gst_caps_ref (filtered_caps);
+
+  g_type_query (type, &type_query);
+  memset (&type_info, 0, sizeof (type_info));
+  type_info.class_size = type_query.class_size;
+  type_info.instance_size = type_query.instance_size;
+  type_info.class_init = gst_v4l2_video_enc_subclass_init;
+  type_info.class_data = cdata;
+  type_info.instance_init = gst_v4l2_video_enc_subinstance_init;
+
+  /* The first encoder to be registered should use a constant name, like
+   * v4l2h264enc, for any additional encoders, we create unique names. Encoder
+   * names may change between boots, so this should help gain stable names for
+   * the most common use cases. */
+  type_name = g_strdup_printf ("v4l2%senc", codec);
+
+  if (g_type_from_name (type_name) != 0) {
+    g_free (type_name);
+    type_name = g_strdup_printf ("v4l2%s%senc", basename, codec);
+  }
+
+  subtype = g_type_register_static (type, type_name, &type_info, 0);
+
+  if (!gst_element_register (plugin, type_name, GST_RANK_PRIMARY + 1, subtype))
+    GST_WARNING ("Failed to register plugin '%s'", type_name);
+
+  g_free (type_name);
+}
diff --git a/sys/v4l2/gstv4l2videoenc.h b/sys/v4l2/gstv4l2videoenc.h
new file mode 100644
index 000000000..f03acd523
--- /dev/null
+++ b/sys/v4l2/gstv4l2videoenc.h
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2014 SUMOMO Computer Association.
+ *     Author: ayaka <ayaka@soulik.info>
+ *
+ * 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_V4L2_VIDEO_ENC_H__
+#define __GST_V4L2_VIDEO_ENC_H__
+
+#include <gst/gst.h>
+#include <gst/video/video.h>
+#include <gst/video/gstvideoencoder.h>
+#include <gst/video/gstvideometa.h>
+
+#include <gstv4l2object.h>
+#include <gstv4l2bufferpool.h>
+
+G_BEGIN_DECLS
+#define GST_TYPE_V4L2_VIDEO_ENC \
+  (gst_v4l2_video_enc_get_type())
+#define GST_V4L2_VIDEO_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_V4L2_VIDEO_ENC,GstV4l2VideoEnc))
+#define GST_V4L2_VIDEO_ENC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_V4L2_VIDEO_ENC,GstV4l2VideoEncClass))
+#define GST_IS_V4L2_VIDEO_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_V4L2_VIDEO_ENC))
+#define GST_IS_V4L2_VIDEO_ENC_CLASS(obj) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_V4L2_VIDEO_ENC))
+#define GST_V4L2_VIDEO_ENC_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_V4L2_VIDEO_ENC, GstV4l2VideoEncClass))
+
+typedef struct _GstV4l2VideoEnc GstV4l2VideoEnc;
+typedef struct _GstV4l2VideoEncClass GstV4l2VideoEncClass;
+
+struct _GstV4l2VideoEnc
+{
+  GstVideoEncoder parent;
+
+  /* < private > */
+  GstV4l2Object *v4l2output;
+  GstV4l2Object *v4l2capture;
+
+  /* pads */
+  GstCaps *probed_srccaps;
+  GstCaps *probed_sinkcaps;
+
+  /* State */
+  GstVideoCodecState *input_state;
+  gboolean active;
+  gboolean processing;
+  GstFlowReturn output_flow;
+
+};
+
+struct _GstV4l2VideoEncClass
+{
+  GstVideoEncoderClass parent_class;
+
+  gchar *default_device;
+  const char *codec_name;
+
+  guint32 profile_cid;
+  const gchar * (*profile_to_string) (gint v4l2_profile);
+  gint (*profile_from_string) (const gchar * profile);
+
+  guint32 level_cid;
+  const gchar * (*level_to_string) (gint v4l2_level);
+  gint (*level_from_string) (const gchar * level);
+};
+
+GType gst_v4l2_video_enc_get_type (void);
+
+
+gboolean gst_v4l2_is_video_enc (GstCaps * sink_caps, GstCaps * src_caps,
+    GstCaps * codec_caps);
+
+void gst_v4l2_video_enc_register (GstPlugin * plugin, GType type,
+    const char *codec, const gchar * basename, const gchar * device_path,
+    GstCaps * sink_caps, GstCaps *codec_caps, GstCaps * src_caps);
+
+G_END_DECLS
+#endif /* __GST_V4L2_VIDEO_ENC_H__ */
diff --git a/sys/v4l2/gstv4l2vidorient.c b/sys/v4l2/gstv4l2vidorient.c
index 488371c20..9ccb455aa 100644
--- a/sys/v4l2/gstv4l2vidorient.c
+++ b/sys/v4l2/gstv4l2vidorient.c
@@ -26,9 +26,9 @@
 
 #include <gst/gst.h>
 
+#include "gstv4l2object.h"
 #include "gstv4l2vidorient.h"
 #include "gstv4l2object.h"
-#include "v4l2_calls.h"
 
 GST_DEBUG_CATEGORY_STATIC (v4l2vo_debug);
 #define GST_CAT_DEFAULT v4l2vo_debug
diff --git a/sys/v4l2/gstv4l2vp8enc.c b/sys/v4l2/gstv4l2vp8enc.c
new file mode 100644
index 000000000..cf3eb0623
--- /dev/null
+++ b/sys/v4l2/gstv4l2vp8enc.c
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) 2017 Collabora Inc.
+ *    Author: Nicolas Dufresne <nicolas.dufresne@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 <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <unistd.h>
+#include <string.h>
+
+#include "gstv4l2object.h"
+#include "gstv4l2vp8enc.h"
+
+#include <string.h>
+#include <gst/gst-i18n-plugin.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_v4l2_vp8_enc_debug);
+#define GST_CAT_DEFAULT gst_v4l2_vp8_enc_debug
+
+static GstStaticCaps src_template_caps =
+GST_STATIC_CAPS ("video/x-vp8, profile=(string) { 0, 1, 2, 3 }");
+
+enum
+{
+  PROP_0,
+  V4L2_STD_OBJECT_PROPS,
+  /* TODO */
+};
+
+#define gst_v4l2_vp8_enc_parent_class parent_class
+G_DEFINE_TYPE (GstV4l2Vp8Enc, gst_v4l2_vp8_enc, GST_TYPE_V4L2_VIDEO_ENC);
+
+static void
+gst_v4l2_vp8_enc_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+  /* TODO */
+}
+
+static void
+gst_v4l2_vp8_enc_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec)
+{
+  /* TODO */
+}
+
+static gint
+v4l2_profile_from_string (const gchar * profile)
+{
+  gint v4l2_profile = -1;
+
+  if (g_str_equal (profile, "0"))
+    v4l2_profile = 0;
+  else if (g_str_equal (profile, "1"))
+    v4l2_profile = 1;
+  else if (g_str_equal (profile, "2"))
+    v4l2_profile = 2;
+  else if (g_str_equal (profile, "3"))
+    v4l2_profile = 3;
+  else
+    GST_WARNING ("Unsupported profile string '%s'", profile);
+
+  return v4l2_profile;
+}
+
+static const gchar *
+v4l2_profile_to_string (gint v4l2_profile)
+{
+  switch (v4l2_profile) {
+    case 0:
+      return "0";
+    case 1:
+      return "1";
+    case 2:
+      return "2";
+    case 3:
+      return "3";
+    default:
+      GST_WARNING ("Unsupported V4L2 profile %i", v4l2_profile);
+      break;
+  }
+
+  return NULL;
+}
+
+static void
+gst_v4l2_vp8_enc_init (GstV4l2Vp8Enc * self)
+{
+}
+
+static void
+gst_v4l2_vp8_enc_class_init (GstV4l2Vp8EncClass * klass)
+{
+  GstElementClass *element_class;
+  GObjectClass *gobject_class;
+  GstV4l2VideoEncClass *baseclass;
+
+  parent_class = g_type_class_peek_parent (klass);
+
+  element_class = (GstElementClass *) klass;
+  gobject_class = (GObjectClass *) klass;
+  baseclass = (GstV4l2VideoEncClass *) (klass);
+
+
+  GST_DEBUG_CATEGORY_INIT (gst_v4l2_vp8_enc_debug, "v4l2vp8enc", 0,
+      "V4L2 VP8 Encoder");
+
+  gst_element_class_set_static_metadata (element_class,
+      "V4L2 VP8 Encoder",
+      "Codec/Encoder/Video",
+      "Encode VP8 video streams via V4L2 API",
+      "Nicolas Dufresne <nicolas.dufresne@collabora.com");
+
+  gobject_class->set_property =
+      GST_DEBUG_FUNCPTR (gst_v4l2_vp8_enc_set_property);
+  gobject_class->get_property =
+      GST_DEBUG_FUNCPTR (gst_v4l2_vp8_enc_get_property);
+
+  baseclass->codec_name = "VP8";
+  baseclass->profile_cid = V4L2_CID_MPEG_VIDEO_VPX_PROFILE;
+  baseclass->profile_to_string = v4l2_profile_to_string;
+  baseclass->profile_from_string = v4l2_profile_from_string;
+}
+
+/* Probing functions */
+gboolean
+gst_v4l2_is_vp8_enc (GstCaps * sink_caps, GstCaps * src_caps)
+{
+  return gst_v4l2_is_video_enc (sink_caps, src_caps,
+      gst_static_caps_get (&src_template_caps));
+}
+
+void
+gst_v4l2_vp8_enc_register (GstPlugin * plugin, const gchar * basename,
+    const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps)
+{
+  gst_v4l2_video_enc_register (plugin, GST_TYPE_V4L2_VP8_ENC,
+      "vp8", basename, device_path, sink_caps,
+      gst_static_caps_get (&src_template_caps), src_caps);
+}
diff --git a/sys/v4l2/gstv4l2vp8enc.h b/sys/v4l2/gstv4l2vp8enc.h
new file mode 100644
index 000000000..3e82b4b79
--- /dev/null
+++ b/sys/v4l2/gstv4l2vp8enc.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2017 Collabora Inc.
+ *    Author: Nicolas Dufresne <nicolas.dufresne@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.
+ *
+ */
+
+#ifndef __GST_V4L2_VP8_ENC_H__
+#define __GST_V4L2_VP8_ENC_H__
+
+#include <gst/gst.h>
+#include "gstv4l2videoenc.h"
+
+G_BEGIN_DECLS
+#define GST_TYPE_V4L2_VP8_ENC \
+  (gst_v4l2_vp8_enc_get_type())
+#define GST_V4L2_VP8_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_V4L2_VP8_ENC,GstV4l2Vp8Enc))
+#define GST_V4L2_VP8_ENC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_V4L2_VP8_ENC,GstV4l2Vp8EncClass))
+#define GST_IS_V4L2_VP8_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_V4L2_VP8_ENC))
+#define GST_IS_V4L2_VP8_ENC_CLASS(obj) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_V4L2_VP8_ENC))
+typedef struct _GstV4l2Vp8Enc GstV4l2Vp8Enc;
+typedef struct _GstV4l2Vp8EncClass GstV4l2Vp8EncClass;
+
+struct _GstV4l2Vp8Enc
+{
+  GstV4l2VideoEnc parent;
+};
+
+struct _GstV4l2Vp8EncClass
+{
+  GstV4l2VideoEncClass parent_class;
+};
+
+GType gst_v4l2_vp8_enc_get_type (void);
+
+gboolean gst_v4l2_is_vp8_enc (GstCaps * sink_caps, GstCaps * src_caps);
+
+void gst_v4l2_vp8_enc_register (GstPlugin * plugin, const gchar * basename,
+    const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps);
+
+G_END_DECLS
+#endif /* __GST_V4L2_VP8_ENC_H__ */
diff --git a/sys/v4l2/gstv4l2vp9enc.c b/sys/v4l2/gstv4l2vp9enc.c
new file mode 100644
index 000000000..e938d78d4
--- /dev/null
+++ b/sys/v4l2/gstv4l2vp9enc.c
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2017 Collabora Inc.
+ *    Author: Nicolas Dufresne <nicolas.dufresne@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 <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <unistd.h>
+#include <string.h>
+
+#include "gstv4l2object.h"
+#include "gstv4l2vp9enc.h"
+
+#include <string.h>
+#include <gst/gst-i18n-plugin.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_v4l2_vp9_enc_debug);
+#define GST_CAT_DEFAULT gst_v4l2_vp9_enc_debug
+
+static GstStaticCaps src_template_caps =
+GST_STATIC_CAPS ("video/x-vp9, profile=(string) { 0, 1, 2, 3 }");
+
+enum
+{
+  PROP_0,
+  V4L2_STD_OBJECT_PROPS,
+  /* TODO */
+};
+
+#define gst_v4l2_vp9_enc_parent_class parent_class
+G_DEFINE_TYPE (GstV4l2Vp9Enc, gst_v4l2_vp9_enc, GST_TYPE_V4L2_VIDEO_ENC);
+
+static void
+gst_v4l2_vp9_enc_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+  /* TODO */
+}
+
+static void
+gst_v4l2_vp9_enc_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec)
+{
+  /* TODO */
+}
+
+static gint
+v4l2_profile_from_string (const gchar * profile)
+{
+  gint v4l2_profile = -1;
+
+  if (g_str_equal (profile, "0"))
+    v4l2_profile = 0;
+  else if (g_str_equal (profile, "1"))
+    v4l2_profile = 1;
+  else if (g_str_equal (profile, "2"))
+    v4l2_profile = 2;
+  else if (g_str_equal (profile, "3"))
+    v4l2_profile = 3;
+  else
+    GST_WARNING ("Unsupported profile string '%s'", profile);
+
+  return v4l2_profile;
+}
+
+static const gchar *
+v4l2_profile_to_string (gint v4l2_profile)
+{
+  switch (v4l2_profile) {
+    case 0:
+      return "0";
+    case 1:
+      return "1";
+    case 2:
+      return "2";
+    case 3:
+      return "3";
+    default:
+      GST_WARNING ("Unsupported V4L2 profile %i", v4l2_profile);
+      break;
+  }
+
+  return NULL;
+}
+
+static void
+gst_v4l2_vp9_enc_init (GstV4l2Vp9Enc * self)
+{
+}
+
+static void
+gst_v4l2_vp9_enc_class_init (GstV4l2Vp9EncClass * klass)
+{
+  GstElementClass *element_class;
+  GObjectClass *gobject_class;
+  GstV4l2VideoEncClass *baseclass;
+
+  parent_class = g_type_class_peek_parent (klass);
+
+  element_class = (GstElementClass *) klass;
+  gobject_class = (GObjectClass *) klass;
+  baseclass = (GstV4l2VideoEncClass *) (klass);
+
+  GST_DEBUG_CATEGORY_INIT (gst_v4l2_vp9_enc_debug, "v4l2vp9enc", 0,
+      "V4L2 VP9 Encoder");
+
+  gst_element_class_set_static_metadata (element_class,
+      "V4L2 VP9 Encoder",
+      "Codec/Encoder/Video",
+      "Encode VP9 video streams via V4L2 API",
+      "Nicolas Dufresne <nicolas.dufresne@collabora.com");
+
+  gobject_class->set_property =
+      GST_DEBUG_FUNCPTR (gst_v4l2_vp9_enc_set_property);
+  gobject_class->get_property =
+      GST_DEBUG_FUNCPTR (gst_v4l2_vp9_enc_get_property);
+
+  baseclass->codec_name = "VP9";
+  baseclass->profile_cid = V4L2_CID_MPEG_VIDEO_VPX_PROFILE;
+  baseclass->profile_to_string = v4l2_profile_to_string;
+  baseclass->profile_from_string = v4l2_profile_from_string;
+}
+
+/* Probing functions */
+gboolean
+gst_v4l2_is_vp9_enc (GstCaps * sink_caps, GstCaps * src_caps)
+{
+  return gst_v4l2_is_video_enc (sink_caps, src_caps,
+      gst_static_caps_get (&src_template_caps));
+}
+
+void
+gst_v4l2_vp9_enc_register (GstPlugin * plugin, const gchar * basename,
+    const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps)
+{
+  gst_v4l2_video_enc_register (plugin, GST_TYPE_V4L2_VP9_ENC,
+      "vp9", basename, device_path, sink_caps,
+      gst_static_caps_get (&src_template_caps), src_caps);
+}
diff --git a/sys/v4l2/gstv4l2vp9enc.h b/sys/v4l2/gstv4l2vp9enc.h
new file mode 100644
index 000000000..b768cced2
--- /dev/null
+++ b/sys/v4l2/gstv4l2vp9enc.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2017 Collabora Inc.
+ *    Author: Nicolas Dufresne <nicolas.dufresne@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.
+ *
+ */
+
+#ifndef __GST_V4L2_VP9_ENC_H__
+#define __GST_V4L2_VP9_ENC_H__
+
+#include <gst/gst.h>
+#include "gstv4l2videoenc.h"
+
+G_BEGIN_DECLS
+#define GST_TYPE_V4L2_VP9_ENC \
+  (gst_v4l2_vp9_enc_get_type())
+#define GST_V4L2_VP9_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_V4L2_VP9_ENC,GstV4l2Vp9Enc))
+#define GST_V4L2_VP9_ENC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_V4L2_VP9_ENC,GstV4l2Vp9EncClass))
+#define GST_IS_V4L2_VP9_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_V4L2_VP9_ENC))
+#define GST_IS_V4L2_VP9_ENC_CLASS(obj) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_V4L2_VP9_ENC))
+typedef struct _GstV4l2Vp9Enc GstV4l2Vp9Enc;
+typedef struct _GstV4l2Vp9EncClass GstV4l2Vp9EncClass;
+
+struct _GstV4l2Vp9Enc
+{
+  GstV4l2VideoEnc parent;
+};
+
+struct _GstV4l2Vp9EncClass
+{
+  GstV4l2VideoEncClass parent_class;
+};
+
+GType gst_v4l2_vp9_enc_get_type (void);
+
+gboolean gst_v4l2_is_vp9_enc (GstCaps * sink_caps, GstCaps * src_caps);
+
+void gst_v4l2_vp9_enc_register (GstPlugin * plugin, const gchar * basename,
+    const gchar * device_path, GstCaps * sink_caps, GstCaps * src_caps);
+
+G_END_DECLS
+#endif /* __GST_V4L2_VP9_ENC_H__ */
diff --git a/sys/v4l2/meson.build b/sys/v4l2/meson.build
index 657bed385..83ecc02ab 100644
--- a/sys/v4l2/meson.build
+++ b/sys/v4l2/meson.build
@@ -11,7 +11,13 @@ v4l2_sources = [
   'gstv4l2tuner.c',
   'gstv4l2transform.c',
   'gstv4l2videodec.c',
+  'gstv4l2videoenc.c',
+  'gstv4l2h263enc.c',
+  'gstv4l2h264enc.c',
+  'gstv4l2mpeg4enc.c',
   'gstv4l2vidorient.c',
+  'gstv4l2vp8enc.c',
+  'gstv4l2vp9enc.c',
   'v4l2_calls.c',
   'v4l2-utils.c',
   'tuner.c',
diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
index 36cd7bc54..12fc82160 100644
--- a/sys/v4l2/v4l2_calls.c
+++ b/sys/v4l2/v4l2_calls.c
@@ -38,11 +38,8 @@
 #include <stropts.h>
 #include <sys/ioccom.h>
 #endif
-#include "v4l2_calls.h"
+#include "gstv4l2object.h"
 #include "gstv4l2tuner.h"
-#if 0
-#include "gstv4l2xoverlay.h"
-#endif
 #include "gstv4l2colorbalance.h"
 
 #include "gstv4l2src.h"
@@ -59,7 +56,7 @@ GST_DEBUG_CATEGORY_EXTERN (v4l2_debug);
  *   get the device's capturing capabilities
  * return value: TRUE on success, FALSE on error
  ******************************************************/
-gboolean
+static gboolean
 gst_v4l2_get_capabilities (GstV4l2Object * v4l2object)
 {
   GstElement *e;
@@ -71,7 +68,8 @@ gst_v4l2_get_capabilities (GstV4l2Object * v4l2object)
   if (!GST_V4L2_IS_OPEN (v4l2object))
     return FALSE;
 
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_QUERYCAP, &v4l2object->vcap) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_QUERYCAP,
+          &v4l2object->vcap) < 0)
     goto cap_failed;
 
   if (v4l2object->vcap.capabilities & V4L2_CAP_DEVICE_CAPS)
@@ -150,7 +148,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
     memset (&input, 0, sizeof (input));
 
     input.index = n;
-    if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_ENUMINPUT, &input) < 0) {
+    if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_ENUMINPUT, &input) < 0) {
       if (errno == EINVAL || errno == ENOTTY)
         break;                  /* end of enumeration */
       else {
@@ -184,7 +182,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
       channel->flags |= GST_TUNER_CHANNEL_FREQUENCY;
 
       vtun.index = input.tuner;
-      if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_TUNER, &vtun) < 0) {
+      if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_TUNER, &vtun) < 0) {
         GST_ELEMENT_ERROR (e, RESOURCE, SETTINGS,
             (_("Failed to get setting of tuner %d on device '%s'."),
                 input.tuner, v4l2object->videodev), GST_ERROR_SYSTEM);
@@ -225,7 +223,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
     standard.frameperiod.denominator = 0;
     standard.index = n;
 
-    if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_ENUMSTD, &standard) < 0) {
+    if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_ENUMSTD, &standard) < 0) {
       if (errno == EINVAL || errno == ENOTTY)
         break;                  /* end of enumeration */
 #ifdef ENODATA
@@ -253,7 +251,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
         standard.frameperiod.denominator, standard.frameperiod.numerator);
     v4l2norm->index = standard.id;
 
-    GST_DEBUG_OBJECT (v4l2object->element, "index=%08x, label=%s",
+    GST_DEBUG_OBJECT (v4l2object->dbg_obj, "index=%08x, label=%s",
         (unsigned int) v4l2norm->index, norm->label);
 
     v4l2object->norms = g_list_prepend (v4l2object->norms, (gpointer) norm);
@@ -283,7 +281,8 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
     GST_DEBUG_OBJECT (e, "checking control %08x", n);
 
     control.id = n | next;
-    if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_QUERYCTRL, &control) < 0) {
+    if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_QUERYCTRL,
+            &control) < 0) {
       if (next) {
         if (n > 0) {
           GST_DEBUG_OBJECT (e, "controls finished");
@@ -408,7 +407,8 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
       menu.id = n;
       for (i = 0;; i++) {
         menu.index = i;
-        if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_QUERYMENU, &menu) < 0) {
+        if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_QUERYMENU,
+                &menu) < 0) {
           if (errno == EINVAL)
             break;              /* end of enumeration */
           else {
@@ -461,7 +461,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
 static void
 gst_v4l2_empty_lists (GstV4l2Object * v4l2object)
 {
-  GST_DEBUG_OBJECT (v4l2object->element, "deleting enumerations");
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "deleting enumerations");
 
   g_list_foreach (v4l2object->channels, (GFunc) g_object_unref, NULL);
   g_list_free (v4l2object->channels);
@@ -518,9 +518,9 @@ gboolean
 gst_v4l2_open (GstV4l2Object * v4l2object)
 {
   struct stat st;
-  int libv4l2_fd;
+  int libv4l2_fd = -1;
 
-  GST_DEBUG_OBJECT (v4l2object->element, "Trying to open device %s",
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Trying to open device %s",
       v4l2object->videodev);
 
   GST_V4L2_CHECK_NOT_OPEN (v4l2object);
@@ -544,8 +544,12 @@ gst_v4l2_open (GstV4l2Object * v4l2object)
   if (!GST_V4L2_IS_OPEN (v4l2object))
     goto not_open;
 
-  libv4l2_fd = v4l2_fd_open (v4l2object->video_fd,
-      V4L2_ENABLE_ENUM_FMT_EMULATION);
+#ifdef HAVE_LIBV4L2
+  if (v4l2object->fd_open)
+    libv4l2_fd = v4l2object->fd_open (v4l2object->video_fd,
+        V4L2_ENABLE_ENUM_FMT_EMULATION);
+#endif
+
   /* Note the v4l2_xxx functions are designed so that if they get passed an
      unknown fd, the will behave exactly as their regular xxx counterparts, so
      if v4l2_fd_open fails, we continue as normal (missing the libv4l2 custom
@@ -587,7 +591,7 @@ gst_v4l2_open (GstV4l2Object * v4l2object)
   if (!gst_v4l2_fill_lists (v4l2object))
     goto error;
 
-  GST_INFO_OBJECT (v4l2object->element,
+  GST_INFO_OBJECT (v4l2object->dbg_obj,
       "Opened device '%s' (%s) successfully",
       v4l2object->vcap.card, v4l2object->videodev);
 
@@ -654,7 +658,7 @@ error:
   {
     if (GST_V4L2_IS_OPEN (v4l2object)) {
       /* close device */
-      v4l2_close (v4l2object->video_fd);
+      v4l2object->close (v4l2object->video_fd);
       v4l2object->video_fd = -1;
     }
     /* empty lists */
@@ -667,7 +671,7 @@ error:
 gboolean
 gst_v4l2_dup (GstV4l2Object * v4l2object, GstV4l2Object * other)
 {
-  GST_DEBUG_OBJECT (v4l2object->element, "Trying to dup device %s",
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Trying to dup device %s",
       other->videodev);
 
   GST_V4L2_CHECK_OPEN (other);
@@ -679,14 +683,14 @@ gst_v4l2_dup (GstV4l2Object * v4l2object, GstV4l2Object * other)
   v4l2object->device_caps = other->device_caps;
   gst_v4l2_adjust_buf_type (v4l2object);
 
-  v4l2object->video_fd = v4l2_dup (other->video_fd);
+  v4l2object->video_fd = v4l2object->dup (other->video_fd);
   if (!GST_V4L2_IS_OPEN (v4l2object))
     goto not_open;
 
   g_free (v4l2object->videodev);
   v4l2object->videodev = g_strdup (other->videodev);
 
-  GST_INFO_OBJECT (v4l2object->element,
+  GST_INFO_OBJECT (v4l2object->dbg_obj,
       "Cloned device '%s' (%s) successfully",
       v4l2object->vcap.card, v4l2object->videodev);
 
@@ -713,14 +717,14 @@ not_open:
 gboolean
 gst_v4l2_close (GstV4l2Object * v4l2object)
 {
-  GST_DEBUG_OBJECT (v4l2object->element, "Trying to close %s",
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "Trying to close %s",
       v4l2object->videodev);
 
   GST_V4L2_CHECK_OPEN (v4l2object);
   GST_V4L2_CHECK_NOT_ACTIVE (v4l2object);
 
   /* close device */
-  v4l2_close (v4l2object->video_fd);
+  v4l2object->close (v4l2object->video_fd);
   v4l2object->video_fd = -1;
 
   /* empty lists */
@@ -738,12 +742,12 @@ gst_v4l2_close (GstV4l2Object * v4l2object)
 gboolean
 gst_v4l2_get_norm (GstV4l2Object * v4l2object, v4l2_std_id * norm)
 {
-  GST_DEBUG_OBJECT (v4l2object->element, "getting norm");
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "getting norm");
 
   if (!GST_V4L2_IS_OPEN (v4l2object))
     return FALSE;
 
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_STD, norm) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_STD, norm) < 0)
     goto std_failed;
 
   return TRUE;
@@ -766,13 +770,13 @@ std_failed:
 gboolean
 gst_v4l2_set_norm (GstV4l2Object * v4l2object, v4l2_std_id norm)
 {
-  GST_DEBUG_OBJECT (v4l2object->element, "trying to set norm to "
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "trying to set norm to "
       "%" G_GINT64_MODIFIER "x", (guint64) norm);
 
   if (!GST_V4L2_IS_OPEN (v4l2object))
     return FALSE;
 
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_S_STD, &norm) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_S_STD, &norm) < 0)
     goto std_failed;
 
   return TRUE;
@@ -800,7 +804,7 @@ gst_v4l2_get_frequency (GstV4l2Object * v4l2object,
 
   GstTunerChannel *channel;
 
-  GST_DEBUG_OBJECT (v4l2object->element, "getting current tuner frequency");
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "getting current tuner frequency");
 
   if (!GST_V4L2_IS_OPEN (v4l2object))
     return FALSE;
@@ -808,7 +812,7 @@ gst_v4l2_get_frequency (GstV4l2Object * v4l2object,
   channel = gst_tuner_get_channel (GST_TUNER (v4l2object->element));
 
   freq.tuner = tunernum;
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_FREQUENCY, &freq) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_FREQUENCY, &freq) < 0)
     goto freq_failed;
 
   *frequency = freq.frequency * channel->freq_multiplicator;
@@ -839,7 +843,7 @@ gst_v4l2_set_frequency (GstV4l2Object * v4l2object,
 
   GstTunerChannel *channel;
 
-  GST_DEBUG_OBJECT (v4l2object->element,
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj,
       "setting current tuner frequency to %lu", frequency);
 
   if (!GST_V4L2_IS_OPEN (v4l2object))
@@ -849,10 +853,10 @@ gst_v4l2_set_frequency (GstV4l2Object * v4l2object,
 
   freq.tuner = tunernum;
   /* fill in type - ignore error */
-  (void) v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_FREQUENCY, &freq);
+  (void) v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_FREQUENCY, &freq);
   freq.frequency = frequency / channel->freq_multiplicator;
 
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_S_FREQUENCY, &freq) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_S_FREQUENCY, &freq) < 0)
     goto freq_failed;
 
   return TRUE;
@@ -878,13 +882,13 @@ gst_v4l2_signal_strength (GstV4l2Object * v4l2object,
 {
   struct v4l2_tuner tuner = { 0, };
 
-  GST_DEBUG_OBJECT (v4l2object->element, "trying to get signal strength");
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "trying to get signal strength");
 
   if (!GST_V4L2_IS_OPEN (v4l2object))
     return FALSE;
 
   tuner.index = tunernum;
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_TUNER, &tuner) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_TUNER, &tuner) < 0)
     goto tuner_failed;
 
   *signal_strength = tuner.signal;
@@ -912,7 +916,7 @@ gst_v4l2_get_attribute (GstV4l2Object * v4l2object,
 {
   struct v4l2_control control = { 0, };
 
-  GST_DEBUG_OBJECT (v4l2object->element, "getting value of attribute %d",
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "getting value of attribute %d",
       attribute_num);
 
   if (!GST_V4L2_IS_OPEN (v4l2object))
@@ -920,7 +924,7 @@ gst_v4l2_get_attribute (GstV4l2Object * v4l2object,
 
   control.id = attribute_num;
 
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_CTRL, &control) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_CTRL, &control) < 0)
     goto ctrl_failed;
 
   *value = control.value;
@@ -949,7 +953,7 @@ gst_v4l2_set_attribute (GstV4l2Object * v4l2object,
 {
   struct v4l2_control control = { 0, };
 
-  GST_DEBUG_OBJECT (v4l2object->element, "setting value of attribute %d to %d",
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "setting value of attribute %d to %d",
       attribute_num, value);
 
   if (!GST_V4L2_IS_OPEN (v4l2object))
@@ -957,7 +961,7 @@ gst_v4l2_set_attribute (GstV4l2Object * v4l2object,
 
   control.id = attribute_num;
   control.value = value;
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_S_CTRL, &control) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_S_CTRL, &control) < 0)
     goto ctrl_failed;
 
   return TRUE;
@@ -1025,17 +1029,17 @@ gst_v4l2_get_input (GstV4l2Object * v4l2object, gint * input)
 {
   gint n;
 
-  GST_DEBUG_OBJECT (v4l2object->element, "trying to get input");
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "trying to get input");
 
   if (!GST_V4L2_IS_OPEN (v4l2object))
     return FALSE;
 
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_INPUT, &n) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_INPUT, &n) < 0)
     goto input_failed;
 
   *input = n;
 
-  GST_DEBUG_OBJECT (v4l2object->element, "input: %d", n);
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "input: %d", n);
 
   return TRUE;
 
@@ -1054,12 +1058,12 @@ input_failed:
 gboolean
 gst_v4l2_set_input (GstV4l2Object * v4l2object, gint input)
 {
-  GST_DEBUG_OBJECT (v4l2object->element, "trying to set input to %d", input);
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "trying to set input to %d", input);
 
   if (!GST_V4L2_IS_OPEN (v4l2object))
     return FALSE;
 
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_S_INPUT, &input) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_S_INPUT, &input) < 0)
     goto input_failed;
 
   return TRUE;
@@ -1082,17 +1086,17 @@ gst_v4l2_get_output (GstV4l2Object * v4l2object, gint * output)
 {
   gint n;
 
-  GST_DEBUG_OBJECT (v4l2object->element, "trying to get output");
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "trying to get output");
 
   if (!GST_V4L2_IS_OPEN (v4l2object))
     return FALSE;
 
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_OUTPUT, &n) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_G_OUTPUT, &n) < 0)
     goto output_failed;
 
   *output = n;
 
-  GST_DEBUG_OBJECT (v4l2object->element, "output: %d", n);
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "output: %d", n);
 
   return TRUE;
 
@@ -1111,12 +1115,12 @@ output_failed:
 gboolean
 gst_v4l2_set_output (GstV4l2Object * v4l2object, gint output)
 {
-  GST_DEBUG_OBJECT (v4l2object->element, "trying to set output to %d", output);
+  GST_DEBUG_OBJECT (v4l2object->dbg_obj, "trying to set output to %d", output);
 
   if (!GST_V4L2_IS_OPEN (v4l2object))
     return FALSE;
 
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_S_OUTPUT, &output) < 0)
+  if (v4l2object->ioctl (v4l2object->video_fd, VIDIOC_S_OUTPUT, &output) < 0)
     goto output_failed;
 
   return TRUE;
diff --git a/sys/v4l2/v4l2_calls.h b/sys/v4l2/v4l2_calls.h
deleted file mode 100644
index 1560b9af1..000000000
--- a/sys/v4l2/v4l2_calls.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/* GStreamer
- *
- * Copyright (C) 2002 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *               2006 Edgard Lima <edgard.lima@gmail.com>
- *
- * v4l2_calls.h - generic V4L2 calls handling
- *
- * 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 __V4L2_CALLS_H__
-#define __V4L2_CALLS_H__
-
-#include "gstv4l2object.h"
-
-#ifdef HAVE_LIBV4L2
-#  include <libv4l2.h>
-#else
-#  include "ext/videodev2.h"
-#  include <sys/ioctl.h>
-#  include <sys/mman.h>
-#  include <unistd.h>
-#  define v4l2_fd_open(fd, flags) (fd)
-#  define v4l2_close    close
-#  define v4l2_dup      dup
-#  define v4l2_ioctl    ioctl
-#  define v4l2_read     read
-#  define v4l2_mmap     mmap
-#  define v4l2_munmap   munmap
-#endif
-
-#define GST_V4L2_IS_OVERLAY(v4l2object) \
-  (v4l2object->vcap.capabilities & V4L2_CAP_VIDEO_OVERLAY)
-
-/* checks whether the current v4lv4l2object has already been open()'ed or not */
-#define GST_V4L2_CHECK_OPEN(v4l2object)				\
-  if (!GST_V4L2_IS_OPEN(v4l2object))				\
-  {								\
-    GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,	\
-      (_("Device is not open.")), (NULL));                      \
-    return FALSE;						\
-  }
-
-/* checks whether the current v4lv4l2object is close()'ed or whether it is still open */
-#define GST_V4L2_CHECK_NOT_OPEN(v4l2object)			\
-  if (GST_V4L2_IS_OPEN(v4l2object))				\
-  {								\
-    GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,	\
-      (_("Device is open.")), (NULL));                          \
-    return FALSE;						\
-  }
-
-/* checks whether the current v4lv4l2object does video overlay */
-#define GST_V4L2_CHECK_OVERLAY(v4l2object)			\
-  if (!GST_V4L2_IS_OVERLAY(v4l2object))				\
-  {								\
-    GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS, \
-      (NULL), ("Device cannot handle overlay"));                \
-    return FALSE;						\
-  }
-
-/* checks whether we're in capture mode or not */
-#define GST_V4L2_CHECK_ACTIVE(v4l2object)			\
-  if (!GST_V4L2_IS_ACTIVE(v4l2object))				\
-  {								\
-    GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS, \
-      (NULL), ("Device is not in streaming mode"));             \
-    return FALSE;						\
-  }
-
-/* checks whether we're out of capture mode or not */
-#define GST_V4L2_CHECK_NOT_ACTIVE(v4l2object)			\
-  if (GST_V4L2_IS_ACTIVE(v4l2object))				\
-  {								\
-    GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS, \
-      (NULL), ("Device is in streaming mode"));                 \
-    return FALSE;						\
-  }
-
-
-/* open/close the device */
-gboolean	gst_v4l2_open			(GstV4l2Object *v4l2object);
-gboolean	gst_v4l2_dup			(GstV4l2Object *v4l2object, GstV4l2Object *other);
-gboolean	gst_v4l2_close			(GstV4l2Object *v4l2object);
-
-/* norm/input/output */
-gboolean	gst_v4l2_get_norm		(GstV4l2Object *v4l2object,
-						 v4l2_std_id    *norm);
-gboolean	gst_v4l2_set_norm		(GstV4l2Object *v4l2object,
-						 v4l2_std_id     norm);
-gboolean        gst_v4l2_get_input              (GstV4l2Object * v4l2object,
-                                                 gint * input);
-gboolean        gst_v4l2_set_input              (GstV4l2Object * v4l2object,
-                                                 gint input);
-gboolean	gst_v4l2_get_output		(GstV4l2Object *v4l2object,
-						 gint           *output);
-gboolean	gst_v4l2_set_output		(GstV4l2Object *v4l2object,
-						 gint            output);
-
-/* frequency control */
-gboolean	gst_v4l2_get_frequency		(GstV4l2Object *v4l2object,
-						 gint            tunernum,
-						 gulong         *frequency);
-gboolean	gst_v4l2_set_frequency		(GstV4l2Object *v4l2object,
-						 gint            tunernum,
-					 	 gulong          frequency);
-gboolean	gst_v4l2_signal_strength	(GstV4l2Object *v4l2object,
-						 gint            tunernum,
-						 gulong         *signal);
-
-/* attribute control */
-gboolean	gst_v4l2_get_attribute		(GstV4l2Object *v4l2object,
-						 int             attribute,
-						 int            *value);
-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);
-
-
-#endif /* __V4L2_CALLS_H__ */
diff --git a/sys/waveform/Makefile.am b/sys/waveform/Makefile.am
index 75dc7c49c..7ab161cec 100644
--- a/sys/waveform/Makefile.am
+++ b/sys/waveform/Makefile.am
@@ -1,16 +1,15 @@
-plugin_LTLIBRARIES = libgstwaveformsink.la
+plugin_LTLIBRARIES = libgstwaveform.la
 
-libgstwaveformsink_la_SOURCES =  gstwaveformsink.c gstwaveformplugin.c
-libgstwaveformsink_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
+libgstwaveform_la_SOURCES =  gstwaveformsink.c gstwaveformplugin.c
+libgstwaveform_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
         $(GST_PLUGINS_BASE_CFLAGS)
-libgstwaveformsink_la_LIBADD = \
+libgstwaveform_la_LIBADD = \
 	$(GST_PLUGINS_BASE_LIBS) \
         -lgstaudio-$(GST_API_VERSION) \
         $(GST_BASE_LIBS) \
 	$(GST_LIBS) \
 	-lwinmm
-libgstwaveformsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstwaveformsink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
+libgstwaveform_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 
 noinst_HEADERS = gstwaveformsink.h
 
diff --git a/sys/waveform/Makefile.in b/sys/waveform/Makefile.in
index 6e437aaa5..e1ca4f62b 100644
--- a/sys/waveform/Makefile.in
+++ b/sys/waveform/Makefile.in
@@ -163,20 +163,19 @@ am__uninstall_files_from_dir = { \
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-libgstwaveformsink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+libgstwaveform_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am_libgstwaveformsink_la_OBJECTS =  \
-	libgstwaveformsink_la-gstwaveformsink.lo \
-	libgstwaveformsink_la-gstwaveformplugin.lo
-libgstwaveformsink_la_OBJECTS = $(am_libgstwaveformsink_la_OBJECTS)
+am_libgstwaveform_la_OBJECTS = libgstwaveform_la-gstwaveformsink.lo \
+	libgstwaveform_la-gstwaveformplugin.lo
+libgstwaveform_la_OBJECTS = $(am_libgstwaveform_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 $@
+libgstwaveform_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libgstwaveform_la_CFLAGS) $(CFLAGS) \
+	$(libgstwaveform_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
@@ -211,8 +210,8 @@ 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 = $(libgstwaveformsink_la_SOURCES)
-DIST_SOURCES = $(libgstwaveformsink_la_SOURCES)
+SOURCES = $(libgstwaveform_la_SOURCES)
+DIST_SOURCES = $(libgstwaveform_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -293,6 +292,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -316,6 +316,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -331,6 +333,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -353,10 +357,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -371,6 +382,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -388,6 +400,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -400,6 +414,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -418,6 +434,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -461,9 +480,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -477,11 +507,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -572,20 +607,19 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-plugin_LTLIBRARIES = libgstwaveformsink.la
-libgstwaveformsink_la_SOURCES = gstwaveformsink.c gstwaveformplugin.c
-libgstwaveformsink_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
+plugin_LTLIBRARIES = libgstwaveform.la
+libgstwaveform_la_SOURCES = gstwaveformsink.c gstwaveformplugin.c
+libgstwaveform_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
         $(GST_PLUGINS_BASE_CFLAGS)
 
-libgstwaveformsink_la_LIBADD = \
+libgstwaveform_la_LIBADD = \
 	$(GST_PLUGINS_BASE_LIBS) \
         -lgstaudio-$(GST_API_VERSION) \
         $(GST_BASE_LIBS) \
 	$(GST_LIBS) \
 	-lwinmm
 
-libgstwaveformsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstwaveformsink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
+libgstwaveform_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 noinst_HEADERS = gstwaveformsink.h
 all: all-am
 
@@ -656,8 +690,8 @@ clean-pluginLTLIBRARIES:
 	  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)
+libgstwaveform.la: $(libgstwaveform_la_OBJECTS) $(libgstwaveform_la_DEPENDENCIES) $(EXTRA_libgstwaveform_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstwaveform_la_LINK) -rpath $(plugindir) $(libgstwaveform_la_OBJECTS) $(libgstwaveform_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -665,8 +699,8 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstwaveformsink_la-gstwaveformplugin.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstwaveformsink_la-gstwaveformsink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstwaveform_la-gstwaveformplugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstwaveform_la-gstwaveformsink.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -692,19 +726,19 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libgstwaveformsink_la-gstwaveformsink.lo: gstwaveformsink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveformsink_la_CFLAGS) $(CFLAGS) -MT libgstwaveformsink_la-gstwaveformsink.lo -MD -MP -MF $(DEPDIR)/libgstwaveformsink_la-gstwaveformsink.Tpo -c -o libgstwaveformsink_la-gstwaveformsink.lo `test -f 'gstwaveformsink.c' || echo '$(srcdir)/'`gstwaveformsink.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstwaveformsink_la-gstwaveformsink.Tpo $(DEPDIR)/libgstwaveformsink_la-gstwaveformsink.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwaveformsink.c' object='libgstwaveformsink_la-gstwaveformsink.lo' libtool=yes @AMDEPBACKSLASH@
+libgstwaveform_la-gstwaveformsink.lo: gstwaveformsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveform_la_CFLAGS) $(CFLAGS) -MT libgstwaveform_la-gstwaveformsink.lo -MD -MP -MF $(DEPDIR)/libgstwaveform_la-gstwaveformsink.Tpo -c -o libgstwaveform_la-gstwaveformsink.lo `test -f 'gstwaveformsink.c' || echo '$(srcdir)/'`gstwaveformsink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstwaveform_la-gstwaveformsink.Tpo $(DEPDIR)/libgstwaveform_la-gstwaveformsink.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwaveformsink.c' object='libgstwaveform_la-gstwaveformsink.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 $(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveformsink_la_CFLAGS) $(CFLAGS) -c -o libgstwaveformsink_la-gstwaveformsink.lo `test -f 'gstwaveformsink.c' || echo '$(srcdir)/'`gstwaveformsink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveform_la_CFLAGS) $(CFLAGS) -c -o libgstwaveform_la-gstwaveformsink.lo `test -f 'gstwaveformsink.c' || echo '$(srcdir)/'`gstwaveformsink.c
 
-libgstwaveformsink_la-gstwaveformplugin.lo: gstwaveformplugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveformsink_la_CFLAGS) $(CFLAGS) -MT libgstwaveformsink_la-gstwaveformplugin.lo -MD -MP -MF $(DEPDIR)/libgstwaveformsink_la-gstwaveformplugin.Tpo -c -o libgstwaveformsink_la-gstwaveformplugin.lo `test -f 'gstwaveformplugin.c' || echo '$(srcdir)/'`gstwaveformplugin.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstwaveformsink_la-gstwaveformplugin.Tpo $(DEPDIR)/libgstwaveformsink_la-gstwaveformplugin.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwaveformplugin.c' object='libgstwaveformsink_la-gstwaveformplugin.lo' libtool=yes @AMDEPBACKSLASH@
+libgstwaveform_la-gstwaveformplugin.lo: gstwaveformplugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveform_la_CFLAGS) $(CFLAGS) -MT libgstwaveform_la-gstwaveformplugin.lo -MD -MP -MF $(DEPDIR)/libgstwaveform_la-gstwaveformplugin.Tpo -c -o libgstwaveform_la-gstwaveformplugin.lo `test -f 'gstwaveformplugin.c' || echo '$(srcdir)/'`gstwaveformplugin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstwaveform_la-gstwaveformplugin.Tpo $(DEPDIR)/libgstwaveform_la-gstwaveformplugin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstwaveformplugin.c' object='libgstwaveform_la-gstwaveformplugin.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 $(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveformsink_la_CFLAGS) $(CFLAGS) -c -o libgstwaveformsink_la-gstwaveformplugin.lo `test -f 'gstwaveformplugin.c' || echo '$(srcdir)/'`gstwaveformplugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveform_la_CFLAGS) $(CFLAGS) -c -o libgstwaveform_la-gstwaveformplugin.lo `test -f 'gstwaveformplugin.c' || echo '$(srcdir)/'`gstwaveformplugin.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/sys/ximage/Makefile.am b/sys/ximage/Makefile.am
index 567177594..646b35e14 100644
--- a/sys/ximage/Makefile.am
+++ b/sys/ximage/Makefile.am
@@ -11,6 +11,5 @@ libgstximagesrc_la_LIBADD = \
 	$(GST_BASE_LIBS) \
 	$(X_LIBS) $(XSHM_LIBS) $(XFIXES_LIBS) $(XDAMAGE_LIBS) 
 libgstximagesrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstximagesrc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstximagesrc.h ximageutil.h
diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in
index 3871dd9d9..ee0b7481f 100644
--- a/sys/ximage/Makefile.in
+++ b/sys/ximage/Makefile.in
@@ -175,8 +175,8 @@ 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) \
+	$(AM_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@)
@@ -294,6 +294,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -317,6 +318,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -332,6 +335,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -354,10 +359,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -372,6 +384,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -389,6 +402,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -401,6 +416,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -419,6 +436,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -462,9 +482,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -478,11 +509,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -587,7 +623,6 @@ libgstximagesrc_la_LIBADD = \
 	$(X_LIBS) $(XSHM_LIBS) $(XFIXES_LIBS) $(XDAMAGE_LIBS) 
 
 libgstximagesrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstximagesrc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstximagesrc.h ximageutil.h
 all: all-am
 
@@ -695,18 +730,18 @@ distclean-compile:
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstximagesrc_la-gstximagesrc.lo: gstximagesrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -MT libgstximagesrc_la-gstximagesrc.lo -MD -MP -MF $(DEPDIR)/libgstximagesrc_la-gstximagesrc.Tpo -c -o libgstximagesrc_la-gstximagesrc.lo `test -f 'gstximagesrc.c' || echo '$(srcdir)/'`gstximagesrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -MT libgstximagesrc_la-gstximagesrc.lo -MD -MP -MF $(DEPDIR)/libgstximagesrc_la-gstximagesrc.Tpo -c -o libgstximagesrc_la-gstximagesrc.lo `test -f 'gstximagesrc.c' || echo '$(srcdir)/'`gstximagesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstximagesrc_la-gstximagesrc.Tpo $(DEPDIR)/libgstximagesrc_la-gstximagesrc.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstximagesrc.c' object='libgstximagesrc_la-gstximagesrc.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 $(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -c -o libgstximagesrc_la-gstximagesrc.lo `test -f 'gstximagesrc.c' || echo '$(srcdir)/'`gstximagesrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -c -o libgstximagesrc_la-gstximagesrc.lo `test -f 'gstximagesrc.c' || echo '$(srcdir)/'`gstximagesrc.c
 
 libgstximagesrc_la-ximageutil.lo: ximageutil.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -MT libgstximagesrc_la-ximageutil.lo -MD -MP -MF $(DEPDIR)/libgstximagesrc_la-ximageutil.Tpo -c -o libgstximagesrc_la-ximageutil.lo `test -f 'ximageutil.c' || echo '$(srcdir)/'`ximageutil.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -MT libgstximagesrc_la-ximageutil.lo -MD -MP -MF $(DEPDIR)/libgstximagesrc_la-ximageutil.Tpo -c -o libgstximagesrc_la-ximageutil.lo `test -f 'ximageutil.c' || echo '$(srcdir)/'`ximageutil.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstximagesrc_la-ximageutil.Tpo $(DEPDIR)/libgstximagesrc_la-ximageutil.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ximageutil.c' object='libgstximagesrc_la-ximageutil.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 $(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -c -o libgstximagesrc_la-ximageutil.lo `test -f 'ximageutil.c' || echo '$(srcdir)/'`ximageutil.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -c -o libgstximagesrc_la-ximageutil.lo `test -f 'ximageutil.c' || echo '$(srcdir)/'`ximageutil.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 8c6f3dcfa..3d6c83030 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -264,6 +264,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -287,6 +288,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -302,6 +305,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -324,10 +329,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -342,6 +354,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -359,6 +372,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -371,6 +386,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -389,6 +406,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -432,9 +452,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -448,11 +479,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 899b18241..d850bc53c 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -188,6 +188,12 @@ else
 check_jpeg =
 endif
 
+if USE_LAME
+check_lame = pipelines/lame
+else
+check_lame =
+endif
+
 if USE_PLUGIN_LEVEL
 check_level = elements/level
 else
@@ -203,6 +209,12 @@ else
 check_matroska =
 endif
 
+if USE_MPG123
+check_mpg123 = elements/mpg123audiodec
+else
+check_mpg123 =
+endif
+
 if USE_PLUGIN_MULTIFILE
 check_multifile = elements/multifile elements/splitmux
 else
@@ -223,6 +235,7 @@ check_rtp = \
 	elements/rtp-payloading \
 	elements/rtph261 \
 	elements/rtph263 \
+	elements/rtph264 \
 	elements/rtpvp9
 else
 check_rtp =
@@ -255,12 +268,6 @@ else
 check_spectrum =
 endif
 
-if USE_SUNAUDIO
-check_sunaudio = elements/sunaudio
-else
-check_sunaudio =
-endif
-
 if USE_PLUGIN_SHAPEWIPE
 check_shapewipe = elements/shapewipe
 else
@@ -275,6 +282,12 @@ else
 check_taglib =
 endif
 
+if USE_TWOLAME
+check_twolame = pipelines/twolame
+else
+check_twolame =
+endif
+
 if USE_PLUGIN_UDP
 check_udp = \
         elements/udpsink \
@@ -372,9 +385,11 @@ check_PROGRAMS = \
 	$(check_imagefreeze) \
 	$(check_interleave) \
 	$(check_jpeg) \
+	$(check_lame) \
 	$(check_law) \
 	$(check_level) \
 	$(check_matroska) \
+	$(check_mpg123) \
 	$(check_multifile) \
 	$(check_replaygain) \
 	$(check_rtp) \
@@ -382,8 +397,8 @@ check_PROGRAMS = \
 	$(check_shapewipe) \
 	$(check_soup) \
 	$(check_spectrum) \
-	$(check_sunaudio) \
 	$(check_taglib) \
+	$(check_twolame) \
 	$(check_udp) \
 	$(check_videobox) \
 	$(check_videocrop) \
@@ -420,7 +435,7 @@ noinst_LTLIBRARIES = libparser.la
 libparser_la_SOURCES = elements/parser.c elements/parser.h
 libparser_la_CFLAGS = \
 	-I$(top_srcdir)/tests/check \
-	$(GST_CHECK_CFLAGS) $(GST_OPTION_CFLAGS) -DGST_USE_UNSTABLE_API
+	$(AM_CFLAGS) -DGST_USE_UNSTABLE_API
 
 elements_aacparse_LDADD = libparser.la $(LDADD)
 
@@ -519,6 +534,11 @@ elements_jpegenc_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstapp-$(GST_API_VERSION) $(
 
 elements_matroskamux_LDADD = $(GST_BASE_LIBS) $(LDADD) $(LIBM)
 
+elements_mpg123audiodec_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_mpg123audiodec_LDADD = \
+	$(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_API_VERSION@ -lgstfft-@GST_API_VERSION@ \
+	-lgstapp-@GST_API_VERSION@ $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
+
 elements_mulawdec_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
 
 elements_mulawenc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
@@ -540,24 +560,29 @@ elements_rtpbin_buffer_list_LDADD = $(GST_PLUGINS_BASE_LIBS) \
              $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) $(LDADD)
 elements_rtpbin_buffer_list_SOURCES = elements/rtpbin_buffer_list.c
 
+elements_rtpbin_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
+	$(WARNING_CFLAGS) $(ERROR_CFLAGS) $(GST_CHECK_CFLAGS) $(AM_CFLAGS)
+elements_rtpbin_LDADD = $(GST_PLUGINS_BASE_LIBS) \
+             -lgstrtp-$(GST_API_VERSION) \
+             $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) $(LDADD)
+
 elements_rtph261_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_rtph261_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
 
 elements_rtph263_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_rtph263_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
 
+elements_rtph264_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_rtph264_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstapp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
+
 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 = \
-	$(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) \
-	$(AM_CFLAGS)
-elements_sunaudio_LDADD = \
-	$(GST_PLUGINS_BASE_LIBS) \
-	$(LDADD)
+elements_udpsink_CFLAGS = $(AM_CFLAGS) $(GIO_CFLAGS)
+elements_udpsink_LDADD = $(LDADD) $(GIO_LIBS)
 
 elements_udpsrc_CFLAGS = $(AM_CFLAGS) $(GIO_CFLAGS)
 elements_udpsrc_LDADD = $(LDADD) $(GIO_LIBS)
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index c7877c6a1..cdf099938 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -105,7 +105,8 @@ check_PROGRAMS = generic/states$(EXEEXT) \
 	$(am__EXEEXT_32) $(am__EXEEXT_33) $(am__EXEEXT_34) \
 	$(am__EXEEXT_35) $(am__EXEEXT_36) $(am__EXEEXT_37) \
 	$(am__EXEEXT_38) $(am__EXEEXT_39) $(am__EXEEXT_40) \
-	$(am__EXEEXT_41) $(am__EXEEXT_42)
+	$(am__EXEEXT_41) $(am__EXEEXT_42) $(am__EXEEXT_43) \
+	$(am__EXEEXT_44)
 subdir = tests/check
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -209,25 +210,28 @@ libparser_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 @USE_PLUGIN_INTERLEAVE_TRUE@	elements/interleave$(EXEEXT)
 @USE_JPEG_TRUE@am__EXEEXT_19 = elements/jpegdec$(EXEEXT) \
 @USE_JPEG_TRUE@	elements/jpegenc$(EXEEXT)
-@USE_PLUGIN_LAW_TRUE@am__EXEEXT_20 = elements/mulawdec$(EXEEXT) \
+@USE_LAME_TRUE@am__EXEEXT_20 = pipelines/lame$(EXEEXT)
+@USE_PLUGIN_LAW_TRUE@am__EXEEXT_21 = elements/mulawdec$(EXEEXT) \
 @USE_PLUGIN_LAW_TRUE@	elements/mulawenc$(EXEEXT)
-@USE_PLUGIN_LEVEL_TRUE@am__EXEEXT_21 = elements/level$(EXEEXT)
-@USE_PLUGIN_MATROSKA_TRUE@am__EXEEXT_22 =  \
+@USE_PLUGIN_LEVEL_TRUE@am__EXEEXT_22 = elements/level$(EXEEXT)
+@USE_PLUGIN_MATROSKA_TRUE@am__EXEEXT_23 =  \
 @USE_PLUGIN_MATROSKA_TRUE@	elements/matroskademux$(EXEEXT) \
 @USE_PLUGIN_MATROSKA_TRUE@	elements/matroskamux$(EXEEXT) \
 @USE_PLUGIN_MATROSKA_TRUE@	elements/matroskaparse$(EXEEXT)
-@USE_PLUGIN_MULTIFILE_TRUE@am__EXEEXT_23 =  \
+@USE_MPG123_TRUE@am__EXEEXT_24 = elements/mpg123audiodec$(EXEEXT)
+@USE_PLUGIN_MULTIFILE_TRUE@am__EXEEXT_25 =  \
 @USE_PLUGIN_MULTIFILE_TRUE@	elements/multifile$(EXEEXT) \
 @USE_PLUGIN_MULTIFILE_TRUE@	elements/splitmux$(EXEEXT)
-@USE_PLUGIN_REPLAYGAIN_TRUE@am__EXEEXT_24 =  \
+@USE_PLUGIN_REPLAYGAIN_TRUE@am__EXEEXT_26 =  \
 @USE_PLUGIN_REPLAYGAIN_TRUE@	elements/rganalysis$(EXEEXT) \
 @USE_PLUGIN_REPLAYGAIN_TRUE@	elements/rglimiter$(EXEEXT) \
 @USE_PLUGIN_REPLAYGAIN_TRUE@	elements/rgvolume$(EXEEXT)
-@USE_PLUGIN_RTP_TRUE@am__EXEEXT_25 = elements/rtp-payloading$(EXEEXT) \
+@USE_PLUGIN_RTP_TRUE@am__EXEEXT_27 = elements/rtp-payloading$(EXEEXT) \
 @USE_PLUGIN_RTP_TRUE@	elements/rtph261$(EXEEXT) \
 @USE_PLUGIN_RTP_TRUE@	elements/rtph263$(EXEEXT) \
+@USE_PLUGIN_RTP_TRUE@	elements/rtph264$(EXEEXT) \
 @USE_PLUGIN_RTP_TRUE@	elements/rtpvp9$(EXEEXT)
-@USE_PLUGIN_RTPMANAGER_TRUE@am__EXEEXT_26 = elements/rtpaux$(EXEEXT) \
+@USE_PLUGIN_RTPMANAGER_TRUE@am__EXEEXT_28 = elements/rtpaux$(EXEEXT) \
 @USE_PLUGIN_RTPMANAGER_TRUE@	elements/rtpbin$(EXEEXT) \
 @USE_PLUGIN_RTPMANAGER_TRUE@	elements/rtpbin_buffer_list$(EXEEXT) \
 @USE_PLUGIN_RTPMANAGER_TRUE@	elements/rtpbundle$(EXEEXT) \
@@ -236,33 +240,33 @@ libparser_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 @USE_PLUGIN_RTPMANAGER_TRUE@	elements/rtpmux$(EXEEXT) \
 @USE_PLUGIN_RTPMANAGER_TRUE@	elements/rtprtx$(EXEEXT) \
 @USE_PLUGIN_RTPMANAGER_TRUE@	elements/rtpsession$(EXEEXT)
-@USE_PLUGIN_SHAPEWIPE_TRUE@am__EXEEXT_27 =  \
+@USE_PLUGIN_SHAPEWIPE_TRUE@am__EXEEXT_29 =  \
 @USE_PLUGIN_SHAPEWIPE_TRUE@	elements/shapewipe$(EXEEXT)
-@USE_SOUP_TRUE@am__EXEEXT_28 = elements/souphttpsrc$(EXEEXT)
-@USE_PLUGIN_SPECTRUM_TRUE@am__EXEEXT_29 = elements/spectrum$(EXEEXT)
-@USE_SUNAUDIO_TRUE@am__EXEEXT_30 = elements/sunaudio$(EXEEXT)
-@USE_TAGLIB_TRUE@am__EXEEXT_31 = elements/id3v2mux$(EXEEXT) \
+@USE_SOUP_TRUE@am__EXEEXT_30 = elements/souphttpsrc$(EXEEXT)
+@USE_PLUGIN_SPECTRUM_TRUE@am__EXEEXT_31 = elements/spectrum$(EXEEXT)
+@USE_TAGLIB_TRUE@am__EXEEXT_32 = elements/id3v2mux$(EXEEXT) \
 @USE_TAGLIB_TRUE@	elements/apev2mux$(EXEEXT)
-@USE_PLUGIN_UDP_TRUE@am__EXEEXT_32 = elements/udpsink$(EXEEXT) \
+@USE_TWOLAME_TRUE@am__EXEEXT_33 = pipelines/twolame$(EXEEXT)
+@USE_PLUGIN_UDP_TRUE@am__EXEEXT_34 = elements/udpsink$(EXEEXT) \
 @USE_PLUGIN_UDP_TRUE@	elements/udpsrc$(EXEEXT)
-@USE_PLUGIN_VIDEOBOX_TRUE@am__EXEEXT_33 = elements/videobox$(EXEEXT)
-@USE_PLUGIN_VIDEOCROP_TRUE@am__EXEEXT_34 =  \
+@USE_PLUGIN_VIDEOBOX_TRUE@am__EXEEXT_35 = elements/videobox$(EXEEXT)
+@USE_PLUGIN_VIDEOCROP_TRUE@am__EXEEXT_36 =  \
 @USE_PLUGIN_VIDEOCROP_TRUE@	elements/aspectratiocrop$(EXEEXT) \
 @USE_PLUGIN_VIDEOCROP_TRUE@	elements/videocrop$(EXEEXT)
-@USE_PLUGIN_VIDEOFILTER_TRUE@am__EXEEXT_35 =  \
+@USE_PLUGIN_VIDEOFILTER_TRUE@am__EXEEXT_37 =  \
 @USE_PLUGIN_VIDEOFILTER_TRUE@	elements/videofilter$(EXEEXT)
-@USE_PLUGIN_VIDEOMIXER_TRUE@am__EXEEXT_36 =  \
+@USE_PLUGIN_VIDEOMIXER_TRUE@am__EXEEXT_38 =  \
 @USE_PLUGIN_VIDEOMIXER_TRUE@	elements/videomixer$(EXEEXT)
-@USE_VPX_TRUE@am__EXEEXT_37 = elements/vp8enc$(EXEEXT) \
+@USE_VPX_TRUE@am__EXEEXT_39 = elements/vp8enc$(EXEEXT) \
 @USE_VPX_TRUE@	elements/vp8dec$(EXEEXT) \
 @USE_VPX_TRUE@	elements/vp9enc$(EXEEXT)
-@USE_PLUGIN_WAVENC_TRUE@am__EXEEXT_38 = pipelines/wavenc$(EXEEXT)
-@USE_WAVPACK_TRUE@am__EXEEXT_39 = elements/wavpackdec$(EXEEXT) \
+@USE_PLUGIN_WAVENC_TRUE@am__EXEEXT_40 = pipelines/wavenc$(EXEEXT)
+@USE_WAVPACK_TRUE@am__EXEEXT_41 = elements/wavpackdec$(EXEEXT) \
 @USE_WAVPACK_TRUE@	elements/wavpackenc$(EXEEXT) \
 @USE_WAVPACK_TRUE@	pipelines/wavpack$(EXEEXT)
-@USE_PLUGIN_WAVPARSE_TRUE@am__EXEEXT_40 = elements/wavparse$(EXEEXT)
-@USE_PLUGIN_Y4M_TRUE@am__EXEEXT_41 = elements/y4menc$(EXEEXT)
-@HAVE_ORC_TRUE@am__EXEEXT_42 = orc/deinterlace$(EXEEXT) \
+@USE_PLUGIN_WAVPARSE_TRUE@am__EXEEXT_42 = elements/wavparse$(EXEEXT)
+@USE_PLUGIN_Y4M_TRUE@am__EXEEXT_43 = elements/y4menc$(EXEEXT)
+@HAVE_ORC_TRUE@am__EXEEXT_44 = orc/deinterlace$(EXEEXT) \
 @HAVE_ORC_TRUE@	orc/videomixer$(EXEEXT) orc/videobox$(EXEEXT)
 elements_aacparse_SOURCES = elements/aacparse.c
 elements_aacparse_OBJECTS = elements/aacparse.$(OBJEXT)
@@ -553,6 +557,16 @@ elements_mpegaudioparse_SOURCES = elements/mpegaudioparse.c
 elements_mpegaudioparse_OBJECTS = elements/mpegaudioparse.$(OBJEXT)
 elements_mpegaudioparse_DEPENDENCIES = libparser.la \
 	$(am__DEPENDENCIES_2)
+elements_mpg123audiodec_SOURCES = elements/mpg123audiodec.c
+elements_mpg123audiodec_OBJECTS =  \
+	elements/elements_mpg123audiodec-mpg123audiodec.$(OBJEXT)
+elements_mpg123audiodec_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_2)
+elements_mpg123audiodec_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(elements_mpg123audiodec_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
 elements_mulawdec_SOURCES = elements/mulawdec.c
 elements_mulawdec_OBJECTS =  \
 	elements/elements_mulawdec-mulawdec.$(OBJEXT)
@@ -639,9 +653,14 @@ elements_rtpaux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(elements_rtpaux_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
 elements_rtpbin_SOURCES = elements/rtpbin.c
-elements_rtpbin_OBJECTS = elements/rtpbin.$(OBJEXT)
-elements_rtpbin_LDADD = $(LDADD)
-elements_rtpbin_DEPENDENCIES = $(am__DEPENDENCIES_1)
+elements_rtpbin_OBJECTS = elements/elements_rtpbin-rtpbin.$(OBJEXT)
+elements_rtpbin_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+elements_rtpbin_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(elements_rtpbin_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
 am_elements_rtpbin_buffer_list_OBJECTS = elements/elements_rtpbin_buffer_list-rtpbin_buffer_list.$(OBJEXT)
 elements_rtpbin_buffer_list_OBJECTS =  \
 	$(am_elements_rtpbin_buffer_list_OBJECTS)
@@ -689,6 +708,15 @@ elements_rtph263_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_rtph263_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
+elements_rtph264_SOURCES = elements/rtph264.c
+elements_rtph264_OBJECTS =  \
+	elements/elements_rtph264-rtph264.$(OBJEXT)
+elements_rtph264_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+elements_rtph264_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(elements_rtph264_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
 elements_rtpjitterbuffer_SOURCES = elements/rtpjitterbuffer.c
 elements_rtpjitterbuffer_OBJECTS =  \
 	elements/elements_rtpjitterbuffer-rtpjitterbuffer.$(OBJEXT)
@@ -760,19 +788,15 @@ elements_splitmux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_splitmux_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
-elements_sunaudio_SOURCES = elements/sunaudio.c
-elements_sunaudio_OBJECTS =  \
-	elements/elements_sunaudio-sunaudio.$(OBJEXT)
-elements_sunaudio_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_2)
-elements_sunaudio_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+elements_udpsink_SOURCES = elements/udpsink.c
+elements_udpsink_OBJECTS =  \
+	elements/elements_udpsink-udpsink.$(OBJEXT)
+elements_udpsink_DEPENDENCIES = $(am__DEPENDENCIES_2) \
+	$(am__DEPENDENCIES_1)
+elements_udpsink_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(elements_sunaudio_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	$(elements_udpsink_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
-elements_udpsink_SOURCES = elements/udpsink.c
-elements_udpsink_OBJECTS = elements/udpsink.$(OBJEXT)
-elements_udpsink_LDADD = $(LDADD)
-elements_udpsink_DEPENDENCIES = $(am__DEPENDENCIES_1)
 elements_udpsrc_SOURCES = elements/udpsrc.c
 elements_udpsrc_OBJECTS = elements/elements_udpsrc-udpsrc.$(OBJEXT)
 elements_udpsrc_DEPENDENCIES = $(am__DEPENDENCIES_2) \
@@ -887,6 +911,10 @@ pipelines_flacdec_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(pipelines_flacdec_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
+pipelines_lame_SOURCES = pipelines/lame.c
+pipelines_lame_OBJECTS = pipelines/lame.$(OBJEXT)
+pipelines_lame_LDADD = $(LDADD)
+pipelines_lame_DEPENDENCIES = $(am__DEPENDENCIES_1)
 pipelines_simple_launch_lines_SOURCES =  \
 	pipelines/simple-launch-lines.c
 pipelines_simple_launch_lines_OBJECTS =  \
@@ -897,6 +925,10 @@ pipelines_tagschecking_SOURCES = pipelines/tagschecking.c
 pipelines_tagschecking_OBJECTS = pipelines/tagschecking.$(OBJEXT)
 pipelines_tagschecking_LDADD = $(LDADD)
 pipelines_tagschecking_DEPENDENCIES = $(am__DEPENDENCIES_1)
+pipelines_twolame_SOURCES = pipelines/twolame.c
+pipelines_twolame_OBJECTS = pipelines/twolame.$(OBJEXT)
+pipelines_twolame_LDADD = $(LDADD)
+pipelines_twolame_DEPENDENCIES = $(am__DEPENDENCIES_1)
 pipelines_wavenc_SOURCES = pipelines/wavenc.c
 pipelines_wavenc_OBJECTS =  \
 	pipelines/pipelines_wavenc-wavenc.$(OBJEXT)
@@ -968,17 +1000,18 @@ SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \
 	elements/jpegdec.c elements/jpegenc.c elements/level.c \
 	elements/matroskademux.c elements/matroskamux.c \
 	elements/matroskaparse.c elements/mpegaudioparse.c \
-	elements/mulawdec.c elements/mulawenc.c elements/multifile.c \
-	elements/qtdemux.c elements/qtmux.c elements/rganalysis.c \
-	elements/rglimiter.c elements/rgvolume.c \
-	elements/rtp-payloading.c elements/rtpaux.c elements/rtpbin.c \
+	elements/mpg123audiodec.c elements/mulawdec.c \
+	elements/mulawenc.c elements/multifile.c elements/qtdemux.c \
+	elements/qtmux.c elements/rganalysis.c elements/rglimiter.c \
+	elements/rgvolume.c elements/rtp-payloading.c \
+	elements/rtpaux.c elements/rtpbin.c \
 	$(elements_rtpbin_buffer_list_SOURCES) elements/rtpbundle.c \
 	elements/rtpcollision.c elements/rtph261.c elements/rtph263.c \
-	elements/rtpjitterbuffer.c elements/rtpmux.c elements/rtprtx.c \
-	elements/rtpsession.c elements/rtpvp9.c elements/shapewipe.c \
-	elements/souphttpsrc.c elements/spectrum.c elements/splitmux.c \
-	elements/sunaudio.c elements/udpsink.c elements/udpsrc.c \
-	elements/videobox.c elements/videocrop.c \
+	elements/rtph264.c elements/rtpjitterbuffer.c \
+	elements/rtpmux.c elements/rtprtx.c elements/rtpsession.c \
+	elements/rtpvp9.c elements/shapewipe.c elements/souphttpsrc.c \
+	elements/spectrum.c elements/splitmux.c elements/udpsink.c \
+	elements/udpsrc.c elements/videobox.c elements/videocrop.c \
 	elements/videofilter.c elements/videomixer.c elements/vp8dec.c \
 	elements/vp8enc.c elements/vp9enc.c elements/wavpackdec.c \
 	elements/wavpackenc.c elements/wavpackparse.c \
@@ -986,9 +1019,9 @@ SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \
 	$(nodist_orc_deinterlace_SOURCES) \
 	$(nodist_orc_videobox_SOURCES) \
 	$(nodist_orc_videomixer_SOURCES) pipelines/effectv.c \
-	pipelines/flacdec.c pipelines/simple-launch-lines.c \
-	pipelines/tagschecking.c pipelines/wavenc.c \
-	pipelines/wavpack.c
+	pipelines/flacdec.c pipelines/lame.c \
+	pipelines/simple-launch-lines.c pipelines/tagschecking.c \
+	pipelines/twolame.c pipelines/wavenc.c pipelines/wavpack.c
 DIST_SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \
 	elements/ac3parse.c elements/alpha.c elements/alphacolor.c \
 	elements/amrparse.c elements/apev2mux.c \
@@ -1008,24 +1041,25 @@ DIST_SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \
 	elements/jpegdec.c elements/jpegenc.c elements/level.c \
 	elements/matroskademux.c elements/matroskamux.c \
 	elements/matroskaparse.c elements/mpegaudioparse.c \
-	elements/mulawdec.c elements/mulawenc.c elements/multifile.c \
-	elements/qtdemux.c elements/qtmux.c elements/rganalysis.c \
-	elements/rglimiter.c elements/rgvolume.c \
-	elements/rtp-payloading.c elements/rtpaux.c elements/rtpbin.c \
+	elements/mpg123audiodec.c elements/mulawdec.c \
+	elements/mulawenc.c elements/multifile.c elements/qtdemux.c \
+	elements/qtmux.c elements/rganalysis.c elements/rglimiter.c \
+	elements/rgvolume.c elements/rtp-payloading.c \
+	elements/rtpaux.c elements/rtpbin.c \
 	$(elements_rtpbin_buffer_list_SOURCES) elements/rtpbundle.c \
 	elements/rtpcollision.c elements/rtph261.c elements/rtph263.c \
-	elements/rtpjitterbuffer.c elements/rtpmux.c elements/rtprtx.c \
-	elements/rtpsession.c elements/rtpvp9.c elements/shapewipe.c \
-	elements/souphttpsrc.c elements/spectrum.c elements/splitmux.c \
-	elements/sunaudio.c elements/udpsink.c elements/udpsrc.c \
-	elements/videobox.c elements/videocrop.c \
+	elements/rtph264.c elements/rtpjitterbuffer.c \
+	elements/rtpmux.c elements/rtprtx.c elements/rtpsession.c \
+	elements/rtpvp9.c elements/shapewipe.c elements/souphttpsrc.c \
+	elements/spectrum.c elements/splitmux.c elements/udpsink.c \
+	elements/udpsrc.c elements/videobox.c elements/videocrop.c \
 	elements/videofilter.c elements/videomixer.c elements/vp8dec.c \
 	elements/vp8enc.c elements/vp9enc.c elements/wavpackdec.c \
 	elements/wavpackenc.c elements/wavpackparse.c \
 	elements/wavparse.c elements/y4menc.c generic/states.c \
-	pipelines/effectv.c pipelines/flacdec.c \
+	pipelines/effectv.c pipelines/flacdec.c pipelines/lame.c \
 	pipelines/simple-launch-lines.c pipelines/tagschecking.c \
-	pipelines/wavenc.c pipelines/wavpack.c
+	pipelines/twolame.c pipelines/wavenc.c pipelines/wavpack.c
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -1310,6 +1344,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -1333,6 +1368,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -1348,6 +1385,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -1370,10 +1409,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -1388,6 +1434,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -1405,6 +1452,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -1417,6 +1466,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -1435,6 +1486,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -1478,9 +1532,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -1494,11 +1559,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -1703,6 +1773,8 @@ CLEANFILES = core.* test-registry.*
 @USE_JPEG_TRUE@        elements/jpegdec \
 @USE_JPEG_TRUE@        elements/jpegenc
 
+@USE_LAME_FALSE@check_lame = 
+@USE_LAME_TRUE@check_lame = pipelines/lame
 @USE_PLUGIN_LEVEL_FALSE@check_level = 
 @USE_PLUGIN_LEVEL_TRUE@check_level = elements/level
 @USE_PLUGIN_MATROSKA_FALSE@check_matroska = 
@@ -1711,6 +1783,8 @@ CLEANFILES = core.* test-registry.*
 @USE_PLUGIN_MATROSKA_TRUE@	elements/matroskamux \
 @USE_PLUGIN_MATROSKA_TRUE@	elements/matroskaparse
 
+@USE_MPG123_FALSE@check_mpg123 = 
+@USE_MPG123_TRUE@check_mpg123 = elements/mpg123audiodec
 @USE_PLUGIN_MULTIFILE_FALSE@check_multifile = 
 @USE_PLUGIN_MULTIFILE_TRUE@check_multifile = elements/multifile elements/splitmux
 @USE_PLUGIN_REPLAYGAIN_FALSE@check_replaygain = 
@@ -1724,6 +1798,7 @@ CLEANFILES = core.* test-registry.*
 @USE_PLUGIN_RTP_TRUE@	elements/rtp-payloading \
 @USE_PLUGIN_RTP_TRUE@	elements/rtph261 \
 @USE_PLUGIN_RTP_TRUE@	elements/rtph263 \
+@USE_PLUGIN_RTP_TRUE@	elements/rtph264 \
 @USE_PLUGIN_RTP_TRUE@	elements/rtpvp9
 
 @USE_PLUGIN_RTPMANAGER_FALSE@check_rtpmanager = 
@@ -1742,8 +1817,6 @@ CLEANFILES = core.* test-registry.*
 @USE_SOUP_TRUE@check_soup = elements/souphttpsrc
 @USE_PLUGIN_SPECTRUM_FALSE@check_spectrum = 
 @USE_PLUGIN_SPECTRUM_TRUE@check_spectrum = elements/spectrum
-@USE_SUNAUDIO_FALSE@check_sunaudio = 
-@USE_SUNAUDIO_TRUE@check_sunaudio = elements/sunaudio
 @USE_PLUGIN_SHAPEWIPE_FALSE@check_shapewipe = 
 @USE_PLUGIN_SHAPEWIPE_TRUE@check_shapewipe = elements/shapewipe
 @USE_TAGLIB_FALSE@check_taglib = 
@@ -1751,6 +1824,8 @@ CLEANFILES = core.* test-registry.*
 @USE_TAGLIB_TRUE@	elements/id3v2mux \
 @USE_TAGLIB_TRUE@	elements/apev2mux
 
+@USE_TWOLAME_FALSE@check_twolame = 
+@USE_TWOLAME_TRUE@check_twolame = pipelines/twolame
 @USE_PLUGIN_UDP_FALSE@check_udp = 
 @USE_PLUGIN_UDP_TRUE@check_udp = \
 @USE_PLUGIN_UDP_TRUE@        elements/udpsink \
@@ -1807,7 +1882,7 @@ noinst_LTLIBRARIES = libparser.la
 libparser_la_SOURCES = elements/parser.c elements/parser.h
 libparser_la_CFLAGS = \
 	-I$(top_srcdir)/tests/check \
-	$(GST_CHECK_CFLAGS) $(GST_OPTION_CFLAGS) -DGST_USE_UNSTABLE_API
+	$(AM_CFLAGS) -DGST_USE_UNSTABLE_API
 
 elements_aacparse_LDADD = libparser.la $(LDADD)
 elements_ac3parse_LDADD = libparser.la $(LDADD)
@@ -1879,6 +1954,11 @@ elements_jpegdec_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstapp-$(GST_API_VERSION) -l
 elements_jpegenc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_jpegenc_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstapp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
 elements_matroskamux_LDADD = $(GST_BASE_LIBS) $(LDADD) $(LIBM)
+elements_mpg123audiodec_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_mpg123audiodec_LDADD = \
+	$(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_API_VERSION@ -lgstfft-@GST_API_VERSION@ \
+	-lgstapp-@GST_API_VERSION@ $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
+
 elements_mulawdec_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
 elements_mulawenc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
 elements_multifile_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
@@ -1897,22 +1977,25 @@ elements_rtpbin_buffer_list_LDADD = $(GST_PLUGINS_BASE_LIBS) \
              $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) $(LDADD)
 
 elements_rtpbin_buffer_list_SOURCES = elements/rtpbin_buffer_list.c
+elements_rtpbin_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
+	$(WARNING_CFLAGS) $(ERROR_CFLAGS) $(GST_CHECK_CFLAGS) $(AM_CFLAGS)
+
+elements_rtpbin_LDADD = $(GST_PLUGINS_BASE_LIBS) \
+             -lgstrtp-$(GST_API_VERSION) \
+             $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) $(LDADD)
+
 elements_rtph261_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_rtph261_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
 elements_rtph263_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_rtph263_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
+elements_rtph264_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_rtph264_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstapp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
 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 = \
-	$(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) \
-	$(AM_CFLAGS)
-
-elements_sunaudio_LDADD = \
-	$(GST_PLUGINS_BASE_LIBS) \
-	$(LDADD)
-
+elements_udpsink_CFLAGS = $(AM_CFLAGS) $(GIO_CFLAGS)
+elements_udpsink_LDADD = $(LDADD) $(GIO_LIBS)
 elements_udpsrc_CFLAGS = $(AM_CFLAGS) $(GIO_CFLAGS)
 elements_udpsrc_LDADD = $(LDADD) $(GIO_LIBS)
 elements_videocrop_LDADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(LDADD)
@@ -2286,6 +2369,12 @@ elements/mpegaudioparse.$(OBJEXT): elements/$(am__dirstamp) \
 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/elements_mpg123audiodec-mpg123audiodec.$(OBJEXT):  \
+	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/mpg123audiodec$(EXEEXT): $(elements_mpg123audiodec_OBJECTS) $(elements_mpg123audiodec_DEPENDENCIES) $(EXTRA_elements_mpg123audiodec_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/mpg123audiodec$(EXEEXT)
+	$(AM_V_CCLD)$(elements_mpg123audiodec_LINK) $(elements_mpg123audiodec_OBJECTS) $(elements_mpg123audiodec_LDADD) $(LIBS)
 elements/elements_mulawdec-mulawdec.$(OBJEXT):  \
 	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2346,12 +2435,12 @@ elements/elements_rtpaux-rtpaux.$(OBJEXT): elements/$(am__dirstamp) \
 elements/rtpaux$(EXEEXT): $(elements_rtpaux_OBJECTS) $(elements_rtpaux_DEPENDENCIES) $(EXTRA_elements_rtpaux_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/rtpaux$(EXEEXT)
 	$(AM_V_CCLD)$(elements_rtpaux_LINK) $(elements_rtpaux_OBJECTS) $(elements_rtpaux_LDADD) $(LIBS)
-elements/rtpbin.$(OBJEXT): elements/$(am__dirstamp) \
+elements/elements_rtpbin-rtpbin.$(OBJEXT): elements/$(am__dirstamp) \
 	elements/$(DEPDIR)/$(am__dirstamp)
 
 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)
+	$(AM_V_CCLD)$(elements_rtpbin_LINK) $(elements_rtpbin_OBJECTS) $(elements_rtpbin_LDADD) $(LIBS)
 elements/elements_rtpbin_buffer_list-rtpbin_buffer_list.$(OBJEXT):  \
 	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2382,6 +2471,12 @@ elements/elements_rtph263-rtph263.$(OBJEXT): elements/$(am__dirstamp) \
 elements/rtph263$(EXEEXT): $(elements_rtph263_OBJECTS) $(elements_rtph263_DEPENDENCIES) $(EXTRA_elements_rtph263_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/rtph263$(EXEEXT)
 	$(AM_V_CCLD)$(elements_rtph263_LINK) $(elements_rtph263_OBJECTS) $(elements_rtph263_LDADD) $(LIBS)
+elements/elements_rtph264-rtph264.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/rtph264$(EXEEXT): $(elements_rtph264_OBJECTS) $(elements_rtph264_DEPENDENCIES) $(EXTRA_elements_rtph264_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/rtph264$(EXEEXT)
+	$(AM_V_CCLD)$(elements_rtph264_LINK) $(elements_rtph264_OBJECTS) $(elements_rtph264_LDADD) $(LIBS)
 elements/elements_rtpjitterbuffer-rtpjitterbuffer.$(OBJEXT):  \
 	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2436,18 +2531,12 @@ elements/elements_splitmux-splitmux.$(OBJEXT):  \
 elements/splitmux$(EXEEXT): $(elements_splitmux_OBJECTS) $(elements_splitmux_DEPENDENCIES) $(EXTRA_elements_splitmux_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/splitmux$(EXEEXT)
 	$(AM_V_CCLD)$(elements_splitmux_LINK) $(elements_splitmux_OBJECTS) $(elements_splitmux_LDADD) $(LIBS)
-elements/elements_sunaudio-sunaudio.$(OBJEXT):  \
-	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
-
-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.$(OBJEXT): elements/$(am__dirstamp) \
+elements/elements_udpsink-udpsink.$(OBJEXT): elements/$(am__dirstamp) \
 	elements/$(DEPDIR)/$(am__dirstamp)
 
 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)
+	$(AM_V_CCLD)$(elements_udpsink_LINK) $(elements_udpsink_OBJECTS) $(elements_udpsink_LDADD) $(LIBS)
 elements/elements_udpsrc-udpsrc.$(OBJEXT): elements/$(am__dirstamp) \
 	elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2580,6 +2669,12 @@ pipelines/pipelines_flacdec-flacdec.$(OBJEXT):  \
 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/lame.$(OBJEXT): pipelines/$(am__dirstamp) \
+	pipelines/$(DEPDIR)/$(am__dirstamp)
+
+pipelines/lame$(EXEEXT): $(pipelines_lame_OBJECTS) $(pipelines_lame_DEPENDENCIES) $(EXTRA_pipelines_lame_DEPENDENCIES) pipelines/$(am__dirstamp)
+	@rm -f pipelines/lame$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(pipelines_lame_OBJECTS) $(pipelines_lame_LDADD) $(LIBS)
 pipelines/simple-launch-lines.$(OBJEXT): pipelines/$(am__dirstamp) \
 	pipelines/$(DEPDIR)/$(am__dirstamp)
 
@@ -2592,6 +2687,12 @@ pipelines/tagschecking.$(OBJEXT): pipelines/$(am__dirstamp) \
 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/twolame.$(OBJEXT): pipelines/$(am__dirstamp) \
+	pipelines/$(DEPDIR)/$(am__dirstamp)
+
+pipelines/twolame$(EXEEXT): $(pipelines_twolame_OBJECTS) $(pipelines_twolame_DEPENDENCIES) $(EXTRA_pipelines_twolame_DEPENDENCIES) pipelines/$(am__dirstamp)
+	@rm -f pipelines/twolame$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(pipelines_twolame_OBJECTS) $(pipelines_twolame_LDADD) $(LIBS)
 pipelines/pipelines_wavenc-wavenc.$(OBJEXT):  \
 	pipelines/$(am__dirstamp) pipelines/$(DEPDIR)/$(am__dirstamp)
 
@@ -2649,6 +2750,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_jpegdec-jpegdec.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_jpegenc-jpegenc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_level-level.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_mpg123audiodec-mpg123audiodec.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_mulawdec-mulawdec.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_mulawenc-mulawenc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_multifile-multifile.Po@am__quote@
@@ -2658,11 +2760,13 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rgvolume-rgvolume.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtp_payloading-rtp-payloading.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpaux-rtpaux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpbin-rtpbin.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpbundle-rtpbundle.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpcollision-rtpcollision.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtph261-rtph261.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtph263-rtph263.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtph264-rtph264.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpmux-rtpmux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtprtx-rtprtx.Po@am__quote@
@@ -2670,7 +2774,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_souphttpsrc-souphttpsrc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_spectrum-spectrum.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_splitmux-splitmux.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_sunaudio-sunaudio.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_udpsink-udpsink.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_udpsrc-udpsrc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videocrop-videocrop.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videofilter-videofilter.Po@am__quote@
@@ -2688,10 +2792,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/matroskaparse.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/mpegaudioparse.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/qtdemux.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/rtpbin.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/rtpvp9.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/shapewipe.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/udpsink.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/videobox.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/vp8dec.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/vp8enc.Po@am__quote@
@@ -2705,11 +2807,13 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_videobox-videobox.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_videomixer-videomixer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/effectv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/lame.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_flacdec-flacdec.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_wavenc-wavenc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_wavpack-wavpack.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/simple-launch-lines.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/tagschecking.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/twolame.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -3078,6 +3182,20 @@ elements/elements_level-level.obj: elements/level.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_level_CFLAGS) $(CFLAGS) -c -o elements/elements_level-level.obj `if test -f 'elements/level.c'; then $(CYGPATH_W) 'elements/level.c'; else $(CYGPATH_W) '$(srcdir)/elements/level.c'; fi`
 
+elements/elements_mpg123audiodec-mpg123audiodec.o: elements/mpg123audiodec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_mpg123audiodec_CFLAGS) $(CFLAGS) -MT elements/elements_mpg123audiodec-mpg123audiodec.o -MD -MP -MF elements/$(DEPDIR)/elements_mpg123audiodec-mpg123audiodec.Tpo -c -o elements/elements_mpg123audiodec-mpg123audiodec.o `test -f 'elements/mpg123audiodec.c' || echo '$(srcdir)/'`elements/mpg123audiodec.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_mpg123audiodec-mpg123audiodec.Tpo elements/$(DEPDIR)/elements_mpg123audiodec-mpg123audiodec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/mpg123audiodec.c' object='elements/elements_mpg123audiodec-mpg123audiodec.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_mpg123audiodec_CFLAGS) $(CFLAGS) -c -o elements/elements_mpg123audiodec-mpg123audiodec.o `test -f 'elements/mpg123audiodec.c' || echo '$(srcdir)/'`elements/mpg123audiodec.c
+
+elements/elements_mpg123audiodec-mpg123audiodec.obj: elements/mpg123audiodec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_mpg123audiodec_CFLAGS) $(CFLAGS) -MT elements/elements_mpg123audiodec-mpg123audiodec.obj -MD -MP -MF elements/$(DEPDIR)/elements_mpg123audiodec-mpg123audiodec.Tpo -c -o elements/elements_mpg123audiodec-mpg123audiodec.obj `if test -f 'elements/mpg123audiodec.c'; then $(CYGPATH_W) 'elements/mpg123audiodec.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpg123audiodec.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_mpg123audiodec-mpg123audiodec.Tpo elements/$(DEPDIR)/elements_mpg123audiodec-mpg123audiodec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/mpg123audiodec.c' object='elements/elements_mpg123audiodec-mpg123audiodec.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_mpg123audiodec_CFLAGS) $(CFLAGS) -c -o elements/elements_mpg123audiodec-mpg123audiodec.obj `if test -f 'elements/mpg123audiodec.c'; then $(CYGPATH_W) 'elements/mpg123audiodec.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpg123audiodec.c'; fi`
+
 elements/elements_mulawdec-mulawdec.o: elements/mulawdec.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_mulawdec_CFLAGS) $(CFLAGS) -MT elements/elements_mulawdec-mulawdec.o -MD -MP -MF elements/$(DEPDIR)/elements_mulawdec-mulawdec.Tpo -c -o elements/elements_mulawdec-mulawdec.o `test -f 'elements/mulawdec.c' || echo '$(srcdir)/'`elements/mulawdec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_mulawdec-mulawdec.Tpo elements/$(DEPDIR)/elements_mulawdec-mulawdec.Po
@@ -3204,6 +3322,20 @@ elements/elements_rtpaux-rtpaux.obj: elements/rtpaux.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_rtpaux_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpaux-rtpaux.obj `if test -f 'elements/rtpaux.c'; then $(CYGPATH_W) 'elements/rtpaux.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpaux.c'; fi`
 
+elements/elements_rtpbin-rtpbin.o: elements/rtpbin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpbin_CFLAGS) $(CFLAGS) -MT elements/elements_rtpbin-rtpbin.o -MD -MP -MF elements/$(DEPDIR)/elements_rtpbin-rtpbin.Tpo -c -o elements/elements_rtpbin-rtpbin.o `test -f 'elements/rtpbin.c' || echo '$(srcdir)/'`elements/rtpbin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpbin-rtpbin.Tpo elements/$(DEPDIR)/elements_rtpbin-rtpbin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/rtpbin.c' object='elements/elements_rtpbin-rtpbin.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_rtpbin_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpbin-rtpbin.o `test -f 'elements/rtpbin.c' || echo '$(srcdir)/'`elements/rtpbin.c
+
+elements/elements_rtpbin-rtpbin.obj: elements/rtpbin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpbin_CFLAGS) $(CFLAGS) -MT elements/elements_rtpbin-rtpbin.obj -MD -MP -MF elements/$(DEPDIR)/elements_rtpbin-rtpbin.Tpo -c -o elements/elements_rtpbin-rtpbin.obj `if test -f 'elements/rtpbin.c'; then $(CYGPATH_W) 'elements/rtpbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpbin.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpbin-rtpbin.Tpo elements/$(DEPDIR)/elements_rtpbin-rtpbin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/rtpbin.c' object='elements/elements_rtpbin-rtpbin.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_rtpbin_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpbin-rtpbin.obj `if test -f 'elements/rtpbin.c'; then $(CYGPATH_W) 'elements/rtpbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpbin.c'; fi`
+
 elements/elements_rtpbin_buffer_list-rtpbin_buffer_list.o: elements/rtpbin_buffer_list.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpbin_buffer_list_CFLAGS) $(CFLAGS) -MT elements/elements_rtpbin_buffer_list-rtpbin_buffer_list.o -MD -MP -MF elements/$(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Tpo -c -o elements/elements_rtpbin_buffer_list-rtpbin_buffer_list.o `test -f 'elements/rtpbin_buffer_list.c' || echo '$(srcdir)/'`elements/rtpbin_buffer_list.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Tpo elements/$(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Po
@@ -3274,6 +3406,20 @@ elements/elements_rtph263-rtph263.obj: elements/rtph263.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_rtph263_CFLAGS) $(CFLAGS) -c -o elements/elements_rtph263-rtph263.obj `if test -f 'elements/rtph263.c'; then $(CYGPATH_W) 'elements/rtph263.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtph263.c'; fi`
 
+elements/elements_rtph264-rtph264.o: elements/rtph264.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtph264_CFLAGS) $(CFLAGS) -MT elements/elements_rtph264-rtph264.o -MD -MP -MF elements/$(DEPDIR)/elements_rtph264-rtph264.Tpo -c -o elements/elements_rtph264-rtph264.o `test -f 'elements/rtph264.c' || echo '$(srcdir)/'`elements/rtph264.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtph264-rtph264.Tpo elements/$(DEPDIR)/elements_rtph264-rtph264.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/rtph264.c' object='elements/elements_rtph264-rtph264.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_rtph264_CFLAGS) $(CFLAGS) -c -o elements/elements_rtph264-rtph264.o `test -f 'elements/rtph264.c' || echo '$(srcdir)/'`elements/rtph264.c
+
+elements/elements_rtph264-rtph264.obj: elements/rtph264.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtph264_CFLAGS) $(CFLAGS) -MT elements/elements_rtph264-rtph264.obj -MD -MP -MF elements/$(DEPDIR)/elements_rtph264-rtph264.Tpo -c -o elements/elements_rtph264-rtph264.obj `if test -f 'elements/rtph264.c'; then $(CYGPATH_W) 'elements/rtph264.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtph264.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtph264-rtph264.Tpo elements/$(DEPDIR)/elements_rtph264-rtph264.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/rtph264.c' object='elements/elements_rtph264-rtph264.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_rtph264_CFLAGS) $(CFLAGS) -c -o elements/elements_rtph264-rtph264.obj `if test -f 'elements/rtph264.c'; then $(CYGPATH_W) 'elements/rtph264.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtph264.c'; fi`
+
 elements/elements_rtpjitterbuffer-rtpjitterbuffer.o: elements/rtpjitterbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpjitterbuffer_CFLAGS) $(CFLAGS) -MT elements/elements_rtpjitterbuffer-rtpjitterbuffer.o -MD -MP -MF elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Tpo -c -o elements/elements_rtpjitterbuffer-rtpjitterbuffer.o `test -f 'elements/rtpjitterbuffer.c' || echo '$(srcdir)/'`elements/rtpjitterbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Tpo elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Po
@@ -3372,19 +3518,19 @@ elements/elements_splitmux-splitmux.obj: elements/splitmux.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_splitmux_CFLAGS) $(CFLAGS) -c -o elements/elements_splitmux-splitmux.obj `if test -f 'elements/splitmux.c'; then $(CYGPATH_W) 'elements/splitmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/splitmux.c'; fi`
 
-elements/elements_sunaudio-sunaudio.o: elements/sunaudio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_sunaudio_CFLAGS) $(CFLAGS) -MT elements/elements_sunaudio-sunaudio.o -MD -MP -MF elements/$(DEPDIR)/elements_sunaudio-sunaudio.Tpo -c -o elements/elements_sunaudio-sunaudio.o `test -f 'elements/sunaudio.c' || echo '$(srcdir)/'`elements/sunaudio.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_sunaudio-sunaudio.Tpo elements/$(DEPDIR)/elements_sunaudio-sunaudio.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/sunaudio.c' object='elements/elements_sunaudio-sunaudio.o' libtool=no @AMDEPBACKSLASH@
+elements/elements_udpsink-udpsink.o: elements/udpsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_udpsink_CFLAGS) $(CFLAGS) -MT elements/elements_udpsink-udpsink.o -MD -MP -MF elements/$(DEPDIR)/elements_udpsink-udpsink.Tpo -c -o elements/elements_udpsink-udpsink.o `test -f 'elements/udpsink.c' || echo '$(srcdir)/'`elements/udpsink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_udpsink-udpsink.Tpo elements/$(DEPDIR)/elements_udpsink-udpsink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/udpsink.c' object='elements/elements_udpsink-udpsink.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_sunaudio_CFLAGS) $(CFLAGS) -c -o elements/elements_sunaudio-sunaudio.o `test -f 'elements/sunaudio.c' || echo '$(srcdir)/'`elements/sunaudio.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_udpsink_CFLAGS) $(CFLAGS) -c -o elements/elements_udpsink-udpsink.o `test -f 'elements/udpsink.c' || echo '$(srcdir)/'`elements/udpsink.c
 
-elements/elements_sunaudio-sunaudio.obj: elements/sunaudio.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_sunaudio_CFLAGS) $(CFLAGS) -MT elements/elements_sunaudio-sunaudio.obj -MD -MP -MF elements/$(DEPDIR)/elements_sunaudio-sunaudio.Tpo -c -o elements/elements_sunaudio-sunaudio.obj `if test -f 'elements/sunaudio.c'; then $(CYGPATH_W) 'elements/sunaudio.c'; else $(CYGPATH_W) '$(srcdir)/elements/sunaudio.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_sunaudio-sunaudio.Tpo elements/$(DEPDIR)/elements_sunaudio-sunaudio.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/sunaudio.c' object='elements/elements_sunaudio-sunaudio.obj' libtool=no @AMDEPBACKSLASH@
+elements/elements_udpsink-udpsink.obj: elements/udpsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_udpsink_CFLAGS) $(CFLAGS) -MT elements/elements_udpsink-udpsink.obj -MD -MP -MF elements/$(DEPDIR)/elements_udpsink-udpsink.Tpo -c -o elements/elements_udpsink-udpsink.obj `if test -f 'elements/udpsink.c'; then $(CYGPATH_W) 'elements/udpsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/udpsink.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_udpsink-udpsink.Tpo elements/$(DEPDIR)/elements_udpsink-udpsink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/udpsink.c' object='elements/elements_udpsink-udpsink.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_sunaudio_CFLAGS) $(CFLAGS) -c -o elements/elements_sunaudio-sunaudio.obj `if test -f 'elements/sunaudio.c'; then $(CYGPATH_W) 'elements/sunaudio.c'; else $(CYGPATH_W) '$(srcdir)/elements/sunaudio.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_udpsink_CFLAGS) $(CFLAGS) -c -o elements/elements_udpsink-udpsink.obj `if test -f 'elements/udpsink.c'; then $(CYGPATH_W) 'elements/udpsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/udpsink.c'; fi`
 
 elements/elements_udpsrc-udpsrc.o: elements/udpsrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_udpsrc_CFLAGS) $(CFLAGS) -MT elements/elements_udpsrc-udpsrc.o -MD -MP -MF elements/$(DEPDIR)/elements_udpsrc-udpsrc.Tpo -c -o elements/elements_udpsrc-udpsrc.o `test -f 'elements/udpsrc.c' || echo '$(srcdir)/'`elements/udpsrc.c
@@ -4051,6 +4197,13 @@ elements/jpegenc.log: elements/jpegenc$(EXEEXT)
 	--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/lame.log: pipelines/lame$(EXEEXT)
+	@p='pipelines/lame$(EXEEXT)'; \
+	b='pipelines/lame'; \
+	$(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'; \
@@ -4093,6 +4246,13 @@ elements/matroskaparse.log: elements/matroskaparse$(EXEEXT)
 	--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/mpg123audiodec.log: elements/mpg123audiodec$(EXEEXT)
+	@p='elements/mpg123audiodec$(EXEEXT)'; \
+	b='elements/mpg123audiodec'; \
+	$(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'; \
@@ -4149,6 +4309,13 @@ elements/rtph263.log: elements/rtph263$(EXEEXT)
 	--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/rtph264.log: elements/rtph264$(EXEEXT)
+	@p='elements/rtph264$(EXEEXT)'; \
+	b='elements/rtph264'; \
+	$(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/rtpvp9.log: elements/rtpvp9$(EXEEXT)
 	@p='elements/rtpvp9$(EXEEXT)'; \
 	b='elements/rtpvp9'; \
@@ -4240,13 +4407,6 @@ elements/spectrum.log: elements/spectrum$(EXEEXT)
 	--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'; \
@@ -4261,6 +4421,13 @@ elements/apev2mux.log: elements/apev2mux$(EXEEXT)
 	--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/twolame.log: pipelines/twolame$(EXEEXT)
+	@p='pipelines/twolame$(EXEEXT)'; \
+	b='pipelines/twolame'; \
+	$(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'; \
@@ -4670,7 +4837,11 @@ LOOPS ?= 10
 	@$(AM_TESTS_ENVIRONMENT)					\
 	CK_FORK=no						\
 	$(LIBTOOL) --mode=execute				\
-	gdb $*
+	gdb $(GDB_ARGS) $*
+
+%.gdb-forever: %
+	@while $(MAKE) GDB_ARGS="-ex run -ex quit" $*.gdb ; do	\
+	  sleep 1; done
 
 %.lcov-reset:
 	$(MAKE) $*.lcov-run
diff --git a/tests/check/elements/aacparse.c b/tests/check/elements/aacparse.c
index 9022886e2..ea9fd7e2b 100644
--- a/tests/check/elements/aacparse.c
+++ b/tests/check/elements/aacparse.c
@@ -24,10 +24,12 @@
  */
 
 #include <gst/check/gstcheck.h>
+#include <gst/check/check.h>
 #include "parser.h"
 
 #define SRC_CAPS_CDATA "audio/mpeg, mpegversion=(int)4, framed=(boolean)false, codec_data=(buffer)1190"
 #define SRC_CAPS_TMPL  "audio/mpeg, framed=(boolean)false, mpegversion=(int){2,4}"
+#define SRC_CAPS_RAW   "audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, rate=(int)48000, channels=(int)2, codec_data=(buffer)1190"
 
 #define SINK_CAPS \
     "audio/mpeg, framed=(boolean)true"
@@ -68,6 +70,10 @@ static guint8 garbage_frame[] = {
   0xff, 0xff, 0xff, 0xff, 0xff
 };
 
+static guint8 raw_frame_short[] = {
+  0x27, 0x00, 0x03, 0x20, 0x64, 0x1c
+};
+
 /*
  * Test if the parser pushes data with ADIF header properly and detects the
  * stream to MPEG4 properly.
@@ -151,6 +157,36 @@ GST_START_TEST (test_parse_adts_detect_mpeg_version)
 
 GST_END_TEST;
 
+/*
+ * Test if the parser correctly handles short raw frames and doesn't
+ * concatenate them.
+ */
+GST_START_TEST (test_parse_raw_short)
+{
+  GstHarness *h = gst_harness_new ("aacparse");
+  GstBuffer *in_buf;
+
+  g_object_set (h->element, "disable-passthrough", TRUE, NULL);
+  gst_harness_set_src_caps_str (h, SRC_CAPS_RAW);
+
+  in_buf = gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY,
+      raw_frame_short, sizeof raw_frame_short, 0, sizeof raw_frame_short,
+      NULL, NULL);
+
+  gst_harness_push (h, gst_buffer_ref (in_buf));
+  fail_unless_equals_int (gst_harness_buffers_received (h), 1);
+
+  gst_harness_push (h, in_buf);
+  fail_unless_equals_int (gst_harness_buffers_received (h), 2);
+
+  gst_harness_push_event (h, gst_event_new_eos ());
+  fail_unless_equals_int (gst_harness_buffers_received (h), 2);
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
 #define structure_get_int(s,f) \
     (g_value_get_int(gst_structure_get_value(s,f)))
 #define fail_unless_structure_field_int_equals(s,field,num) \
@@ -261,6 +297,9 @@ aacparse_suite (void)
   tcase_add_test (tc_chain, test_parse_adts_skip_garbage);
   tcase_add_test (tc_chain, test_parse_adts_detect_mpeg_version);
 
+  /* Raw tests */
+  tcase_add_test (tc_chain, test_parse_raw_short);
+
   /* Other tests */
   tcase_add_test (tc_chain, test_parse_handle_codec_data);
 
diff --git a/tests/check/elements/autodetect.c b/tests/check/elements/autodetect.c
index eb3697769..4e0f1c7ba 100644
--- a/tests/check/elements/autodetect.c
+++ b/tests/check/elements/autodetect.c
@@ -212,8 +212,7 @@ autodetect_suite (void)
       "autodetect-test",
       "autodetect test elements",
       plugin_init,
-      VERSION, "LGPL", PACKAGE, PACKAGE_NAME,
-      "http://gstreamer.freedesktop.org");
+      VERSION, "LGPL", PACKAGE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
 
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_autovideosink_plugs_best);
diff --git a/tests/check/elements/matroskademux.c b/tests/check/elements/matroskademux.c
index 93c139a00..5081c8494 100644
--- a/tests/check/elements/matroskademux.c
+++ b/tests/check/elements/matroskademux.c
@@ -32,6 +32,33 @@ const gchar mkv_sub_base64[] =
     "AA2bggfQoYeBF3AAYmF6oAEAAAAAAAAOm4IH0KGIgScQAGbDtgCgAQAAAAAAABWbggfQoY+BMsgA"
     "PGk+YmFyPC9pPgCgAQAAAAAAAA6bggfQoYiBPoAAYuR6ABJUw2cBAAAAAAAACnNzAQAAAAAAAAA=";
 
+const gchar mkv_toc_base64[] =
+    "GkXfowEAAAAAAAAUQoKJbWF0cm9za2EAQoeBAUKFgQEYU4BnAQAAAAAABUoRTZt0AQAAAAAAAIxN"
+    "uwEAAAAAAAASU6uEFUmpZlOsiAAAAAAAAACYTbsBAAAAAAAAElOrhBZUrmtTrIgAAAAAAAABGk27"
+    "AQAAAAAAABJTq4QQQ6dwU6yIAAAAAAAAAWFNuwEAAAAAAAASU6uEHFO7a1OsiAAAAAAAAANrTbsB"
+    "AAAAAAAAElOrhBJUw2dTrIgAAAAAAAADkxVJqWYBAAAAAAAAdnOkkFdJrZAH7YY5MCvJGPwl5E4q"
+    "17GDD0JARImIP/AAAAAAAABNgKdHU3RyZWFtZXIgbWF0cm9za2FtdXggdmVyc2lvbiAxLjEzLjAu"
+    "MQBXQZlHU3RyZWFtZXIgTWF0cm9za2EgbXV4ZXIARGGIB2iH12N5DgAWVK5rAQAAAAAAADuuAQAA"
+    "AAAAADLXgQGDgQJzxYgJixQa+ZhvPSPjg4MPQkBTboZBdWRpbwDhAQAAAAAAAACGhkFfQUMzABBD"
+    "p3ABAAAAAAAB30W5AQAAAAAAAdVFvIi3DuS4TWeFXUW9gQBF24EARd2BALYBAAAAAAAA1HPEiOV0"
+    "L8eev+wgVlSGdWlkLjEAkYEAkoMehICYgQBFmIEBgAEAAAAAAAAQhYdjaGFwLjEAQ3yEdW5kALYB"
+    "AAAAAAAAQnPEiCW5ajpHRzyzVlSIdWlkLjEuMQCRgQCSgw9CQJiBAEWYgQGAAQAAAAAAABSFi25l"
+    "c3RlZC4xLjEAQ3yEdW5kALYBAAAAAAAARHPEiA9klFqtGkBoVlSIdWlkLjEuMgCRgw9CQJKDHoSA"
+    "mIEARZiBAYABAAAAAAAAFIWLbmVzdGVkLzEuMgBDfIR1bmQAtgEAAAAAAADYc8SIeu4QRrjscdtW"
+    "VIZ1aWQuMgCRgx6EgJKDPQkAmIEARZiBAYABAAAAAAAAEIWHY2hhcC4yAEN8hHVuZAC2AQAAAAAA"
+    "AERzxIik77DMKqRyzFZUiHVpZC4yLjEAkYMehICSgy3GwJiBAEWYgQGAAQAAAAAAABSFi25lc3Rl"
+    "ZC4yLjEAQ3yEdW5kALYBAAAAAAAARHPEiDvwt+5+V1ktVlSIdWlkLjIuMgCRgy3GwJKDPQkAmIEA"
+    "RZiBAYABAAAAAAAAFIWLbmVzdGVkLzIuMgBDfIR1bmQAH0O2dQEAAAAAAAAT54EAoAEAAAAAAAAH"
+    "oYWBAAAAABxTu2sBAAAAAAAAHLsBAAAAAAAAE7OBALcBAAAAAAAAB/eBAfGCA0wSVMNnAQAAAAAA"
+    "AatzcwEAAAAAAAAxY8ABAAAAAAAAC2PJiLcO5LhNZ4VdZ8gBAAAAAAAAEkWjiUNPTU1FTlRTAESH"
+    "g0VkAHNzAQAAAAAAADJjwAEAAAAAAAALY8SI5XQvx56/7CBnyAEAAAAAAAATRaOHQVJUSVNUAESH"
+    "hmFydC4xAHNzAQAAAAAAADRjwAEAAAAAAAALY8SIJblqOkdHPLNnyAEAAAAAAAAVRaOHQVJUSVNU"
+    "AESHiGFydC4xLjEAc3MBAAAAAAAANGPAAQAAAAAAAAtjxIgPZJRarRpAaGfIAQAAAAAAABVFo4dB"
+    "UlRJU1QARIeIYXJ0LjEuMgBzcwEAAAAAAAAyY8ABAAAAAAAAC2PEiHruEEa47HHbZ8gBAAAAAAAA"
+    "E0Wjh0FSVElTVABEh4ZhcnQuMgBzcwEAAAAAAAA0Y8ABAAAAAAAAC2PEiKTvsMwqpHLMZ8gBAAAA"
+    "AAAAFUWjh0FSVElTVABEh4hhcnQuMi4xAHNzAQAAAAAAADRjwAEAAAAAAAALY8SIO/C37n5XWS1n"
+    "yAEAAAAAAAAVRaOHQVJUSVNUAESHiGFydC4yLjIA";
+
 static void
 pad_added_cb (GstElement * matroskademux, GstPad * pad, gpointer user_data)
 {
@@ -91,7 +118,7 @@ GST_START_TEST (test_sub_terminator)
   buf = gst_buffer_new_wrapped (mkv_data, mkv_size);
   GST_BUFFER_OFFSET (buf) = 0;
 
-  fail_unless_equals_int (gst_harness_push (h, buf), GST_FLOW_OK);
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, buf));
   gst_harness_push_event (h, gst_event_new_eos ());
 
   pull_and_check_buffer (h, 1 * GST_SECOND, 2 * GST_SECOND, "foo");
@@ -109,6 +136,177 @@ GST_START_TEST (test_sub_terminator)
 
 GST_END_TEST;
 
+/* Recursively compare 2 toc entries */
+static void
+check_toc_entries (const GstTocEntry * original, const GstTocEntry * other)
+{
+  gint64 start, stop, other_start, other_stop;
+  GstTocEntryType original_type, other_type;
+  const gchar *original_string_uid = NULL, *other_string_uid = NULL;
+  GstTagList *original_tags, *other_tags;
+  GList *cur, *other_cur;
+
+  original_type = gst_toc_entry_get_entry_type (original);
+  other_type = gst_toc_entry_get_entry_type (other);
+  fail_unless (original_type == other_type);
+
+  if (original_type != GST_TOC_ENTRY_TYPE_EDITION) {
+    original_string_uid = gst_toc_entry_get_uid (original);
+    other_string_uid = gst_toc_entry_get_uid (other);
+    fail_unless (g_strcmp0 (original_string_uid, other_string_uid) == 0);
+  }
+
+  if (original_type != GST_TOC_ENTRY_TYPE_EDITION) {
+    gst_toc_entry_get_start_stop_times (original, &start, &stop);
+    gst_toc_entry_get_start_stop_times (other, &other_start, &other_stop);
+
+    fail_unless (start == other_start && stop == other_stop);
+  }
+
+  /* tags */
+  original_tags = gst_toc_entry_get_tags (original);
+  other_tags = gst_toc_entry_get_tags (other);
+  fail_unless (gst_tag_list_is_equal (original_tags, other_tags));
+
+  other_cur = gst_toc_entry_get_sub_entries (other);
+  for (cur = gst_toc_entry_get_sub_entries (original); cur != NULL;
+      cur = cur->next) {
+    fail_unless (other_cur != NULL);
+
+    check_toc_entries (cur->data, other_cur->data);
+
+    other_cur = other_cur->next;
+  }
+}
+
+/* Create a new chapter */
+static GstTocEntry *
+new_chapter (const guint chapter_nb, const gint64 start, const gint64 stop)
+{
+  GstTocEntry *toc_entry, *toc_sub_entry;
+  GstTagList *tags;
+  gchar title[32];
+  gchar artist[32];
+  gchar str_uid[32];
+
+  g_snprintf (str_uid, sizeof (str_uid), "uid.%d", chapter_nb);
+  toc_entry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, str_uid);
+  gst_toc_entry_set_start_stop_times (toc_entry, start, stop);
+
+  g_snprintf (title, sizeof (title), "chap.%d", chapter_nb);
+  g_snprintf (artist, sizeof (artist), "art.%d", chapter_nb);
+  tags = gst_tag_list_new (GST_TAG_TITLE, title, GST_TAG_ARTIST, artist, NULL);
+  gst_toc_entry_set_tags (toc_entry, tags);
+
+  g_snprintf (str_uid, sizeof (str_uid), "uid.%d.1", chapter_nb);
+  toc_sub_entry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, str_uid);
+  gst_toc_entry_set_start_stop_times (toc_sub_entry, start, (start + stop) / 2);
+
+  g_snprintf (title, sizeof (title), "nested.%d.1", chapter_nb);
+  g_snprintf (artist, sizeof (artist), "art.%d.1", chapter_nb);
+  tags = gst_tag_list_new (GST_TAG_TITLE, title, GST_TAG_ARTIST, artist, NULL);
+  gst_toc_entry_set_tags (toc_sub_entry, tags);
+
+  gst_toc_entry_append_sub_entry (toc_entry, toc_sub_entry);
+
+  g_snprintf (str_uid, sizeof (str_uid), "uid.%d.2", chapter_nb);
+  toc_sub_entry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, str_uid);
+  gst_toc_entry_set_start_stop_times (toc_sub_entry, (start + stop) / 2, stop);
+
+  g_snprintf (title, sizeof (title), "nested/%d.2", chapter_nb);
+  g_snprintf (artist, sizeof (artist), "art.%d.2", chapter_nb);
+  tags = gst_tag_list_new (GST_TAG_TITLE, title, GST_TAG_ARTIST, artist, NULL);
+  gst_toc_entry_set_tags (toc_sub_entry, tags);
+
+  gst_toc_entry_append_sub_entry (toc_entry, toc_sub_entry);
+
+  return toc_entry;
+}
+
+/* Create a reference toc which matches what is expected in mkv_toc_base64 */
+static GstToc *
+new_reference_toc (void)
+{
+  GstToc *ref_toc;
+  GstTocEntry *toc_edition_entry, *toc_entry;
+  GstTagList *tags;
+
+  ref_toc = gst_toc_new (GST_TOC_SCOPE_GLOBAL);
+
+  toc_edition_entry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, "00");
+  tags = gst_tag_list_new (GST_TAG_COMMENT, "Ed", NULL);
+  gst_toc_entry_set_tags (toc_edition_entry, tags);
+
+  toc_entry = new_chapter (1, 0 * GST_MSECOND, 2 * GST_MSECOND);
+  gst_toc_entry_append_sub_entry (toc_edition_entry, toc_entry);
+
+  toc_entry = new_chapter (2, 2 * GST_MSECOND, 4 * GST_MSECOND);
+  gst_toc_entry_append_sub_entry (toc_edition_entry, toc_entry);
+
+  gst_toc_append_entry (ref_toc, toc_edition_entry);
+
+  return ref_toc;
+}
+
+GST_START_TEST (test_toc_demux)
+{
+  GstHarness *h;
+  GstBuffer *buf;
+  guchar *mkv_data;
+  gsize mkv_size;
+  GstEvent *event;
+  gboolean update;
+  GstToc *ref_toc, *demuxed_toc = NULL;
+  GList *ref_cur, *demuxed_cur;
+
+  h = gst_harness_new_with_padnames ("matroskademux", "sink", NULL);
+
+  g_signal_connect (h->element, "pad-added", G_CALLBACK (pad_added_cb), h);
+
+  mkv_data = g_base64_decode (mkv_toc_base64, &mkv_size);
+  fail_unless (mkv_data != NULL);
+
+  gst_harness_set_src_caps_str (h, "audio/x-matroska");
+
+  buf = gst_buffer_new_wrapped (mkv_data, mkv_size);
+  GST_BUFFER_OFFSET (buf) = 0;
+
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, buf));
+  gst_harness_push_event (h, gst_event_new_eos ());
+
+  event = gst_harness_try_pull_event (h);
+  fail_unless (event != NULL);
+
+  while (event != NULL) {
+    if (event->type == GST_EVENT_TOC) {
+      gst_event_parse_toc (event, &demuxed_toc, &update);
+      gst_event_unref (event);
+      break;
+    }
+    gst_event_unref (event);
+    event = gst_harness_try_pull_event (h);
+  }
+
+  fail_unless (demuxed_toc != NULL);
+  ref_toc = new_reference_toc ();
+
+  demuxed_cur = gst_toc_get_entries (demuxed_toc);
+  for (ref_cur = gst_toc_get_entries (ref_toc); ref_cur != NULL;
+      ref_cur = ref_cur->next) {
+    fail_unless (demuxed_cur != NULL);
+
+    check_toc_entries (ref_cur->data, demuxed_cur->data);
+    demuxed_cur = demuxed_cur->next;
+  }
+
+  gst_toc_unref (ref_toc);
+  gst_toc_unref (demuxed_toc);
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
 static Suite *
 matroskademux_suite (void)
 {
@@ -117,6 +315,7 @@ matroskademux_suite (void)
 
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_sub_terminator);
+  tcase_add_test (tc_chain, test_toc_demux);
 
   return s;
 }
diff --git a/tests/check/elements/matroskamux.c b/tests/check/elements/matroskamux.c
index bffd440a2..bf804bbc7 100644
--- a/tests/check/elements/matroskamux.c
+++ b/tests/check/elements/matroskamux.c
@@ -24,224 +24,106 @@
 
 #include <gst/check/gstcheck.h>
 #include <gst/base/gstadapter.h>
-
-/* For ease of programming we use globals to keep refs for our floating
- * src and sink pads we create; otherwise we always have to do get_pad,
- * get_peer, and then remove references in every test function */
-GstPad *mysrcpad, *mysinkpad;
+#include <gst/check/gstharness.h>
 
 #define AC3_CAPS_STRING "audio/x-ac3, " \
                         "channels = (int) 1, " \
                         "rate = (int) 8000"
 #define VORBIS_TMPL_CAPS_STRING "audio/x-vorbis, " \
                                 "channels = (int) 1, " \
-                                "rate = (int) 8000"
-/* streamheader shouldn't be in the template caps, only in the actual caps */
-#define VORBIS_CAPS_STRING VORBIS_TMPL_CAPS_STRING \
-                           ", streamheader=(buffer)<10, 2020, 303030>"
-
-static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("video/x-matroska; audio/x-matroska"));
-static GstStaticPadTemplate srcvorbistemplate = GST_STATIC_PAD_TEMPLATE ("src",
-    GST_PAD_SRC,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (VORBIS_TMPL_CAPS_STRING));
-
-static GstStaticPadTemplate srcac3template = GST_STATIC_PAD_TEMPLATE ("src",
-    GST_PAD_SRC,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (AC3_CAPS_STRING));
-
-
-static GstPad *
-setup_src_pad (GstElement * element, GstStaticPadTemplate * template)
-{
-  GstPad *srcpad, *sinkpad;
-
-  GST_DEBUG_OBJECT (element, "setting up sending pad");
-  /* sending pad */
-  srcpad = gst_pad_new_from_static_template (template, "src");
-  fail_if (srcpad == NULL, "Could not create a srcpad");
-  ASSERT_OBJECT_REFCOUNT (srcpad, "srcpad", 1);
-  gst_pad_set_active (srcpad, TRUE);
-
-  if (!(sinkpad = gst_element_get_static_pad (element, "audio_%u")))
-    sinkpad = gst_element_get_request_pad (element, "audio_%u");
-  fail_if (sinkpad == NULL, "Could not get sink pad from %s",
-      GST_ELEMENT_NAME (element));
-  /* references are owned by: 1) us, 2) matroskamux, 3) collect pads */
-  ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 3);
-  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 */
-
-  /* references are owned by: 1) matroskamux, 2) collect pads */
-  ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 2);
-
-  return srcpad;
-}
+                                "rate = (int) 8000, " \
+                                "streamheader=(buffer)<10, 2020, 303030>"
 
-static void
-teardown_src_pad (GstElement * element)
+static GstHarness *
+setup_matroskamux_harness (const gchar * src_pad_str)
 {
-  GstPad *srcpad, *sinkpad;
-
-  /* clean up floating src pad */
-  if (!(sinkpad = gst_element_get_static_pad (element, "audio_0")))
-    sinkpad = gst_element_get_request_pad (element, "audio_0");
-  /* references are owned by: 1) us, 2) matroskamux, 3) collect pads */
-  ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 3);
-  srcpad = gst_pad_get_peer (sinkpad);
-
-  gst_pad_unlink (srcpad, sinkpad);
-
-  /* references are owned by: 1) us, 2) matroskamux, 3) collect pads */
-  ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 3);
-  gst_object_unref (sinkpad);
-  /* one more ref is held by element itself */
-
-  /* pad refs held by both creator and this function (through _get_peer) */
-  ASSERT_OBJECT_REFCOUNT (srcpad, "srcpad", 2);
-  gst_object_unref (srcpad);
-  gst_object_unref (srcpad);
-}
+  GstHarness *h;
 
-static GstPad *
-setup_sink_pad (GstElement * element, GstStaticPadTemplate * template)
-{
-  GstPad *srcpad, *sinkpad;
-
-  GST_DEBUG_OBJECT (element, "setting up receiving pad");
-  /* receiving pad */
-  sinkpad = gst_pad_new_from_static_template (template, "sink");
+  h = gst_harness_new_with_padnames ("matroskamux", "audio_%u", "src");
+  gst_harness_set_src_caps_str (h, src_pad_str);
+  gst_harness_set_sink_caps_str (h, "video/x-matroska; audio/x-matroska");
 
-  fail_if (sinkpad == NULL, "Could not create a sinkpad");
-  gst_pad_set_active (sinkpad, TRUE);
+  return h;
+}
 
-  srcpad = gst_element_get_static_pad (element, "src");
-  fail_if (srcpad == NULL, "Could not get source pad from %s",
-      GST_ELEMENT_NAME (element));
-  gst_pad_set_chain_function (sinkpad, gst_check_chain_func);
+static gboolean
+seekable_sinkpad_query (GstPad * pad, GstObject * parent, GstQuery * query)
+{
+  gboolean ret = FALSE;
 
-  fail_unless (gst_pad_link (srcpad, sinkpad) == GST_PAD_LINK_OK,
-      "Could not link %s source and sink pads", GST_ELEMENT_NAME (element));
-  gst_object_unref (srcpad);    /* because we got it higher up */
-  ASSERT_OBJECT_REFCOUNT (srcpad, "srcpad", 2);
+  if (GST_QUERY_TYPE (query) == GST_QUERY_SEEKING) {
+    gst_query_set_seeking (query, GST_FORMAT_BYTES, TRUE, 0, -1);
+    ret = TRUE;
+  }
 
-  return sinkpad;
+  return ret;
 }
 
+#define compare_buffer_to_data(buffer, data, data_size)             \
+G_STMT_START {                                                      \
+fail_unless_equals_int (data_size, gst_buffer_get_size (buffer));   \
+fail_unless (gst_buffer_memcmp (buffer, 0, data, data_size) == 0);  \
+} G_STMT_END
+
 static void
-teardown_sink_pad (GstElement * element)
+test_ebml_header_with_version (gint version,
+    gconstpointer data, gsize data_size)
 {
-  GstPad *srcpad, *sinkpad;
-
-  /* clean up floating sink pad */
-  srcpad = gst_element_get_static_pad (element, "src");
-  sinkpad = gst_pad_get_peer (srcpad);
-  gst_pad_unlink (srcpad, sinkpad);
-
-  /* pad refs held by both creator and this function (through _get_pad) */
-  ASSERT_OBJECT_REFCOUNT (srcpad, "srcpad", 3);
-  gst_object_unref (srcpad);
-  /* one more ref is held by element itself */
-
-  /* pad refs held by both creator and this function (through _get_peer) */
-  ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 2);
-  gst_object_unref (sinkpad);
-  gst_object_unref (sinkpad);
-}
+  GstHarness *h;
+  GstBuffer *inbuffer, *outbuffer;
 
+  h = setup_matroskamux_harness (AC3_CAPS_STRING);
+  g_object_set (h->element, "version", version, NULL);
 
-static GstElement *
-setup_matroskamux (GstStaticPadTemplate * srctemplate)
-{
-  GstElement *matroskamux;
+  inbuffer = gst_harness_create_buffer (h, 1);
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, inbuffer));
+  fail_unless_equals_int (2, gst_harness_buffers_received (h));
 
-  GST_DEBUG ("setup_matroskamux");
-  matroskamux = gst_check_setup_element ("matroskamux");
-  g_object_set (matroskamux, "version", 1, 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");
+  outbuffer = gst_harness_pull (h);
+  compare_buffer_to_data (outbuffer, data, data_size);
+  gst_buffer_unref (outbuffer);
 
-  return matroskamux;
+  gst_harness_teardown (h);
 }
 
-static void
-cleanup_matroskamux (GstElement * matroskamux)
+GST_START_TEST (test_ebml_header_v1)
 {
-  GST_DEBUG ("cleanup_matroskamux");
-  gst_element_set_state (matroskamux, GST_STATE_NULL);
+  guint8 data_v1[] = {
+    0x1a, 0x45, 0xdf, 0xa3,     /* master ID */
+    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+    0x42, 0x82,                 /* doctype */
+    0x89,                       /* 9 bytes */
+    0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61, 0x00,       /* "matroska" */
+    0x42, 0x87,                 /* doctypeversion */
+    0x81,                       /* 1 byte */
+    0x01,                       /* 1 */
+    0x42, 0x85,                 /* doctypereadversion */
+    0x81,                       /* 1 byte */
+    0x01,                       /* 1 */
+  };
 
-  teardown_src_pad (matroskamux);
-  teardown_sink_pad (matroskamux);
-  gst_check_teardown_element (matroskamux);
+  test_ebml_header_with_version (1, data_v1, sizeof (data_v1));
 }
 
-static void
-check_buffer_data (GstBuffer * buffer, void *data, size_t data_size)
-{
-  fail_unless (gst_buffer_get_size (buffer) == data_size);
-  fail_unless (gst_buffer_memcmp (buffer, 0, data, data_size) == 0);
-}
+GST_END_TEST;
 
-GST_START_TEST (test_ebml_header)
+GST_START_TEST (test_ebml_header_v2)
 {
-  GstElement *matroskamux;
-  GstBuffer *inbuffer, *outbuffer;
-  GstAdapter *adapter;
-  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,
-    0x42, 0x87, 0x81, 0x01,
-    0x42, 0x85, 0x81, 0x01
+  guint8 data_v2[] = {
+    0x1a, 0x45, 0xdf, 0xa3,     /* master ID */
+    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+    0x42, 0x82,                 /* doctype */
+    0x89,                       /* 9 bytes */
+    0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61, 0x00,       /* "matroska" */
+    0x42, 0x87,                 /* doctypeversion */
+    0x81,                       /* 1 byte */
+    0x02,                       /* 2 */
+    0x42, 0x85,                 /* doctypereadversion */
+    0x81,                       /* 1 byte */
+    0x02,                       /* 2 */
   };
 
-  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);
-  num_buffers = g_list_length (buffers);
-  fail_unless (num_buffers >= 1,
-      "expected at least 5 buffers, but got only %d", num_buffers);
-
-  adapter = gst_adapter_new ();
-  for (i = 0; i < num_buffers; ++i) {
-    outbuffer = GST_BUFFER (buffers->data);
-    fail_if (outbuffer == NULL);
-    buffers = g_list_remove (buffers, outbuffer);
-
-    ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1);
-
-    gst_adapter_push (adapter, outbuffer);
-  }
-
-  available = gst_adapter_available (adapter);
-  fail_unless (available >= sizeof (data));
-  outbuffer = gst_adapter_take_buffer (adapter, sizeof (data));
-  g_object_unref (adapter);
-
-  check_buffer_data (outbuffer, data, sizeof (data));
-  gst_buffer_unref (outbuffer);
-
-  cleanup_matroskamux (matroskamux);
-  g_list_free (buffers);
-  buffers = NULL;
+  test_ebml_header_with_version (2, data_v2, sizeof (data_v2));
 }
 
 GST_END_TEST;
@@ -249,37 +131,24 @@ GST_END_TEST;
 
 GST_START_TEST (test_vorbis_header)
 {
-  GstElement *matroskamux;
+  GstHarness *h;
   GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
-  int num_buffers;
-  int i;
   gboolean vorbis_header_found = FALSE;
-  guint8 data[12] =
+  gint j;
+  gsize buffer_size;
+  guint8 data[] =
       { 0x63, 0xa2, 0x89, 0x02, 0x01, 0x02, 0x10, 0x20, 0x20, 0x30, 0x30,
     0x30
   };
 
-  matroskamux = setup_matroskamux (&srcvorbistemplate);
-
-  caps = gst_caps_from_string (VORBIS_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);
+  h = setup_matroskamux_harness (VORBIS_TMPL_CAPS_STRING);
 
-  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  num_buffers = g_list_length (buffers);
+  inbuffer = gst_harness_create_buffer (h, 1);
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, inbuffer));
 
-  for (i = 0; i < num_buffers; ++i) {
-    gint j;
-    gsize buffer_size;
-
-    outbuffer = GST_BUFFER (buffers->data);
-    fail_if (outbuffer == NULL);
+  outbuffer = gst_harness_pull (h);
+  while (outbuffer != NULL) {
     buffer_size = gst_buffer_get_size (outbuffer);
-    buffers = g_list_remove (buffers, outbuffer);
 
     if (!vorbis_header_found && buffer_size >= sizeof (data)) {
       for (j = 0; j <= buffer_size - sizeof (data); j++) {
@@ -292,173 +161,834 @@ GST_START_TEST (test_vorbis_header)
 
     ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1);
     gst_buffer_unref (outbuffer);
-    outbuffer = NULL;
+
+    outbuffer = gst_harness_try_pull (h);
   }
 
   fail_unless (vorbis_header_found);
 
-  cleanup_matroskamux (matroskamux);
-  g_list_free (buffers);
-  buffers = NULL;
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
 
-GST_START_TEST (test_block_group)
+static void
+test_block_group_with_version (gint version,
+    gconstpointer data0, gsize data0_size)
 {
-  GstElement *matroskamux;
+  GstHarness *h;
   GstBuffer *inbuffer, *outbuffer;
-  guint8 *indata;
-  GstCaps *caps;
-  int num_buffers;
-  int i;
-  guint8 data0[] = { 0xa0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
-    0xa1, 0x85,
-    0x81, 0x00, 0x01, 0x00
-  };
   guint8 data1[] = { 0x42 };
 
-  matroskamux = setup_matroskamux (&srcac3template);
-
-  caps = gst_caps_from_string (AC3_CAPS_STRING);
-  gst_check_setup_events (mysrcpad, matroskamux, caps, GST_FORMAT_TIME);
-  gst_caps_unref (caps);
+  h = setup_matroskamux_harness (AC3_CAPS_STRING);
+  g_object_set (h->element, "version", version, NULL);
 
   /* Generate the header */
-  inbuffer = gst_buffer_new_allocate (NULL, 1, 0);
+  inbuffer = gst_harness_create_buffer (h, 1);
   GST_BUFFER_TIMESTAMP (inbuffer) = 0;
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
-
-  fail_unless_equals_int (gst_pad_push (mysrcpad, inbuffer), GST_FLOW_OK);
-  num_buffers = g_list_length (buffers);
-
-  for (i = 0; i < num_buffers; ++i) {
-    outbuffer = GST_BUFFER (buffers->data);
-    fail_if (outbuffer == NULL);
-    buffers = g_list_remove (buffers, outbuffer);
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, inbuffer));
+  fail_unless_equals_int (5, gst_harness_buffers_received (h));
 
-    ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1);
+  outbuffer = gst_harness_pull (h);
+  fail_unless (outbuffer != NULL);
+  while (outbuffer != NULL) {
     gst_buffer_unref (outbuffer);
-    outbuffer = NULL;
+    outbuffer = gst_harness_try_pull (h);
   }
 
-  g_list_free (buffers);
-  buffers = NULL;
-
   /* Now push a buffer */
-  indata = g_malloc (1);
-  inbuffer = gst_buffer_new_wrapped (indata, 1);
-  indata[0] = 0x42;
+  inbuffer = gst_harness_create_buffer (h, 1);
+  gst_buffer_fill (inbuffer, 0, data1, sizeof (data1));
   GST_BUFFER_TIMESTAMP (inbuffer) = 1000000;
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
-  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  num_buffers = g_list_length (buffers);
-  fail_unless (num_buffers >= 2);
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, inbuffer));
 
-  for (i = 0; i < num_buffers; ++i) {
-    outbuffer = GST_BUFFER (buffers->data);
-    fail_if (outbuffer == NULL);
-    buffers = g_list_remove (buffers, outbuffer);
+  outbuffer = gst_harness_pull (h);
+  compare_buffer_to_data (outbuffer, data0, data0_size);
+  gst_buffer_unref (outbuffer);
 
-    switch (i) {
-      case 0:
-        check_buffer_data (outbuffer, data0, sizeof (data0));
-        break;
-      case 1:
-        check_buffer_data (outbuffer, data1, sizeof (data1));
-        break;
-      default:
-        break;
-    }
+  outbuffer = gst_harness_pull (h);
+  compare_buffer_to_data (outbuffer, data1, sizeof (data1));
+  gst_buffer_unref (outbuffer);
 
-    ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1);
-    gst_buffer_unref (outbuffer);
-    outbuffer = NULL;
-  }
+  gst_harness_teardown (h);
+}
 
-  g_list_free (buffers);
-  buffers = NULL;
+GST_START_TEST (test_block_group_v1)
+{
+  guint8 data0_v1[] = { 0xa0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
+    0xa1, 0x85,
+    0x81, 0x00, 0x01, 0x00
+  };
+
+  test_block_group_with_version (1, data0_v1, sizeof (data0_v1));
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_block_group_v2)
+{
+  guint8 data0_v2[] = { 0xa3, 0x85, 0x81, 0x00, 0x01, 0x00 };
 
-  cleanup_matroskamux (matroskamux);
+  test_block_group_with_version (2, data0_v2, sizeof (data0_v2));
 }
 
 GST_END_TEST;
 
 GST_START_TEST (test_reset)
 {
-  GstElement *matroskamux;
+  GstHarness *h;
   GstBuffer *inbuffer;
   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);
-  num_buffers = g_list_length (buffers);
-  fail_unless (num_buffers >= 1,
-      "expected at least 1 buffer, but got only %d", num_buffers);
-
-  fail_unless (gst_element_set_state (matroskamux,
-          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
-
-  fail_unless (gst_element_set_state (matroskamux,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
-
-  inbuffer = gst_buffer_new_allocate (NULL, 1, 0);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
-  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  num_buffers = g_list_length (buffers);
-  fail_unless (num_buffers >= 2,
-      "expected at least 2 buffers, but got only %d", num_buffers);
-
-  for (i = 0; i < num_buffers; ++i) {
-    outbuffer = GST_BUFFER (buffers->data);
-    fail_if (outbuffer == NULL);
-    buffers = g_list_remove (buffers, outbuffer);
 
-    ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1);
+  h = setup_matroskamux_harness (AC3_CAPS_STRING);
+
+  inbuffer = gst_harness_create_buffer (h, 1);
+  GST_BUFFER_TIMESTAMP (inbuffer) = 0;
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, inbuffer));
+  fail_unless_equals_int (5, gst_harness_buffers_received (h));
+
+  outbuffer = gst_harness_pull (h);
+  fail_unless (outbuffer != NULL);
+  while (outbuffer != NULL) {
+    gst_buffer_unref (outbuffer);
+    outbuffer = gst_harness_try_pull (h);
+  }
+
+  fail_unless_equals_int (GST_STATE_CHANGE_SUCCESS,
+      gst_element_set_state (h->element, GST_STATE_NULL));
+
+  gst_harness_play (h);
+
+  inbuffer = gst_harness_create_buffer (h, 1);
+  GST_BUFFER_TIMESTAMP (inbuffer) = 0;
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, inbuffer));
+
+  outbuffer = gst_harness_pull (h);
+  fail_unless (outbuffer != NULL);
+  while (outbuffer != NULL) {
     gst_buffer_unref (outbuffer);
+    outbuffer = gst_harness_try_pull (h);
   }
 
-  cleanup_matroskamux (matroskamux);
-  g_list_free (buffers);
-  buffers = NULL;
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
 GST_START_TEST (test_link_webmmux_webm_sink)
 {
-  static GstStaticPadTemplate webm_sinktemplate =
-      GST_STATIC_PAD_TEMPLATE ("sink",
-      GST_PAD_SINK,
-      GST_PAD_ALWAYS,
-      GST_STATIC_CAPS ("video/webm; audio/webm"));
-  GstElement *mux;
+  GstHarness *h;
+
+  h = gst_harness_new_with_padnames ("webmmux", "audio_%u", "src");
+  fail_unless (h != NULL);
+
+  gst_harness_set_sink_caps_str (h, "video/webm; audio/webm");
+
+  gst_harness_play (h);
+
+  fail_unless_equals_int (GST_STATE_CHANGE_SUCCESS,
+      gst_element_set_state (h->element, GST_STATE_NULL));
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+static gint64 timecodescales[] = {
+  GST_USECOND,
+  GST_MSECOND,
+  GST_MSECOND * 10,
+  GST_MSECOND * 100,
+  GST_MSECOND * 400,
+  /* FAILS: ? GST_MSECOND * 500, a bug? */
+};
+
+GST_START_TEST (test_timecodescale)
+{
+  GstBuffer *inbuffer, *outbuffer;
+  guint8 data_h0[] = {
+    0xa3, 0x85, 0x81, 0x00, 0x00, 0x00,
+  };
+  guint8 data_h1[] = {
+    0xa3, 0x85, 0x81, 0x00, 0x01, 0x00,
+  };
+
+  GstHarness *h = setup_matroskamux_harness (AC3_CAPS_STRING);
+  gint64 timecodescale = timecodescales[__i__];
+
+  g_object_set (h->element, "timecodescale", timecodescale, NULL);
+  g_object_set (h->element, "version", 2, NULL);
+
+  /* Buffer 0 */
+  inbuffer = gst_harness_create_buffer (h, 1);
+  GST_BUFFER_TIMESTAMP (inbuffer) = 0;
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, inbuffer));
+
+  /* pull out headers */
+  gst_buffer_unref (gst_harness_pull (h));
+  gst_buffer_unref (gst_harness_pull (h));
+  gst_buffer_unref (gst_harness_pull (h));
+
+  /* verify header and drop the data */
+  outbuffer = gst_harness_pull (h);
+  compare_buffer_to_data (outbuffer, data_h0, sizeof (data_h0));
+  gst_buffer_unref (outbuffer);
+  gst_buffer_unref (gst_harness_pull (h));
+
+  /* Buffer 1 */
+  inbuffer = gst_harness_create_buffer (h, 1);
+  GST_BUFFER_TIMESTAMP (inbuffer) = timecodescale;
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, inbuffer));
+
+  /* verify header and drop the data */
+  outbuffer = gst_harness_pull (h);
+  compare_buffer_to_data (outbuffer, data_h1, sizeof (data_h1));
+  gst_buffer_unref (outbuffer);
+  gst_buffer_unref (gst_harness_pull (h));
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+/* Create a new chapter */
+static GstTocEntry *
+new_chapter (const guint chapter_nb, const gint64 start, const gint64 stop)
+{
+  GstTocEntry *toc_entry, *toc_sub_entry;
+  GstTagList *tags;
+  gchar title[32];
+  gchar artist[32];
+  gchar str_uid[32];
+
+  g_snprintf (str_uid, sizeof (str_uid), "uid.%d", chapter_nb);
+  toc_entry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, str_uid);
+  gst_toc_entry_set_start_stop_times (toc_entry, start, stop);
+
+  g_snprintf (title, sizeof (title), "chap.%d", chapter_nb);
+  g_snprintf (artist, sizeof (artist), "art.%d", chapter_nb);
+  tags = gst_tag_list_new (GST_TAG_TITLE, title, GST_TAG_ARTIST, artist, NULL);
+  gst_toc_entry_set_tags (toc_entry, tags);
+
+  g_snprintf (str_uid, sizeof (str_uid), "uid.%d.1", chapter_nb);
+  toc_sub_entry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, str_uid);
+  gst_toc_entry_set_start_stop_times (toc_sub_entry, start, (start + stop) / 2);
+
+  g_snprintf (title, sizeof (title), "nested.%d.1", chapter_nb);
+  g_snprintf (artist, sizeof (artist), "art.%d.1", chapter_nb);
+  tags = gst_tag_list_new (GST_TAG_TITLE, title, GST_TAG_ARTIST, artist, NULL);
+  gst_toc_entry_set_tags (toc_sub_entry, tags);
+
+  gst_toc_entry_append_sub_entry (toc_entry, toc_sub_entry);
+
+  g_snprintf (str_uid, sizeof (str_uid), "uid.%d.2", chapter_nb);
+  toc_sub_entry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, str_uid);
+  gst_toc_entry_set_start_stop_times (toc_sub_entry, (start + stop) / 2, stop);
+
+  g_snprintf (title, sizeof (title), "nested/%d.2", chapter_nb);
+  g_snprintf (artist, sizeof (artist), "art.%d.2", chapter_nb);
+  tags = gst_tag_list_new (GST_TAG_TITLE, title, GST_TAG_ARTIST, artist, NULL);
+  gst_toc_entry_set_tags (toc_sub_entry, tags);
+
+  gst_toc_entry_append_sub_entry (toc_entry, toc_sub_entry);
+
+  return toc_entry;
+}
+
+/* Create a reference toc which includes a master edition entry */
+static GstToc *
+new_reference_toc (void)
+{
+  GstToc *ref_toc;
+  GstTocEntry *toc_edition_entry, *toc_entry;
+  GstTagList *tags;
+
+  ref_toc = gst_toc_new (GST_TOC_SCOPE_GLOBAL);
+
+  toc_edition_entry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, "00");
+  tags = gst_tag_list_new (GST_TAG_COMMENT, "Ed", NULL);
+  gst_toc_entry_set_tags (toc_edition_entry, tags);
+
+  toc_entry = new_chapter (1, 0 * GST_MSECOND, 2 * GST_MSECOND);
+  gst_toc_entry_append_sub_entry (toc_edition_entry, toc_entry);
+
+  toc_entry = new_chapter (2, 2 * GST_MSECOND, 4 * GST_MSECOND);
+  gst_toc_entry_append_sub_entry (toc_edition_entry, toc_entry);
+
+  gst_toc_append_entry (ref_toc, toc_edition_entry);
+
+  return ref_toc;
+}
+
+/* Create a toc which includes chapters without edition entry */
+static GstToc *
+new_no_edition_toc (void)
+{
+  GstToc *ref_toc;
+  GstTocEntry *toc_entry;
+
+  ref_toc = gst_toc_new (GST_TOC_SCOPE_GLOBAL);
+
+  toc_entry = new_chapter (1, 0 * GST_MSECOND, 2 * GST_MSECOND);
+  gst_toc_append_entry (ref_toc, toc_entry);
+
+  toc_entry = new_chapter (2, 2 * GST_MSECOND, 4 * GST_MSECOND);
+  gst_toc_append_entry (ref_toc, toc_entry);
+
+  return ref_toc;
+}
+
+static guint64
+read_integer (GstMapInfo * info, gsize * index, guint64 len)
+{
+  guint64 total = 0;
+
+  for (; len > 0; --len) {
+    total = (total << 8) | GST_READ_UINT8 (info->data + *index);
+    ++(*index);
+  }
+
+  return total;
+}
+
+static guint64
+read_length (GstMapInfo * info, gsize * index)
+{
+  gint len_mask = 0x80, read = 1;
+  guint64 total;
+  guint8 b;
+
+  b = GST_READ_UINT8 (info->data + *index);
+  ++(*index);
+  total = (guint64) b;
+  while (read <= 8 && !(total & len_mask)) {
+    read++;
+    len_mask >>= 1;
+  }
+  total &= (len_mask - 1);
+
+  for (; read > 1; --read) {
+    total = (total << 8) | GST_READ_UINT8 (info->data + *index);
+    ++(*index);
+  }
+
+  return total;
+}
+
+static gboolean
+check_id (GstMapInfo * info, gsize * index,
+    guint8 * tag, gint tag_len, guint64 * len)
+{
+  if (memcmp (info->data + *index, tag, tag_len) == 0) {
+    *index += tag_len;
+    *len = read_length (info, index);
+    return TRUE;
+  } else {
+    return FALSE;
+  }
+}
+
+static gboolean
+check_id_read_int (GstMapInfo * info, gsize * index,
+    guint8 * tag, gint tag_len, guint64 * value)
+{
+  guint64 len;
+
+  if (check_id (info, index, tag, tag_len, &len)) {
+    *value = read_integer (info, index, len);
+    return TRUE;
+  } else {
+    return FALSE;
+  }
+}
+
+/* Check the toc entry against the muxed buffer
+ * Returns the internal UID */
+static void
+check_chapter (GstTocEntry * toc_entry, GstTocEntry * internal_toc_entry,
+    GstMapInfo * info, gsize * index, gint last_offset)
+{
+  guint64 len, value, uid;
+  gint64 start_ref, end_ref;
+  gchar s_uid[32];
+  const gchar *str_uid;
+  GstTocEntry *internal_chapter;
+  GList *cur_sub_chap;
+  GstTagList *tags;
+  gchar *title;
+
+  guint8 chapter_atom[] = { 0xb6 };
+  guint8 chapter_uid[] = { 0x73, 0xc4 };
+  guint8 chapter_str_uid[] = { 0x56, 0x54 };
+  guint8 chapter_start[] = { 0x91 };
+  guint8 chapter_end[] = { 0x92 };
+  guint8 chapter_flag_hidden[] = { 0x98 };
+  guint8 chapter_flag_enabled[] = { 0x45, 0x98 };
+  guint8 chapter_segment_uid[] = { 0x6e, 0x67 };
+  guint8 chapter_segment_edition_uid[] = { 0x6e, 0xbc };
+  guint8 chapter_physical_equiv[] = { 0x63, 0xc3 };
+  guint8 chapter_track[] = { 0x8f };
+  guint8 chapter_track_nb[] = { 0x89 };
+  guint8 chapter_display[] = { 0x80 };
+  guint8 chapter_string[] = { 0x85 };
+  guint8 chapter_language[] = { 0x43, 0x7c };
+
+  fail_unless (check_id (info, index, chapter_atom,
+          sizeof (chapter_atom), &len));
+
+  fail_unless (check_id_read_int (info, index, chapter_uid,
+          sizeof (chapter_uid), &uid));
+
+  /* optional StringUID */
+  if (check_id (info, index, chapter_str_uid, sizeof (chapter_str_uid), &len)) {
+    str_uid = gst_toc_entry_get_uid (toc_entry);
+    fail_unless (memcmp (info->data + *index, str_uid, strlen (str_uid)) == 0);
+    *index += len;
+  }
+
+  gst_toc_entry_get_start_stop_times (toc_entry, &start_ref, &end_ref);
+
+  fail_unless (check_id_read_int (info, index, chapter_start,
+          sizeof (chapter_start), &value));
+  fail_unless_equals_int (start_ref, value);
+
+  /* optional chapter end */
+  if (check_id_read_int (info, index, chapter_end,
+          sizeof (chapter_end), &value)) {
+    fail_unless_equals_int (end_ref, value);
+  }
+
+  fail_unless (check_id_read_int (info, index, chapter_flag_hidden,
+          sizeof (chapter_flag_hidden), &value));
+
+  fail_unless (check_id_read_int (info, index, chapter_flag_enabled,
+          sizeof (chapter_flag_enabled), &value));
+
+  /* optional segment UID */
+  check_id_read_int (info, index, chapter_segment_uid,
+      sizeof (chapter_segment_uid), &value);
+
+  /* optional segment edition UID */
+  check_id_read_int (info, index, chapter_segment_edition_uid,
+      sizeof (chapter_segment_edition_uid), &value);
+
+  /* optional physical equiv */
+  check_id_read_int (info, index, chapter_physical_equiv,
+      sizeof (chapter_physical_equiv), &value);
+
+  /* optional chapter track */
+  if (check_id (info, index, chapter_track, sizeof (chapter_track), &len)) {
+    fail_unless (check_id_read_int (info, index, chapter_track_nb,
+            sizeof (chapter_track_nb), &value));
+  }
+
+  /* FIXME: there can be several chapter displays */
+  if (check_id (info, index, chapter_display, sizeof (chapter_display), &len)) {
+    /* chapter display */
+    fail_unless (check_id (info, index, chapter_string,
+            sizeof (chapter_string), &len));
+
+    tags = gst_toc_entry_get_tags (toc_entry);
+    if (gst_tag_list_get_tag_size (tags, GST_TAG_TITLE) > 0) {
+      gst_tag_list_get_string_index (tags, GST_TAG_TITLE, 0, &title);
+      fail_unless (memcmp (info->data + *index, title, strlen (title)) == 0);
+      g_free (title);
+    }
+    *index += len;
+
+    fail_unless (check_id (info, index, chapter_language,
+            sizeof (chapter_language), &len));
+    /* TODO: define language - always "und" ATM */
+    *index += len;
+  }
+
+  /* TODO: add remaining fields (not used in current matroska-mux) */
+
+  g_snprintf (s_uid, sizeof (s_uid), "%" G_GINT64_FORMAT, uid);
+  internal_chapter = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, s_uid);
+  gst_toc_entry_append_sub_entry (internal_toc_entry, internal_chapter);
+
+  cur_sub_chap = gst_toc_entry_get_sub_entries (toc_entry);
+  while (cur_sub_chap != NULL && *index < last_offset) {
+    check_chapter (cur_sub_chap->data, internal_chapter, info,
+        index, last_offset);
+    cur_sub_chap = cur_sub_chap->next;
+  }
+
+  fail_unless (cur_sub_chap == NULL);
+}
+
+/* Check the reference toc against the muxed buffer */
+static void
+check_toc (GstToc * ref_toc, GstToc * internal_toc,
+    GstMapInfo * info, gsize * index)
+{
+  guint64 len, value, uid;
+  gchar s_uid[32];
+  gint last_offset;
+  GList *cur_entry, *cur_chapter;
+  GstTocEntry *internal_edition;
+
+  guint8 edition_entry[] = { 0x45, 0xb9 };
+  guint8 edition_uid[] = { 0x45, 0xbc };
+  guint8 edition_flag_hidden[] = { 0x45, 0xbd };
+  guint8 edition_flag_default[] = { 0x45, 0xdb };
+  guint8 edition_flag_ordered[] = { 0x45, 0xdd };
+
+  /* edition entry */
+  fail_unless (check_id (info, index, edition_entry,
+          sizeof (edition_entry), &len));
+  last_offset = *index + (gint) len;
+
+  cur_entry = gst_toc_get_entries (ref_toc);
+  while (cur_entry != NULL && *index < last_offset) {
+    uid = 0;
+    check_id_read_int (info, index, edition_uid, sizeof (edition_uid), &uid);
+    g_snprintf (s_uid, sizeof (s_uid), "%" G_GINT64_FORMAT, uid);
+    internal_edition = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, s_uid);
+    gst_toc_append_entry (internal_toc, internal_edition);
+
+    fail_unless (check_id_read_int (info, index, edition_flag_hidden,
+            sizeof (edition_flag_hidden), &value));
+
+    fail_unless (check_id_read_int (info, index, edition_flag_default,
+            sizeof (edition_flag_default), &value));
+
+    /* optional */
+    check_id_read_int (info, index, edition_flag_ordered,
+        sizeof (edition_flag_ordered), &value);
+
+    cur_chapter = gst_toc_entry_get_sub_entries (cur_entry->data);
+    while (cur_chapter != NULL && *index < last_offset) {
+      check_chapter (cur_chapter->data, internal_edition, info,
+          index, last_offset);
+      cur_chapter = cur_chapter->next;
+    }
+    fail_unless (cur_chapter == NULL);
+
+    cur_entry = cur_entry->next;
+  }
+
+  fail_unless (cur_entry == NULL && *index == last_offset);
+}
+
+static GstTocEntry *
+find_toc_entry (GstTocEntry * ref_toc_entry, GstTocEntry * internal_toc_entry,
+    guint64 uid)
+{
+  GList *cur_ref_entry, *cur_internal_entry;
+  guint64 internal_uid;
+  GstTocEntry *result = NULL;
+
+  internal_uid = g_ascii_strtoull (gst_toc_entry_get_uid (internal_toc_entry),
+      NULL, 10);
+  if (uid == internal_uid) {
+    result = ref_toc_entry;
+  } else {
+    cur_ref_entry = gst_toc_entry_get_sub_entries (ref_toc_entry);
+    cur_internal_entry = gst_toc_entry_get_sub_entries (internal_toc_entry);
+    while (cur_ref_entry != NULL && cur_internal_entry != NULL) {
+      result = find_toc_entry (cur_ref_entry->data, cur_internal_entry->data,
+          uid);
+
+      if (result != NULL) {
+        break;
+      }
+
+      cur_ref_entry = cur_ref_entry->next;
+      cur_internal_entry = cur_internal_entry->next;
+    }
+  }
+
+  return result;
+}
+
+static void
+find_and_check_tags (GstToc * ref_toc, GstToc * internal_toc, GstMapInfo * info,
+    guint64 uid, gchar * tag_name, gchar * tag_string)
+{
+  GList *cur_ref_entry, *cur_internal_entry;
+  GstTocEntry *ref_toc_entry = NULL;
+  GstTagList *tags;
+  const gchar *tag_type;
+  gchar *cur_tag_string;
+
+  /* find the reference toc entry matching the UID */
+  cur_ref_entry = gst_toc_get_entries (ref_toc);
+  cur_internal_entry = gst_toc_get_entries (internal_toc);
+  while (cur_ref_entry != NULL && cur_internal_entry != NULL) {
+    ref_toc_entry = find_toc_entry (cur_ref_entry->data,
+        cur_internal_entry->data, uid);
+
+    if (ref_toc_entry != NULL) {
+      break;
+    }
+
+    cur_ref_entry = cur_ref_entry->next;
+    cur_internal_entry = cur_internal_entry->next;
+  }
+
+  fail_unless (ref_toc_entry != NULL);
+
+  if (g_strcmp0 (tag_name, "ARTIST") == 0) {
+    tag_type = GST_TAG_ARTIST;
+  } else if (g_strcmp0 (tag_name, "COMMENTS") == 0) {
+    tag_type = GST_TAG_COMMENT;
+  } else {
+    tag_type = NULL;
+  }
+
+  fail_unless (tag_type != NULL);
+
+  tags = gst_toc_entry_get_tags (ref_toc_entry);
+  fail_unless (gst_tag_list_get_tag_size (tags, tag_type) > 0);
+  gst_tag_list_get_string_index (tags, tag_type, 0, &cur_tag_string);
+  fail_unless (g_strcmp0 (cur_tag_string, tag_string) == 0);
+  g_free (cur_tag_string);
+}
+
+static void
+check_tags (GstToc * ref_toc, GstToc * internal_toc,
+    GstMapInfo * info, gsize * index)
+{
+  gboolean found_tags = FALSE, must_check_tag = FALSE;
+  guint64 len, value, uid;
+  gsize last_offset, next_tag;
+  gchar *tag_name_str, *tag_string_str;
+  guint8 tags[] = { 0x12, 0x54, 0xc3, 0x67 };
+  guint8 tag[] = { 0x73, 0x73 };
+  guint8 tag_targets[] = { 0x63, 0xc0 };
+  guint8 tag_target_type_value[] = { 0x68, 0xca };
+  guint8 tag_target_type[] = { 0x63, 0xca };
+  guint8 tag_edition_uid[] = { 0x63, 0xc9 };
+  guint8 tag_chapter_uid[] = { 0x63, 0xc4 };
+  guint8 simple_tag[] = { 0x67, 0xc8 };
+  guint8 tag_name[] = { 0x45, 0xa3 };
+  guint8 tag_string[] = { 0x44, 0x87 };
+
+  if (info->size > *index + sizeof (tags)) {
+    for (; *index < info->size - sizeof (tags); ++(*index)) {
+      if (memcmp (info->data + *index, tags, sizeof (tags)) == 0) {
+        *index += sizeof (tags);
+
+        len = read_length (info, index);
+        last_offset = *index + len;
+
+        found_tags = TRUE;
+        break;
+      }
+    }
+  }
+
+  fail_unless (found_tags);
+
+  while (*index < last_offset) {
+    fail_unless (check_id (info, index, tag, sizeof (tag), &len));
+    next_tag = *index + len;
+
+    fail_unless (check_id (info, index, tag_targets,
+            sizeof (tag_targets), &len));
+
+    must_check_tag = FALSE;
+    check_id_read_int (info, index, tag_target_type_value,
+        sizeof (tag_target_type_value), &value);
+
+    if (check_id (info, index, tag_target_type, sizeof (tag_target_type), &len)) {
+      *index += len;
+    }
+
+    if (check_id_read_int (info, index, tag_chapter_uid,
+            sizeof (tag_chapter_uid), &uid)) {
+      must_check_tag = TRUE;
+    } else if (check_id_read_int (info, index, tag_edition_uid,
+            sizeof (tag_edition_uid), &uid)) {
+      must_check_tag = TRUE;
+    }
+
+    if (must_check_tag) {
+      fail_unless (check_id (info, index, simple_tag,
+              sizeof (simple_tag), &len));
+
+      fail_unless (check_id (info, index, tag_name, sizeof (tag_name), &len));
+      tag_name_str = g_strndup ((gchar *) info->data + *index, len);
+      *index += len;
+
+      fail_unless (check_id (info, index, tag_string, sizeof (tag_string),
+              &len));
+      tag_string_str = g_strndup ((gchar *) info->data + *index, len);
+      *index += len;
+
+      find_and_check_tags (ref_toc, internal_toc, info, uid,
+          tag_name_str, tag_string_str);
+
+      g_free (tag_name_str);
+      g_free (tag_string_str);
+    }
+
+    *index = next_tag;
+  }
+}
+
+static void
+check_segment (GstToc * ref_toc, GstToc * internal_toc,
+    GstMapInfo * info, gsize * index)
+{
+  guint8 matroska_segment[] = { 0x18, 0x53, 0x80, 0x67 };
+  guint8 matroska_seek_id_chapters[] = { 0x53, 0xab, 0x84,
+    0x10, 0x43, 0xA7, 0x70
+  };
+  guint8 matroska_seek_id_tags[] = { 0x53, 0xab, 0x84,
+    0x12, 0x54, 0xc3, 0x67
+  };
+  guint8 matroska_seek_pos[] = { 0x53, 0xac };
+  guint8 matroska_chapters[] = { 0x10, 0x43, 0xA7, 0x70 };
+
+  guint64 len, value, segment_offset, chapters_offset, tags_offset;
+  gboolean found_chapters_declaration = FALSE, found_tags_declaration = FALSE;
+
+  /* Segment */
+  fail_unless (info->size > sizeof (matroska_segment));
+  fail_unless (check_id (info, index, matroska_segment,
+          sizeof (matroska_segment), &len));
+
+  segment_offset = *index;
+
+  /* Search chapter declaration in seek head */
+  for (; *index < len - sizeof (matroska_seek_id_chapters); ++(*index)) {
+    if (memcmp (info->data + *index, matroska_seek_id_chapters,
+            sizeof (matroska_seek_id_chapters)) == 0) {
+      *index += sizeof (matroska_seek_id_chapters);
+
+      if (check_id_read_int (info, index, matroska_seek_pos,
+              sizeof (matroska_seek_pos), &value)) {
+        /* found chapter declaration */
+        found_chapters_declaration = TRUE;
+        chapters_offset = segment_offset + value;
+        break;
+      }
+    }
+  }
+
+  fail_unless (found_chapters_declaration);
+
+  *index = chapters_offset;
+  if (check_id (info, index, matroska_chapters,
+          sizeof (matroska_chapters), &len)) {
+    check_toc (ref_toc, internal_toc, info, index);
+  }
+
+  /* Search tags declaration in seek head */
+  for (*index = segment_offset; *index < len - sizeof (matroska_seek_id_tags);
+      ++(*index)) {
+    if (memcmp (info->data + *index, matroska_seek_id_tags,
+            sizeof (matroska_seek_id_tags)) == 0) {
+      *index += sizeof (matroska_seek_id_tags);
+
+      if (check_id_read_int (info, index, matroska_seek_pos,
+              sizeof (matroska_seek_pos), &value)) {
+        /* found tags declaration */
+        found_tags_declaration = TRUE;
+        tags_offset = segment_offset + value;
+        break;
+      }
+    }
+  }
+
+  fail_unless (found_tags_declaration);
+
+  *index = tags_offset;
+  check_tags (ref_toc, internal_toc, info, index);
+}
+
+static void
+test_toc (gboolean with_edition)
+{
+  GstHarness *h;
+  GstBuffer *inbuffer, *outbuffer, *merged_buffer;
+  GstMapInfo info;
+  guint64 len;
+  gsize index;
+  GstTocSetter *toc_setter;
+  GstToc *test_toc, *ref_toc, *internal_toc;
 
-  mux = gst_check_setup_element ("webmmux");
-  mysinkpad = setup_sink_pad (mux, &webm_sinktemplate);
-  fail_unless (mysinkpad != NULL);
+  guint8 ebml_header[] = { 0x1a, 0x45, 0xdf, 0xa3 };
 
-  fail_unless (gst_element_set_state (mux,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
+  h = setup_matroskamux_harness (AC3_CAPS_STRING);
 
-  gst_element_set_state (mux, GST_STATE_NULL);
+  /* Make element seekable */
+  gst_pad_set_query_function (h->sinkpad, seekable_sinkpad_query);
 
-  teardown_sink_pad (mux);
-  gst_check_teardown_element (mux);
+  toc_setter = GST_TOC_SETTER (h->element);
+  fail_unless (toc_setter != NULL);
+
+  if (with_edition) {
+    test_toc = new_reference_toc ();
+  } else {
+    test_toc = new_no_edition_toc ();
+  }
+  gst_toc_setter_set_toc (toc_setter, test_toc);
+  gst_toc_unref (test_toc);
+
+  inbuffer = gst_harness_create_buffer (h, 1);
+  gst_buffer_memset (inbuffer, 0, 0, 1);
+  GST_BUFFER_TIMESTAMP (inbuffer) = 0;
+  GST_BUFFER_DURATION (inbuffer) = 1 * GST_MSECOND;
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, inbuffer));
+
+  /* send eos to ensure everything is written */
+  fail_unless (gst_harness_push_event (h, gst_event_new_eos ()));
+  ASSERT_MINI_OBJECT_REFCOUNT (test_toc, "test_toc", 1);
+
+  outbuffer = gst_harness_pull (h);
+  fail_unless (outbuffer != NULL);
+
+  /* Merge buffers */
+  merged_buffer = gst_buffer_new ();
+  while (outbuffer != NULL) {
+    if (outbuffer->offset == gst_buffer_get_size (merged_buffer)) {
+      gst_buffer_append_memory (merged_buffer,
+          gst_buffer_get_all_memory (outbuffer));
+    } else {
+      fail_unless (gst_buffer_map (outbuffer, &info, GST_MAP_READ));
+      gst_buffer_fill (merged_buffer, outbuffer->offset, info.data, info.size);
+      gst_buffer_unmap (outbuffer, &info);
+    }
+
+    gst_buffer_unref (outbuffer);
+    outbuffer = gst_harness_try_pull (h);
+  }
+
+  fail_unless (gst_buffer_map (merged_buffer, &info, GST_MAP_READ));
+  index = 0;
+
+  fail_unless (check_id (&info, &index, ebml_header,
+          sizeof (ebml_header), &len));
+  /* skip header */
+  index += len;
+
+  ref_toc = new_reference_toc ();
+  internal_toc = gst_toc_new (GST_TOC_SCOPE_GLOBAL);
+  check_segment (ref_toc, internal_toc, &info, &index);
+  gst_toc_unref (internal_toc);
+  gst_toc_unref (ref_toc);
+
+  gst_buffer_unmap (merged_buffer, &info);
+  gst_buffer_unref (merged_buffer);
+  gst_harness_teardown (h);
+}
+
+GST_START_TEST (test_toc_with_edition)
+{
+  test_toc (TRUE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_toc_without_edition)
+{
+  test_toc (FALSE);
 }
 
 GST_END_TEST;
@@ -470,12 +1000,19 @@ matroskamux_suite (void)
   TCase *tc_chain = tcase_create ("general");
 
   suite_add_tcase (s, tc_chain);
-  tcase_add_test (tc_chain, test_ebml_header);
+  tcase_add_test (tc_chain, test_ebml_header_v1);
+  tcase_add_test (tc_chain, test_ebml_header_v2);
   tcase_add_test (tc_chain, test_vorbis_header);
-  tcase_add_test (tc_chain, test_block_group);
+  tcase_add_test (tc_chain, test_block_group_v1);
+  tcase_add_test (tc_chain, test_block_group_v2);
+
   tcase_add_test (tc_chain, test_reset);
   tcase_add_test (tc_chain, test_link_webmmux_webm_sink);
+  tcase_add_loop_test (tc_chain, test_timecodescale,
+      0, G_N_ELEMENTS (timecodescales));
 
+  tcase_add_test (tc_chain, test_toc_with_edition);
+  tcase_add_test (tc_chain, test_toc_without_edition);
   return s;
 }
 
diff --git a/tests/check/elements/mpg123audiodec.c b/tests/check/elements/mpg123audiodec.c
new file mode 100644
index 000000000..20d6e779d
--- /dev/null
+++ b/tests/check/elements/mpg123audiodec.c
@@ -0,0 +1,534 @@
+/* GStreamer
+ *
+ * unit test for mpg123audiodec
+ *
+ * Copyright (c) 2012 Carlos Rafael Giani <dv@pseudoterminal.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.
+ */
+
+#include <unistd.h>
+
+#include <gst/check/gstcheck.h>
+#include <gst/audio/audio.h>
+
+#include <gst/fft/gstfft.h>
+#include <gst/fft/gstffts16.h>
+#include <gst/fft/gstffts32.h>
+#include <gst/fft/gstfftf32.h>
+#include <gst/fft/gstfftf64.h>
+
+#include <gst/app/gstappsink.h>
+
+/* For ease of programming we use globals to keep refs for our floating
+ * src and sink pads we create; otherwise we always have to do get_pad,
+ * get_peer, and then remove references in every test function */
+static GstPad *mysrcpad, *mysinkpad;
+
+
+#define MP2_STREAM_FILENAME "stream.mp2"
+#define MP3_CBR_STREAM_FILENAME "cbr_stream.mp3"
+#define MP3_VBR_STREAM_FILENAME "vbr_stream.mp3"
+
+
+/* mpeg 1 layer 2 stream created with:
+ * gst-launch-1.0 -v audiotestsrc wave=sine freq=440 volume=1 num-buffers=32 ! \
+ *   "audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)1" ! \
+ *   avenc_mp2 bitrate=32000 ! tee name=t \
+ *   t. ! queue ! fakesink silent=false \
+ *   t. ! queue ! filesink location=test.mp2
+ *
+ * mpeg 1 layer 3 CBR stream created with:
+ * gst-launch-1.0 -v audiotestsrc wave=sine freq=440 volume=1 num-buffers=32 ! \
+ *   "audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)1" ! \
+ *   lamemp3enc encoding-engine-quality=high cbr=true target=bitrate bitrate=32 ! \
+ *   "audio/mpeg, rate=(int)44100, channels=(int)1" ! tee name=t \
+ *   t. ! queue ! fakesink silent=false \
+ *   t. ! queue ! filesink location=test.mp3
+ *
+ * mpeg 1 layer 3 VBR stream created with:
+ * gst-launch-1.0 -v audiotestsrc wave=sine freq=440 volume=1 num-buffers=32 ! \
+ *   "audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)1" ! \
+ *   lamemp3enc encoding-engine-quality=high cbr=false target=quality quality=7 ! \
+ *   "audio/mpeg, rate=(int)44100, channels=(int)1" ! tee name=t \
+ *   t. ! queue ! fakesink silent=false \
+ *   t. ! queue ! filesink location=test.mp3
+ */
+
+
+/* FFT test helpers taken from gst-plugins-base tests/check/audioresample.c */
+
+#define FFT_HELPERS(type,ffttag,ffttag2,scale)                                \
+static gdouble magnitude##ffttag (const GstFFT##ffttag##Complex *c)           \
+{                                                                             \
+  gdouble mag = (gdouble) c->r * (gdouble) c->r;                              \
+  mag += (gdouble) c->i * (gdouble) c->i;                                     \
+  mag /= scale * scale;                                                       \
+  mag = 10.0 * log10 (mag);                                                   \
+  return mag;                                                                 \
+}                                                                             \
+static gdouble find_main_frequency_spot_##ffttag (                            \
+    const GstFFT##ffttag##Complex *v, int elements)                           \
+{                                                                             \
+  int i;                                                                      \
+  gdouble maxmag = -9999;                                                     \
+  int maxidx = 0;                                                             \
+  for (i=0; i<elements; ++i) {                                                \
+    gdouble mag = magnitude##ffttag (v+i);                                    \
+    if (mag > maxmag) {                                                       \
+      maxmag = mag;                                                           \
+      maxidx = i;                                                             \
+    }                                                                         \
+  }                                                                           \
+  return maxidx / (gdouble) elements;                                         \
+}                                                                             \
+static gboolean is_zero_except_##ffttag (const GstFFT##ffttag##Complex *v,    \
+    int elements, gdouble spot)                                               \
+{                                                                             \
+  int i;                                                                      \
+  for (i=0; i<elements; ++i) {                                                \
+    gdouble pos = i / (gdouble) elements;                                     \
+    gdouble mag = magnitude##ffttag (v+i);                                    \
+    if (fabs (pos - spot) > 0.01) {                                           \
+      if (mag > -35.0) {                                                      \
+        GST_LOG("Found magnitude at %f : %f (peak at %f)\n", pos, mag, spot); \
+        return FALSE;                                                         \
+      }                                                                       \
+    }                                                                         \
+  }                                                                           \
+  return TRUE;                                                                \
+}                                                                             \
+static void check_main_frequency_spot_##ffttag (GstBuffer *buffer, gdouble    \
+    expected_spot)                                                            \
+{                                                                             \
+  GstMapInfo map;                                                             \
+  int num_samples;                                                            \
+  gdouble actual_spot;                                                        \
+  GstFFT##ffttag *ctx;                                                        \
+  GstFFT##ffttag##Complex *fftdata;                                           \
+                                                                              \
+  gst_buffer_map (buffer, &map, GST_MAP_READ);                                \
+                                                                              \
+  num_samples = map.size / sizeof(type) & ~1;                                 \
+  ctx = gst_fft_##ffttag2##_new (num_samples, FALSE);                         \
+  fftdata = g_new (GstFFT##ffttag##Complex, num_samples / 2 + 1);             \
+                                                                              \
+  gst_fft_##ffttag2##_window (ctx, (type*)map.data,                           \
+    GST_FFT_WINDOW_HAMMING);                                                  \
+  gst_fft_##ffttag2##_fft (ctx, (type*)map.data, fftdata);                    \
+                                                                              \
+  actual_spot = find_main_frequency_spot_##ffttag (fftdata,                   \
+    num_samples / 2 + 1);                                                     \
+  GST_LOG ("Expected spot: %.3f actual: %.3f %f", expected_spot, actual_spot, \
+    fabs (expected_spot - actual_spot));                                      \
+  fail_unless (fabs (expected_spot - actual_spot) < 0.05,                     \
+    "Actual main frequency spot is too far away from expected one");          \
+  fail_unless (is_zero_except_##ffttag (fftdata, num_samples / 2 + 1,         \
+    actual_spot), "One secondary peak in spectrum exceeds threshold");        \
+                                                                              \
+  gst_buffer_unmap (buffer, &map);                                            \
+                                                                              \
+  gst_fft_##ffttag2##_free (ctx);                                             \
+  g_free (fftdata);                                                           \
+}
+FFT_HELPERS (gint32, S32, s32, 2147483647.0);
+
+
+static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, format = (string) " GST_AUDIO_NE (S32))
+    );
+static GstStaticPadTemplate layer2_srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+static GstStaticPadTemplate layer3_srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+
+
+static void
+setup_input_pipeline (gchar const *stream_filename, GstElement ** pipeline,
+    GstElement ** appsink)
+{
+  GstElement *source, *parser;
+
+  *pipeline = gst_pipeline_new (NULL);
+  source = gst_element_factory_make ("filesrc", NULL);
+  parser = gst_element_factory_make ("mpegaudioparse", NULL);
+  *appsink = gst_element_factory_make ("appsink", NULL);
+
+  gst_bin_add_many (GST_BIN (*pipeline), source, parser, *appsink, NULL);
+  gst_element_link_many (source, parser, *appsink, NULL);
+
+  {
+    char *full_filename =
+        g_build_filename (GST_TEST_FILES_PATH, stream_filename, NULL);
+    g_object_set (G_OBJECT (source), "location", full_filename, NULL);
+    g_free (full_filename);
+  }
+
+  gst_element_set_state (*pipeline, GST_STATE_PLAYING);
+}
+
+static void
+cleanup_input_pipeline (GstElement * pipeline)
+{
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (pipeline);
+}
+
+static GstElement *
+setup_mpeg1layer2dec (void)
+{
+  GstElement *mpg123audiodec;
+  GstCaps *caps;
+
+  GST_DEBUG ("setup_mpeg1layer2dec");
+  mpg123audiodec = gst_check_setup_element ("mpg123audiodec");
+  mysrcpad = gst_check_setup_src_pad (mpg123audiodec, &layer2_srctemplate);
+  mysinkpad = gst_check_setup_sink_pad (mpg123audiodec, &sinktemplate);
+  gst_pad_set_active (mysrcpad, TRUE);
+  gst_pad_set_active (mysinkpad, TRUE);
+
+  /* This is necessary to trigger a set_format call in the decoder;
+   * fixed caps don't trigger it */
+  caps = gst_caps_new_simple ("audio/mpeg",
+      "mpegversion", G_TYPE_INT, 1,
+      "layer", G_TYPE_INT, 2,
+      "rate", G_TYPE_INT, 44100,
+      "channels", G_TYPE_INT, 1, "parsed", G_TYPE_BOOLEAN, TRUE, NULL);
+  gst_check_setup_events (mysrcpad, mpg123audiodec, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+
+  return mpg123audiodec;
+}
+
+static GstElement *
+setup_mpeg1layer3dec (void)
+{
+  GstElement *mpg123audiodec;
+  GstCaps *caps;
+
+  GST_DEBUG ("setup_mpeg1layer3dec");
+  mpg123audiodec = gst_check_setup_element ("mpg123audiodec");
+  mysrcpad = gst_check_setup_src_pad (mpg123audiodec, &layer3_srctemplate);
+  mysinkpad = gst_check_setup_sink_pad (mpg123audiodec, &sinktemplate);
+  gst_pad_set_active (mysrcpad, TRUE);
+  gst_pad_set_active (mysinkpad, TRUE);
+
+  /* This is necessary to trigger a set_format call in the decoder;
+   * fixed caps don't trigger it */
+  caps = gst_caps_new_simple ("audio/mpeg",
+      "mpegversion", G_TYPE_INT, 1,
+      "layer", G_TYPE_INT, 3,
+      "rate", G_TYPE_INT, 44100,
+      "channels", G_TYPE_INT, 1, "parsed", G_TYPE_BOOLEAN, TRUE, NULL);
+  gst_check_setup_events (mysrcpad, mpg123audiodec, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+
+  return mpg123audiodec;
+}
+
+static void
+cleanup_mpg123audiodec (GstElement * mpg123audiodec)
+{
+  GST_DEBUG ("cleanup_mpeg1layer2dec");
+  gst_element_set_state (mpg123audiodec, GST_STATE_NULL);
+
+  gst_pad_set_active (mysrcpad, FALSE);
+  gst_pad_set_active (mysinkpad, FALSE);
+  gst_check_teardown_src_pad (mpg123audiodec);
+  gst_check_teardown_sink_pad (mpg123audiodec);
+  gst_check_teardown_element (mpg123audiodec);
+}
+
+static void
+run_decoding_test (GstElement * mpg123audiodec, gchar const *filename)
+{
+  GstBus *bus;
+  unsigned int num_input_buffers, num_decoded_buffers;
+  gint expected_size;
+  GstCaps *out_caps, *caps;
+  GstAudioInfo audioinfo;
+  GstElement *input_pipeline, *input_appsink;
+  int i;
+  GstBuffer *outbuffer;
+
+  /* 440 Hz = frequency of sine wave in audio data
+   * 44100 Hz = sample rate
+   * (44100 / 2) Hz = Nyquist frequency */
+  static double const expected_frequency_spot = 440.0 / (44100.0 / 2.0);
+
+  fail_unless (gst_element_set_state (mpg123audiodec,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+  bus = gst_bus_new ();
+
+  gst_element_set_bus (mpg123audiodec, bus);
+
+  setup_input_pipeline (filename, &input_pipeline, &input_appsink);
+
+  num_input_buffers = 0;
+  while (TRUE) {
+    GstSample *sample;
+    GstBuffer *input_buffer;
+
+    sample = gst_app_sink_pull_sample (GST_APP_SINK (input_appsink));
+    if (sample == NULL)
+      break;
+
+    fail_unless (GST_IS_SAMPLE (sample));
+
+    input_buffer = gst_sample_get_buffer (sample);
+    fail_if (input_buffer == NULL);
+
+    /* This is done to be on the safe side - docs say lifetime of the input buffer
+     * depends *solely* on the sample */
+    input_buffer = gst_buffer_copy (input_buffer);
+
+    fail_unless_equals_int (gst_pad_push (mysrcpad, input_buffer), GST_FLOW_OK);
+
+    ++num_input_buffers;
+
+    gst_sample_unref (sample);
+  }
+
+  num_decoded_buffers = g_list_length (buffers);
+
+  /* check number of decoded buffers */
+  fail_unless_equals_int (num_decoded_buffers, num_input_buffers - 2);
+
+  caps = gst_pad_get_current_caps (mysinkpad);
+  GST_LOG ("output caps %" GST_PTR_FORMAT, caps);
+  fail_unless (gst_audio_info_from_caps (&audioinfo, caps),
+      "Getting audio info from caps failed");
+
+  /* check caps */
+  out_caps = gst_caps_new_simple ("audio/x-raw",
+      "format", G_TYPE_STRING, GST_AUDIO_NE (S32),
+      "layout", G_TYPE_STRING, "interleaved",
+      "rate", G_TYPE_INT, 44100, "channels", G_TYPE_INT, 1, NULL);
+
+  fail_unless (gst_caps_is_equal_fixed (caps, out_caps), "Incorrect out caps");
+
+  gst_caps_unref (out_caps);
+  gst_caps_unref (caps);
+
+  /* here, test if decoded data is a sine tone, and if the sine frequency is at the
+   * right spot in the spectrum */
+  for (i = 0; i < num_decoded_buffers; ++i) {
+    outbuffer = GST_BUFFER (buffers->data);
+    fail_if (outbuffer == NULL, "Invalid buffer retrieved");
+
+    /* MPEG 1 layer 2 uses 1152 samples per frame */
+    expected_size = 1152 * GST_AUDIO_INFO_BPF (&audioinfo);
+    fail_unless_equals_int (gst_buffer_get_size (outbuffer), expected_size);
+
+    check_main_frequency_spot_S32 (outbuffer, expected_frequency_spot);
+
+    buffers = g_list_remove (buffers, outbuffer);
+    gst_buffer_unref (outbuffer);
+    outbuffer = NULL;
+  }
+
+  g_list_free (buffers);
+  buffers = NULL;
+
+  cleanup_input_pipeline (input_pipeline);
+  gst_bus_set_flushing (bus, TRUE);
+  gst_element_set_bus (mpg123audiodec, NULL);
+  gst_object_unref (GST_OBJECT (bus));
+}
+
+
+GST_START_TEST (test_decode_mpeg1layer2)
+{
+  GstElement *mpg123audiodec;
+  mpg123audiodec = setup_mpeg1layer2dec ();
+  run_decoding_test (mpg123audiodec, MP2_STREAM_FILENAME);
+  cleanup_mpg123audiodec (mpg123audiodec);
+  mpg123audiodec = NULL;
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_decode_mpeg1layer3_cbr)
+{
+  GstElement *mpg123audiodec;
+  mpg123audiodec = setup_mpeg1layer3dec ();
+  run_decoding_test (mpg123audiodec, MP3_CBR_STREAM_FILENAME);
+  cleanup_mpg123audiodec (mpg123audiodec);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_decode_mpeg1layer3_vbr)
+{
+  GstElement *mpg123audiodec;
+  mpg123audiodec = setup_mpeg1layer3dec ();
+  run_decoding_test (mpg123audiodec, MP3_VBR_STREAM_FILENAME);
+  cleanup_mpg123audiodec (mpg123audiodec);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_decode_garbage_mpeg1layer2)
+{
+  GstElement *mpg123audiodec;
+  GstBuffer *inbuffer;
+  GstBus *bus;
+  int i, num_buffers;
+  guint32 *tmpbuf;
+
+  mpg123audiodec = setup_mpeg1layer2dec ();
+
+  fail_unless (gst_element_set_state (mpg123audiodec,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+  bus = gst_bus_new ();
+
+  /* initialize the buffer with something that is no mpeg2 */
+  tmpbuf = g_new (guint32, 4096);
+  for (i = 0; i < 4096; i++) {
+    tmpbuf[i] = i;
+  }
+  inbuffer = gst_buffer_new_wrapped (tmpbuf, 4096 * sizeof (guint32));
+
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+
+  gst_element_set_bus (mpg123audiodec, bus);
+
+  /* should be possible to push without problems but nothing gets decoded */
+  fail_unless_equals_int (gst_pad_push (mysrcpad, inbuffer), GST_FLOW_OK);
+
+  num_buffers = g_list_length (buffers);
+
+  /* should be 0 buffers as decoding should've been impossible */
+  fail_unless_equals_int (num_buffers, 0);
+
+  g_list_free (buffers);
+  buffers = NULL;
+
+  gst_bus_set_flushing (bus, TRUE);
+  gst_element_set_bus (mpg123audiodec, NULL);
+  gst_object_unref (GST_OBJECT (bus));
+  cleanup_mpg123audiodec (mpg123audiodec);
+  mpg123audiodec = NULL;
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_decode_garbage_mpeg1layer3)
+{
+  GstElement *mpg123audiodec;
+  GstBuffer *inbuffer;
+  GstBus *bus;
+  int i, num_buffers;
+  guint32 *tmpbuf;
+
+  mpg123audiodec = setup_mpeg1layer3dec ();
+
+  fail_unless (gst_element_set_state (mpg123audiodec,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+  bus = gst_bus_new ();
+
+  /* initialize the buffer with something that is no mpeg2 */
+  tmpbuf = g_new (guint32, 4096);
+  for (i = 0; i < 4096; i++) {
+    tmpbuf[i] = i;
+  }
+  inbuffer = gst_buffer_new_wrapped (tmpbuf, 4096 * sizeof (guint32));
+
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+
+  gst_element_set_bus (mpg123audiodec, bus);
+
+  /* should be possible to push without problems but nothing gets decoded */
+  fail_unless_equals_int (gst_pad_push (mysrcpad, inbuffer), GST_FLOW_OK);
+
+  num_buffers = g_list_length (buffers);
+
+  /* should be 0 buffers as decoding should've been impossible */
+  fail_unless_equals_int (num_buffers, 0);
+
+  g_list_free (buffers);
+  buffers = NULL;
+
+  gst_bus_set_flushing (bus, TRUE);
+  gst_element_set_bus (mpg123audiodec, NULL);
+  gst_object_unref (GST_OBJECT (bus));
+  cleanup_mpg123audiodec (mpg123audiodec);
+  mpg123audiodec = NULL;
+}
+
+GST_END_TEST;
+
+
+static gboolean
+is_test_file_available (gchar const *filename)
+{
+  gboolean ret;
+  gchar *full_filename;
+  gchar *cwd;
+
+  cwd = g_get_current_dir ();
+  full_filename = g_build_filename (cwd, GST_TEST_FILES_PATH, filename, NULL);
+  ret =
+      g_file_test (full_filename, G_FILE_TEST_IS_REGULAR | G_FILE_TEST_EXISTS);
+  g_free (full_filename);
+  g_free (cwd);
+  return ret;
+}
+
+static Suite *
+mpg123audiodec_suite (void)
+{
+  GstRegistry *registry;
+  Suite *s = suite_create ("mpg123audiodec");
+  TCase *tc_chain = tcase_create ("general");
+
+  registry = gst_registry_get ();
+
+  suite_add_tcase (s, tc_chain);
+  if (gst_registry_check_feature_version (registry, "filesrc",
+          GST_VERSION_MAJOR, GST_VERSION_MINOR, 0) &&
+      gst_registry_check_feature_version (registry, "mpegaudioparse",
+          GST_VERSION_MAJOR, GST_VERSION_MINOR, 0) &&
+      gst_registry_check_feature_version (registry, "appsrc",
+          GST_VERSION_MAJOR, GST_VERSION_MINOR, 0)) {
+    if (is_test_file_available (MP2_STREAM_FILENAME))
+      tcase_add_test (tc_chain, test_decode_mpeg1layer2);
+    if (is_test_file_available (MP3_CBR_STREAM_FILENAME))
+      tcase_add_test (tc_chain, test_decode_mpeg1layer3_cbr);
+    if (is_test_file_available (MP3_VBR_STREAM_FILENAME))
+      tcase_add_test (tc_chain, test_decode_mpeg1layer3_vbr);
+  }
+  tcase_add_test (tc_chain, test_decode_garbage_mpeg1layer2);
+  tcase_add_test (tc_chain, test_decode_garbage_mpeg1layer3);
+
+  return s;
+}
+
+
+GST_CHECK_MAIN (mpg123audiodec)
diff --git a/tests/check/elements/rtp-payloading.c b/tests/check/elements/rtp-payloading.c
index c68b2ba7b..e952207c4 100644
--- a/tests/check/elements/rtp-payloading.c
+++ b/tests/check/elements/rtp-payloading.c
@@ -743,6 +743,32 @@ GST_START_TEST (rtp_h264depay_avc)
   fail_unless (gst_structure_has_field (st, "profile"));
   val = gst_structure_get_value (st, "codec_data");
   fail_unless (val != NULL);
+  fail_unless (GST_VALUE_HOLDS_BUFFER (val));
+  /* check codec_data, shouldn't contain trailing zeros */
+  buf = gst_value_get_buffer (val);
+  fail_unless (gst_buffer_map (buf, &map, GST_MAP_READ));
+  {
+    guint num_sps, num_pps, len;
+    guint8 *data;
+
+    GST_MEMDUMP ("H.264 codec_data", map.data, map.size);
+    fail_unless_equals_int (map.data[0], 1);
+    num_sps = map.data[5] & 0x1f;
+    data = map.data + 6;
+    fail_unless_equals_int (num_sps, 1);
+    len = GST_READ_UINT16_BE (data);
+    data += 2;
+    /* make sure there are no trailing zeros in the SPS */
+    fail_unless (data[len - 1] != 0);
+    data += len;
+    num_pps = *data++;
+    fail_unless_equals_int (num_pps, 1);
+    len = GST_READ_UINT16_BE (data);
+    data += 2;
+    /* make sure there are no trailing zeros in the PPS */
+    fail_unless (data[len - 1] != 0);
+  }
+  gst_buffer_unmap (buf, &map);
 
   buf = gst_sample_get_buffer (s);
   fail_unless (gst_buffer_map (buf, &map, GST_MAP_READ));
diff --git a/tests/check/elements/rtpbin.c b/tests/check/elements/rtpbin.c
index 67bbfdd2f..981cd6487 100644
--- a/tests/check/elements/rtpbin.c
+++ b/tests/check/elements/rtpbin.c
@@ -21,6 +21,10 @@
  */
 
 #include <gst/check/gstcheck.h>
+#include <gst/check/gsttestclock.h>
+
+#include <gst/rtp/gstrtpbuffer.h>
+#include <gst/rtp/gstrtcpbuffer.h>
 
 GST_START_TEST (test_pads)
 {
@@ -572,7 +576,7 @@ aux_sender_cb (GstElement * rtpbin, guint sessid, gpointer user_data)
   GstElement *bin;
   GstPad *srcpad, *sinkpad;
 
-  bin = gst_bin_new (NULL);
+  bin = (GstElement *) user_data;
 
   GST_DEBUG ("making AUX sender");
   sinkpad = gst_ghost_pad_new_no_target ("sink_2", GST_PAD_SINK);
@@ -593,11 +597,14 @@ GST_START_TEST (test_aux_sender)
   GstElement *rtpbin;
   GstPad *rtp_sink1, *rtp_src, *rtcp_src;
   gulong id;
+  GstElement *aux_sender = gst_object_ref_sink (gst_bin_new ("aux-sender"));
+
+  gst_object_ref (aux_sender);
 
   rtpbin = gst_element_factory_make ("rtpbin", "rtpbin");
 
   id = g_signal_connect (rtpbin, "request-aux-sender",
-      (GCallback) aux_sender_cb, NULL);
+      (GCallback) aux_sender_cb, aux_sender);
 
   rtp_sink1 = gst_element_get_request_pad (rtpbin, "send_rtp_sink_2");
   fail_unless (rtp_sink1 != NULL);
@@ -627,6 +634,15 @@ GST_START_TEST (test_aux_sender)
   gst_element_release_request_pad (rtpbin, rtp_sink1);
   gst_object_unref (rtp_sink1);
 
+  /* We have sinked the initial reference before returning it
+   * in the request callback, the ref count should now be 1 because
+   * the return of the signal is transfer full, and rtpbin should
+   * have released that reference by now, but we had taken an
+   * extra reference to perform this check
+   */
+  ASSERT_OBJECT_REFCOUNT (aux_sender, "aux-sender", 1);
+
+  gst_object_unref (aux_sender);
   gst_object_unref (rtpbin);
 }
 
@@ -689,6 +705,201 @@ GST_START_TEST (test_aux_receiver)
 
 GST_END_TEST;
 
+GST_START_TEST (test_sender_eos)
+{
+  GstElement *rtpsession;
+  GstBuffer *rtp_buffer;
+  GstBuffer *rtcp_buffer;
+  GstRTPBuffer rtpbuf = GST_RTP_BUFFER_INIT;
+  GstRTCPBuffer rtcpbuf = GST_RTCP_BUFFER_INIT;
+  GstRTCPPacket rtcppacket;
+  static GstStaticPadTemplate recv_tmpl =
+      GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("ANY"));
+  GstPad *send_rtp_sink;
+  GstPad *recv_rtcp_sink;
+  GstCaps *caps;
+  GstSegment segment;
+  GstPad *rtp_sink, *rtcp_sink;
+  GstClock *clock;
+  GstTestClock *tclock;
+  GstStructure *s;
+  guint ssrc = 1;
+  guint32 ssrc_in, packet_count, octet_count;
+  gboolean got_bye = FALSE;
+
+  clock = gst_test_clock_new ();
+  gst_system_clock_set_default (clock);
+  tclock = GST_TEST_CLOCK (clock);
+  gst_test_clock_set_time (tclock, 0);
+
+  rtpsession = gst_element_factory_make ("rtpsession", NULL);
+  send_rtp_sink = gst_element_get_request_pad (rtpsession, "send_rtp_sink");
+  recv_rtcp_sink = gst_element_get_request_pad (rtpsession, "recv_rtcp_sink");
+
+
+  rtp_sink = gst_check_setup_sink_pad_by_name (rtpsession, &recv_tmpl,
+      "send_rtp_src");
+  rtcp_sink = gst_check_setup_sink_pad_by_name (rtpsession, &recv_tmpl,
+      "send_rtcp_src");
+
+  gst_pad_set_active (rtp_sink, TRUE);
+  gst_pad_set_active (rtcp_sink, TRUE);
+
+  gst_element_set_state (rtpsession, GST_STATE_PLAYING);
+
+  /* Send initial events */
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_send_event (send_rtp_sink,
+          gst_event_new_stream_start ("id")));
+  fail_unless (gst_pad_send_event (send_rtp_sink,
+          gst_event_new_segment (&segment)));
+
+  fail_unless (gst_pad_send_event (recv_rtcp_sink,
+          gst_event_new_stream_start ("id")));
+  fail_unless (gst_pad_send_event (recv_rtcp_sink,
+          gst_event_new_segment (&segment)));
+
+  /* Get the suggested SSRC from the rtpsession */
+
+  caps = gst_pad_query_caps (send_rtp_sink, NULL);
+  s = gst_caps_get_structure (caps, 0);
+  gst_structure_get (s, "ssrc", G_TYPE_UINT, &ssrc, NULL);
+  gst_caps_unref (caps);
+
+  /* Send a RTP packet */
+
+  rtp_buffer = gst_rtp_buffer_new_allocate (10, 0, 0);
+  gst_rtp_buffer_map (rtp_buffer, GST_MAP_READWRITE, &rtpbuf);
+  gst_rtp_buffer_set_ssrc (&rtpbuf, 1);
+  gst_rtp_buffer_set_seq (&rtpbuf, 0);
+  gst_rtp_buffer_unmap (&rtpbuf);
+
+  fail_unless (gst_pad_chain (send_rtp_sink, rtp_buffer) == GST_FLOW_OK);
+
+  /* Make sure it went through */
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  fail_unless_equals_pointer (buffers->data, rtp_buffer);
+  gst_check_drop_buffers ();
+
+  /* Advance time and send a packet to prevent source sender timeout */
+  gst_test_clock_set_time (tclock, 1 * GST_SECOND);
+
+  /* Just send a send packet to prevent timeout */
+  rtp_buffer = gst_rtp_buffer_new_allocate (10, 0, 0);
+  gst_rtp_buffer_map (rtp_buffer, GST_MAP_READWRITE, &rtpbuf);
+  gst_rtp_buffer_set_ssrc (&rtpbuf, 1);
+  gst_rtp_buffer_set_seq (&rtpbuf, 1);
+  gst_rtp_buffer_set_timestamp (&rtpbuf, 10);
+  gst_rtp_buffer_unmap (&rtpbuf);
+
+  fail_unless (gst_pad_chain (send_rtp_sink, rtp_buffer) == GST_FLOW_OK);
+
+  /* Make sure it went through */
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  fail_unless_equals_pointer (buffers->data, rtp_buffer);
+  gst_check_drop_buffers ();
+
+  /* Advance clock twice and we shoudl have one RTCP packet at least */
+  gst_test_clock_crank (tclock);
+  gst_test_clock_crank (tclock);
+
+  g_mutex_lock (&check_mutex);
+  while (buffers == NULL)
+    g_cond_wait (&check_cond, &check_mutex);
+
+  fail_unless (gst_rtcp_buffer_map (buffers->data, GST_MAP_READ, &rtcpbuf));
+
+  fail_unless (gst_rtcp_buffer_get_first_packet (&rtcpbuf, &rtcppacket));
+
+  fail_unless_equals_int (gst_rtcp_packet_get_type (&rtcppacket),
+      GST_RTCP_TYPE_SR);
+  gst_rtcp_packet_sr_get_sender_info (&rtcppacket, &ssrc_in, NULL, NULL,
+      &packet_count, &octet_count);
+  fail_unless_equals_int (packet_count, 2);
+  fail_unless_equals_int (octet_count, 20);
+
+  fail_unless (gst_rtcp_packet_move_to_next (&rtcppacket));
+  fail_unless_equals_int (gst_rtcp_packet_get_type (&rtcppacket),
+      GST_RTCP_TYPE_SDES);
+
+  gst_rtcp_buffer_unmap (&rtcpbuf);
+  gst_check_drop_buffers ();
+
+  g_mutex_unlock (&check_mutex);
+
+
+  /* Create and send a valid RTCP reply packet */
+  rtcp_buffer = gst_rtcp_buffer_new (1500);
+  gst_rtcp_buffer_map (rtcp_buffer, GST_MAP_READWRITE, &rtcpbuf);
+  gst_rtcp_buffer_add_packet (&rtcpbuf, GST_RTCP_TYPE_RR, &rtcppacket);
+  gst_rtcp_packet_rr_set_ssrc (&rtcppacket, ssrc + 1);
+  gst_rtcp_packet_add_rb (&rtcppacket, ssrc, 0, 0, 0, 0, 0, 0);
+  gst_rtcp_buffer_add_packet (&rtcpbuf, GST_RTCP_TYPE_SDES, &rtcppacket);
+  gst_rtcp_packet_sdes_add_item (&rtcppacket, ssrc + 1);
+  gst_rtcp_packet_sdes_add_entry (&rtcppacket, GST_RTCP_SDES_CNAME, 3,
+      (guint8 *) "a@a");
+  gst_rtcp_packet_sdes_add_entry (&rtcppacket, GST_RTCP_SDES_NAME, 2,
+      (guint8 *) "aa");
+  gst_rtcp_packet_sdes_add_entry (&rtcppacket, GST_RTCP_SDES_END, 0,
+      (guint8 *) "");
+  gst_rtcp_buffer_unmap (&rtcpbuf);
+  fail_unless (gst_pad_chain (recv_rtcp_sink, rtcp_buffer) == GST_FLOW_OK);
+
+
+  /* Send a EOS to trigger sending a BYE message */
+  fail_unless (gst_pad_send_event (send_rtp_sink, gst_event_new_eos ()));
+
+  /* Crank to process EOS and wait for BYE */
+  for (;;) {
+    gst_test_clock_crank (tclock);
+    g_mutex_lock (&check_mutex);
+    while (buffers == NULL)
+      g_cond_wait (&check_cond, &check_mutex);
+
+    fail_unless (gst_rtcp_buffer_map (g_list_last (buffers)->data, GST_MAP_READ,
+            &rtcpbuf));
+    fail_unless (gst_rtcp_buffer_get_first_packet (&rtcpbuf, &rtcppacket));
+
+    while (gst_rtcp_packet_move_to_next (&rtcppacket)) {
+      if (gst_rtcp_packet_get_type (&rtcppacket) == GST_RTCP_TYPE_BYE) {
+        got_bye = TRUE;
+        break;
+      }
+    }
+    g_mutex_unlock (&check_mutex);
+    gst_rtcp_buffer_unmap (&rtcpbuf);
+
+    if (got_bye)
+      break;
+  }
+
+  gst_check_drop_buffers ();
+
+
+  fail_unless (GST_PAD_IS_EOS (rtp_sink));
+  fail_unless (GST_PAD_IS_EOS (rtcp_sink));
+
+  gst_pad_set_active (rtp_sink, FALSE);
+  gst_pad_set_active (rtcp_sink, FALSE);
+
+  gst_check_teardown_pad_by_name (rtpsession, "send_rtp_src");
+  gst_check_teardown_pad_by_name (rtpsession, "send_rtcp_src");
+  gst_element_release_request_pad (rtpsession, send_rtp_sink);
+  gst_object_unref (send_rtp_sink);
+  gst_element_release_request_pad (rtpsession, recv_rtcp_sink);
+  gst_object_unref (recv_rtcp_sink);
+
+  gst_check_teardown_element (rtpsession);
+
+  gst_system_clock_set_default (NULL);
+  gst_object_unref (clock);
+
+}
+
+GST_END_TEST;
+
 static Suite *
 rtpbin_suite (void)
 {
@@ -705,6 +916,7 @@ rtpbin_suite (void)
   tcase_add_test (tc_chain, test_decoder);
   tcase_add_test (tc_chain, test_aux_sender);
   tcase_add_test (tc_chain, test_aux_receiver);
+  tcase_add_test (tc_chain, test_sender_eos);
 
   return s;
 }
diff --git a/tests/check/elements/rtph264.c b/tests/check/elements/rtph264.c
new file mode 100644
index 000000000..323e1bfa5
--- /dev/null
+++ b/tests/check/elements/rtph264.c
@@ -0,0 +1,311 @@
+/* GStreamer RTP H.264 unit test
+ *
+ * Copyright (C) 2017 Centricular Ltd
+ *   @author: Tim-Philipp Müller <tim@centricular.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.
+ */
+
+#include <gst/check/check.h>
+#include <gst/app/app.h>
+
+#define ALLOCATOR_CUSTOM_SYSMEM "CustomSysMem"
+
+static GstAllocator *custom_sysmem_allocator;   /* NULL */
+
+/* Custom memory */
+
+typedef struct
+{
+  GstMemory mem;
+  guint8 *data;
+  guint8 *allocdata;
+} CustomSysmem;
+
+static CustomSysmem *
+custom_sysmem_new (GstMemoryFlags flags, gsize maxsize, gsize align,
+    gsize offset, gsize size)
+{
+  gsize aoffset, padding;
+  CustomSysmem *mem;
+
+  /* ensure configured alignment */
+  align |= gst_memory_alignment;
+  /* allocate more to compensate for alignment */
+  maxsize += align;
+
+  mem = g_new0 (CustomSysmem, 1);
+
+  mem->allocdata = g_malloc (maxsize);
+
+  mem->data = mem->allocdata;
+
+  /* do alignment */
+  if ((aoffset = ((guintptr) mem->data & align))) {
+    aoffset = (align + 1) - aoffset;
+    mem->data += aoffset;
+    maxsize -= aoffset;
+  }
+
+  if (offset && (flags & GST_MEMORY_FLAG_ZERO_PREFIXED))
+    memset (mem->data, 0, offset);
+
+  padding = maxsize - (offset + size);
+  if (padding && (flags & GST_MEMORY_FLAG_ZERO_PADDED))
+    memset (mem->data + offset + size, 0, padding);
+
+  gst_memory_init (GST_MEMORY_CAST (mem), flags, custom_sysmem_allocator,
+      NULL, maxsize, align, offset, size);
+
+  return mem;
+}
+
+static gpointer
+custom_sysmem_map (CustomSysmem * mem, gsize maxsize, GstMapFlags flags)
+{
+  return mem->data;
+}
+
+static gboolean
+custom_sysmem_unmap (CustomSysmem * mem)
+{
+  return TRUE;
+}
+
+static CustomSysmem *
+custom_sysmem_copy (CustomSysmem * mem, gssize offset, gsize size)
+{
+  g_return_val_if_reached (NULL);
+}
+
+static CustomSysmem *
+custom_sysmem_share (CustomSysmem * mem, gssize offset, gsize size)
+{
+  g_return_val_if_reached (NULL);
+}
+
+static gboolean
+custom_sysmem_is_span (CustomSysmem * mem1, CustomSysmem * mem2, gsize * offset)
+{
+  g_return_val_if_reached (FALSE);
+}
+
+/* Custom allocator */
+
+typedef struct
+{
+  GstAllocator allocator;
+} CustomSysmemAllocator;
+
+typedef struct
+{
+  GstAllocatorClass allocator_class;
+} CustomSysmemAllocatorClass;
+
+GType custom_sysmem_allocator_get_type (void);
+G_DEFINE_TYPE (CustomSysmemAllocator, custom_sysmem_allocator,
+    GST_TYPE_ALLOCATOR);
+
+static GstMemory *
+custom_sysmem_allocator_alloc (GstAllocator * allocator, gsize size,
+    GstAllocationParams * params)
+{
+  gsize maxsize = size + params->prefix + params->padding;
+
+  return (GstMemory *) custom_sysmem_new (params->flags,
+      maxsize, params->align, params->prefix, size);
+}
+
+static void
+custom_sysmem_allocator_free (GstAllocator * allocator, GstMemory * mem)
+{
+  CustomSysmem *csmem = (CustomSysmem *) mem;
+
+  g_free (csmem->allocdata);
+  g_free (csmem);
+}
+
+static void
+custom_sysmem_allocator_class_init (CustomSysmemAllocatorClass * klass)
+{
+  GstAllocatorClass *allocator_class = (GstAllocatorClass *) klass;
+
+  allocator_class->alloc = custom_sysmem_allocator_alloc;
+  allocator_class->free = custom_sysmem_allocator_free;
+}
+
+static void
+custom_sysmem_allocator_init (CustomSysmemAllocator * allocator)
+{
+  GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator);
+
+  alloc->mem_type = ALLOCATOR_CUSTOM_SYSMEM;
+  alloc->mem_map = (GstMemoryMapFunction) custom_sysmem_map;
+  alloc->mem_unmap = (GstMemoryUnmapFunction) custom_sysmem_unmap;
+  alloc->mem_copy = (GstMemoryCopyFunction) custom_sysmem_copy;
+  alloc->mem_share = (GstMemoryShareFunction) custom_sysmem_share;
+  alloc->mem_is_span = (GstMemoryIsSpanFunction) custom_sysmem_is_span;
+}
+
+/* AppSink subclass proposing our custom allocator to upstream */
+
+typedef struct
+{
+  GstAppSink appsink;
+} CMemAppSink;
+
+typedef struct
+{
+  GstAppSinkClass appsink;
+} CMemAppSinkClass;
+
+GType c_mem_app_sink_get_type (void);
+
+G_DEFINE_TYPE (CMemAppSink, c_mem_app_sink, GST_TYPE_APP_SINK);
+
+static void
+c_mem_app_sink_init (CMemAppSink * cmemsink)
+{
+}
+
+static gboolean
+c_mem_app_sink_propose_allocation (GstBaseSink * sink, GstQuery * query)
+{
+  gst_query_add_allocation_param (query, custom_sysmem_allocator, NULL);
+  return TRUE;
+}
+
+static void
+c_mem_app_sink_class_init (CMemAppSinkClass * klass)
+{
+  GstBaseSinkClass *basesink_class = (GstBaseSinkClass *) klass;
+
+  basesink_class->propose_allocation = c_mem_app_sink_propose_allocation;
+}
+
+#define RTP_H264_FILE GST_TEST_FILES_PATH G_DIR_SEPARATOR_S "h264.rtp"
+
+GST_START_TEST (test_rtph264depay_with_downstream_allocator)
+{
+  GstElement *pipeline, *src, *depay, *sink;
+  GstMemory *mem;
+  GstSample *sample;
+  GstBuffer *buf;
+  GstCaps *caps;
+
+  custom_sysmem_allocator =
+      g_object_new (custom_sysmem_allocator_get_type (), NULL);
+
+  pipeline = gst_pipeline_new ("pipeline");
+
+  src = gst_element_factory_make ("appsrc", NULL);
+
+  caps = gst_caps_new_simple ("application/x-rtp",
+      "media", G_TYPE_STRING, "video",
+      "payload", G_TYPE_INT, 96,
+      "clock-rate", G_TYPE_INT, 90000,
+      "encoding-name", G_TYPE_STRING, "H264",
+      "ssrc", G_TYPE_UINT, 1990683810,
+      "timestamp-offset", G_TYPE_UINT, 3697583446,
+      "seqnum-offset", G_TYPE_UINT, 15568,
+      "a-framerate", G_TYPE_STRING, "30", NULL);
+  g_object_set (src, "format", GST_FORMAT_TIME, "caps", caps, NULL);
+  gst_bin_add (GST_BIN (pipeline), src);
+  gst_caps_unref (caps);
+
+  depay = gst_element_factory_make ("rtph264depay", NULL);
+  gst_bin_add (GST_BIN (pipeline), depay);
+
+  sink = g_object_new (c_mem_app_sink_get_type (), NULL);
+  gst_bin_add (GST_BIN (pipeline), sink);
+
+  gst_element_link_many (src, depay, sink, NULL);
+
+  gst_element_set_state (pipeline, GST_STATE_PAUSED);
+
+  {
+    gchar *data, *pdata;
+    gsize len;
+
+    fail_unless (g_file_get_contents (RTP_H264_FILE, &data, &len, NULL));
+    fail_unless (len > 2);
+
+    pdata = data;
+    while (len > 2) {
+      GstFlowReturn flow;
+      guint16 packet_len;
+
+      packet_len = GST_READ_UINT16_BE (pdata);
+      GST_INFO ("rtp packet length: %u (bytes left: %u)", packet_len,
+          (guint) len);
+      fail_unless (len >= 2 + packet_len);
+
+      flow = gst_app_src_push_buffer (GST_APP_SRC (src),
+          gst_buffer_new_wrapped (g_memdup (pdata + 2, packet_len),
+              packet_len));
+
+      fail_unless_equals_int (flow, GST_FLOW_OK);
+
+      pdata += 2 + packet_len;
+      len -= 2 + packet_len;
+    }
+
+    g_free (data);
+  }
+
+  gst_app_src_end_of_stream (GST_APP_SRC (src));
+
+  sample = gst_app_sink_pull_preroll (GST_APP_SINK (sink));
+  fail_unless (sample != NULL);
+
+  buf = gst_sample_get_buffer (sample);
+
+  GST_LOG ("buffer has %u memories", gst_buffer_n_memory (buf));
+  GST_LOG ("buffer size: %u", (guint) gst_buffer_get_size (buf));
+
+  fail_unless (gst_buffer_n_memory (buf) > 0);
+  mem = gst_buffer_peek_memory (buf, 0);
+  fail_unless (mem != NULL);
+
+  GST_LOG ("buffer memory type: %s", mem->allocator->mem_type);
+  fail_unless (gst_memory_is_type (mem, ALLOCATOR_CUSTOM_SYSMEM));
+
+  gst_sample_unref (sample);
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+
+  gst_object_unref (pipeline);
+
+  g_object_unref (custom_sysmem_allocator);
+  custom_sysmem_allocator = NULL;
+}
+
+GST_END_TEST;
+
+static Suite *
+rtph264_suite (void)
+{
+  Suite *s = suite_create ("rtph264");
+  TCase *tc_chain;
+
+  tc_chain = tcase_create ("rtph264depay");
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_rtph264depay_with_downstream_allocator);
+
+  return s;
+}
+
+GST_CHECK_MAIN (rtph264);
diff --git a/tests/check/elements/rtpsession.c b/tests/check/elements/rtpsession.c
index c4d218587..94925ee66 100644
--- a/tests/check/elements/rtpsession.c
+++ b/tests/check/elements/rtpsession.c
@@ -25,53 +25,49 @@
 #include <gst/check/gstharness.h>
 #include <gst/check/gstcheck.h>
 #include <gst/check/gsttestclock.h>
+#include <gst/check/gstharness.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
 #include <gst/rtp/gstrtcpbuffer.h>
 #include <gst/net/gstnetaddressmeta.h>
 
-static const guint payload_size = 160;
-static const guint clock_rate = 8000;
-static const guint payload_type = 0;
-
-typedef struct
-{
-  GstElement *session;
-  GstPad *src, *rtcp_sink, *rtpsrc;
-  GstClock *clock;
-  GAsyncQueue *rtcp_queue;
-} TestData;
+#define TEST_BUF_CLOCK_RATE 8000
+#define TEST_BUF_PT 0
+#define TEST_BUF_SSRC 0x01BADBAD
+#define TEST_BUF_MS  20
+#define TEST_BUF_DURATION (TEST_BUF_MS * GST_MSECOND)
+#define TEST_BUF_SIZE (64000 * TEST_BUF_MS / 1000)
+#define TEST_RTP_TS_DURATION (TEST_BUF_CLOCK_RATE * TEST_BUF_MS / 1000)
 
 static GstCaps *
 generate_caps (void)
 {
   return gst_caps_new_simple ("application/x-rtp",
-      "clock-rate", G_TYPE_INT, clock_rate,
-      "payload-type", G_TYPE_INT, payload_type, NULL);
+      "clock-rate", G_TYPE_INT, TEST_BUF_CLOCK_RATE,
+      "payload", G_TYPE_INT, TEST_BUF_PT,
+      NULL);
 }
 
 static GstBuffer *
-generate_test_buffer (GstClockTime gst_ts,
-    gboolean marker_bit, guint seq_num, guint32 rtp_ts, guint ssrc)
+generate_test_buffer_full (GstClockTime dts,
+    guint seq_num, guint32 rtp_ts, guint ssrc)
 {
   GstBuffer *buf;
   guint8 *payload;
   guint i;
   GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
 
-  buf = gst_rtp_buffer_new_allocate (payload_size, 0, 0);
-  GST_BUFFER_DTS (buf) = gst_ts;
-  GST_BUFFER_PTS (buf) = gst_ts;
+  buf = gst_rtp_buffer_new_allocate (TEST_BUF_SIZE, 0, 0);
+  GST_BUFFER_DTS (buf) = dts;
 
   gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtp);
-  gst_rtp_buffer_set_payload_type (&rtp, payload_type);
-  gst_rtp_buffer_set_marker (&rtp, marker_bit);
+  gst_rtp_buffer_set_payload_type (&rtp, TEST_BUF_PT);
   gst_rtp_buffer_set_seq (&rtp, seq_num);
   gst_rtp_buffer_set_timestamp (&rtp, rtp_ts);
   gst_rtp_buffer_set_ssrc (&rtp, ssrc);
 
   payload = gst_rtp_buffer_get_payload (&rtp);
-  for (i = 0; i < payload_size; i++)
+  for (i = 0; i < TEST_BUF_SIZE; i++)
     payload[i] = 0xff;
 
   gst_rtp_buffer_unmap (&rtp);
@@ -79,295 +75,245 @@ generate_test_buffer (GstClockTime gst_ts,
   return buf;
 }
 
-static GstFlowReturn
-test_sink_pad_chain_cb (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+static GstBuffer *
+generate_test_buffer (guint seq_num, guint ssrc)
 {
-  TestData *data = gst_pad_get_element_private (pad);
-  g_async_queue_push (data->rtcp_queue, buffer);
-  GST_DEBUG ("chained");
-  return GST_FLOW_OK;
+  return generate_test_buffer_full (seq_num * TEST_BUF_DURATION,
+      seq_num, seq_num * TEST_RTP_TS_DURATION, ssrc);
 }
 
+typedef struct
+{
+  GstHarness *send_rtp_h;
+  GstHarness *recv_rtp_h;
+  GstHarness *rtcp_h;
+
+  GstElement *session;
+  GObject *internal_session;
+  GstTestClock *testclock;
+  GstCaps *caps;
+} SessionHarness;
+
 static GstCaps *
-pt_map_requested (GstElement * elemen, guint pt, gpointer data)
+_pt_map_requested (GstElement * element, guint pt, gpointer data)
 {
-  return generate_caps ();
+  SessionHarness *h = data;
+  return gst_caps_copy (h->caps);
+}
+
+static SessionHarness *
+session_harness_new (void)
+{
+  SessionHarness *h = g_new0 (SessionHarness, 1);
+  h->caps = generate_caps ();
+
+  h->testclock = GST_TEST_CLOCK_CAST (gst_test_clock_new ());
+  gst_system_clock_set_default (GST_CLOCK_CAST (h->testclock));
+
+  h->session = gst_element_factory_make ("rtpsession", NULL);
+  gst_element_set_clock (h->session, GST_CLOCK_CAST (h->testclock));
+
+  h->send_rtp_h = gst_harness_new_with_element (h->session,
+      "send_rtp_sink", "send_rtp_src");
+  gst_harness_set_src_caps (h->send_rtp_h, gst_caps_copy (h->caps));
+
+  h->recv_rtp_h = gst_harness_new_with_element (h->session,
+      "recv_rtp_sink", "recv_rtp_src");
+  gst_harness_set_src_caps (h->recv_rtp_h, gst_caps_copy (h->caps));
+
+  h->rtcp_h = gst_harness_new_with_element (h->session,
+      "recv_rtcp_sink", "send_rtcp_src");
+  gst_harness_set_src_caps_str (h->rtcp_h, "application/x-rtcp");
+
+  g_signal_connect (h->session, "request-pt-map",
+      (GCallback) _pt_map_requested, h);
+
+  g_object_get (h->session, "internal-session", &h->internal_session, NULL);
+
+  return h;
 }
 
 static void
-destroy_testharness (TestData * data)
+session_harness_free (SessionHarness * h)
 {
-  g_assert_cmpint (gst_element_set_state (data->session, GST_STATE_NULL),
-      ==, GST_STATE_CHANGE_SUCCESS);
-  gst_object_unref (data->session);
-  data->session = NULL;
+  gst_system_clock_set_default (NULL);
 
-  gst_object_unref (data->src);
-  data->src = NULL;
+  gst_caps_unref (h->caps);
+  gst_object_unref (h->testclock);
 
-  gst_object_unref (data->rtcp_sink);
-  data->rtcp_sink = NULL;
+  gst_harness_teardown (h->rtcp_h);
+  gst_harness_teardown (h->recv_rtp_h);
+  gst_harness_teardown (h->send_rtp_h);
 
-  gst_object_unref (data->rtpsrc);
-  data->rtpsrc = NULL;
+  g_object_unref (h->internal_session);
+  gst_object_unref (h->session);
+  g_free (h);
+}
 
-  gst_object_unref (data->clock);
-  data->clock = NULL;
+static GstFlowReturn
+session_harness_send_rtp (SessionHarness * h, GstBuffer * buf)
+{
+  return gst_harness_push (h->send_rtp_h, buf);
+}
 
-  g_async_queue_unref (data->rtcp_queue);
-  data->rtcp_queue = NULL;
+static GstFlowReturn
+session_harness_recv_rtp (SessionHarness * h, GstBuffer * buf)
+{
+  return gst_harness_push (h->recv_rtp_h, buf);
+}
+
+static GstFlowReturn
+session_harness_recv_rtcp (SessionHarness * h, GstBuffer * buf)
+{
+  return gst_harness_push (h->rtcp_h, buf);
+}
+
+static GstBuffer *
+session_harness_pull_rtcp (SessionHarness * h)
+{
+  return gst_harness_pull (h->rtcp_h);
 }
 
 static void
-setup_testharness (TestData * data, gboolean session_as_sender)
+session_harness_crank_clock (SessionHarness * h)
 {
-  GstPad *rtp_sink_pad, *rtcp_src_pad, *rtp_src_pad;
-  GstSegment seg;
-  GstMiniObject *obj;
-  GstCaps *caps;
+  gst_test_clock_crank (h->testclock);
+}
 
-  data->clock = gst_test_clock_new ();
-  GST_DEBUG ("Setting default system clock to test clock");
-  gst_system_clock_set_default (data->clock);
-  g_assert (data->clock);
-  gst_test_clock_set_time (GST_TEST_CLOCK (data->clock), 0);
-
-  data->session = gst_element_factory_make ("rtpsession", NULL);
-  g_signal_connect (data->session, "request-pt-map",
-      (GCallback) pt_map_requested, data);
-  g_assert (data->session);
-  gst_element_set_clock (data->session, data->clock);
-  g_assert_cmpint (gst_element_set_state (data->session,
-          GST_STATE_PLAYING), !=, GST_STATE_CHANGE_FAILURE);
-
-  data->rtcp_queue =
-      g_async_queue_new_full ((GDestroyNotify) gst_mini_object_unref);
-
-  /* link in the test source-pad */
-  data->src = gst_pad_new ("src", GST_PAD_SRC);
-  g_assert (data->src);
-  rtp_sink_pad = gst_element_get_request_pad (data->session,
-      session_as_sender ? "send_rtp_sink" : "recv_rtp_sink");
-  g_assert (rtp_sink_pad);
-  g_assert_cmpint (gst_pad_link (data->src, rtp_sink_pad), ==, GST_PAD_LINK_OK);
-  gst_object_unref (rtp_sink_pad);
-
-  data->rtpsrc = gst_pad_new ("sink", GST_PAD_SINK);
-  g_assert (data->rtpsrc);
-  rtp_src_pad = gst_element_get_static_pad (data->session,
-      session_as_sender ? "send_rtp_src" : "recv_rtp_src");
-  g_assert (rtp_src_pad);
-  g_assert_cmpint (gst_pad_link (rtp_src_pad, data->rtpsrc), ==,
-      GST_PAD_LINK_OK);
-  gst_object_unref (rtp_src_pad);
-
-  /* link in the test sink-pad */
-  data->rtcp_sink = gst_pad_new ("sink", GST_PAD_SINK);
-  g_assert (data->rtcp_sink);
-  gst_pad_set_element_private (data->rtcp_sink, data);
-  caps = generate_caps ();
-  gst_pad_set_caps (data->rtcp_sink, caps);
-  gst_pad_set_chain_function (data->rtcp_sink, test_sink_pad_chain_cb);
-  rtcp_src_pad = gst_element_get_request_pad (data->session, "send_rtcp_src");
-  g_assert (rtcp_src_pad);
-  g_assert_cmpint (gst_pad_link (rtcp_src_pad, data->rtcp_sink), ==,
-      GST_PAD_LINK_OK);
-  gst_object_unref (rtcp_src_pad);
-
-  g_assert (gst_pad_set_active (data->src, TRUE));
-  g_assert (gst_pad_set_active (data->rtcp_sink, TRUE));
-
-  gst_segment_init (&seg, GST_FORMAT_TIME);
-  gst_pad_push_event (data->src, gst_event_new_stream_start ("stream0"));
-  gst_pad_set_caps (data->src, caps);
-  gst_pad_push_event (data->src, gst_event_new_segment (&seg));
-  gst_caps_unref (caps);
-
-  while ((obj = g_async_queue_try_pop (data->rtcp_queue)))
-    gst_mini_object_unref (obj);
+static gboolean
+session_harness_advance_and_crank (SessionHarness * h,
+    GstClockTime delta)
+{
+  GstClockID res, pending;
+  gboolean result;
+  gst_test_clock_wait_for_next_pending_id (h->testclock, &pending);
+  gst_test_clock_advance_time (h->testclock, delta);
+  res = gst_test_clock_process_next_clock_id (h->testclock);
+  if (res == pending)
+    result = TRUE;
+  else
+    result = FALSE;
+  if (res)
+    gst_clock_id_unref (res);
+  gst_clock_id_unref (pending);
+  return result;
+}
+
+static void
+session_harness_produce_rtcp (SessionHarness * h, gint num_rtcp_packets)
+{
+  /* due to randomness in rescheduling of RTCP timeout, we need to
+     keep cranking until we have the desired amount of packets */
+  while (gst_harness_buffers_in_queue (h->rtcp_h) < num_rtcp_packets)
+    session_harness_crank_clock (h);
 }
 
 GST_START_TEST (test_multiple_ssrc_rr)
 {
-  TestData data;
+  SessionHarness *h = session_harness_new ();
   GstFlowReturn res;
-  GstClockID id, tid;
   GstBuffer *in_buf, *out_buf;
   GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT;
   GstRTCPPacket rtcp_packet;
-  int i;
-  guint32 ssrc, exthighestseq, jitter, lsr, dlsr;
-  gint32 packetslost;
-  guint8 fractionlost;
-
-  setup_testharness (&data, FALSE);
-
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_MSECOND);
-
-  for (i = 0; i < 5; i++) {
-    GST_DEBUG ("Push %i", i);
-    in_buf =
-        generate_test_buffer (i * 20 * GST_MSECOND, FALSE, i, i * 20,
-        0x01BADBAD);
-    res = gst_pad_push (data.src, in_buf);
-    fail_unless (res == GST_FLOW_OK || res == GST_FLOW_FLUSHING);
-
-
-    gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
-    tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
-    gst_clock_id_unref (id);
-    if (tid)
-      gst_clock_id_unref (tid);
-
-    in_buf =
-        generate_test_buffer (i * 20 * GST_MSECOND, FALSE, i, i * 20,
-        0xDEADBEEF);
-    res = gst_pad_push (data.src, in_buf);
-    fail_unless (res == GST_FLOW_OK || res == GST_FLOW_FLUSHING);
-
-    gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
-    tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
-    GST_DEBUG ("pushed %i", i);
-    gst_test_clock_set_time (GST_TEST_CLOCK (data.clock),
-        gst_clock_id_get_time (id));
-    gst_clock_id_unref (id);
-    if (tid)
-      gst_clock_id_unref (tid);
-  }
+  gint i, j;
 
-  out_buf = g_async_queue_try_pop (data.rtcp_queue);
-  if (out_buf)
-    gst_buffer_unref (out_buf);
+  guint ssrcs[] = {
+    0x01BADBAD,
+    0xDEADBEEF,
+  };
+
+  /* receive buffers with multiple ssrcs */
+  for (i = 0; i < 2; i++) {
+    for (j = 0; j < G_N_ELEMENTS (ssrcs); j++) {
+      in_buf = generate_test_buffer (i, ssrcs[j]);
+      res = session_harness_recv_rtp (h, in_buf);
+      fail_unless_equals_int (GST_FLOW_OK, res);
+    }
+  }
 
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock),
-      gst_clock_id_get_time (id) + (5 * GST_SECOND));
-  gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
-  tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
-  gst_clock_id_unref (id);
-  gst_clock_id_unref (tid);
+  /* crank the rtcp-thread and pull out the rtcp-packet we have generated */
+  session_harness_crank_clock (h);
+  out_buf = session_harness_pull_rtcp (h);
 
-  out_buf = g_async_queue_pop (data.rtcp_queue);
+  /* verify we have report blocks for both ssrcs */
   g_assert (out_buf != NULL);
-  g_assert (gst_rtcp_buffer_validate (out_buf));
+  fail_unless (gst_rtcp_buffer_validate (out_buf));
   gst_rtcp_buffer_map (out_buf, GST_MAP_READ, &rtcp);
   g_assert (gst_rtcp_buffer_get_first_packet (&rtcp, &rtcp_packet));
-  g_assert (gst_rtcp_packet_get_type (&rtcp_packet) == GST_RTCP_TYPE_RR);
-  g_assert_cmpint (gst_rtcp_packet_get_rb_count (&rtcp_packet), ==, 2);
+  fail_unless_equals_int (GST_RTCP_TYPE_RR,
+      gst_rtcp_packet_get_type (&rtcp_packet));
 
-  gst_rtcp_packet_get_rb (&rtcp_packet, 0, &ssrc, &fractionlost, &packetslost,
-      &exthighestseq, &jitter, &lsr, &dlsr);
+  fail_unless_equals_int (G_N_ELEMENTS (ssrcs),
+      gst_rtcp_packet_get_rb_count (&rtcp_packet));
 
-  g_assert_cmpint (ssrc, ==, 0x01BADBAD);
+  for (j = 0; j < G_N_ELEMENTS (ssrcs); j++) {
+    guint32 ssrc;
+    gst_rtcp_packet_get_rb (&rtcp_packet, j, &ssrc,
+        NULL, NULL, NULL, NULL, NULL, NULL);
+    fail_unless_equals_int (ssrcs[j], ssrc);
+  }
 
-  gst_rtcp_packet_get_rb (&rtcp_packet, 1, &ssrc, &fractionlost, &packetslost,
-      &exthighestseq, &jitter, &lsr, &dlsr);
-  g_assert_cmpint (ssrc, ==, 0xDEADBEEF);
   gst_rtcp_buffer_unmap (&rtcp);
   gst_buffer_unref (out_buf);
 
-  destroy_testharness (&data);
+  session_harness_free (h);
 }
 
 GST_END_TEST;
 
 /* This verifies that rtpsession will correctly place RBs round-robin
- * across multiple SRs when there are too many senders that their RBs
- * do not fit in one SR */
+ * across multiple RRs when there are too many senders that their RBs
+ * do not fit in one RR */
 GST_START_TEST (test_multiple_senders_roundrobin_rbs)
 {
-  TestData data;
+  SessionHarness *h = session_harness_new ();
   GstFlowReturn res;
-  GstClockID id, tid;
   GstBuffer *buf;
   GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT;
   GstRTCPPacket rtcp_packet;
-  GstClockTime time;
-  gint queue_length;
   gint i, j, k;
   guint32 ssrc;
-  GHashTable *sr_ssrcs, *rb_ssrcs, *tmp_set;
+  GHashTable *rb_ssrcs, *tmp_set;
 
-  setup_testharness (&data, TRUE);
+  g_object_set (h->internal_session, "internal-ssrc", 0xDEADBEEF, NULL);
 
-  /* only the RTCP thread waits on the clock */
-  gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
-
-  for (i = 0; i < 2; i++) {     /* cycles between SR reports */
+  for (i = 0; i < 2; i++) {     /* cycles between RR reports */
     for (j = 0; j < 5; j++) {   /* packets per ssrc */
       gint seq = (i * 5) + j;
-      GST_DEBUG ("Push %i", seq);
-
-      gst_test_clock_advance_time (GST_TEST_CLOCK (data.clock),
-          200 * GST_MSECOND);
-
       for (k = 0; k < 35; k++) {        /* number of ssrcs */
-        buf =
-            generate_test_buffer (seq * 200 * GST_MSECOND, FALSE, seq,
-            seq * 200, 10000 + k);
-        res = gst_pad_push (data.src, buf);
-        fail_unless (res == GST_FLOW_OK || res == GST_FLOW_FLUSHING);
+        buf = generate_test_buffer (seq, 10000 + k);
+        res = session_harness_recv_rtp (h, buf);
+        fail_unless_equals_int (GST_FLOW_OK, res);
       }
-
-      GST_DEBUG ("pushed %i", seq);
     }
-
-    queue_length = g_async_queue_length (data.rtcp_queue);
-
-    do {
-      /* crank the RTCP pad thread */
-      time = gst_clock_id_get_time (id);
-      GST_DEBUG ("Advancing time to %" GST_TIME_FORMAT, GST_TIME_ARGS (time));
-      gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), time);
-      tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
-      fail_unless_equals_pointer (tid, id);
-      gst_clock_id_unref (id);
-      gst_clock_id_unref (tid);
-
-      /* wait for the RTCP pad thread to output its data
-       * and start waiting on the next timeout */
-      gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock),
-          &id);
-
-      /* and retry as long as there are no new RTCP packets out,
-       * because the RTCP thread may randomly decide to reschedule
-       * the RTCP timeout for later */
-    } while (g_async_queue_length (data.rtcp_queue) == queue_length);
-
-    GST_DEBUG ("RTCP timeout processed");
   }
-  gst_clock_id_unref (id);
 
-  sr_ssrcs = g_hash_table_new (g_direct_hash, g_direct_equal);
   rb_ssrcs = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL,
       (GDestroyNotify) g_hash_table_unref);
 
   /* verify the rtcp packets */
-  for (i = 0; i < 2 * 35; i++) {
-    guint expected_rb_count = (i < 35) ? GST_RTCP_MAX_RB_COUNT :
-        (35 - GST_RTCP_MAX_RB_COUNT - 1);
-
-    GST_DEBUG ("pop %d", i);
+  for (i = 0; i < 2; i++) {
+    guint expected_rb_count = (i < 1) ? GST_RTCP_MAX_RB_COUNT :
+        (35 - GST_RTCP_MAX_RB_COUNT);
 
-    buf = g_async_queue_pop (data.rtcp_queue);
+    session_harness_produce_rtcp (h, 1);
+    buf = session_harness_pull_rtcp (h);
     g_assert (buf != NULL);
-    g_assert (gst_rtcp_buffer_validate (buf));
+    fail_unless (gst_rtcp_buffer_validate (buf));
 
     gst_rtcp_buffer_map (buf, GST_MAP_READ, &rtcp);
-    g_assert (gst_rtcp_buffer_get_first_packet (&rtcp, &rtcp_packet));
-    g_assert_cmpint (gst_rtcp_packet_get_type (&rtcp_packet), ==,
-        GST_RTCP_TYPE_SR);
+    fail_unless (gst_rtcp_buffer_get_first_packet (&rtcp, &rtcp_packet));
+    fail_unless_equals_int (GST_RTCP_TYPE_RR,
+        gst_rtcp_packet_get_type (&rtcp_packet));
 
-    gst_rtcp_packet_sr_get_sender_info (&rtcp_packet, &ssrc, NULL, NULL, NULL,
-        NULL);
-    g_assert_cmpint (ssrc, >=, 10000);
-    g_assert_cmpint (ssrc, <=, 10035);
-    g_hash_table_add (sr_ssrcs, GUINT_TO_POINTER (ssrc));
+    ssrc = gst_rtcp_packet_rr_get_ssrc (&rtcp_packet);
+    fail_unless_equals_int (0xDEADBEEF, ssrc);
 
     /* inspect the RBs */
-    g_assert_cmpint (gst_rtcp_packet_get_rb_count (&rtcp_packet), ==,
-        expected_rb_count);
+    fail_unless_equals_int (expected_rb_count,
+        gst_rtcp_packet_get_rb_count (&rtcp_packet));
 
-    if (i < 35) {
+    if (i == 0) {
       tmp_set = g_hash_table_new (g_direct_hash, g_direct_equal);
       g_hash_table_insert (rb_ssrcs, GUINT_TO_POINTER (ssrc), tmp_set);
     } else {
@@ -385,196 +331,146 @@ GST_START_TEST (test_multiple_senders_roundrobin_rbs)
 
     gst_rtcp_buffer_unmap (&rtcp);
     gst_buffer_unref (buf);
-
-    /* cycle done, verify all ssrcs have issued SR reports */
-    if ((i + 1) == 35 || (i + 1) == (2 * 35)) {
-      g_assert_cmpint (g_hash_table_size (sr_ssrcs), ==, 35);
-      g_hash_table_remove_all (sr_ssrcs);
-    }
   }
 
-  /* now verify all other ssrcs have been reported on each ssrc's SR */
-  g_assert_cmpint (g_hash_table_size (rb_ssrcs), ==, 35);
-  for (i = 10000; i < 10035; i++) {
-    tmp_set = g_hash_table_lookup (rb_ssrcs, GUINT_TO_POINTER (i));
-    g_assert (tmp_set);
-    /* SR contains RBs for each other ssrc except the ssrc of the SR */
-    g_assert_cmpint (g_hash_table_size (tmp_set), ==, 34);
-    g_assert (!g_hash_table_contains (tmp_set, GUINT_TO_POINTER (i)));
-  }
+  /* now verify all received ssrcs have been reported */
+  fail_unless_equals_int (1, g_hash_table_size (rb_ssrcs));
+  tmp_set = g_hash_table_lookup (rb_ssrcs, GUINT_TO_POINTER (0xDEADBEEF));
+  g_assert (tmp_set);
+  fail_unless_equals_int (35, g_hash_table_size (tmp_set));
 
-  g_hash_table_unref (sr_ssrcs);
   g_hash_table_unref (rb_ssrcs);
-
-  destroy_testharness (&data);
+  session_harness_free (h);
 }
 
 GST_END_TEST;
 
-static void
-crank_rtcp_thread (TestData * data, GstClockTime * time, GstClockID * id)
-{
-  gint queue_length;
-  GstClockID *tid;
-
-  queue_length = g_async_queue_length (data->rtcp_queue);
-  do {
-    *time = gst_clock_id_get_time (*id);
-    GST_DEBUG ("Advancing time to %" GST_TIME_FORMAT, GST_TIME_ARGS (*time));
-    if (*time > gst_clock_get_time (data->clock))
-      gst_test_clock_set_time (GST_TEST_CLOCK (data->clock), *time);
-    tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data->clock));
-    fail_unless_equals_pointer (tid, *id);
-
-    gst_clock_id_unref (tid);
-    gst_clock_id_unref (*id);
-    *id = NULL;
-
-    /* wait for the RTCP pad thread to output its data
-     * and start waiting on the next timeout */
-    gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data->clock), id);
-
-    /* and retry as long as there are no new RTCP packets out,
-     * because the RTCP thread may randomly decide to reschedule
-     * the RTCP timeout for later */
-  } while (g_async_queue_length (data->rtcp_queue) == queue_length);
-}
-
 GST_START_TEST (test_internal_sources_timeout)
 {
-  TestData data;
-  GstClockID id;
-  GstClockTime time;
-  GObject *internal_session;
+  SessionHarness *h = session_harness_new ();
   guint internal_ssrc;
   guint32 ssrc;
   GstBuffer *buf;
   GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT;
   GstRTCPPacket rtcp_packet;
+  GstRTCPType rtcp_type;
   GstFlowReturn res;
   gint i, j;
   GstCaps *caps;
+  gboolean seen_bye;
 
-  setup_testharness (&data, TRUE);
-  g_object_get (data.session, "internal-session", &internal_session, NULL);
-  g_object_set (internal_session, "internal-ssrc", 0xDEADBEEF, NULL);
+  g_object_set (h->internal_session, "internal-ssrc", 0xDEADBEEF, NULL);
+  g_object_get (h->internal_session, "internal-ssrc", &internal_ssrc, NULL);
+  fail_unless_equals_int (0xDEADBEEF, internal_ssrc);
 
-  /* only the RTCP thread waits on the clock */
-  gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
-
-  /* crank the RTCP pad thread until it creates a RR for its internal-ssrc
-   * source, since we have not pushed any RTP packets and it doesn't have
-   * any other source available */
-  crank_rtcp_thread (&data, &time, &id);
-
-  g_object_get (internal_session, "internal-ssrc", &internal_ssrc, NULL);
-  g_assert_cmpint (internal_ssrc, ==, 0xDEADBEEF);
+  for (i = 1; i < 4; i++) {
+    buf = generate_test_buffer (i, 0xBEEFDEAD);
+    res = session_harness_recv_rtp (h, buf);
+    fail_unless_equals_int (GST_FLOW_OK, res);
+  }
 
   /* verify that rtpsession has sent RR for an internally-created
    * RTPSource that is using the internal-ssrc */
-  buf = g_async_queue_pop (data.rtcp_queue);
-  g_assert (buf != NULL);
-  g_assert (gst_rtcp_buffer_validate (buf));
+  session_harness_produce_rtcp (h, 1);
+  buf = session_harness_pull_rtcp (h);
+
+  fail_unless (buf != NULL);
+  fail_unless (gst_rtcp_buffer_validate (buf));
   gst_rtcp_buffer_map (buf, GST_MAP_READ, &rtcp);
-  g_assert (gst_rtcp_buffer_get_first_packet (&rtcp, &rtcp_packet));
-  g_assert_cmpint (gst_rtcp_packet_get_type (&rtcp_packet), ==,
-      GST_RTCP_TYPE_RR);
+  fail_unless (gst_rtcp_buffer_get_first_packet (&rtcp, &rtcp_packet));
+  fail_unless_equals_int (GST_RTCP_TYPE_RR,
+      gst_rtcp_packet_get_type (&rtcp_packet));
   ssrc = gst_rtcp_packet_rr_get_ssrc (&rtcp_packet);
-  g_assert_cmpint (ssrc, ==, internal_ssrc);
+  fail_unless_equals_int (ssrc, internal_ssrc);
   gst_rtcp_buffer_unmap (&rtcp);
   gst_buffer_unref (buf);
 
   /* ok, now let's push some RTP packets */
-  caps =
-      gst_caps_new_simple ("application/x-rtp", "ssrc", G_TYPE_UINT, 0x01BADBAD,
-      NULL);
-  gst_pad_set_caps (data.src, caps);
-  gst_caps_unref (caps);
+  caps = gst_caps_new_simple ("application/x-rtp",
+      "ssrc", G_TYPE_UINT, 0x01BADBAD, NULL);
+  gst_harness_set_src_caps (h->send_rtp_h, caps);
 
   for (i = 1; i < 4; i++) {
-    gst_test_clock_advance_time (GST_TEST_CLOCK (data.clock),
-        200 * GST_MSECOND);
-    buf =
-        generate_test_buffer (time + i * 200 * GST_MSECOND, FALSE, i, i * 200,
-        0x01BADBAD);
-    res = gst_pad_push (data.src, buf);
-    fail_unless (res == GST_FLOW_OK || res == GST_FLOW_FLUSHING);
+    buf = generate_test_buffer (i, 0x01BADBAD);
+    res = session_harness_send_rtp (h, buf);
+    fail_unless_equals_int (GST_FLOW_OK, res);
   }
 
   /* internal ssrc must have changed already */
-  g_object_get (internal_session, "internal-ssrc", &internal_ssrc, NULL);
-  g_assert_cmpint (ssrc, !=, internal_ssrc);
-  g_assert_cmpint (internal_ssrc, ==, 0x01BADBAD);
-
-  /* wait for SR */
-  crank_rtcp_thread (&data, &time, &id);
+  g_object_get (h->internal_session, "internal-ssrc", &internal_ssrc, NULL);
+  fail_unless (internal_ssrc != ssrc);
+  fail_unless_equals_int (0x01BADBAD, internal_ssrc);
 
   /* verify SR and RR */
   j = 0;
   for (i = 0; i < 2; i++) {
-    buf = g_async_queue_pop (data.rtcp_queue);
+    session_harness_produce_rtcp (h, 1);
+    buf = session_harness_pull_rtcp (h);
     g_assert (buf != NULL);
-    g_assert (gst_rtcp_buffer_validate (buf));
+    fail_unless (gst_rtcp_buffer_validate (buf));
     gst_rtcp_buffer_map (buf, GST_MAP_READ, &rtcp);
-    g_assert (gst_rtcp_buffer_get_first_packet (&rtcp, &rtcp_packet));
-    if (gst_rtcp_packet_get_type (&rtcp_packet) == GST_RTCP_TYPE_SR) {
+    fail_unless (gst_rtcp_buffer_get_first_packet (&rtcp, &rtcp_packet));
+    rtcp_type = gst_rtcp_packet_get_type (&rtcp_packet);
+
+    if (rtcp_type == GST_RTCP_TYPE_SR) {
       gst_rtcp_packet_sr_get_sender_info (&rtcp_packet, &ssrc, NULL, NULL, NULL,
           NULL);
-      g_assert_cmpint (ssrc, ==, internal_ssrc);
-      g_assert_cmpint (ssrc, ==, 0x01BADBAD);
+      fail_unless_equals_int (internal_ssrc, ssrc);
+      fail_unless_equals_int (0x01BADBAD, ssrc);
       j |= 0x1;
-    } else if (gst_rtcp_packet_get_type (&rtcp_packet) == GST_RTCP_TYPE_RR) {
+    } else if (rtcp_type == GST_RTCP_TYPE_RR) {
       ssrc = gst_rtcp_packet_rr_get_ssrc (&rtcp_packet);
-      g_assert_cmpint (ssrc, !=, internal_ssrc);
-      g_assert_cmpint (ssrc, ==, 0xDEADBEEF);
+      fail_unless (internal_ssrc != ssrc);
+      fail_unless_equals_int (0xDEADBEEF, ssrc);
       j |= 0x2;
     }
     gst_rtcp_buffer_unmap (&rtcp);
     gst_buffer_unref (buf);
   }
-  g_assert_cmpint (j, ==, 0x3); /* verify we got both SR and RR */
+  fail_unless_equals_int (0x3, j); /* verify we got both SR and RR */
 
   /* go 30 seconds in the future and observe both sources timing out:
    * 0xDEADBEEF -> BYE, 0x01BADBAD -> becomes receiver only */
-  gst_test_clock_advance_time (GST_TEST_CLOCK (data.clock), 30 * GST_SECOND);
-  crank_rtcp_thread (&data, &time, &id);
+  fail_unless (session_harness_advance_and_crank (h, 30 * GST_SECOND));
 
   /* verify BYE and RR */
   j = 0;
-  for (i = 0; i < 2; i++) {
-    buf = g_async_queue_pop (data.rtcp_queue);
-    g_assert (buf != NULL);
-    g_assert (gst_rtcp_buffer_validate (buf));
+  seen_bye = FALSE;
+  while (!seen_bye) {
+    session_harness_produce_rtcp (h, 1);
+    buf = session_harness_pull_rtcp (h);
+    fail_unless (buf != NULL);
+    fail_unless (gst_rtcp_buffer_validate (buf));
     gst_rtcp_buffer_map (buf, GST_MAP_READ, &rtcp);
+    fail_unless (gst_rtcp_buffer_get_first_packet (&rtcp, &rtcp_packet));
+    rtcp_type = gst_rtcp_packet_get_type (&rtcp_packet);
 
-    g_assert (gst_rtcp_buffer_get_first_packet (&rtcp, &rtcp_packet));
-    g_assert_cmpint (gst_rtcp_packet_get_type (&rtcp_packet), ==,
-        GST_RTCP_TYPE_RR);
-    ssrc = gst_rtcp_packet_rr_get_ssrc (&rtcp_packet);
-    if (ssrc == 0x01BADBAD) {
-      j |= 0x1;
-      g_assert_cmpint (ssrc, ==, internal_ssrc);
-      /* 2 => RR, SDES. There is no BYE here */
-      g_assert_cmpint (gst_rtcp_buffer_get_packet_count (&rtcp), ==, 2);
-    } else if (ssrc == 0xDEADBEEF) {
-      j |= 0x2;
-      g_assert_cmpint (ssrc, !=, internal_ssrc);
-      /* 3 => RR, SDES, BYE */
-      g_assert_cmpint (gst_rtcp_buffer_get_packet_count (&rtcp), ==, 3);
-      g_assert (gst_rtcp_packet_move_to_next (&rtcp_packet));
-      g_assert (gst_rtcp_packet_move_to_next (&rtcp_packet));
-      g_assert_cmpint (gst_rtcp_packet_get_type (&rtcp_packet), ==,
-          GST_RTCP_TYPE_BYE);
+    if (rtcp_type == GST_RTCP_TYPE_RR) {
+      ssrc = gst_rtcp_packet_rr_get_ssrc (&rtcp_packet);
+      if (ssrc == 0x01BADBAD) {
+        j |= 0x1;
+        fail_unless_equals_int (internal_ssrc, ssrc);
+        /* 2 => RR, SDES. There is no BYE here */
+        fail_unless_equals_int (2, gst_rtcp_buffer_get_packet_count (&rtcp));
+      } else if (ssrc == 0xDEADBEEF) {
+        j |= 0x2;
+        g_assert_cmpint (ssrc, !=, internal_ssrc);
+        /* 3 => RR, SDES, BYE */
+        if (gst_rtcp_buffer_get_packet_count (&rtcp) == 3) {
+          fail_unless (gst_rtcp_packet_move_to_next (&rtcp_packet));
+          fail_unless (gst_rtcp_packet_move_to_next (&rtcp_packet));
+          fail_unless_equals_int (GST_RTCP_TYPE_BYE,
+              gst_rtcp_packet_get_type (&rtcp_packet));
+          seen_bye = TRUE;
+        }
+      }
     }
-
     gst_rtcp_buffer_unmap (&rtcp);
     gst_buffer_unref (buf);
   }
-  g_assert_cmpint (j, ==, 0x3); /* verify we got both BYE and RR */
-  gst_clock_id_unref (id);
+  fail_unless_equals_int (0x3, j); /* verify we got both BYE and RR */
 
-  g_object_unref (internal_session);
-  destroy_testharness (&data);
+  session_harness_free (h);
 }
 
 GST_END_TEST;
@@ -599,43 +495,38 @@ on_app_rtcp_cb (GObject * session, guint subtype, guint ssrc,
 
 GST_START_TEST (test_receive_rtcp_app_packet)
 {
-  GstHarness *h;
-  GstBuffer *buffer;
+  SessionHarness *h = session_harness_new ();
+  GstBuffer *buf;
   GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT;
   GstRTCPPacket packet;
   RTCPAppResult result = { 0 };
-  GstElement *internal_session;
   guint8 data[] = { 0x11, 0x22, 0x33, 0x44 };
 
-  h = gst_harness_new_with_padnames ("rtpsession", "recv_rtcp_sink", NULL);
-  g_object_get (h->element, "internal-session", &internal_session, NULL);
-
-  g_signal_connect (internal_session, "on-app-rtcp",
+  g_signal_connect (h->internal_session, "on-app-rtcp",
       G_CALLBACK (on_app_rtcp_cb), &result);
 
   /* Push APP buffer with no data */
-  buffer = gst_rtcp_buffer_new (1000);
-  fail_unless (gst_rtcp_buffer_map (buffer, GST_MAP_READWRITE, &rtcp));
+  buf = gst_rtcp_buffer_new (1000);
+  fail_unless (gst_rtcp_buffer_map (buf, GST_MAP_READWRITE, &rtcp));
   fail_unless (gst_rtcp_buffer_add_packet (&rtcp, GST_RTCP_TYPE_APP, &packet));
   gst_rtcp_packet_app_set_subtype (&packet, 21);
   gst_rtcp_packet_app_set_ssrc (&packet, 0x11111111);
   gst_rtcp_packet_app_set_name (&packet, "Test");
   gst_rtcp_buffer_unmap (&rtcp);
 
-  gst_harness_set_src_caps_str (h, "application/x-rtcp");
-  fail_unless_equals_int (gst_harness_push (h, buffer), GST_FLOW_OK);
+  fail_unless_equals_int (GST_FLOW_OK, session_harness_recv_rtcp (h, buf));
 
-  fail_unless_equals_int (result.subtype, 21);
-  fail_unless_equals_int (result.ssrc, 0x11111111);
-  fail_unless_equals_string (result.name, "Test");
-  fail_unless_equals_pointer (result.data, NULL);
+  fail_unless_equals_int (21, result.subtype);
+  fail_unless_equals_int (0x11111111, result.ssrc);
+  fail_unless_equals_string ("Test", result.name);
+  fail_unless_equals_pointer (NULL, result.data);
 
   g_free (result.name);
 
   /* Push APP buffer with data */
   memset (&result, 0, sizeof (result));
-  buffer = gst_rtcp_buffer_new (1000);
-  fail_unless (gst_rtcp_buffer_map (buffer, GST_MAP_READWRITE, &rtcp));
+  buf = gst_rtcp_buffer_new (1000);
+  fail_unless (gst_rtcp_buffer_map (buf, GST_MAP_READWRITE, &rtcp));
   fail_unless (gst_rtcp_buffer_add_packet (&rtcp, GST_RTCP_TYPE_APP, &packet));
   gst_rtcp_packet_app_set_subtype (&packet, 22);
   gst_rtcp_packet_app_set_ssrc (&packet, 0x22222222);
@@ -644,18 +535,17 @@ GST_START_TEST (test_receive_rtcp_app_packet)
   memcpy (gst_rtcp_packet_app_get_data (&packet), data, sizeof (data));
   gst_rtcp_buffer_unmap (&rtcp);
 
-  fail_unless_equals_int (gst_harness_push (h, buffer), GST_FLOW_OK);
+  fail_unless_equals_int (GST_FLOW_OK, session_harness_recv_rtcp (h, buf));
 
-  fail_unless_equals_int (result.subtype, 22);
-  fail_unless_equals_int (result.ssrc, 0x22222222);
-  fail_unless_equals_string (result.name, "Test");
+  fail_unless_equals_int (22, result.subtype);
+  fail_unless_equals_int (0x22222222, result.ssrc);
+  fail_unless_equals_string ("Test", result.name);
   fail_unless (gst_buffer_memcmp (result.data, 0, data, sizeof (data)) == 0);
 
   g_free (result.name);
   gst_buffer_unref (result.data);
 
-  gst_object_unref (internal_session);
-  gst_harness_teardown (h);
+  session_harness_free (h);
 }
 
 GST_END_TEST;
@@ -768,44 +658,49 @@ create_bye_rtcp (guint32 ssrc)
 
 GST_START_TEST (test_ignore_suspicious_bye)
 {
-  GstHarness *h_rtcp = NULL;
-  GstHarness *h_send = NULL;
+  SessionHarness *h = session_harness_new ();
   gboolean cb_called = FALSE;
-  GstTestClock *testclock = GST_TEST_CLOCK (gst_test_clock_new ());
-
-  /* use testclock as the systemclock to capture the rtcp thread waits */
-  gst_system_clock_set_default (GST_CLOCK (testclock));
-
-  h_rtcp =
-      gst_harness_new_with_padnames ("rtpsession", "recv_rtcp_sink",
-      "send_rtcp_src");
-  h_send =
-      gst_harness_new_with_element (h_rtcp->element, "send_rtp_sink",
-      "send_rtp_src");
 
   /* connect to the stats-reporting */
-  g_signal_connect (h_rtcp->element, "notify::stats",
+  g_signal_connect (h->session, "notify::stats",
       G_CALLBACK (suspicious_bye_cb), &cb_called);
 
   /* Push RTP buffer making our internal SSRC=0xDEADBEEF */
-  gst_harness_set_src_caps_str (h_send,
-      "application/x-rtp,ssrc=(uint)0xDEADBEEF,"
-      "clock-rate=90000,seqnum-offset=(uint)12345");
-  gst_harness_push (h_send,
-      generate_test_buffer (0, FALSE, 12345, 0, 0xDEADBEEF));
+  fail_unless_equals_int (GST_FLOW_OK,
+      session_harness_send_rtp (h, generate_test_buffer (0, 0xDEADBEEF)));
 
-  /* Push BYE RTCP with internal SSRC (0xDEADBEEF) */
-  gst_harness_set_src_caps_str (h_rtcp, "application/x-rtcp");
-  gst_harness_push (h_rtcp, create_bye_rtcp (0xDEADBEEF));
+  /* Receive BYE RTCP referencing our internal SSRC(!?!) (0xDEADBEEF) */
+  fail_unless_equals_int (GST_FLOW_OK,
+      session_harness_recv_rtcp (h, create_bye_rtcp (0xDEADBEEF)));
 
   /* "crank" and check the stats */
-  g_assert (gst_test_clock_crank (testclock));
-  gst_buffer_unref (gst_harness_pull (h_rtcp));
+  session_harness_crank_clock (h);
+  gst_buffer_unref (session_harness_pull_rtcp (h));
   fail_unless (cb_called);
 
-  gst_harness_teardown (h_send);
-  gst_harness_teardown (h_rtcp);
-  gst_object_unref (testclock);
+  session_harness_free (h);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_illegal_rtcp_fb_packet)
+{
+  SessionHarness *h = session_harness_new ();
+  GstBuffer *buf;
+  /* Zero length RTCP feedback packet (reduced size) */
+  const guint8 rtcp_zero_fb_pkt[] = { 0x8f, 0xce, 0x00, 0x00 };
+
+  g_object_set (h->internal_session, "internal-ssrc", 0xDEADBEEF, NULL);
+
+  buf = gst_buffer_new_and_alloc (sizeof (rtcp_zero_fb_pkt));
+  gst_buffer_fill (buf, 0, rtcp_zero_fb_pkt, sizeof (rtcp_zero_fb_pkt));
+  GST_BUFFER_DTS (buf) = GST_BUFFER_PTS (buf) = G_GUINT64_CONSTANT (0);
+
+  /* Push the packet, this did previously crash because length of packet was
+   * never validated. */
+  fail_unless_equals_int (GST_FLOW_OK, session_harness_recv_rtcp (h, buf));
+
+  session_harness_free (h);
 }
 
 GST_END_TEST;
@@ -824,6 +719,7 @@ rtpsession_suite (void)
   tcase_add_test (tc_chain, test_dont_lock_on_stats);
   tcase_add_test (tc_chain, test_ignore_suspicious_bye);
 
+  tcase_add_test (tc_chain, test_illegal_rtcp_fb_packet);
   return s;
 }
 
diff --git a/tests/check/elements/splitmux.c b/tests/check/elements/splitmux.c
index c6d2ef184..5fb78d27c 100644
--- a/tests/check/elements/splitmux.c
+++ b/tests/check/elements/splitmux.c
@@ -220,10 +220,10 @@ test_playback (const gchar * in_pattern, GstClockTime exp_first_time,
   gst_message_unref (msg);
 
   /* Check we saw the entire range of values */
-  fail_unless (first_ts == 0,
+  fail_unless (first_ts == exp_first_time,
       "Expected start of playback range 0, got %" GST_TIME_FORMAT,
       GST_TIME_ARGS (first_ts));
-  fail_unless (last_ts == (3 * GST_SECOND),
+  fail_unless (last_ts == exp_last_time,
       "Expected end of playback range 3s, got %" GST_TIME_FORMAT,
       GST_TIME_ARGS (last_ts));
 
@@ -572,6 +572,134 @@ GST_START_TEST (test_splitmuxsrc_sparse_streams)
 
 GST_END_TEST;
 
+struct CapsChangeData
+{
+  guint count;
+  GstElement *cf;
+};
+
+static GstPadProbeReturn
+switch_caps (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
+{
+  struct CapsChangeData *data = (struct CapsChangeData *) (user_data);
+
+  if (data->count == 4) {
+    GST_INFO ("Saw 5 buffers to the encoder. Switching caps");
+    gst_util_set_object_arg (G_OBJECT (data->cf), "caps",
+        "video/x-raw,width=160,height=128,framerate=10/1");
+  }
+  data->count++;
+  return GST_PAD_PROBE_OK;
+}
+
+GST_START_TEST (test_splitmuxsrc_caps_change)
+{
+  GstMessage *msg;
+  GstElement *pipeline;
+  GstElement *sink;
+  GstElement *cf;
+  GstPad *sinkpad;
+  gchar *dest_pattern;
+  guint count;
+  gchar *in_pattern;
+  struct CapsChangeData data;
+
+  /* This test creates a new file only by changing the caps, which
+   * qtmux will reject (for now - if qtmux starts supporting caps
+   * changes, this test will break and need fixing/disabling */
+  pipeline =
+      gst_parse_launch
+      ("videotestsrc num-buffers=10 !"
+      "  capsfilter name=c caps=video/x-raw,width=80,height=64,framerate=10/1 !"
+      "  jpegenc ! splitmuxsink name=splitsink muxer=qtmux", NULL);
+  fail_if (pipeline == NULL);
+  sink = gst_bin_get_by_name (GST_BIN (pipeline), "splitsink");
+  fail_if (sink == NULL);
+  g_signal_connect (sink, "format-location-full",
+      (GCallback) check_format_location, NULL);
+  dest_pattern = g_build_filename (tmpdir, "out%05d.mp4", NULL);
+  g_object_set (G_OBJECT (sink), "location", dest_pattern, NULL);
+  g_free (dest_pattern);
+  g_object_unref (sink);
+
+  cf = gst_bin_get_by_name (GST_BIN (pipeline), "c");
+  sinkpad = gst_element_get_static_pad (cf, "sink");
+
+  data.cf = cf;
+  data.count = 0;
+
+  gst_pad_add_probe (sinkpad, GST_PAD_PROBE_TYPE_BUFFER,
+      switch_caps, &data, NULL);
+
+  gst_object_unref (sinkpad);
+  gst_object_unref (cf);
+
+  msg = run_pipeline (pipeline);
+
+  if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR)
+    dump_error (msg);
+  fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS);
+  gst_message_unref (msg);
+
+  gst_object_unref (pipeline);
+
+  count = count_files (tmpdir);
+  fail_unless (count == 2, "Expected 2 output files, got %d", count);
+
+  in_pattern = g_build_filename (tmpdir, "out*.mp4", NULL);
+  test_playback (in_pattern, 0, GST_SECOND);
+  g_free (in_pattern);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_splitmuxsrc_robust_mux)
+{
+  GstMessage *msg;
+  GstElement *pipeline;
+  GstElement *sink;
+  gchar *dest_pattern;
+  gchar *in_pattern;
+
+  /* This test creates a new file only by changing the caps, which
+   * qtmux will reject (for now - if qtmux starts supporting caps
+   * changes, this test will break and need fixing/disabling */
+  pipeline =
+      gst_parse_launch
+      ("videotestsrc num-buffers=10 !"
+      "  video/x-raw,width=80,height=64,framerate=10/1 !"
+      "  jpegenc ! splitmuxsink name=splitsink muxer=\"qtmux reserved-bytes-per-sec=200 reserved-moov-update-period=100000000 \" max-size-time=500000000 use-robust-muxing=true",
+      NULL);
+  fail_if (pipeline == NULL);
+  sink = gst_bin_get_by_name (GST_BIN (pipeline), "splitsink");
+  fail_if (sink == NULL);
+  g_signal_connect (sink, "format-location-full",
+      (GCallback) check_format_location, NULL);
+  dest_pattern = g_build_filename (tmpdir, "out%05d.mp4", NULL);
+  g_object_set (G_OBJECT (sink), "location", dest_pattern, NULL);
+  g_free (dest_pattern);
+  g_object_unref (sink);
+
+  msg = run_pipeline (pipeline);
+
+  if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR)
+    dump_error (msg);
+  fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS);
+  gst_message_unref (msg);
+
+  gst_object_unref (pipeline);
+
+  /* Unlike other tests, we don't check an explicit file size, because the overflow detection
+   * can be racy (depends on exactly when buffers get handed to the muxer and when it updates the
+   * reserved duration property. All we care about is that the muxing didn't fail because space ran out */
+
+  in_pattern = g_build_filename (tmpdir, "out*.mp4", NULL);
+  test_playback (in_pattern, 0, GST_SECOND);
+  g_free (in_pattern);
+}
+
+GST_END_TEST;
+
 /* For verifying bug https://bugzilla.gnome.org/show_bug.cgi?id=762893 */
 GST_START_TEST (test_splitmuxsink_reuse_simple)
 {
@@ -606,7 +734,9 @@ splitmux_suite (void)
   TCase *tc_chain = tcase_create ("general");
   TCase *tc_chain_basic = tcase_create ("basic");
   TCase *tc_chain_complex = tcase_create ("complex");
-  gboolean have_theora, have_ogg, have_vorbis, have_matroska;
+  TCase *tc_chain_mp4_jpeg = tcase_create ("caps_change");
+  gboolean have_theora, have_ogg, have_vorbis, have_matroska, have_qtmux,
+      have_jpeg;
 
   /* we assume that if encoder/muxer are there, decoder/demuxer will be a well */
   have_theora = gst_registry_check_feature_version (gst_registry_get (),
@@ -617,10 +747,15 @@ splitmux_suite (void)
       "vorbisenc", GST_VERSION_MAJOR, GST_VERSION_MINOR, 0);
   have_matroska = gst_registry_check_feature_version (gst_registry_get (),
       "matroskamux", GST_VERSION_MAJOR, GST_VERSION_MINOR, 0);
+  have_qtmux = gst_registry_check_feature_version (gst_registry_get (),
+      "qtmux", GST_VERSION_MAJOR, GST_VERSION_MINOR, 0);
+  have_jpeg = gst_registry_check_feature_version (gst_registry_get (),
+      "jpegenc", GST_VERSION_MAJOR, GST_VERSION_MINOR, 0);
 
   suite_add_tcase (s, tc_chain);
   suite_add_tcase (s, tc_chain_basic);
   suite_add_tcase (s, tc_chain_complex);
+  suite_add_tcase (s, tc_chain_mp4_jpeg);
 
   tcase_add_test (tc_chain_basic, test_splitmuxsink_reuse_simple);
 
@@ -643,6 +778,15 @@ splitmux_suite (void)
     GST_INFO ("Skipping tests, missing plugins: theora and/or ogg");
   }
 
+
+  if (have_qtmux && have_jpeg) {
+    tcase_add_checked_fixture (tc_chain_mp4_jpeg, tempdir_setup,
+        tempdir_cleanup);
+    tcase_add_test (tc_chain_mp4_jpeg, test_splitmuxsrc_caps_change);
+    tcase_add_test (tc_chain_mp4_jpeg, test_splitmuxsrc_robust_mux);
+  } else {
+    GST_INFO ("Skipping tests, missing plugins: jpegenc or mp4mux");
+  }
   return s;
 }
 
diff --git a/tests/check/elements/sunaudio.c b/tests/check/elements/sunaudio.c
deleted file mode 100644
index 834e7cbb7..000000000
--- a/tests/check/elements/sunaudio.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* GStreamer unit tests for the sun audio elements
- *
- * Copyright (C) 2007 Tim-Philipp Müller  <tim centricular net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include <gst/check/gstcheck.h>
-#include <gst/interfaces/propertyprobe.h>
-#include <gst/interfaces/mixer.h>
-#include <gst/gst.h>
-
-GST_START_TEST (test_sun_audio_mixer_track)
-{
-  GstStateChangeReturn state_ret;
-  GstElement *mixer;
-  GList *tracks, *l;
-
-  mixer = gst_element_factory_make ("sunaudiomixer", "sunaudiomixer");
-  fail_unless (mixer != NULL, "Failed to create 'sunaudiomixer' element!");
-
-  state_ret = gst_element_set_state (mixer, GST_STATE_READY);
-  if (state_ret != GST_STATE_CHANGE_SUCCESS) {
-    gst_object_unref (mixer);
-    return;
-  }
-
-  GST_LOG ("opened sunaudiomixer");
-  fail_unless (GST_IS_MIXER (mixer), "is not a GstMixer?!");
-
-  tracks = (GList *) gst_mixer_list_tracks (GST_MIXER (mixer));
-  for (l = tracks; l != NULL; l = l->next) {
-    GObjectClass *klass;
-    GstMixerTrack *track;
-    gchar *ulabel = NULL, *label = NULL;
-
-    track = GST_MIXER_TRACK (l->data);
-
-    g_object_get (track, "label", &label, NULL);
-    fail_unless (label == NULL || g_utf8_validate (label, -1, NULL));
-
-    /* FIXME: remove this check once we depend on -base >= 0.10.12.1 */
-    klass = G_OBJECT_GET_CLASS (track);
-    if (g_object_class_find_property (klass, "untranslated-label")) {
-      g_object_get (track, "untranslated-label", &ulabel, NULL);
-    }
-
-    if (ulabel != NULL) {
-      gchar *p;
-
-      for (p = ulabel; p != NULL && *p != '\0'; ++p) {
-        fail_unless (g_ascii_isprint (*p),
-            "untranslated label '%s' not printable ASCII", ulabel);
-      }
-    }
-    GST_DEBUG ("%s: %s", GST_STR_NULL (ulabel), GST_STR_NULL (label));
-    g_free (label);
-    g_free (ulabel);
-  }
-
-  fail_unless_equals_int (gst_element_set_state (mixer, GST_STATE_NULL),
-      GST_STATE_CHANGE_SUCCESS);
-
-  gst_object_unref (mixer);
-}
-
-GST_END_TEST;
-
-
-static Suite *
-sunaudio_suite (void)
-{
-  Suite *s = suite_create ("sunaudio");
-  TCase *tc_chain = tcase_create ("general");
-
-  suite_add_tcase (s, tc_chain);
-  tcase_add_test (tc_chain, test_sun_audio_mixer_track);
-
-  return s;
-}
-
-GST_CHECK_MAIN (sunaudio)
diff --git a/tests/check/elements/udpsink.c b/tests/check/elements/udpsink.c
index 0e938eef1..ca8b722bb 100644
--- a/tests/check/elements/udpsink.c
+++ b/tests/check/elements/udpsink.c
@@ -1,4 +1,4 @@
-/* GStreamer RTP payloader unit tests
+/* GStreamer udpsink unit tests
  * Copyright (C) 2009 Axis Communications <dev-gstreamer@axis.com>
  * @author Ognyan Tonchev <ognyan@axis.com>
  *
@@ -19,6 +19,7 @@
  */
 #include <gst/check/gstcheck.h>
 #include <gst/base/gstbasesink.h>
+#include <gio/gio.h>
 #include <stdlib.h>
 
 static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
@@ -204,6 +205,40 @@ GST_START_TEST (test_udpsink_client_add_remove)
 
 GST_END_TEST;
 
+GST_START_TEST (test_udpsink_dscp)
+{
+  GstElement *udpsink;
+  GError *error = NULL;
+  GSocket *sock4, *sock6;
+
+  sock4 =
+      g_socket_new (G_SOCKET_FAMILY_IPV4, G_SOCKET_TYPE_DATAGRAM,
+      G_SOCKET_PROTOCOL_UDP, &error);
+  fail_unless (sock4 != NULL && error == NULL);
+  sock6 =
+      g_socket_new (G_SOCKET_FAMILY_IPV6, G_SOCKET_TYPE_DATAGRAM,
+      G_SOCKET_PROTOCOL_UDP, &error);
+  fail_unless (sock6 != NULL && error == NULL);
+
+  udpsink = gst_check_setup_element ("udpsink");
+  g_signal_emit_by_name (udpsink, "add", "127.0.0.1", 5554, NULL);
+  g_object_set (udpsink, "socket", sock4, NULL);
+  g_object_set (udpsink, "socket-v6", sock6, NULL);
+
+  ASSERT_SET_STATE (udpsink, GST_STATE_READY, GST_STATE_CHANGE_SUCCESS);
+
+  g_object_set (udpsink, "qos-dscp", 0, NULL);
+  g_object_set (udpsink, "qos-dscp", 63, NULL);
+
+  ASSERT_SET_STATE (udpsink, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS);
+
+  gst_object_unref (udpsink);
+  g_object_unref (sock4);
+  g_object_unref (sock6);
+}
+
+GST_END_TEST;
+
 static Suite *
 udpsink_suite (void)
 {
@@ -215,6 +250,7 @@ udpsink_suite (void)
   tcase_add_test (tc_chain, test_udpsink);
   tcase_add_test (tc_chain, test_udpsink_bufferlist);
   tcase_add_test (tc_chain, test_udpsink_client_add_remove);
+  tcase_add_test (tc_chain, test_udpsink_dscp);
 
   return s;
 }
diff --git a/tests/check/elements/udpsrc.c b/tests/check/elements/udpsrc.c
index d3705ebab..699e82418 100644
--- a/tests/check/elements/udpsrc.c
+++ b/tests/check/elements/udpsrc.c
@@ -79,16 +79,17 @@ GST_START_TEST (test_udpsrc_empty_packet)
     if (g_socket_send_to (socket, sa, "HeLL0", 6, NULL, NULL) == 6) {
       GstMapInfo map;
       GstBuffer *buf;
-      guint len;
+      guint len = 0;
 
       GST_INFO ("sent 6 bytes");
 
       g_mutex_lock (&check_mutex);
-      do {
+      len = g_list_length (buffers);
+      while (len < 1) {
         g_cond_wait (&check_cond, &check_mutex);
         len = g_list_length (buffers);
         GST_INFO ("%u buffers", len);
-      } while (len < 1);
+      }
 
       /* wait a bit more for a second buffer */
       if (len < 2) {
@@ -145,7 +146,9 @@ GST_START_TEST (test_udpsrc)
   GstMemory *mem;
   gchar data[48000];
   gsize max_size;
-  int i, len;
+  int i, len = 0;
+  gssize sent;
+  GError *err = NULL;
 
   for (i = 0; i < G_N_ELEMENTS (data); ++i)
     data[i] = i & 0xff;
@@ -153,29 +156,35 @@ GST_START_TEST (test_udpsrc)
   if (!udpsrc_setup (&udpsrc, &socket, &sinkpad, &sa))
     goto no_socket;
 
-  if (g_socket_send_to (socket, sa, data, 48000, NULL, NULL) != 48000)
+  if ((sent = g_socket_send_to (socket, sa, data, 48000, NULL, &err)) == -1)
     goto send_failure;
+  fail_unless_equals_int (sent, 48000);
 
-  if (g_socket_send_to (socket, sa, data, 21000, NULL, NULL) != 21000)
+  if ((sent = g_socket_send_to (socket, sa, data, 21000, NULL, &err)) == -1)
     goto send_failure;
+  fail_unless_equals_int (sent, 21000);
 
-  if (g_socket_send_to (socket, sa, data, 500, NULL, NULL) != 500)
+  if ((sent = g_socket_send_to (socket, sa, data, 500, NULL, &err)) == -1)
     goto send_failure;
+  fail_unless_equals_int (sent, 500);
 
-  if (g_socket_send_to (socket, sa, data, 1600, NULL, NULL) != 1600)
+  if ((sent = g_socket_send_to (socket, sa, data, 1600, NULL, &err)) == -1)
     goto send_failure;
+  fail_unless_equals_int (sent, 1600);
 
-  if (g_socket_send_to (socket, sa, data, 1600, NULL, NULL) != 1400)
+  if ((sent = g_socket_send_to (socket, sa, data, 1400, NULL, &err)) == -1)
     goto send_failure;
+  fail_unless_equals_int (sent, 1400);
 
   GST_INFO ("sent some packets");
 
   g_mutex_lock (&check_mutex);
-  do {
+  len = g_list_length (buffers);
+  while (len < 5) {
     g_cond_wait (&check_cond, &check_mutex);
     len = g_list_length (buffers);
     GST_INFO ("%u buffers", len);
-  } while (len < 5);
+  }
 
   /* check that large packets are made up of multiple memory chunks and that
    * the first one is fairly small */
@@ -218,8 +227,14 @@ GST_START_TEST (test_udpsrc)
   g_list_free (buffers);
   buffers = NULL;
 
+  g_mutex_unlock (&check_mutex);
+
 no_socket:
 send_failure:
+  if (err) {
+    GST_WARNING ("Socket send error, skipping test: %s", err->message);
+    g_clear_error (&err);
+  }
 
   gst_element_set_state (udpsrc, GST_STATE_NULL);
 
diff --git a/tests/check/gst-plugins-good.supp b/tests/check/gst-plugins-good.supp
index e86794df4..a95988ea9 100644
--- a/tests/check/gst-plugins-good.supp
+++ b/tests/check/gst-plugins-good.supp
@@ -143,3 +143,23 @@
    fun:gst_value_deserialize_double
 }
 
+## lame
+
+{
+   <lame Conditional jump or move depends on uninitialised values>
+   Memcheck:Cond
+   fun:L3psycho_anal_vbr
+   fun:lame_encode_mp3_frame
+   ...
+   fun:lame_encode_flush
+   fun:gst_lamemp3enc_sink_event
+}
+
+{
+   <twolame Conditional jump or move depends on uninitialised values>
+   Memcheck:Cond
+   ...
+   fun:psycho_3
+   fun:encode_frame
+}
+
diff --git a/tests/check/meson.build b/tests/check/meson.build
index 441f21e34..a00532656 100644
--- a/tests/check/meson.build
+++ b/tests/check/meson.build
@@ -60,6 +60,7 @@ good_tests = [
   [ 'elements/matroskademux' ],
   [ 'elements/matroskamux' ],
   [ 'elements/matroskaparse' ],
+  [ 'elements/mpg123audiodec', not mpg123_dep.found(),  [gstfft_dep]],
   [ 'elements/multifile' ],
   [ 'elements/splitmux' ],
   [ 'elements/rganalysis' ],
@@ -80,7 +81,6 @@ good_tests = [
   [ 'elements/rtpsession' ],
   [ 'elements/souphttpsrc', not libsoup_dep.found(), [libsoup_dep] ],
   [ 'elements/spectrum' ],
-#  [ 'elements/sunaudio' ],
   [ 'elements/shapewipe' ],
   [ 'elements/id3v2mux', not taglib_dep.found() ],
   [ 'elements/apev2mux', not taglib_dep.found() ],
@@ -94,6 +94,7 @@ good_tests = [
   [ 'elements/vp8enc', not vpx_dep.found() or not have_vp8_encoder ],
   [ 'elements/vp8dec', not vpx_dep.found() or not have_vp8_decoder ],
   [ 'elements/vp9enc', not vpx_dep.found() or not have_vp9_encoder ],
+  [ 'pipelines/lame', not lame_dep.found() ],
   [ 'pipelines/wavenc' ],
   [ 'elements/wavpackdec', not wavpack_dep.found() ],
   [ 'elements/wavpackenc', not wavpack_dep.found() ],
@@ -157,7 +158,8 @@ test_deps = [gst_dep, gstbase_dep, gstnet_dep, gstcheck_dep, gstaudio_dep,
 
 # FIXME: add valgrind suppression common/gst.supp gst-plugins-good.supp
 foreach t : good_tests
-  test_name = t.get(0)
+  fname = '@0@.c'.format(t.get(0))
+  test_name = t.get(0).underscorify()
   extra_deps = [ ]
   if t.length() == 3
     extra_deps = t.get(2)
@@ -178,7 +180,7 @@ foreach t : good_tests
     env.set('GSETTINGS_BACKEND', 'memory')
 
     env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
-    exe = executable(test_name, '@0@.c'.format(test_name),
+    exe = executable(test_name, fname,
       include_directories : [configinc],
       c_args : ['-DHAVE_CONFIG_H=1' ] + test_defines,
       dependencies : [libm] + test_deps + extra_deps,
diff --git a/tests/check/pipelines/lame.c b/tests/check/pipelines/lame.c
new file mode 100644
index 000000000..8bba66a67
--- /dev/null
+++ b/tests/check/pipelines/lame.c
@@ -0,0 +1,131 @@
+/* GStreamer
+ *
+ * unit test for lame
+ *
+ * Copyright (C) 2007 Thomas Vander Stichele <thomas at apestaart dot 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.
+ */
+
+#include <gst/check/gstcheck.h>
+#include <gst/check/gstbufferstraw.h>
+
+#ifndef ENCODER
+#define ENCODER "lamemp3enc"
+#endif
+
+#ifndef GST_DISABLE_PARSE
+
+GST_START_TEST (test_format)
+{
+  GstElement *bin;
+  GstPad *pad;
+  gchar *pipe_str;
+  GstBuffer *buffer;
+  GError *error = NULL;
+
+  pipe_str = g_strdup_printf ("audiotestsrc num-buffers=1 "
+      "! audio/x-raw, rate=22050, channels=1 "
+      "! " ENCODER " bitrate=24 ! audio/mpeg,rate=22050 ! fakesink");
+
+  bin = gst_parse_launch (pipe_str, &error);
+  fail_unless (bin != NULL, "Error parsing pipeline: %s",
+      error ? error->message : "(invalid error)");
+  g_free (pipe_str);
+
+  /* get the pad */
+  {
+    GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "fakesink0");
+
+    fail_unless (sink != NULL, "Could not get fakesink out of bin");
+    pad = gst_element_get_static_pad (sink, "sink");
+    fail_unless (pad != NULL, "Could not get pad out of fakesink");
+    gst_object_unref (sink);
+  }
+
+  gst_buffer_straw_start_pipeline (bin, pad);
+
+  buffer = gst_buffer_straw_get_buffer (bin, pad);
+
+  gst_buffer_straw_stop_pipeline (bin, pad);
+
+  gst_buffer_unref (buffer);
+  gst_object_unref (pad);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_caps_proxy)
+{
+  GstElement *bin;
+  GstPad *pad;
+  gchar *pipe_str;
+  GstBuffer *buffer;
+  GError *error = NULL;
+
+  pipe_str = g_strdup_printf ("audiotestsrc num-buffers=1 "
+      "! audio/x-raw,rate=48000,channels=1 "
+      "! audioresample "
+      "! " ENCODER " ! audio/mpeg,rate=(int){22050,44100} ! fakesink");
+
+  bin = gst_parse_launch (pipe_str, &error);
+  fail_unless (bin != NULL, "Error parsing pipeline: %s",
+      error ? error->message : "(invalid error)");
+  g_free (pipe_str);
+
+  /* get the pad */
+  {
+    GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "fakesink0");
+
+    fail_unless (sink != NULL, "Could not get fakesink out of bin");
+    pad = gst_element_get_static_pad (sink, "sink");
+    fail_unless (pad != NULL, "Could not get pad out of fakesink");
+    gst_object_unref (sink);
+  }
+
+  gst_buffer_straw_start_pipeline (bin, pad);
+
+  buffer = gst_buffer_straw_get_buffer (bin, pad);
+
+  gst_buffer_straw_stop_pipeline (bin, pad);
+
+  gst_buffer_unref (buffer);
+  gst_object_unref (pad);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+#endif /* #ifndef GST_DISABLE_PARSE */
+
+static Suite *
+lame_suite (void)
+{
+  Suite *s = suite_create (ENCODER);
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+
+#ifndef GST_DISABLE_PARSE
+  tcase_add_test (tc_chain, test_format);
+  tcase_add_test (tc_chain, test_caps_proxy);
+#endif
+
+  return s;
+}
+
+GST_CHECK_MAIN (lame);
diff --git a/tests/check/pipelines/tagschecking.c b/tests/check/pipelines/tagschecking.c
index 13c72b589..8670bf9e1 100644
--- a/tests/check/pipelines/tagschecking.c
+++ b/tests/check/pipelines/tagschecking.c
@@ -19,6 +19,7 @@
  */
 
 #include <gst/check/gstcheck.h>
+#include <glib/gstdio.h>
 
 static GstTagList *received_tags = NULL;
 
@@ -257,16 +258,19 @@ test_tags (const gchar * tag_str, const gchar * caps, const gchar * muxer,
     const gchar * demuxer)
 {
   gchar *tmpfile;
-  gchar *tmp;
+  gchar *tmpdir;
 
-  tmp = g_strdup_printf ("%s%d", "gst-check-xmp-test-", g_random_int ());
-  tmpfile = g_build_filename (g_get_tmp_dir (), tmp, NULL);
-  g_free (tmp);
+  tmpdir = g_dir_make_tmp ("gst-check-good-XXXXXX", NULL);
+  fail_unless (tmpdir != NULL);
+  tmpfile = g_build_filename (tmpdir, "tagschecking-xmp", NULL);
 
   GST_DEBUG ("testing tags : %s", tag_str);
   test_mux_tags (tag_str, caps, muxer, tmpfile);
   test_demux_tags (tag_str, demuxer, tmpfile);
+  g_unlink (tmpfile);
+  g_rmdir (tmpdir);
   g_free (tmpfile);
+  g_free (tmpdir);
 }
 
 #define H264_CAPS "video/x-h264, width=(int)320, height=(int)240," \
diff --git a/tests/check/pipelines/twolame.c b/tests/check/pipelines/twolame.c
new file mode 100644
index 000000000..752dcfc85
--- /dev/null
+++ b/tests/check/pipelines/twolame.c
@@ -0,0 +1,22 @@
+/* GStreamer unit test for twolame
+ * Copyright (C) 2007 Thomas Vander Stichele <thomas at apestaart dot 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.
+ */
+
+/* pretty lame, I know */
+#define ENCODER "twolamemp2enc"
+#include "lame.c"
diff --git a/tests/examples/Makefile.am b/tests/examples/Makefile.am
index 7c10d02a0..3f9cee64e 100644
--- a/tests/examples/Makefile.am
+++ b/tests/examples/Makefile.am
@@ -1,3 +1,9 @@
+if USE_GTK3
+GTK_DIR=gtk
+else
+GTK_DIR=
+endif
+
 if USE_JACK
 JACK_DIR=jack
 else
@@ -10,10 +16,10 @@ else
 CAIRO_DIR=
 endif
 
-SUBDIRS = audiofx equalizer $(JACK_DIR) level \
+SUBDIRS = audiofx equalizer $(GTK_DIR) $(JACK_DIR) level \
 	rtp shapewipe spectrum v4l2 $(CAIRO_DIR)
 
-DIST_SUBDIRS = audiofx equalizer jack level \
+DIST_SUBDIRS = audiofx equalizer gtk jack level \
 	rtp shapewipe spectrum v4l2 cairo
 
 include $(top_srcdir)/common/parallel-subdirs.mak
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index d88ebaded..b8a7ff5e1 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -270,6 +270,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -293,6 +294,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -308,6 +311,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -330,10 +335,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -348,6 +360,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -365,6 +378,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -377,6 +392,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -395,6 +412,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -438,9 +458,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -454,11 +485,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -549,14 +585,16 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
+@USE_GTK3_FALSE@GTK_DIR = 
+@USE_GTK3_TRUE@GTK_DIR = gtk
 @USE_JACK_FALSE@JACK_DIR = 
 @USE_JACK_TRUE@JACK_DIR = jack
 @USE_CAIRO_FALSE@CAIRO_DIR = 
 @USE_CAIRO_TRUE@CAIRO_DIR = cairo
-SUBDIRS = audiofx equalizer $(JACK_DIR) level \
+SUBDIRS = audiofx equalizer $(GTK_DIR) $(JACK_DIR) level \
 	rtp shapewipe spectrum v4l2 $(CAIRO_DIR)
 
-DIST_SUBDIRS = audiofx equalizer jack level \
+DIST_SUBDIRS = audiofx equalizer gtk jack level \
 	rtp shapewipe spectrum v4l2 cairo
 
 all: all-recursive
diff --git a/tests/examples/audiofx/Makefile.in b/tests/examples/audiofx/Makefile.in
index 28715f64a..577fdc170 100644
--- a/tests/examples/audiofx/Makefile.in
+++ b/tests/examples/audiofx/Makefile.in
@@ -274,6 +274,7 @@ ERROR_CFLAGS =
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -297,6 +298,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -312,6 +315,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -334,10 +339,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -352,6 +364,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -369,6 +382,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -381,6 +396,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -399,6 +416,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -442,9 +462,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -458,11 +489,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/tests/examples/audiofx/meson.build b/tests/examples/audiofx/meson.build
new file mode 100644
index 000000000..3de26edc6
--- /dev/null
+++ b/tests/examples/audiofx/meson.build
@@ -0,0 +1,12 @@
+executable('firfilter-example', 'firfilter-example.c',
+  dependencies: [gstfft_dep, gst_dep, libm],
+  c_args : gst_plugins_good_args,
+  include_directories : [configinc],
+  install: false)
+
+executable('iirfilter-example', 'iirfilter-example.c',
+  dependencies: [gst_dep, libm],
+  c_args : gst_plugins_good_args,
+  include_directories : [configinc],
+  install: false)
+
diff --git a/tests/examples/cairo/Makefile.in b/tests/examples/cairo/Makefile.in
index 227186a5c..0a53dc9d1 100644
--- a/tests/examples/cairo/Makefile.in
+++ b/tests/examples/cairo/Makefile.in
@@ -260,6 +260,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -283,6 +284,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -298,6 +301,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -320,10 +325,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -338,6 +350,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -355,6 +368,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -367,6 +382,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -385,6 +402,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -428,9 +448,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -444,11 +475,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/tests/examples/cairo/meson.build b/tests/examples/cairo/meson.build
new file mode 100644
index 000000000..628d2c122
--- /dev/null
+++ b/tests/examples/cairo/meson.build
@@ -0,0 +1,7 @@
+if cairo_dep.found()
+  executable('cairo_overlay', 'cairo_overlay.c',
+    dependencies: [gstvideo_dep, gst_dep, cairo_dep, libm],
+    c_args : gst_plugins_good_args,
+    include_directories : [configinc],
+    install: false)
+endif
diff --git a/tests/examples/equalizer/Makefile.in b/tests/examples/equalizer/Makefile.in
index e15139e51..c16254f89 100644
--- a/tests/examples/equalizer/Makefile.in
+++ b/tests/examples/equalizer/Makefile.in
@@ -260,6 +260,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -283,6 +284,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -298,6 +301,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -320,10 +325,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -338,6 +350,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -355,6 +368,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -367,6 +382,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -385,6 +402,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -428,9 +448,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -444,11 +475,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/tests/examples/equalizer/meson.build b/tests/examples/equalizer/meson.build
new file mode 100644
index 000000000..de68233e6
--- /dev/null
+++ b/tests/examples/equalizer/meson.build
@@ -0,0 +1,6 @@
+executable('equalizer-demo', 'demo.c',
+  dependencies: [gst_dep, gtk_dep],
+  c_args: gst_plugins_good_args,
+  include_directories: [configinc],
+  install: false)
+
diff --git a/tests/examples/gtk/Makefile.am b/tests/examples/gtk/Makefile.am
new file mode 100644
index 000000000..9aed73742
--- /dev/null
+++ b/tests/examples/gtk/Makefile.am
@@ -0,0 +1,39 @@
+
+noinst_PROGRAMS = gtksink
+
+gtksink_SOURCES = gtksink.c
+gtksink_CFLAGS = $(GTK3_CFLAGS) \
+	$(GST_CFLAGS)
+gtksink_LDADD = $(GTK3_LIBS) \
+	$(GST_LIBS)
+
+if USE_GTK3_GL
+noinst_PROGRAMS += gtkglsink glliveshader
+
+gtkglsink_SOURCES = gtkglsink.c
+gtkglsink_CFLAGS = \
+	$(GST_PLUGINS_BAD_CFLAGS) \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_GL_CFLAGS) \
+	$(GST_CFLAGS) \
+	$(GL_CFLAGS) \
+	$(GTK3_CFLAGS)
+gtkglsink_LDADD = \
+	$(GST_GL_LIBS) \
+	$(GST_LIBS) \
+	$(GTK3_LIBS) \
+	$(X_LIBS)
+
+glliveshader_SOURCES = glliveshader.c
+glliveshader_CFLAGS = \
+	$(GST_PLUGINS_BAD_CFLAGS) \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_GL_CFLAGS) \
+	$(GST_CFLAGS) \
+	$(GTK3_CFLAGS)
+glliveshader_LDADD = \
+	$(GST_GL_LIBS) \
+	$(GST_LIBS) \
+	$(GTK3_LIBS) \
+	$(X_LIBS)
+endif
diff --git a/tests/examples/gtk/Makefile.in b/tests/examples/gtk/Makefile.in
new file mode 100644
index 000000000..855da4596
--- /dev/null
+++ b/tests/examples/gtk/Makefile.in
@@ -0,0 +1,983 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 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 = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+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@
+noinst_PROGRAMS = gtksink$(EXEEXT) $(am__EXEEXT_1)
+@USE_GTK3_GL_TRUE@am__append_1 = gtkglsink glliveshader
+subdir = tests/examples/gtk
+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-version.m4 \
+	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.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.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)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+@USE_GTK3_GL_TRUE@am__EXEEXT_1 = gtkglsink$(EXEEXT) \
+@USE_GTK3_GL_TRUE@	glliveshader$(EXEEXT)
+PROGRAMS = $(noinst_PROGRAMS)
+am__glliveshader_SOURCES_DIST = glliveshader.c
+@USE_GTK3_GL_TRUE@am_glliveshader_OBJECTS =  \
+@USE_GTK3_GL_TRUE@	glliveshader-glliveshader.$(OBJEXT)
+glliveshader_OBJECTS = $(am_glliveshader_OBJECTS)
+am__DEPENDENCIES_1 =
+@USE_GTK3_GL_TRUE@glliveshader_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+@USE_GTK3_GL_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+@USE_GTK3_GL_TRUE@	$(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 = 
+glliveshader_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(glliveshader_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am__gtkglsink_SOURCES_DIST = gtkglsink.c
+@USE_GTK3_GL_TRUE@am_gtkglsink_OBJECTS =  \
+@USE_GTK3_GL_TRUE@	gtkglsink-gtkglsink.$(OBJEXT)
+gtkglsink_OBJECTS = $(am_gtkglsink_OBJECTS)
+@USE_GTK3_GL_TRUE@gtkglsink_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+@USE_GTK3_GL_TRUE@	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+@USE_GTK3_GL_TRUE@	$(am__DEPENDENCIES_1)
+gtkglsink_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(gtkglsink_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_gtksink_OBJECTS = gtksink-gtksink.$(OBJEXT)
+gtksink_OBJECTS = $(am_gtksink_OBJECTS)
+gtksink_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+gtksink_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(gtksink_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
+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 = $(glliveshader_SOURCES) $(gtkglsink_SOURCES) \
+	$(gtksink_SOURCES)
+DIST_SOURCES = $(am__glliveshader_SOURCES_DIST) \
+	$(am__gtkglsink_SOURCES_DIST) $(gtksink_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    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__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+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@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+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@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
+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_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
+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_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
+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_PREFIX = @GST_PREFIX@
+GST_REVISION = @GST_REVISION@
+GST_TOOLS_DIR = @GST_TOOLS_DIR@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
+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_CXX = @HAVE_CXX@
+HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
+HAVE_ROM1394 = @HAVE_ROM1394@
+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@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_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_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
+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@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
+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@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+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@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
+RANLIB = @RANLIB@
+RAW1394_CFLAGS = @RAW1394_CFLAGS@
+RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
+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@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
+USE_NLS = @USE_NLS@
+VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+VALGRIND_LIBS = @VALGRIND_LIBS@
+VALGRIND_PATH = @VALGRIND_PATH@
+VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
+VPX_130_CFLAGS = @VPX_130_CFLAGS@
+VPX_130_LIBS = @VPX_130_LIBS@
+VPX_140_CFLAGS = @VPX_140_CFLAGS@
+VPX_140_LIBS = @VPX_140_LIBS@
+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@
+XEXT_CFLAGS = @XEXT_CFLAGS@
+XEXT_LIBS = @XEXT_LIBS@
+XFIXES_CFLAGS = @XFIXES_CFLAGS@
+XFIXES_LIBS = @XFIXES_LIBS@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XSHM_CFLAGS = @XSHM_CFLAGS@
+XSHM_LIBS = @XSHM_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_LIBS = @X_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@
+ax_pthread_config = @ax_pthread_config@
+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@
+runstatedir = @runstatedir@
+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@
+gtksink_SOURCES = gtksink.c
+gtksink_CFLAGS = $(GTK3_CFLAGS) \
+	$(GST_CFLAGS)
+
+gtksink_LDADD = $(GTK3_LIBS) \
+	$(GST_LIBS)
+
+@USE_GTK3_GL_TRUE@gtkglsink_SOURCES = gtkglsink.c
+@USE_GTK3_GL_TRUE@gtkglsink_CFLAGS = \
+@USE_GTK3_GL_TRUE@	$(GST_PLUGINS_BAD_CFLAGS) \
+@USE_GTK3_GL_TRUE@	$(GST_PLUGINS_BASE_CFLAGS) \
+@USE_GTK3_GL_TRUE@	$(GST_GL_CFLAGS) \
+@USE_GTK3_GL_TRUE@	$(GST_CFLAGS) \
+@USE_GTK3_GL_TRUE@	$(GL_CFLAGS) \
+@USE_GTK3_GL_TRUE@	$(GTK3_CFLAGS)
+
+@USE_GTK3_GL_TRUE@gtkglsink_LDADD = \
+@USE_GTK3_GL_TRUE@	$(GST_GL_LIBS) \
+@USE_GTK3_GL_TRUE@	$(GST_LIBS) \
+@USE_GTK3_GL_TRUE@	$(GTK3_LIBS) \
+@USE_GTK3_GL_TRUE@	$(X_LIBS)
+
+@USE_GTK3_GL_TRUE@glliveshader_SOURCES = glliveshader.c
+@USE_GTK3_GL_TRUE@glliveshader_CFLAGS = \
+@USE_GTK3_GL_TRUE@	$(GST_PLUGINS_BAD_CFLAGS) \
+@USE_GTK3_GL_TRUE@	$(GST_PLUGINS_BASE_CFLAGS) \
+@USE_GTK3_GL_TRUE@	$(GST_GL_CFLAGS) \
+@USE_GTK3_GL_TRUE@	$(GST_CFLAGS) \
+@USE_GTK3_GL_TRUE@	$(GTK3_CFLAGS)
+
+@USE_GTK3_GL_TRUE@glliveshader_LDADD = \
+@USE_GTK3_GL_TRUE@	$(GST_GL_LIBS) \
+@USE_GTK3_GL_TRUE@	$(GST_LIBS) \
+@USE_GTK3_GL_TRUE@	$(GTK3_LIBS) \
+@USE_GTK3_GL_TRUE@	$(X_LIBS)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gtk/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu tests/examples/gtk/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstPROGRAMS:
+	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+
+glliveshader$(EXEEXT): $(glliveshader_OBJECTS) $(glliveshader_DEPENDENCIES) $(EXTRA_glliveshader_DEPENDENCIES) 
+	@rm -f glliveshader$(EXEEXT)
+	$(AM_V_CCLD)$(glliveshader_LINK) $(glliveshader_OBJECTS) $(glliveshader_LDADD) $(LIBS)
+
+gtkglsink$(EXEEXT): $(gtkglsink_OBJECTS) $(gtkglsink_DEPENDENCIES) $(EXTRA_gtkglsink_DEPENDENCIES) 
+	@rm -f gtkglsink$(EXEEXT)
+	$(AM_V_CCLD)$(gtkglsink_LINK) $(gtkglsink_OBJECTS) $(gtkglsink_LDADD) $(LIBS)
+
+gtksink$(EXEEXT): $(gtksink_OBJECTS) $(gtksink_DEPENDENCIES) $(EXTRA_gtksink_DEPENDENCIES) 
+	@rm -f gtksink$(EXEEXT)
+	$(AM_V_CCLD)$(gtksink_LINK) $(gtksink_OBJECTS) $(gtksink_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glliveshader-glliveshader.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkglsink-gtkglsink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtksink-gtksink.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<
+
+glliveshader-glliveshader.o: glliveshader.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(glliveshader_CFLAGS) $(CFLAGS) -MT glliveshader-glliveshader.o -MD -MP -MF $(DEPDIR)/glliveshader-glliveshader.Tpo -c -o glliveshader-glliveshader.o `test -f 'glliveshader.c' || echo '$(srcdir)/'`glliveshader.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/glliveshader-glliveshader.Tpo $(DEPDIR)/glliveshader-glliveshader.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='glliveshader.c' object='glliveshader-glliveshader.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) $(glliveshader_CFLAGS) $(CFLAGS) -c -o glliveshader-glliveshader.o `test -f 'glliveshader.c' || echo '$(srcdir)/'`glliveshader.c
+
+glliveshader-glliveshader.obj: glliveshader.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(glliveshader_CFLAGS) $(CFLAGS) -MT glliveshader-glliveshader.obj -MD -MP -MF $(DEPDIR)/glliveshader-glliveshader.Tpo -c -o glliveshader-glliveshader.obj `if test -f 'glliveshader.c'; then $(CYGPATH_W) 'glliveshader.c'; else $(CYGPATH_W) '$(srcdir)/glliveshader.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/glliveshader-glliveshader.Tpo $(DEPDIR)/glliveshader-glliveshader.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='glliveshader.c' object='glliveshader-glliveshader.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) $(glliveshader_CFLAGS) $(CFLAGS) -c -o glliveshader-glliveshader.obj `if test -f 'glliveshader.c'; then $(CYGPATH_W) 'glliveshader.c'; else $(CYGPATH_W) '$(srcdir)/glliveshader.c'; fi`
+
+gtkglsink-gtkglsink.o: gtkglsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtkglsink_CFLAGS) $(CFLAGS) -MT gtkglsink-gtkglsink.o -MD -MP -MF $(DEPDIR)/gtkglsink-gtkglsink.Tpo -c -o gtkglsink-gtkglsink.o `test -f 'gtkglsink.c' || echo '$(srcdir)/'`gtkglsink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gtkglsink-gtkglsink.Tpo $(DEPDIR)/gtkglsink-gtkglsink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gtkglsink.c' object='gtkglsink-gtkglsink.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) $(gtkglsink_CFLAGS) $(CFLAGS) -c -o gtkglsink-gtkglsink.o `test -f 'gtkglsink.c' || echo '$(srcdir)/'`gtkglsink.c
+
+gtkglsink-gtkglsink.obj: gtkglsink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtkglsink_CFLAGS) $(CFLAGS) -MT gtkglsink-gtkglsink.obj -MD -MP -MF $(DEPDIR)/gtkglsink-gtkglsink.Tpo -c -o gtkglsink-gtkglsink.obj `if test -f 'gtkglsink.c'; then $(CYGPATH_W) 'gtkglsink.c'; else $(CYGPATH_W) '$(srcdir)/gtkglsink.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gtkglsink-gtkglsink.Tpo $(DEPDIR)/gtkglsink-gtkglsink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gtkglsink.c' object='gtkglsink-gtkglsink.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) $(gtkglsink_CFLAGS) $(CFLAGS) -c -o gtkglsink-gtkglsink.obj `if test -f 'gtkglsink.c'; then $(CYGPATH_W) 'gtkglsink.c'; else $(CYGPATH_W) '$(srcdir)/gtkglsink.c'; fi`
+
+gtksink-gtksink.o: gtksink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtksink_CFLAGS) $(CFLAGS) -MT gtksink-gtksink.o -MD -MP -MF $(DEPDIR)/gtksink-gtksink.Tpo -c -o gtksink-gtksink.o `test -f 'gtksink.c' || echo '$(srcdir)/'`gtksink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gtksink-gtksink.Tpo $(DEPDIR)/gtksink-gtksink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gtksink.c' object='gtksink-gtksink.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) $(gtksink_CFLAGS) $(CFLAGS) -c -o gtksink-gtksink.o `test -f 'gtksink.c' || echo '$(srcdir)/'`gtksink.c
+
+gtksink-gtksink.obj: gtksink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtksink_CFLAGS) $(CFLAGS) -MT gtksink-gtksink.obj -MD -MP -MF $(DEPDIR)/gtksink-gtksink.Tpo -c -o gtksink-gtksink.obj `if test -f 'gtksink.c'; then $(CYGPATH_W) 'gtksink.c'; else $(CYGPATH_W) '$(srcdir)/gtksink.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gtksink-gtksink.Tpo $(DEPDIR)/gtksink-gtksink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gtksink.c' object='gtksink-gtksink.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) $(gtksink_CFLAGS) $(CFLAGS) -c -o gtksink-gtksink.obj `if test -f 'gtksink.c'; then $(CYGPATH_W) 'gtksink.c'; else $(CYGPATH_W) '$(srcdir)/gtksink.c'; fi`
+
+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 $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS 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
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/examples/gtk/glliveshader.c b/tests/examples/gtk/glliveshader.c
new file mode 100644
index 000000000..03e745ee3
--- /dev/null
+++ b/tests/examples/gtk/glliveshader.c
@@ -0,0 +1,350 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@centricular.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.
+ */
+
+#include <gst/gst.h>
+#include <gst/gl/gl.h>
+#include <gst/gl/gstglfuncs.h>
+#include <gtk/gtk.h>
+#if GST_GL_HAVE_WINDOW_X11
+#include <X11/Xlib.h>
+#endif
+
+#ifndef GL_GEOMETRY_SHADER
+#define GL_GEOMETRY_SHADER 0x8DD9
+#endif
+
+static GMainLoop *loop;
+
+static const gchar *vert = "#version 330\n\
+in vec4 a_position;\n\
+in vec2 a_texcoord;\n\
+out vec2 v_texcoord;\n\
+uniform float time;\n\
+uniform float width;\n\
+uniform float height;\n\
+void main()\n\
+{\n\
+  gl_Position = a_position;\n\
+  v_texcoord = a_texcoord;\n\
+}\n";
+
+static const gchar *geom = "#version 330\n\
+\n\
+layout(triangles) in;\n\
+layout(triangle_strip, max_vertices = 3) out;\n\
+in vec2 v_texcoord[];\n\
+out vec2 g_texcoord;\n\
+\n\
+void main() {\n\
+  for(int i = 0; i < 3; i++) {\n\
+    gl_Position = gl_in[i].gl_Position;\n\
+    g_texcoord = v_texcoord[i];\n\
+    EmitVertex();\n\
+  }\n\
+  EndPrimitive();\n\
+}\n";
+
+static const gchar *frag = "#version 330\n\
+in vec2 g_texcoord;\n\
+uniform sampler2D tex;\n\
+uniform float time;\n\
+uniform float width;\n\
+uniform float height;\n\
+void main()\n\
+{\n\
+  gl_FragColor = texture2D(tex, g_texcoord);\n\
+}\n";
+
+#define MAX_SHADER_STAGES 8
+struct shader_state;
+
+struct text_view_state
+{
+  struct shader_state *state;
+
+  GLenum type;
+  gchar *str;
+};
+
+struct shader_state
+{
+  GstGLContext *context;
+  GstElement *shader;
+  gboolean shader_linked;
+  GtkWidget *label;
+  struct text_view_state text_states[MAX_SHADER_STAGES];
+  gint n_stages;
+};
+
+static gboolean
+bus_call (GstBus * bus, GstMessage * msg, gpointer data)
+{
+  switch (GST_MESSAGE_TYPE (msg)) {
+    case GST_MESSAGE_EOS:
+      g_print ("End of stream\n");
+      g_main_loop_quit (loop);
+      break;
+    case GST_MESSAGE_ERROR:{
+      gchar *debug;
+      GError *error;
+
+      gst_message_parse_error (msg, &error, &debug);
+      g_free (debug);
+
+      g_printerr ("Error: %s\n", error->message);
+      g_error_free (error);
+
+      g_main_loop_quit (loop);
+      break;
+    }
+    default:
+      break;
+  }
+
+  return TRUE;
+}
+
+static gchar *
+_find_source_for_shader_type (struct shader_state *state, GLenum type)
+{
+  int i = 0;
+
+  for (i = 0; i < state->n_stages; i++) {
+    if (state->text_states[i].type == type)
+      return state->text_states[i].str;
+  }
+
+  return NULL;
+}
+
+static gboolean
+_add_stage_to_shader (GstGLShader * shader, struct shader_state *state,
+    GLenum type, const gchar * default_src)
+{
+  GError *error = NULL;
+  GstGLSLVersion version;
+  GstGLSLProfile profile;
+  GstGLSLStage *stage;
+  const gchar *src;
+
+  src = _find_source_for_shader_type (state, type);
+  if (!src)
+    src = default_src;
+  if (!src)
+    /* FIXME: assume this stage is not needed */
+    return TRUE;
+
+  if (!gst_glsl_string_get_version_profile (src, &version, &profile)) {
+    g_print ("Warning: failed to retreive GLSL version and profile for "
+        "shader type 0x%x\nsrc:\n%s\n", type, src);
+  }
+
+  if (!(stage = gst_glsl_stage_new_with_string (shader->context, type,
+              version, profile, src))) {
+    g_print ("Error: Failed to create GLSL Stage from src:\n%s\n", src);
+    return FALSE;
+  }
+
+  if (!gst_gl_shader_compile_attach_stage (shader, stage, &error)) {
+    /* ignore failed shader compilations */
+    g_print ("%s", error->message);
+    return FALSE;
+  }
+
+  return TRUE;
+}
+
+static GstGLShader *
+_new_shader (GstGLContext * context, struct shader_state *state)
+{
+  GstGLShader *shader = gst_gl_shader_new (context);
+  GError *error = NULL;
+
+  if (!_add_stage_to_shader (shader, state, GL_VERTEX_SHADER, vert)) {
+    gst_object_unref (shader);
+    return NULL;
+  }
+  if (!_add_stage_to_shader (shader, state, GL_GEOMETRY_SHADER, geom)) {
+    gst_object_unref (shader);
+    return NULL;
+  }
+  if (!_add_stage_to_shader (shader, state, GL_FRAGMENT_SHADER, frag)) {
+    gst_object_unref (shader);
+    return NULL;
+  }
+
+  if (!gst_gl_shader_link (shader, &error)) {
+    /* ignore failed shader compilations */
+    g_print ("%s", error->message);
+    gst_object_unref (shader);
+    return NULL;
+  }
+
+  return shader;
+}
+
+static gboolean
+_set_compilation_state (struct shader_state *state)
+{
+  gtk_label_set_text (GTK_LABEL (state->label),
+      state->shader_linked ? "Success" : "Failure");
+
+  return G_SOURCE_REMOVE;
+}
+
+static GstGLShader *
+_create_shader (GstElement * element, struct shader_state *state)
+{
+  GstGLContext *context;
+  GstGLShader *shader, *new_shader;
+
+  g_object_get (G_OBJECT (element), "context", &context, "shader", &shader,
+      NULL);
+
+  new_shader = _new_shader (context, state);
+  if (!shader && !new_shader)
+    g_warning ("Failed to create a shader!");
+  state->shader_linked = new_shader != NULL;
+
+  if (shader)
+    gst_object_unref (shader);
+  gst_object_unref (context);
+
+  g_main_context_invoke (NULL, (GSourceFunc) _set_compilation_state, state);
+
+  return new_shader;
+}
+
+static void
+_on_text_changed (GtkTextBuffer * text, struct text_view_state *state)
+{
+  GtkTextIter start, end;
+
+  gtk_text_buffer_get_bounds (text, &start, &end);
+  g_free (state->str);
+  state->str = gtk_text_buffer_get_text (text, &start, &end, FALSE);
+  g_object_set (state->state->shader, "update-shader", TRUE, NULL);
+}
+
+static GtkWidget *
+_new_source_view (struct shader_state *state, GLenum type, const gchar * templ)
+{
+  static int i = 0;
+  GtkWidget *scroll, *text_view;
+  GtkTextBuffer *text;
+
+  g_return_val_if_fail (i < MAX_SHADER_STAGES, NULL);
+
+  state->text_states[i].state = state;
+  state->text_states[i].type = type;
+  state->text_states[i].str = g_strdup (templ);
+
+  scroll = gtk_scrolled_window_new (NULL, NULL);
+  gtk_widget_set_size_request (scroll, 20, 20);
+  text_view = gtk_text_view_new ();
+  gtk_container_add (GTK_CONTAINER (scroll), text_view);
+  text = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view));
+  if (state->text_states[i].str)
+    gtk_text_buffer_set_text (text, state->text_states[i].str, -1);
+  g_signal_connect (text, "changed", G_CALLBACK (_on_text_changed),
+      &state->text_states[i]);
+  state->n_stages++;
+  i++;
+
+  return scroll;
+}
+
+int
+main (int argc, char *argv[])
+{
+  GstElement *pipeline, *src, *upload, *shader, *sink;
+  GtkWidget *window, *paned, *video, *right_box, *book;
+  struct shader_state state = { 0, };
+  GstBus *bus;
+
+#if GST_GL_HAVE_WINDOW_X11
+  XInitThreads ();
+#endif
+
+  gst_init (&argc, &argv);
+  gtk_init (&argc, &argv);
+
+  loop = g_main_loop_new (NULL, FALSE);
+
+  pipeline = gst_pipeline_new (NULL);
+  src = gst_element_factory_make ("videotestsrc", NULL);
+  upload = gst_element_factory_make ("glupload", NULL);
+  shader = gst_element_factory_make ("glshader", NULL);
+  sink = gst_element_factory_make ("gtkglsink", NULL);
+  g_object_get (sink, "widget", &video, NULL);
+
+  g_assert (src && shader && sink);
+  gst_bin_add_many (GST_BIN (pipeline), src, upload, shader, sink, NULL);
+  g_assert (gst_element_link_many (src, upload, shader, sink, NULL));
+
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+  gst_bus_add_watch (bus, bus_call, loop);
+  gst_object_unref (bus);
+
+  state.shader = gst_object_ref (shader);
+  g_signal_connect (shader, "create-shader", G_CALLBACK (_create_shader),
+      &state);
+
+  book = gtk_notebook_new ();
+  /* text view inside a scroll view */
+  gtk_notebook_append_page (GTK_NOTEBOOK (book), _new_source_view (&state,
+          GL_VERTEX_SHADER, vert), gtk_label_new ("Vertex"));
+  gtk_notebook_append_page (GTK_NOTEBOOK (book), _new_source_view (&state,
+          GL_GEOMETRY_SHADER, geom), gtk_label_new ("Geometry"));
+  gtk_notebook_append_page (GTK_NOTEBOOK (book), _new_source_view (&state,
+          GL_FRAGMENT_SHADER, frag), gtk_label_new ("Fragment"));
+  /* status label */
+  state.label = gtk_label_new ("Success");
+
+  /* right side source code editor */
+  right_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+  gtk_box_pack_start (GTK_BOX (right_box), book, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (right_box), state.label, FALSE, TRUE, 0);
+
+  paned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
+  gtk_paned_pack1 (GTK_PANED (paned), video, TRUE, FALSE);
+  gtk_widget_set_size_request (video, 20, 20);
+  gtk_paned_pack2 (GTK_PANED (paned), right_box, TRUE, FALSE);
+
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
+  gtk_container_add (GTK_CONTAINER (window), paned);
+
+  gtk_widget_show_all (window);
+
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  g_main_loop_run (loop);
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+
+  /*shader strings leaked here */
+  /*g_free (state.str); */
+  gst_object_unref (state.shader);
+
+  gst_object_unref (pipeline);
+
+  return 0;
+}
diff --git a/tests/examples/gtk/gtkglsink.c b/tests/examples/gtk/gtkglsink.c
new file mode 100644
index 000000000..4b71985b0
--- /dev/null
+++ b/tests/examples/gtk/gtkglsink.c
@@ -0,0 +1,200 @@
+/*
+ * GStreamer
+ * Copyright (C) 2014 Matthew Waters <matthew@centricular.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.
+ */
+
+#include <gtk/gtk.h>
+#include <gst/gst.h>
+
+#include <gst/gl/gl.h>
+
+#if GST_GL_HAVE_WINDOW_X11 && defined (GDK_WINDOWING_X11)
+#include <gst/gl/x11/gstgldisplay_x11.h>
+#endif
+
+static void
+button_state_null_cb (GtkWidget * widget, GstElement * pipeline)
+{
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  g_print ("GST_STATE_NULL\n");
+}
+
+static void
+button_state_ready_cb (GtkWidget * widget, GstElement * pipeline)
+{
+  gst_element_set_state (pipeline, GST_STATE_READY);
+  g_print ("GST_STATE_READY\n");
+}
+
+static void
+button_state_paused_cb (GtkWidget * widget, GstElement * pipeline)
+{
+  gst_element_set_state (pipeline, GST_STATE_PAUSED);
+  g_print ("GST_STATE_PAUSED\n");
+}
+
+static void
+button_state_playing_cb (GtkWidget * widget, GstElement * pipeline)
+{
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+  g_print ("GST_STATE_PLAYING\n");
+}
+
+static void
+end_stream_cb (GstBus * bus, GstMessage * message, GstElement * pipeline)
+{
+  g_print ("End of stream\n");
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (pipeline);
+
+  gtk_main_quit ();
+}
+
+static void
+destroy_cb (GtkWidget * widget, GdkEvent * event, GstElement * pipeline)
+{
+  g_print ("Close\n");
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (pipeline);
+
+  gtk_main_quit ();
+}
+
+int
+main (int argc, char *argv[])
+{
+  GtkWidget *window, *window_control;
+  GtkWidget *button_state_null, *button_state_ready;
+  GtkWidget *button_state_paused, *button_state_playing;
+  GtkWidget *grid, *area;
+  GstElement *pipeline;
+  GstElement *videosrc, *upload, *effect, *videosink;
+  GstStateChangeReturn ret;
+  GstCaps *caps;
+  GstBus *bus;
+
+#if GST_GL_HAVE_WINDOW_X11 && defined(GDK_WINDOWING_X11)
+  XInitThreads ();
+#endif
+
+  gst_init (&argc, &argv);
+  gtk_init (&argc, &argv);
+
+  pipeline = gst_pipeline_new ("pipeline");
+
+  //window that contains an area where the video is drawn
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
+  gtk_window_move (GTK_WINDOW (window), 300, 10);
+  gtk_window_set_title (GTK_WINDOW (window), "gtkgstwidget");
+
+  //window to control the states
+  window_control = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_resizable (GTK_WINDOW (window_control), FALSE);
+  gtk_window_move (GTK_WINDOW (window_control), 10, 10);
+  grid = gtk_grid_new ();
+  gtk_container_add (GTK_CONTAINER (window_control), grid);
+
+  //control state null
+  button_state_null = gtk_button_new_with_label ("GST_STATE_NULL");
+  g_signal_connect (G_OBJECT (button_state_null), "clicked",
+      G_CALLBACK (button_state_null_cb), pipeline);
+  gtk_grid_attach (GTK_GRID (grid), button_state_null, 0, 1, 1, 1);
+  gtk_widget_show (button_state_null);
+
+  //control state ready
+  button_state_ready = gtk_button_new_with_label ("GST_STATE_READY");
+  g_signal_connect (G_OBJECT (button_state_ready), "clicked",
+      G_CALLBACK (button_state_ready_cb), pipeline);
+  gtk_grid_attach (GTK_GRID (grid), button_state_ready, 0, 2, 1, 1);
+  gtk_widget_show (button_state_ready);
+
+  //control state paused
+  button_state_paused = gtk_button_new_with_label ("GST_STATE_PAUSED");
+  g_signal_connect (G_OBJECT (button_state_paused), "clicked",
+      G_CALLBACK (button_state_paused_cb), pipeline);
+  gtk_grid_attach (GTK_GRID (grid), button_state_paused, 0, 3, 1, 1);
+  gtk_widget_show (button_state_paused);
+
+  //control state playing
+  button_state_playing = gtk_button_new_with_label ("GST_STATE_PLAYING");
+  g_signal_connect (G_OBJECT (button_state_playing), "clicked",
+      G_CALLBACK (button_state_playing_cb), pipeline);
+  gtk_grid_attach (GTK_GRID (grid), button_state_playing, 0, 4, 1, 1);
+  gtk_widget_show (button_state_playing);
+
+  gtk_widget_show (grid);
+  gtk_widget_show (window_control);
+
+  g_signal_connect (G_OBJECT (window), "delete-event", G_CALLBACK (destroy_cb),
+      pipeline);
+
+  //configure the pipeline
+  videosrc = gst_element_factory_make ("videotestsrc", "videotestsrc");
+  upload = gst_element_factory_make ("glupload", "glupload");
+  effect = gst_element_factory_make ("glfiltercube", "glfiltercube");
+  videosink = gst_element_factory_make ("gtkglsink", "gtksink");
+
+  g_object_get (videosink, "widget", &area, NULL);
+  gtk_container_add (GTK_CONTAINER (window), area);
+  g_object_unref (area);
+
+  caps = gst_caps_new_simple ("video/x-raw", "width", G_TYPE_INT, 640,
+      "height", G_TYPE_INT, 480, "format", G_TYPE_STRING, "RGBA",
+      "framerate", GST_TYPE_FRACTION, 30, 1, NULL);
+
+  gst_bin_add_many (GST_BIN (pipeline), videosrc, upload, effect, videosink,
+      NULL);
+
+  if (!gst_element_link_filtered (videosrc, upload, caps)) {
+    gst_caps_unref (caps);
+    g_warning ("Failed to link videosrc to glfiltercube!\n");
+    return -1;
+  }
+  gst_caps_unref (caps);
+
+  if (!gst_element_link_many (upload, effect, videosink, NULL)) {
+    g_warning ("Failed to link videosrc to glfiltercube!\n");
+    return -1;
+  }
+  //set window id on this event
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+  g_signal_connect (bus, "message::error", G_CALLBACK (end_stream_cb),
+      pipeline);
+  g_signal_connect (bus, "message::warning", G_CALLBACK (end_stream_cb),
+      pipeline);
+  g_signal_connect (bus, "message::eos", G_CALLBACK (end_stream_cb), pipeline);
+  gst_object_unref (bus);
+
+  //start
+  ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
+  if (ret == GST_STATE_CHANGE_FAILURE) {
+    g_print ("Failed to start up pipeline!\n");
+    return -1;
+  }
+
+  gtk_widget_show_all (window);
+
+  gtk_main ();
+
+  gst_deinit ();
+
+  return 0;
+}
diff --git a/tests/examples/gtk/gtksink.c b/tests/examples/gtk/gtksink.c
new file mode 100644
index 000000000..d86fd090e
--- /dev/null
+++ b/tests/examples/gtk/gtksink.c
@@ -0,0 +1,185 @@
+/*
+ * GStreamer
+ * Copyright (C) 2014 Matthew Waters <matthew@centricular.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.
+ */
+
+#include <gtk/gtk.h>
+#include <gst/gst.h>
+
+static void
+button_state_null_cb (GtkWidget * widget, GstElement * pipeline)
+{
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  g_print ("GST_STATE_NULL\n");
+}
+
+static void
+button_state_ready_cb (GtkWidget * widget, GstElement * pipeline)
+{
+  gst_element_set_state (pipeline, GST_STATE_READY);
+  g_print ("GST_STATE_READY\n");
+}
+
+static void
+button_state_paused_cb (GtkWidget * widget, GstElement * pipeline)
+{
+  gst_element_set_state (pipeline, GST_STATE_PAUSED);
+  g_print ("GST_STATE_PAUSED\n");
+}
+
+static void
+button_state_playing_cb (GtkWidget * widget, GstElement * pipeline)
+{
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+  g_print ("GST_STATE_PLAYING\n");
+}
+
+static void
+end_stream_cb (GstBus * bus, GstMessage * message, GstElement * pipeline)
+{
+  g_print ("End of stream\n");
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (pipeline);
+
+  gtk_main_quit ();
+}
+
+static void
+destroy_cb (GtkWidget * widget, GdkEvent * event, GstElement * pipeline)
+{
+  g_print ("Close\n");
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (pipeline);
+
+  gtk_main_quit ();
+}
+
+int
+main (int argc, char *argv[])
+{
+  GtkWidget *window, *window_control;
+  GtkWidget *button_state_null, *button_state_ready;
+  GtkWidget *button_state_paused, *button_state_playing;
+  GtkWidget *grid, *area;
+  GstElement *pipeline;
+  GstElement *videosrc, *videosink;
+  GstStateChangeReturn ret;
+  GstCaps *caps;
+  GstBus *bus;
+
+  gst_init (&argc, &argv);
+  gtk_init (&argc, &argv);
+
+  pipeline = gst_pipeline_new ("pipeline");
+
+  //window that contains an area where the video is drawn
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
+  gtk_window_move (GTK_WINDOW (window), 300, 10);
+  gtk_window_set_title (GTK_WINDOW (window), "gtkgstwidget");
+
+  //window to control the states
+  window_control = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_resizable (GTK_WINDOW (window_control), FALSE);
+  gtk_window_move (GTK_WINDOW (window_control), 10, 10);
+  grid = gtk_grid_new ();
+  gtk_container_add (GTK_CONTAINER (window_control), grid);
+
+  //control state null
+  button_state_null = gtk_button_new_with_label ("GST_STATE_NULL");
+  g_signal_connect (G_OBJECT (button_state_null), "clicked",
+      G_CALLBACK (button_state_null_cb), pipeline);
+  gtk_grid_attach (GTK_GRID (grid), button_state_null, 0, 1, 1, 1);
+  gtk_widget_show (button_state_null);
+
+  //control state ready
+  button_state_ready = gtk_button_new_with_label ("GST_STATE_READY");
+  g_signal_connect (G_OBJECT (button_state_ready), "clicked",
+      G_CALLBACK (button_state_ready_cb), pipeline);
+  gtk_grid_attach (GTK_GRID (grid), button_state_ready, 0, 2, 1, 1);
+  gtk_widget_show (button_state_ready);
+
+  //control state paused
+  button_state_paused = gtk_button_new_with_label ("GST_STATE_PAUSED");
+  g_signal_connect (G_OBJECT (button_state_paused), "clicked",
+      G_CALLBACK (button_state_paused_cb), pipeline);
+  gtk_grid_attach (GTK_GRID (grid), button_state_paused, 0, 3, 1, 1);
+  gtk_widget_show (button_state_paused);
+
+  //control state playing
+  button_state_playing = gtk_button_new_with_label ("GST_STATE_PLAYING");
+  g_signal_connect (G_OBJECT (button_state_playing), "clicked",
+      G_CALLBACK (button_state_playing_cb), pipeline);
+  gtk_grid_attach (GTK_GRID (grid), button_state_playing, 0, 4, 1, 1);
+  gtk_widget_show (button_state_playing);
+
+  gtk_widget_show (grid);
+  gtk_widget_show (window_control);
+
+  g_signal_connect (G_OBJECT (window), "delete-event", G_CALLBACK (destroy_cb),
+      pipeline);
+
+  //configure the pipeline
+  videosrc = gst_element_factory_make ("videotestsrc", "videotestsrc");
+  videosink = gst_element_factory_make ("gtksink", "gtksink");
+
+  g_object_get (videosink, "widget", &area, NULL);
+  gtk_container_add (GTK_CONTAINER (window), area);
+  g_object_unref (area);
+
+  gtk_widget_realize (area);
+
+  caps = gst_caps_new_simple ("video/x-raw",
+      "width", G_TYPE_INT, 640,
+      "height", G_TYPE_INT, 480, "format", G_TYPE_STRING, "BGRA", NULL);
+
+  gst_bin_add_many (GST_BIN (pipeline), videosrc, videosink, NULL);
+
+  if (!gst_element_link_filtered (videosrc, videosink, caps)) {
+    gst_caps_unref (caps);
+    g_warning ("Failed to link videosrc to glfiltercube!\n");
+    return -1;
+  }
+  gst_caps_unref (caps);
+
+  //set window id on this event
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+  g_signal_connect (bus, "message::error", G_CALLBACK (end_stream_cb),
+      pipeline);
+  g_signal_connect (bus, "message::warning", G_CALLBACK (end_stream_cb),
+      pipeline);
+  g_signal_connect (bus, "message::eos", G_CALLBACK (end_stream_cb), pipeline);
+  gst_object_unref (bus);
+
+  //start
+  ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
+  if (ret == GST_STATE_CHANGE_FAILURE) {
+    g_print ("Failed to start up pipeline!\n");
+    return -1;
+  }
+
+  gtk_widget_show_all (window);
+
+  gtk_main ();
+
+  gst_deinit ();
+
+  return 0;
+}
diff --git a/tests/examples/jack/Makefile.in b/tests/examples/jack/Makefile.in
index 65ad52b91..8878c74c1 100644
--- a/tests/examples/jack/Makefile.in
+++ b/tests/examples/jack/Makefile.in
@@ -259,6 +259,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -282,6 +283,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -297,6 +300,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -319,10 +324,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -337,6 +349,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -354,6 +367,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -366,6 +381,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -384,6 +401,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -427,9 +447,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -443,11 +474,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/tests/examples/jack/meson.build b/tests/examples/jack/meson.build
new file mode 100644
index 000000000..25ac8a8bf
--- /dev/null
+++ b/tests/examples/jack/meson.build
@@ -0,0 +1,7 @@
+if libjack_dep.found()
+  executable('jack_client', 'jack_client.c',
+    dependencies: [gst_dep, gtk_dep, libjack_dep],
+    c_args: gst_plugins_good_args,
+    include_directories: [configinc],
+    install: false)
+endif
diff --git a/tests/examples/level/Makefile.in b/tests/examples/level/Makefile.in
index 7df623c15..8d9e4d617 100644
--- a/tests/examples/level/Makefile.in
+++ b/tests/examples/level/Makefile.in
@@ -260,6 +260,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -283,6 +284,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -298,6 +301,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -320,10 +325,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -338,6 +350,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -355,6 +368,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -367,6 +382,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -385,6 +402,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -428,9 +448,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -444,11 +475,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/tests/examples/level/meson.build b/tests/examples/level/meson.build
new file mode 100644
index 000000000..91e3242df
--- /dev/null
+++ b/tests/examples/level/meson.build
@@ -0,0 +1,5 @@
+executable('level-example', 'level-example.c',
+  dependencies: [gst_dep, libm],
+  c_args : gst_plugins_good_args,
+  include_directories : [configinc],
+  install: false)
diff --git a/tests/examples/meson.build b/tests/examples/meson.build
new file mode 100644
index 000000000..aa871a410
--- /dev/null
+++ b/tests/examples/meson.build
@@ -0,0 +1,15 @@
+subdir('audiofx')
+subdir('cairo')
+#FIXME: subdir('gtk')
+subdir('level')
+#FIXME: subdir('qt')
+subdir('rtp')
+subdir('shapewipe')
+subdir('v4l2')
+
+if gtk_dep.found()
+  subdir('equalizer')
+  subdir('jack')
+  subdir('spectrum')
+endif
+
diff --git a/tests/examples/rtp/Makefile.in b/tests/examples/rtp/Makefile.in
index df6d4b869..fedd7a223 100644
--- a/tests/examples/rtp/Makefile.in
+++ b/tests/examples/rtp/Makefile.in
@@ -306,6 +306,7 @@ ERROR_CFLAGS =
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -329,6 +330,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -344,6 +347,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -366,10 +371,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -384,6 +396,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -401,6 +414,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -413,6 +428,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -431,6 +448,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -474,9 +494,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -490,11 +521,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/tests/examples/rtp/meson.build b/tests/examples/rtp/meson.build
new file mode 100644
index 000000000..f728a128d
--- /dev/null
+++ b/tests/examples/rtp/meson.build
@@ -0,0 +1,16 @@
+rtp_progs = [
+  'server-alsasrc-PCMA',
+  'client-PCMA',
+  'client-rtpaux',
+  'server-rtpaux',
+  'client-rtpbundle',
+  'server-rtpbundle',
+]
+
+foreach prog : rtp_progs
+  executable(prog, prog + '.c',
+    dependencies: [gstrtp_dep, gst_dep, libm],
+    c_args : gst_plugins_good_args,
+    include_directories : [configinc],
+    install: false)
+endforeach
diff --git a/tests/examples/shapewipe/Makefile.in b/tests/examples/shapewipe/Makefile.in
index 277661f70..120e18754 100644
--- a/tests/examples/shapewipe/Makefile.in
+++ b/tests/examples/shapewipe/Makefile.in
@@ -265,6 +265,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -288,6 +289,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -303,6 +306,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -325,10 +330,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -343,6 +355,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -360,6 +373,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -372,6 +387,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -390,6 +407,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -433,9 +453,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -449,11 +480,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/tests/examples/shapewipe/meson.build b/tests/examples/shapewipe/meson.build
new file mode 100644
index 000000000..50d775c9a
--- /dev/null
+++ b/tests/examples/shapewipe/meson.build
@@ -0,0 +1,5 @@
+executable('shapewipe-example', 'shapewipe-example.c',
+  dependencies: [gstcontroller_dep, gst_dep],
+  c_args : gst_plugins_good_args,
+  include_directories : [configinc],
+  install: false)
diff --git a/tests/examples/spectrum/Makefile.in b/tests/examples/spectrum/Makefile.in
index 7030b1477..fe34231c0 100644
--- a/tests/examples/spectrum/Makefile.in
+++ b/tests/examples/spectrum/Makefile.in
@@ -282,6 +282,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -305,6 +306,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -320,6 +323,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -342,10 +347,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -360,6 +372,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -377,6 +390,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -389,6 +404,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -407,6 +424,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -450,9 +470,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -466,11 +497,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/tests/examples/spectrum/meson.build b/tests/examples/spectrum/meson.build
new file mode 100644
index 000000000..c9eecd810
--- /dev/null
+++ b/tests/examples/spectrum/meson.build
@@ -0,0 +1,17 @@
+executable('demo-audiotest', 'demo-audiotest.c',
+  dependencies: [gstfft_dep, gst_dep, gtk_dep],
+  c_args : gst_plugins_good_args,
+  include_directories : [configinc],
+  install: false)
+
+executable('demo-osssrc', 'demo-osssrc.c',
+  dependencies: [gst_dep, gtk_dep],
+  c_args : gst_plugins_good_args,
+  include_directories : [configinc],
+  install: false)
+
+executable('spectrum-example', 'spectrum-example.c',
+  dependencies: [gst_dep, gtk_dep],
+  c_args : gst_plugins_good_args,
+  include_directories : [configinc],
+  install: false)
diff --git a/tests/examples/v4l2/Makefile.am b/tests/examples/v4l2/Makefile.am
index 3f80c9e3c..1fb4165d0 100644
--- a/tests/examples/v4l2/Makefile.am
+++ b/tests/examples/v4l2/Makefile.am
@@ -1,5 +1,9 @@
-noinst_PROGRAMS = camctrl
+noinst_PROGRAMS = camctrl v4l2src-renegotiate
 
 camctrl_SOURCES = camctrl.c
 camctrl_CFLAGS  = $(GST_BASE_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS)
 camctrl_LDADD = $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) $(GST_LIBS)
+
+v4l2src_renegotiate_SOURCES = v4l2src-renegotiate.c
+v4l2src_renegotiate_CFLAGS  = $(GST_BASE_CFLAGS) $(GST_CFLAGS)
+v4l2src_renegotiate_LDADD = $(GST_BASE_LIBS) $(GST_LIBS)
diff --git a/tests/examples/v4l2/Makefile.in b/tests/examples/v4l2/Makefile.in
index aef5d6075..ead1eabeb 100644
--- a/tests/examples/v4l2/Makefile.in
+++ b/tests/examples/v4l2/Makefile.in
@@ -89,7 +89,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-noinst_PROGRAMS = camctrl$(EXEEXT)
+noinst_PROGRAMS = camctrl$(EXEEXT) v4l2src-renegotiate$(EXEEXT)
 subdir = tests/examples/v4l2
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -145,6 +145,15 @@ 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_v4l2src_renegotiate_OBJECTS =  \
+	v4l2src_renegotiate-v4l2src-renegotiate.$(OBJEXT)
+v4l2src_renegotiate_OBJECTS = $(am_v4l2src_renegotiate_OBJECTS)
+v4l2src_renegotiate_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+v4l2src_renegotiate_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(v4l2src_renegotiate_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
@@ -179,8 +188,8 @@ 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 = $(camctrl_SOURCES)
-DIST_SOURCES = $(camctrl_SOURCES)
+SOURCES = $(camctrl_SOURCES) $(v4l2src_renegotiate_SOURCES)
+DIST_SOURCES = $(camctrl_SOURCES) $(v4l2src_renegotiate_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -260,6 +269,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -283,6 +293,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -298,6 +310,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -320,10 +334,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -338,6 +359,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -355,6 +377,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -367,6 +391,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -385,6 +411,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -428,9 +457,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -444,11 +484,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -542,6 +587,9 @@ top_srcdir = @top_srcdir@
 camctrl_SOURCES = camctrl.c
 camctrl_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS)
 camctrl_LDADD = $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) $(GST_LIBS)
+v4l2src_renegotiate_SOURCES = v4l2src-renegotiate.c
+v4l2src_renegotiate_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS)
+v4l2src_renegotiate_LDADD = $(GST_BASE_LIBS) $(GST_LIBS)
 all: all-am
 
 .SUFFIXES:
@@ -589,6 +637,10 @@ camctrl$(EXEEXT): $(camctrl_OBJECTS) $(camctrl_DEPENDENCIES) $(EXTRA_camctrl_DEP
 	@rm -f camctrl$(EXEEXT)
 	$(AM_V_CCLD)$(camctrl_LINK) $(camctrl_OBJECTS) $(camctrl_LDADD) $(LIBS)
 
+v4l2src-renegotiate$(EXEEXT): $(v4l2src_renegotiate_OBJECTS) $(v4l2src_renegotiate_DEPENDENCIES) $(EXTRA_v4l2src_renegotiate_DEPENDENCIES) 
+	@rm -f v4l2src-renegotiate$(EXEEXT)
+	$(AM_V_CCLD)$(v4l2src_renegotiate_LINK) $(v4l2src_renegotiate_OBJECTS) $(v4l2src_renegotiate_LDADD) $(LIBS)
+
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
 
@@ -596,6 +648,7 @@ distclean-compile:
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/camctrl-camctrl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/v4l2src_renegotiate-v4l2src-renegotiate.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -635,6 +688,20 @@ camctrl-camctrl.obj: camctrl.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) $(camctrl_CFLAGS) $(CFLAGS) -c -o camctrl-camctrl.obj `if test -f 'camctrl.c'; then $(CYGPATH_W) 'camctrl.c'; else $(CYGPATH_W) '$(srcdir)/camctrl.c'; fi`
 
+v4l2src_renegotiate-v4l2src-renegotiate.o: v4l2src-renegotiate.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(v4l2src_renegotiate_CFLAGS) $(CFLAGS) -MT v4l2src_renegotiate-v4l2src-renegotiate.o -MD -MP -MF $(DEPDIR)/v4l2src_renegotiate-v4l2src-renegotiate.Tpo -c -o v4l2src_renegotiate-v4l2src-renegotiate.o `test -f 'v4l2src-renegotiate.c' || echo '$(srcdir)/'`v4l2src-renegotiate.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/v4l2src_renegotiate-v4l2src-renegotiate.Tpo $(DEPDIR)/v4l2src_renegotiate-v4l2src-renegotiate.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='v4l2src-renegotiate.c' object='v4l2src_renegotiate-v4l2src-renegotiate.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) $(v4l2src_renegotiate_CFLAGS) $(CFLAGS) -c -o v4l2src_renegotiate-v4l2src-renegotiate.o `test -f 'v4l2src-renegotiate.c' || echo '$(srcdir)/'`v4l2src-renegotiate.c
+
+v4l2src_renegotiate-v4l2src-renegotiate.obj: v4l2src-renegotiate.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(v4l2src_renegotiate_CFLAGS) $(CFLAGS) -MT v4l2src_renegotiate-v4l2src-renegotiate.obj -MD -MP -MF $(DEPDIR)/v4l2src_renegotiate-v4l2src-renegotiate.Tpo -c -o v4l2src_renegotiate-v4l2src-renegotiate.obj `if test -f 'v4l2src-renegotiate.c'; then $(CYGPATH_W) 'v4l2src-renegotiate.c'; else $(CYGPATH_W) '$(srcdir)/v4l2src-renegotiate.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/v4l2src_renegotiate-v4l2src-renegotiate.Tpo $(DEPDIR)/v4l2src_renegotiate-v4l2src-renegotiate.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='v4l2src-renegotiate.c' object='v4l2src_renegotiate-v4l2src-renegotiate.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) $(v4l2src_renegotiate_CFLAGS) $(CFLAGS) -c -o v4l2src_renegotiate-v4l2src-renegotiate.obj `if test -f 'v4l2src-renegotiate.c'; then $(CYGPATH_W) 'v4l2src-renegotiate.c'; else $(CYGPATH_W) '$(srcdir)/v4l2src-renegotiate.c'; fi`
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/tests/examples/v4l2/camctrl.c b/tests/examples/v4l2/camctrl.c
index 698341811..bb6172156 100644
--- a/tests/examples/v4l2/camctrl.c
+++ b/tests/examples/v4l2/camctrl.c
@@ -22,9 +22,6 @@
  *
  * TODO:
  * - handle stream status and switch capture thread to SCHED_RR/FIFO
- * - the queue-size controls the controler offset
- *   - right now we work with 1 queued picture and thus active settings for next
- *     frame
  * - we want some feedback about how precisely a program can be realized
  *   - we might want to adjust the framerate to handle hardware limmits
  * - we e.g. can't change resolution per frame right now
@@ -118,7 +115,7 @@ gint
 main (gint argc, gchar ** argv)
 {
   GstElement *bin;
-  GstElement *src, *fmt, *enc, *sink;
+  GstElement *src, *cvt, *fmt, *enc, *sink;
   GstCaps *caps;
   GstStructure *prog;
 
@@ -149,17 +146,21 @@ main (gint argc, gchar ** argv)
       ("video/x-raw, width=640, height=480, framerate=(fraction)15/1");
   g_object_set (fmt, "caps", caps, NULL);
 
+  if (!(cvt = gst_element_factory_make ("videoconvert", NULL))) {
+    GST_WARNING ("Can't create element \"videoconvert\"");
+    return -1;
+  }
+
   if (!(src = gst_element_factory_make ("v4l2src", NULL))) {
     GST_WARNING ("Can't create element \"v4l2src\"");
     return -1;
   }
-  g_object_set (src, "queue-size", 1, NULL);
 
   /* add objects to the main bin */
-  gst_bin_add_many (GST_BIN (bin), src, fmt, enc, sink, NULL);
+  gst_bin_add_many (GST_BIN (bin), src, cvt, fmt, enc, sink, NULL);
 
   /* link elements */
-  if (!gst_element_link_many (src, fmt, enc, sink, NULL)) {
+  if (!gst_element_link_many (src, cvt, fmt, enc, sink, NULL)) {
     GST_WARNING ("Can't link elements");
     return -1;
   }
@@ -181,7 +182,8 @@ main (gint argc, gchar ** argv)
       NULL);
 #endif
   set_program (GST_OBJECT (src), prog);
-  g_object_set (src, "num-buffers", gst_structure_n_fields (prog), NULL);
+  g_object_set (src, "num-buffers", gst_structure_n_fields (prog),
+      "device", argv[1] ? argv[1] : "/dev/video0", NULL);
 
   /* prepare playback */
   gst_element_set_state (bin, GST_STATE_PAUSED);
diff --git a/tests/examples/v4l2/meson.build b/tests/examples/v4l2/meson.build
new file mode 100644
index 000000000..d59d000e3
--- /dev/null
+++ b/tests/examples/v4l2/meson.build
@@ -0,0 +1,11 @@
+executable('camctrl', 'camctrl.c',
+  dependencies: [gstcontroller_dep, gst_dep],
+  c_args : gst_plugins_good_args,
+  include_directories : [configinc],
+  install: false)
+
+executable('v4l2src-renegotiate', 'v4l2src-renegotiate.c',
+  dependencies: [gst_dep],
+  c_args : gst_plugins_good_args,
+  include_directories : [configinc],
+  install: false)
diff --git a/tests/examples/v4l2/v4l2src-renegotiate.c b/tests/examples/v4l2/v4l2src-renegotiate.c
new file mode 100644
index 000000000..cae28d2d6
--- /dev/null
+++ b/tests/examples/v4l2/v4l2src-renegotiate.c
@@ -0,0 +1,173 @@
+/* GStreamer
+ *
+ * Copyright (C) 2015 Samsung Electronics. All rights reserved.
+ *   Author: Thiago Santos <thiagoss@osg.samsung.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.
+ */
+/* demo for showing v4l2src renegotiating */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst.h>
+
+/* Options */
+static const gchar *device = "/dev/video0";
+static const gchar *videosink = "autovideosink";
+static const gchar *io_mode = "mmap";
+static const gchar *def_resolutions[] = {
+  "320x240",
+  "1280x720",
+  "640x480",
+  NULL
+};
+
+static const gchar **resolutions = def_resolutions;
+
+static GOptionEntry entries[] = {
+  {"device", 'd', 0, G_OPTION_ARG_STRING, &device, "V4L2 Camera Device",
+      NULL},
+  {"videosink", 's', 0, G_OPTION_ARG_STRING, &videosink, "Video Sink to use",
+      NULL},
+  {"io-mode", 'z', 0, G_OPTION_ARG_STRING, &io_mode,
+      "Configure the \"io-mode\" property on v4l2scr", NULL},
+  {"resolution", 'r', 0, G_OPTION_ARG_STRING_ARRAY, &resolutions,
+      "Add a resolution to the list", NULL},
+  {NULL}
+};
+
+static GMainLoop *loop;
+static GstElement *pipeline;
+static GstElement *src, *capsfilter;
+static gint resolution_index = 0;
+
+static gboolean
+bus_callback (GstBus * bus, GstMessage * message, gpointer data)
+{
+  switch (message->type) {
+    case GST_MESSAGE_EOS:
+      g_main_loop_quit (loop);
+      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 (loop);
+      break;
+    }
+    default:
+      break;
+  }
+
+  return TRUE;
+}
+
+static gboolean
+change_caps (gpointer data)
+{
+  GstCaps *caps;
+  GStrv res;
+  gchar *caps_str;
+
+  if (!resolutions[resolution_index]) {
+    gst_element_send_event (pipeline, gst_event_new_eos ());
+    return FALSE;
+  }
+
+  g_print ("Setting resolution to '%s'\n", resolutions[resolution_index]);
+
+  res = g_strsplit (resolutions[resolution_index++], "x", 2);
+  if (!res[0] || !res[1]) {
+    g_warning ("Can't parse resolution: %s", resolutions[resolution_index - 1]);
+    g_strfreev (res);
+    return TRUE;
+  }
+
+  caps_str = g_strdup_printf ("video/x-raw,width=%s,height=%s", res[0], res[1]);
+  caps = gst_caps_from_string (caps_str);
+  g_object_set (capsfilter, "caps", caps, NULL);
+
+  g_strfreev (res);
+  g_free (caps_str);
+  gst_caps_unref (caps);
+
+  return TRUE;
+}
+
+gint
+main (gint argc, gchar ** argv)
+{
+  GstBus *bus;
+  GError *error = NULL;
+  GOptionContext *context;
+  gchar *desc;
+  gboolean ret;
+
+  context = g_option_context_new ("- test v4l2src live renegotition");
+  g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
+  g_option_context_add_group (context, gst_init_get_option_group ());
+  ret = g_option_context_parse (context, &argc, &argv, &error);
+  g_option_context_free (context);
+
+  if (!ret) {
+    g_print ("option parsing failed: %s\n", error->message);
+    g_error_free (error);
+    return 1;
+  }
+
+  loop = g_main_loop_new (NULL, FALSE);
+
+  desc = g_strdup_printf ("v4l2src name=src device=\"%s\" io-mode=\"%s\" "
+      "! capsfilter name=cf ! %s", device, io_mode, videosink);
+  pipeline = gst_parse_launch (desc, &error);
+  g_free (desc);
+  if (!pipeline) {
+    g_print ("failed to create pipeline: %s", error->message);
+    g_error_free (error);
+    return 1;
+  }
+
+  src = gst_bin_get_by_name (GST_BIN (pipeline), "src");
+  capsfilter = gst_bin_get_by_name (GST_BIN (pipeline), "cf");
+
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+  gst_bus_add_watch (bus, bus_callback, NULL);
+  gst_object_unref (bus);
+
+  change_caps (NULL);
+
+  /* play and wait */
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  g_timeout_add_seconds (3, change_caps, NULL);
+
+  /* mainloop and wait for eos */
+  g_main_loop_run (loop);
+
+  /* stop and cleanup */
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (src);
+  gst_object_unref (capsfilter);
+  gst_object_unref (GST_OBJECT (pipeline));
+  g_main_loop_unref (loop);
+  return 0;
+}
diff --git a/tests/files/Makefile.am b/tests/files/Makefile.am
index 3bf6aef9d..7b3b4dc1d 100644
--- a/tests/files/Makefile.am
+++ b/tests/files/Makefile.am
@@ -3,6 +3,7 @@ EXTRA_DIST = \
 	audiotestsrc.flac \
 	audiotestsrc.wav \
 	gradient.j2k \
+	h264.rtp \
 	id3-407349-1.tag \
 	id3-407349-2.tag \
 	id3-447000-wcop.tag \
@@ -11,8 +12,10 @@ EXTRA_DIST = \
 	image.jpg \
 	pcm16sine.flv \
 	pinknoise-vorbis.mkv \
+	stream.mp2 \
+	cbr_stream.mp3 \
+	vbr_stream.mp3 \
 	test-cert.pem \
 	test-key.pem \
 	splitvideo00.ogg splitvideo01.ogg \
 	splitvideo02.ogg
-
diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in
index 6fdeb220d..fdd8745ae 100644
--- a/tests/files/Makefile.in
+++ b/tests/files/Makefile.in
@@ -205,6 +205,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -228,6 +229,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -243,6 +246,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -265,10 +270,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -283,6 +295,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -300,6 +313,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -312,6 +327,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -330,6 +347,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -373,9 +393,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -389,11 +420,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
@@ -488,6 +524,7 @@ EXTRA_DIST = \
 	audiotestsrc.flac \
 	audiotestsrc.wav \
 	gradient.j2k \
+	h264.rtp \
 	id3-407349-1.tag \
 	id3-407349-2.tag \
 	id3-447000-wcop.tag \
@@ -496,6 +533,9 @@ EXTRA_DIST = \
 	image.jpg \
 	pcm16sine.flv \
 	pinknoise-vorbis.mkv \
+	stream.mp2 \
+	cbr_stream.mp3 \
+	vbr_stream.mp3 \
 	test-cert.pem \
 	test-key.pem \
 	splitvideo00.ogg splitvideo01.ogg \
diff --git a/tests/files/cbr_stream.mp3 b/tests/files/cbr_stream.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..b1a5c439d5bd2fb8c7e798cbfbdaeb1f2183cee1
GIT binary patch
literal 3135
zcmcK6c~leE9>DR*Og1pVgw3!g>>}c1VU;BW2#W+!s!(fbLV%`9F)S`XY?Dl6k;tkR
zS_(lHk&1<4TebR#FvKo^i1<X0<$(dQo-Ww<tQPxt32Dze=l$ROlmF&>KllD}Gpj2U
z6acUs%+ZTfc}RcdCs0r-0027+6D0uPDg!VP>(?&>0LJoJc*F|;cuzDxzhwNzrmlPZ
zn3lo`$$AHm25D<DELCn)FF~%0`${G#j|8d+L+in_rHb|~6XyT`2W(nhu|`4VD2>7U
zcoOja5bJe)NFvzxMH3O*peP4aH^?u$?>ct}5^}9UZ$QDv%5^w-^;g%rL`h?G?l<G(
zg|w0Bg7FI>SMP@xj72IFp5F_~7ZmE>l6`wZ*zgLnV>OJx(VWxz%2gu>i;V8|@FlNi
z3ENa&ilIEgBAhn7z~b9KW(5sT!2)22Q?Dnwu?-`;tJu-g{EBz8YVodqx$(NCfUMXk
z{K{(VfxS_9FGh-#q&rfXyOf)^Am&wPzMe;BDGghAoVRTd6X<`Pb6BtFp&tcL;8f*r
zELM6M%L8136SX=Hm_~Nwcr?DDWEXVCRh(at7tv@O+oH-Ic-Qb|Rx*{%isWs9)8$t~
zKWI!$<6x1fY8Lg5|A{HQAKb6Ea$(*!fgl9!af8V#?vgg_8VHF*;67)M?H9s0_nZ(5
z?Sa4v0L<?>^xl5_cvlB?8AX$4W@fX-k_icOzi4VeLMr;eCxu!!QLi3*HRh_$c>SP`
z4Y9Hen_@YHqQlSO#5E8e8HG(7$NOvJoLGbmg!vM&fO*>KAkx@ns199z9-LDbgddzP
zVsiDNfx$f<HuXaxxwDN3bA%agfgH<WUo3*Ttlw_iIlM`|qBsQ)KqNP2<4907{E>?|
z(F7tW(M~f+1)XiL6$-2-I7QAQM9pE=G|p1mayUN^96!saQR9L!6hk9Ut7I7x^#Oni
zehai&AmPE27M)i=P$+ugcAIssOtFEjh8tWAacwr7FqbqUrIguBG@TGxiME(KRY>=p
zw(RX84>?c2#x?xWYG3~9%knCpE}f0&xa7sHTs5Oc6hep}>n`)=l}9eNRX~s*d`8V^
zbe)_kgAY0)p?y-e!V$uA_k%s2iB}l6eEoL68#W++?qvemDA8g!7P-t_QU#qAwPg#A
z5Jyf766lrequcaB!sBoem{uP{(OL)-sjN&q0alJ}L~N&Ty@K-`4M9gc*vXDXxXFA=
zmVdz|huf5}ZX~?dDa_VE^KmULR&`F3rEY#{0y%<zbt<8=c1DouvWjcx@>8>K6A?JD
zMJ9wlGp?H2XgzcDeK^NS%=&4Py}@w=M=zjW41ebznCTaBn=KD!hxXKf(qHn1ecj3U
zG~&${9wc{d%g>Up6RyWv6qK1j3=ox?K^5kZhcJ5|Odo`3u(-%c4)1Xq-16ohtXU^E
zw!hH1xSdY(c_Z46<FJ@ISx+Iod@!JrM1E-Pk*LYwHt{ix*>4(}FhGj$IyHV540ixd
za2jH70{JM>N@K@3+U3X^2!VGvLz`;cSzS&D7C7uFZ{}viXSJWcxbaTic&gfV{$aC9
z8sbRPh%}loTD-#I!GOBXj>0D<pHfW0^nT(kg>#ddp@bhcNBp|6kvrSuXq;^d8u0%i
z?Rl{P8Qq#{by;)M@0g53_Z$2n#<K1(XFA4aTWT5H4aO|q-dqO(ZLy4Rjl%$IfP3;5
zT6U=7@q&X(5w$*Hj%EkV?1_FG;%_Bef8L&Q-UJE+QJEQ3X&yOBm~;0&9wF(t*q2_B
zzT8y&%pK37-!B@&OV5j+Jn~8wV#hA**n0v7`h6#XABRP1QU&M6zuJ;ZDr~hfHw?Ri
z@49goJ~hrSNpk`0Wx+d&=1ib)=&z9RQiwL*aywZL)`qzs4n}-wV_<MABaYbYC}ExL
zaMHtRpSRnbdn>6Irf9e`o{zO>k}Ym<bzgO=CGm7^g4>uSNZ;W5GilF1yJ81w!N%y1
z`bAIMo5@6s2^58_O@i@+x>cRmjh&~?Sl0!jqV7^;YsY+dxWlG<RfWKMd#ljkwEepP
ztdg&&5YiA#`)#K93EM9EI~YgM+xHji7ZkIOmwRsYX46L|yMMNn@%b_Btuo={*(>wI
zCJ+x<n{87FyB5m!C*SD(^_~1j+-D-0=Jp+V?O6I$FAUE`(*kK!p3qVS3tJd6;b|4!
z7Th~AgKOWay%v9M?`!EVvZF<l+FzhW2Fuk#tiSjmV$O1eAr(cKKyeVd*L*^Mc6>be
zhnQauVjodl{Vy$&1$`LfU!bQShrX3E3J_i!zI$QJuOeJZSFdPyH8y!awHNHE`Bj%h
zv#N45L~=*mDQ_4ral>rgL6$wv<JJLAaGGtY36y}KEgmp=)m_+W24M~A*1oFExbOXp
z1zWm*kY91AJu6IS;UW_%!+=zT(;p~z3qLWX-gC|F-^o&c+l7b^-R#8|G4XZ6$44YM
zd>Fm(&^o+CE86VdG>UkC;%NeH15q`D)o0weGv>}$0^{>xnz~MJoifa9hTSI&V8JOE
zPk{J!w&F}`>+b5@p%U>1A{0=bPUvZxkPqC|{($|2sn$@OuY@-C$nC1_#K$%tFJDXo
zAmi&mXUHiND8=|2GKZQ~UKryjq%wZ=ch(U<jg_>>ZKQyxn1I|kMpbVA?n#rDzI5G{
z`yaJHK0SZFBZUm8Q54+1bHsNh;Mw81Zz{@_y{1R+o{sc8!<_UC9dl`weP5DHF@bg}
z(K-gFugqQ2s9GEC8EwpW?{R3Hfa=2h*$kZ$ihxR^c*%n68S{1e8d5Zkw5_5mv2ma8
za@@1noQKWb00;oW#QO=UeRF^guHJ`KqHy6P5G}(iMiHA~(*jMPbR`<gh#;+G`JO-)
zuYW2L%xQdd%N8r1SrV(Ibv@6esicSK7bOi2c;v$H5Z2qpq4&>KZ>7j9<yIsx=H$r6
zh3#%?)Qa>ef%LlKZtUgY1ODP+hq>Hm%-_SZa;;6EOc2d5cht~YC*CsYyflo0puHuj
zP0w>GxV55~fRp2aYrB1hE5<1Xl5toXy4#Bsi=}9bDdVRh`c~ocdg~3Pzjud(wh{A>
zwVl*?V=|>R=n{zGS$gVCpd8Q$iZX&i)MgMW)xpk(gh!!mA?#g#YmaZ}VKmHDmP1*V
zSw|_4ydUC)u|)og{Ir8S<3<H>NF;Wr-y{T!YljWi%U_2C<#)&_SD2na(Qr08K)nRF
znn3%NsEiS@{s7ju#th;fd*Ii#55kmI(;OhGQc9sk5ERYVmT6Oz_R7gLS{#T`0A4gF
z%z$DN!~*)?GG_qHpc7fH6~Z(U0OaIok{m}e_UDanzi-3)XqE^PcbGs0O7uKqE4d7m
z)S5&8+3>LELG1hbdCjZR;MJ$|O!}*nZL0>0s`Xwz?A29o&&Yk-ygmz}13(63Ss!Fa
zx^x`NYftTI?uw)HHGYn}$x#{mU)d!`3*y)Tp`ihRy}c&TArS31cN)!|-oN2v0+q^f
pCm9^OIe<ZGWgezzz`vzqjpjk9X3N2=^>P>hICA4F``^&%{V(aiM(F?m

literal 0
HcmV?d00001

diff --git a/tests/files/h264.rtp b/tests/files/h264.rtp
new file mode 100644
index 0000000000000000000000000000000000000000..53ad97e6db3c264050d46ff4e5cc7c3ad933795c
GIT binary patch
literal 3069
zcmZROZb<M^T2>$Xa_|28AJUx;$oKR*XfWMm_|W0DfI$E#sSK0MIA_zqS^*SMfr-?#
z?qFbHU|_K{bYO7s@`C~YhyOoZi$5>Gz{#-Lu`}kBYVk+uFLR(^{vZ1Xo4HILF-%g3
zXPZ#2>R~-0N%W+Pc9YR9YjrsI@c)PQeF26BoeMkIp7}BE{An0z2?h2a{vS-?@my9f
zz`)hy!oaNHqs73I=jp)EdqTd!dcq&ZJAz%mU{3M#lQ_)4m2~}ee1`z@@q-iAr7Fh!
zfjMQ){2%oXHi=|@WMDX9;=rK6-FR8{M9J|Y_C-7ST?=NcfvcNadOa45{AN|XUbhQ~
zUcQ9Tuh-291MxvZcWt4{E<;tvT0&L7UbhOS2&QlOa<C?#KA0LTA}}Q|yLMGU6(g*l
zhi>pXxCmSqj4=-;1vBO~!Vz#+!0dzx!1%A>?t>cx^UFFcB2Z_+tVRSF+?Y|1V+jg)
zXu}w=s2YuNM8Za-J6Pg}Co>oWo+4r4M~9@oil%V}E_qeqB`+(;>sUMo3jkRDgQqcg
zh#*1_RvaKiV7g#Ffu}mSF{8N_OHjaq3m*8eh=GUSpijIoFTh=l#hZxQ0_st?z^KPZ
uV;rLtfhQ$I;)kab7z17^!NQLY<us{Do#95q10OYb$?FO(B!@%NKL7v-v8qS_

literal 0
HcmV?d00001

diff --git a/tests/files/stream.mp2 b/tests/files/stream.mp2
new file mode 100644
index 0000000000000000000000000000000000000000..ab6e900d4df013e35ed4068ca43c0141ba9fa795
GIT binary patch
literal 2925
zcmZYBi$Bx*9|v%0O71haIjLcDnYlFgS*|N2p(GV^zl`<M#EGJxxs)1h)|N|XtGSK2
zoXzF*Qz3T|&d`x_u*S*IL9IAPzkcide&_c%Ie)?X@%+ADuh0AY`IAcbsaPap4LNxX
zKT%Oy^3?Y6a`?+FeEiQJ#Q3zIo1br_y6n%hSSMUKA7YwMLE1N1;y(te%WDjbUQLv}
zPKpQww}aezn(CBhfqKxooR))>aKClToaGRBdQ{K-{#5o#w7Y)Y=Rf8=fU_0xA};!)
zg<;;Ps3+>}9-uqyG`%uY<lJ2Wq`aB$PT?)U%B}jZo0qic57hdq|4@KTZH74MB%U-o
zTDm{NT#i^WPCO!>_cbkA$>JHs16srl+e3Wa%V)Wl3I9Myeg32>@%%Zbzri@hfGXZM
zEL7Cx-v$K!cJ?9IuY;`A%WF8aq#D}srft|sHAqcv#<Q>bg7hxdlL@hMrv<w3yyLER
ze_3kS6hDS~GWoY7x4qwCzHQcv-&L9mn%JKl(kLYv^yS0-cTg)@?0cxL6V(&dxcBrY
z7>r*2ObOAm03^Rz<ookp4r9^%VGX5L_XlgeD)`g~$rF$lV1k;?V5wY$nSe<0h{&(#
z_cf_rh4Bz_fD|$79*OUoP|STwNLTp^)QTRwZ;UIauIb4Off7(>=p(E)*e8^tbOV!h
zXqlSP_S++GC)H4pq5<wjrFYK!%E-j~*|EAKHQzW6p(Ci@u?-)^&|H&iK)K5AvcIi<
z#x5(RfF`q(!~X{2h92U8;dS1Ld;OYW&~dVi5~89CmcMR*@#hJe9WgCu%}TTH4b{lg
z`BbL({hSLpQB7z3j#-4cH1TSGbOkd=*0_508=gs=0!m!=J8AS`Ofl~>;R@g{pbPL;
z^m8)&hQ<Ri+*7DR9K6knZNr*^eL9==xO>RqHdPsof%7LEyCPK;b?skNI?8k|1Wjyv
zjvHa<Cm#RUeo2*j3~@H*E|PErl&i4Z_3h!^>`(WKK)tbl198#o7cKGz;5|`Rd;Lzr
ztdnp20fOV#qcK)I;qU?PK&$%F9L?bx74;zsGto+*4!*3W7(jzuFjpnwJ+6B*!+Z@}
z>qv{(O!-G2bbcrC_0JS{PkCOZ{RuLXMEk=?t!4i&8`U6@xwKK4i{|kvk^9~#L1)qS
zK1gWNIfMIW5pp>fg|Al)h$`d#ai6m1N)GsQ?njoxF~=y&KXLnwQGC6g!mUh)b3p5i
zkq%?gZB!$ey(>Sechcmm$Z^rXW}rAgV?^W!EqbIm4F6Aeo7##hb(8f<jA@z>`tQ@{
zBpWKeGg6~qG(=@4`p-FmFY*<pX;!O}4h8i^M@c~XeH_~v>@85*aOEo!9_mBmkv&uX
zx*<Hf6+M~&iLYl})ax5x#|_>RW+YiZ*dlw-WcrT2#cfjO7y*J4)|PK9l*6JM1Sj%|
zLhT>LimxH`j4{W1X;e_dG{QNiM4$H=<i8?xF6ZuMmwaEXHJM8fu=uJ&l0mB!R6fqw
zB(hD55NU4jdD#<*=&9^Fw!Y9zPnxR!IoKnro|U8AP}#XTL}9#5DiVWJ{1vcnNR9;L
z?H<ixp7+)5<K)hSxPZ{Z^^y+dxYL?H`o(|UAugI40=YiIx~PAoYh8EniZIs-1qG8k
z=rT8^ln7fOsUn=*NV*-~Oc^ryV){gZE22I5ZQtusI{pjj0VrRp)Hx;y)Wp#7e?F5@
z{#d^jSk$QHUbhn@dF5&usQfTvle!cmLcOUCGJ%BD@2S!?-hg+mCkc(7M0v>92W68Q
zt7PpYAQ6r64xFMPFTfn&$O(vt`>y|reB~Q5)ifg6koNY-{t_>~ffL=;-7jSa2to6K
z+|-bOvbxs6&#wq6NR+9iPtaW%*PcPb3J8*mlRuHJyXLJ7TYT}IljM=sPJVkss6~qd
zIzCJ5EaS+Qbi{;y0i9W$kSagy#{N{;rV~&{5C3{Y63`N(o70qvIgYX;sF~W)WAc$&
zq+b-PH{!+zl7z?0FL(e=gXr=FRSH@|*BQ|~#yl>?Uq0FavMTq|#q2QN3HjbPcoDxa
zgJtTqS5U8b@vCepR^*d*YJYa<kMq!qo^-s6(>S%J|E!6l_52#3$O2_+>C;^(Bi*V>
zs5$7IfwOA9)|GVp%Z9%DtS$|`d-K;}A+0Q~Alw8!ro--+fb;-jcOCzg3FlrOR8-#5
zp%aityW{^=<V4)Vu*PS(%+y-1N1n}CQzY&T83~DB<hXCJT{wxX>at{;u%kiry_c#K
ziiWxv;p19j++{U6k%K))0y=Ow#!T?u=-wiJaprs`JWX;tNgcW76wHm2sQ*6-|GRfZ
zW`()Er`Dmnm}B2dKnyd-woBy5BEU1x@+4#Bu#~Ij*6Eo^@xZ8n7a0j!!a7-!Qt^UH
zSsX^N8#PzPkrH(zKmlT=PN2eYMlT!6Zld?=9HG!2uy%mZuRGmtF>#G|(mV@VOs$uE
z3QX^sR6eeJ2X|RY6jrC_*xB|5<?QumNjlWUz;0+o#h#Iti$g;=a@tu+k8k!0Udc{<
z0bz+qG#gez8og;qaf^Z5?Tp;CnP&dTsVS&S!5E?B8lW1XVRnfeS`5hYFuSxw&b*jv
z*^-`>atmmX)sT^}zx!b{NqKf5uQUK40j-tgb%>ruF9OyjpuC=rF005|AZ;}GXdaEZ
z;|_7r^J8xLTetx)^w|Q15bIO!cLJ2+t8`)S;#@itg+@X7cJfEDGP_S#NY^fRG0v;%
zdBq00?z^z;wN*IS_4e`27J(S3zDPifV~O_L#CzvR{96aTEZvMZWp_kwMyHT;J7O8y
zN&EtWHp10gEy<zN05{L_ODp8e*i>_y^rDm+AOz!+lmKC^07xna7iCxd0h3Z&QifHV
zqVDMGJ=P*vVBQlc5ihbr{m#qqfNk1?9iUe9?AS0T3^#CW8%OC0vEFc^2i*3mxrte3
zyX`>=S!lYQ!qFhuZkr0AgI5>h%%N$|*gy^0^=0o?jp^)J%NQF82(*9@j-MNJX(tw3
zDd6WF^y-c<UfvlwhK^$FlZZ9gF2Yz>$u-k9BW-&w^Y~ST-7gPuS3nN~Qw>_uc5U{<
zLfsmYW}(^3t|X1Ki@B@OfXUtVDu#6(qRQyFJ=Qg_(>Gh3MTl%x6LpT+%WoI*c1G?e
z!SU<5xB+T=Dn2RLexGgONnI~G%x!t85rv$ub|^Ej>kS^r(xeQ30iE*u@%va`zE<+G
zeXAxr`-P>XLsR?w77#Rku+TFtQyW##VX7%F0WIx_99p2LM8f>A26GAfpjLV%q64b!
z$}N9$RX%I5n7d`m@+HA_u5wd;ft{oIR67|(zIHWK0ZV>9WA~nRu(dE`XNU%)5qp5=
zCBK{X86q1NtG;QD+2hN5X|xmcO7J{Ku+?}h?N*aQu)Uml@ktH&LYS-2xU&~2G}5jx
za-PMiOK%p)I=FVJ_z>p*72DFSDPHmZsL43`)bfUzU=m1P@FnuGEI(AHw!L5XZDsjB
K<wKh)QvU(1#%j#~

literal 0
HcmV?d00001

diff --git a/tests/files/vbr_stream.mp3 b/tests/files/vbr_stream.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..81fc38b592d458bf36af54cee35ad8f5c60518d7
GIT binary patch
literal 3798
zcmdUxc~}!?9>?EFA_fUE9D(qlm_WiMN1$MXMmZ$Nl|B)Z$fbr7X&yWt4sj`~%Oo74
zq68EXuTqPEs4ZBOh&&nzO0+yJ;@RRp4FT-d#Vt~;SlpeR95l8N*Jqz+|JeC+p7;HI
z=6k#|gHE;f06?TH`iQRt-hu;TC~E)$VBJ?88pt=^^NKv20EU?VEPV0PqvccpD)1_m
z>NNn+wV|OOCIP@-VHFf9f$h-H&@c+{!N=I_A`QS6LV5cUgoFo55x`dAc2(d#4#V=Z
zb0W$L?ayRa<z>WJHHKMJ#4Nh7N?JD1x=q&E)Lpo2*ZbPwn99|ve|dHXJEecey!tAi
zzE}Mj`k1*#)=~=ipJ3C#&JAlbNoU1hQx;Eju4^uI&At4*>lD~n3Fasn%i8S0POGud
zoOWE`dXaNN1ef!ke`u(Gh(I8y1&#XsLG)_mY_m7#c=?W8#mLcDamdnUr*KGX;Y!=s
zN~8z)SUUAt|86I?dDd%sVj#mVyj?9EzR??Rf1e?2I|cHiAzLJ-t~f*03iVtl&GA2M
z;bR)v@|LR!bm*UwLG+C9?U#`TVfKfL>OcR8%?!8b$K~MX&y{Y*Sz6taael_X>&RaH
zNP77y+Ff;-?*l4icc^YrE+c$lD#@L|$Xr}CUpd$AKDnp!50=fUT6ePv7)I)zvaesp
zy+|c3{XB5_^E)7@)na&lT79n@HFX}zsfMukF~{_j*iLi`?imIu#C^+O<$#)6d~Wg>
zeW4l7v={XK9A1ie)shF)gYE6=3+huqTnX@^bP8>8U{v|f(&VF-eLqS!&fttmRfL6k
zH_~O2L>-68HOo;OJfF`H2_>B9LA$7ZnJWd$xL$aA0dU1(wimmU?_S|RSt8fIs+z%h
z3aNmOqxIsyl_O|^6ow@9f`n&lsr-k}<NR_Nfb6b>w9(gXzjTkOWVyKWE-hgCnmAZr
zbiQGFz`}e?kBE=g>oM1(4scP=fsxZm<RcFCJ9!0rCI-G~<U@&Uu)s6irNWsP6+3<n
zH%jz89%AAc^T9Yo1Ly6&2|A!A11G$V?^;JzIJXYS8YTy;V!%yTFt4=oM10>ak2H-i
zvpcUdJ<-H5=^?zyA)C|F(xSi{oLjl?USQx6imX;(4U_Hpziv@Fb0dS4!Zdt%_ErMy
z&!n<1m^el~PmyWgQVhP$-h&RvaP;8twr#F;&X*2+c+Owj*FKt~q-|0{3s#ahN+%)t
zb_wh20;~4qgDobGQ4hv((CN{Nk_|mDqo)IB5CcmS$Cm|%W-|Eo(SAO{^%oQbzXISG
zorRx7Lg$oZQ)0Hzc)!lV0n_;ibsRd^45vknZ`S7%(6BpqHBWwh`+f4!(|$f986ffj
zf@7V{<FA5Be6?UA)$-OajWhLt?n!+<)c?T2^1&IKAWiZvxk+SNM$U7zJsnc`Py?%D
zvos&~;F5ejp^}mjLhWpNx?dYOYq5O#m}d37!HJMCN@HVk?UYuPf2(l`P0J>Vz0T#a
z-DL#d$9QpjN$@Os#vshMKlKjDMBL)7EVWtR6a<5qu)QrYlAD&yQ+z6KNAxM^?-@w^
z1_V5Dc60A@j-;_(hta;E2X)Ty?H^b^F1j9grDB{(cB#316u8<--6t(9fnGjPU6bpL
zEb}|b-*;<R&l!V1bNj&M(?KR0rU_`wp2at;Z+ebISiH5Mx7Dm~zi}!Y<lk14nIVx2
z9BofVy=YU?&L}}XvC1KHe*f4pw$GA8@2n>?^gIRFdsOe6j`Q*zI0<z1!|FppAxis0
zx80*h^OdwOl%Uqee(0u3xxFvv^vH&UA%TfA{oa98B%K~ag5{&*%zjP<0<3KY-zprG
zcdE(R<7-7W%4gCO7Zrq%Nnm$7E6DC}km`J%G}dP#e(`J^*vP@ZmD4euPaI?7WLzxK
zNi=8w6YJZT)@2j3#sQ;yV5FwP2^tK%(Nwh~^Pq`idLPhT^0B^21jU~#db<+L^`Obf
zS>t-<dYZfpzz>NF$w%A@2LXIf1L8T};v0MH+H8+$663l;HqGQ<`RF-bZ|5}OcIj<P
zJn_{i;b5-gBA%ybv)`HAiyDWQ8t{RQz@|-F?zU!L@|C+)QQywY2kQaWYfO(9ACKv2
zO)!&BuaOg=;$*Mxox9`m;*yf<8%u3c9^q161ItgJ$+NsXd!lp48)~-gX}M?8W9-2j
z9L%@pT?8|n-}HQ9bzZh2@I@uhUa#jeuzR2Zk;M(|qzniVB&@$X;lFxGVhso`(w#Q(
zv&THG?t6-Hu=CTa>2B8fhH;`m>%nW2`EE8NGVkwe8?awjaU`D>>98XJhbXC55U;T_
zW2*;`o$fNsbBcZL-Z0+Gg8kA6ANvImSpg)N#<JRM!M&xer6C18!eQ@4J|rUtcFF4<
zmFe?&*+7>rS&NUkb|GRV!dwy6XKkrs;$TM+L~>b5sGK@_TAoBfpg5=;pRVN9dtF6)
z9AM(|h=}sw<vA%u=&&N&KBGP70RA??14U7v+J3)U#}p%nWZ(!fJs2mT`Bfga<i!c@
zs{Z7WANtGY0^S^e{nI0`&ImAiRj$o1@<We^X_WI@iqJZrrIdNt(6TOTyYB&_Y6qOZ
zI9d3M9B~W2d6rVz2@hH7IS6)6b$TR8x*l{T6t70ryMtEQx=Cu#iEW)po_lYIe?mv^
z;C$D==ho;!NJY`0gguArITZ&y61ZU~>QS-p<^lUiiTY7pAe;O9rWwLEawr%FJ3m5<
z(_^*=X6o@yx8Kl%ags64FKlytd#8bB7NJwT9u&bB&^Fzx2X4oMHlyz|W6Z4mf4GfK
bF?*&En3KHb)pxow1s5aWf8pDI<Hf%L2qh#x

literal 0
HcmV?d00001

diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in
index 9d20d6a5a..d4c32ac20 100644
--- a/tests/icles/Makefile.in
+++ b/tests/icles/Makefile.in
@@ -360,6 +360,7 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
 ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
 EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
 FLAC_CFLAGS = @FLAC_CFLAGS@
@@ -383,6 +384,8 @@ GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNUSTL_CFLAGS = @GNUSTL_CFLAGS@
+GNUSTL_LIBS = @GNUSTL_LIBS@
 GREP = @GREP@
 GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
 GSTPB_PREFIX = @GSTPB_PREFIX@
@@ -398,6 +401,8 @@ GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
 GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
 GST_CURRENT = @GST_CURRENT@
 GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_GL_CFLAGS = @GST_GL_CFLAGS@
+GST_GL_LIBS = @GST_GL_LIBS@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBS = @GST_LIBS@
 GST_LIBVERSION = @GST_LIBVERSION@
@@ -420,10 +425,17 @@ 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@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTK3_WAYLAND_CFLAGS = @GTK3_WAYLAND_CFLAGS@
+GTK3_WAYLAND_LIBS = @GTK3_WAYLAND_LIBS@
+GTK3_X11_CFLAGS = @GTK3_X11_CFLAGS@
+GTK3_X11_LIBS = @GTK3_X11_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
@@ -438,6 +450,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_AVC1394 = @HAVE_AVC1394@
 HAVE_CXX = @HAVE_CXX@
 HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_LAME = @HAVE_LAME@
 HAVE_ROM1394 = @HAVE_ROM1394@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -455,6 +468,8 @@ JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
 JACK_CFLAGS = @JACK_CFLAGS@
 JACK_LIBS = @JACK_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+LAME_CFLAGS = @LAME_CFLAGS@
+LAME_LIBS = @LAME_LIBS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
@@ -467,6 +482,8 @@ LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
 LIBINTL = @LIBINTL@
 LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
+LIBPNG_1_5_CFLAGS = @LIBPNG_1_5_CFLAGS@
+LIBPNG_1_5_LIBS = @LIBPNG_1_5_LIBS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
 LIBRT = @LIBRT@
@@ -485,6 +502,9 @@ MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -528,9 +548,20 @@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_ANDROID_CFLAGS = @QT_ANDROID_CFLAGS@
+QT_ANDROID_LIBS = @QT_ANDROID_LIBS@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MAC_CFLAGS = @QT_MAC_CFLAGS@
+QT_MAC_LIBS = @QT_MAC_LIBS@
+QT_WAYLAND_CFLAGS = @QT_WAYLAND_CFLAGS@
+QT_WAYLAND_LIBS = @QT_WAYLAND_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
 RAW1394_CFLAGS = @RAW1394_CFLAGS@
 RAW1394_LIBS = @RAW1394_LIBS@
+RCC = @RCC@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -544,11 +575,16 @@ STRIP = @STRIP@
 TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
 TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
 TAGLIB_LIBS = @TAGLIB_LIBS@
+TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
+TWOLAME_LIBS = @TWOLAME_LIBS@
+UIC = @UIC@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
 VALGRIND_PATH = @VALGRIND_PATH@
 VERSION = @VERSION@
+VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
+VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@
 VPX_130_CFLAGS = @VPX_130_CFLAGS@
 VPX_130_LIBS = @VPX_130_LIBS@
 VPX_140_CFLAGS = @VPX_140_CFLAGS@
diff --git a/tests/icles/meson.build b/tests/icles/meson.build
new file mode 100644
index 000000000..0769706cc
--- /dev/null
+++ b/tests/icles/meson.build
@@ -0,0 +1,38 @@
+tests = [
+  ['equalizer-test'],
+  ['test-accurate-seek', gstapp_dep],
+  ['test-segment-seeks'],
+  ['videocrop-test'],
+  ['videobox-test'],
+  ['videocrop2-test'],
+]
+
+gtk_dep = dependency('gtk+-3.0', version : '>= 3.0.0', required : false)
+if gtk_dep.found()
+  tests += [
+    ['gdkpixbufsink-test', gtk_dep],
+    ['gdkpixbufoverlay-test', [gstvideo_dep, gtk_dep]],
+  ]
+endif
+
+if cdata.has('HAVE_GST_V4L2')
+  tests += [['v4l2src-test', gstvideo_dep]]
+endif
+
+if get_variable('have_oss4', false)
+  tests += [['test-oss4']]
+endif
+
+if get_variable('x11_dep', dependency('', required: false)).found()
+  tests += [['ximagesrc-test']]
+endif
+
+foreach t : tests
+  test_name = t.get(0)
+  extra_deps = t.get(1, [])
+  executable(test_name, test_name + '.c',
+    dependencies: [gst_dep, libm, extra_deps],
+    c_args : gst_plugins_good_args,
+    include_directories : [configinc],
+    install: false)
+endforeach
diff --git a/tests/icles/test-accurate-seek.c b/tests/icles/test-accurate-seek.c
index 16e137d75..5489d5c8b 100644
--- a/tests/icles/test-accurate-seek.c
+++ b/tests/icles/test-accurate-seek.c
@@ -22,7 +22,6 @@
 # include "config.h"
 #endif
 
-#define _GNU_SOURCE             /* for memmem */
 #include <string.h>
 
 #include <gst/gst.h>
@@ -32,6 +31,29 @@
 
 #define SAMPLE_FREQ 44100
 
+static const guint8 *
+_memmem (const guint8 * haystack, gsize hlen, const guint8 * needle, gsize nlen)
+{
+  const guint8 *p = haystack;
+  int needle_first;
+  gsize plen = hlen;
+
+  if (!nlen)
+    return NULL;
+
+  needle_first = *(unsigned char *) needle;
+
+  while (plen >= nlen && (p = memchr (p, needle_first, plen - nlen + 1))) {
+    if (!memcmp (p, needle, nlen))
+      return (guint8 *) p;
+
+    p++;
+    plen = hlen - (p - haystack);
+  }
+
+  return NULL;
+}
+
 static GstClockTime
 sample_to_nanotime (guint sample)
 {
@@ -209,7 +231,9 @@ test_seek_FORMAT_TIME_by_sample (const gchar * fn, GList * seek_positions)
 
     buf = gst_sample_get_buffer (sample);
     gst_buffer_map (buf, &map, GST_MAP_READ);
-    found = memmem (answer, answer_size, map.data, map.size);
+    GST_MEMDUMP ("answer", answer, answer_size);
+    GST_MEMDUMP ("buffer", map.data, map.size);
+    found = _memmem (answer, answer_size, map.data, map.size);
     gst_buffer_unmap (buf, &map);
 
     g_assert (found != NULL);
diff --git a/tests/meson.build b/tests/meson.build
index 2d750d71c..f7f0e5b67 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -3,4 +3,5 @@ if host_machine.system() != 'windows'
 subdir('check')
 endif
 
-# TODO: Implement examples etc
+subdir('icles')
+subdir('examples')
-- 
GitLab