diff --git a/ChangeLog b/ChangeLog
index 4f1a1f9..116f22c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,543 @@
+=== release 1.13.91 ===
+
+2018-03-13 19:22:10 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* gst-plugins-bad.doap:
+	* meson.build:
+	  Release 1.13.91
+
+2018-03-13 19:22:10 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-accurip.xml:
+	* docs/plugins/inspect/plugin-adpcmdec.xml:
+	* docs/plugins/inspect/plugin-adpcmenc.xml:
+	* docs/plugins/inspect/plugin-aiff.xml:
+	* docs/plugins/inspect/plugin-asfmux.xml:
+	* docs/plugins/inspect/plugin-assrender.xml:
+	* docs/plugins/inspect/plugin-audiobuffersplit.xml:
+	* docs/plugins/inspect/plugin-audiofxbad.xml:
+	* docs/plugins/inspect/plugin-audiolatency.xml:
+	* docs/plugins/inspect/plugin-audiomixmatrix.xml:
+	* docs/plugins/inspect/plugin-audiovisualizers.xml:
+	* docs/plugins/inspect/plugin-autoconvert.xml:
+	* docs/plugins/inspect/plugin-bayer.xml:
+	* docs/plugins/inspect/plugin-bluez.xml:
+	* docs/plugins/inspect/plugin-bs2b.xml:
+	* docs/plugins/inspect/plugin-bz2.xml:
+	* docs/plugins/inspect/plugin-camerabin.xml:
+	* docs/plugins/inspect/plugin-chromaprint.xml:
+	* docs/plugins/inspect/plugin-coloreffects.xml:
+	* docs/plugins/inspect/plugin-colormanagement.xml:
+	* docs/plugins/inspect/plugin-compositor.xml:
+	* docs/plugins/inspect/plugin-curl.xml:
+	* docs/plugins/inspect/plugin-dashdemux.xml:
+	* docs/plugins/inspect/plugin-dc1394.xml:
+	* docs/plugins/inspect/plugin-de265.xml:
+	* docs/plugins/inspect/plugin-debugutilsbad.xml:
+	* docs/plugins/inspect/plugin-decklink.xml:
+	* docs/plugins/inspect/plugin-dfbvideosink.xml:
+	* docs/plugins/inspect/plugin-dtls.xml:
+	* docs/plugins/inspect/plugin-dtsdec.xml:
+	* docs/plugins/inspect/plugin-dvb.xml:
+	* docs/plugins/inspect/plugin-dvbsuboverlay.xml:
+	* docs/plugins/inspect/plugin-dvdspu.xml:
+	* docs/plugins/inspect/plugin-faac.xml:
+	* docs/plugins/inspect/plugin-faad.xml:
+	* docs/plugins/inspect/plugin-faceoverlay.xml:
+	* docs/plugins/inspect/plugin-fbdevsink.xml:
+	* docs/plugins/inspect/plugin-fdkaac.xml:
+	* docs/plugins/inspect/plugin-festival.xml:
+	* docs/plugins/inspect/plugin-fieldanalysis.xml:
+	* docs/plugins/inspect/plugin-flite.xml:
+	* docs/plugins/inspect/plugin-fluidsynthmidi.xml:
+	* docs/plugins/inspect/plugin-freeverb.xml:
+	* docs/plugins/inspect/plugin-frei0r.xml:
+	* docs/plugins/inspect/plugin-gaudieffects.xml:
+	* docs/plugins/inspect/plugin-gdp.xml:
+	* docs/plugins/inspect/plugin-geometrictransform.xml:
+	* docs/plugins/inspect/plugin-gme.xml:
+	* docs/plugins/inspect/plugin-gsm.xml:
+	* docs/plugins/inspect/plugin-hls.xml:
+	* docs/plugins/inspect/plugin-id3tag.xml:
+	* docs/plugins/inspect/plugin-inter.xml:
+	* docs/plugins/inspect/plugin-interlace.xml:
+	* docs/plugins/inspect/plugin-ipcpipeline.xml:
+	* docs/plugins/inspect/plugin-ivfparse.xml:
+	* docs/plugins/inspect/plugin-ivtc.xml:
+	* docs/plugins/inspect/plugin-jp2kdecimator.xml:
+	* docs/plugins/inspect/plugin-jpegformat.xml:
+	* docs/plugins/inspect/plugin-kate.xml:
+	* docs/plugins/inspect/plugin-kms.xml:
+	* docs/plugins/inspect/plugin-ladspa.xml:
+	* docs/plugins/inspect/plugin-legacyrawparse.xml:
+	* docs/plugins/inspect/plugin-midi.xml:
+	* docs/plugins/inspect/plugin-mms.xml:
+	* docs/plugins/inspect/plugin-modplug.xml:
+	* docs/plugins/inspect/plugin-mpegpsdemux.xml:
+	* docs/plugins/inspect/plugin-mpegpsmux.xml:
+	* docs/plugins/inspect/plugin-mpegtsdemux.xml:
+	* docs/plugins/inspect/plugin-mpegtsmux.xml:
+	* docs/plugins/inspect/plugin-musepack.xml:
+	* docs/plugins/inspect/plugin-mxf.xml:
+	* docs/plugins/inspect/plugin-neonhttpsrc.xml:
+	* docs/plugins/inspect/plugin-netsim.xml:
+	* docs/plugins/inspect/plugin-ofa.xml:
+	* docs/plugins/inspect/plugin-openal.xml:
+	* docs/plugins/inspect/plugin-opencv.xml:
+	* docs/plugins/inspect/plugin-openexr.xml:
+	* docs/plugins/inspect/plugin-openglmixers.xml:
+	* docs/plugins/inspect/plugin-openh264.xml:
+	* docs/plugins/inspect/plugin-openjpeg.xml:
+	* docs/plugins/inspect/plugin-opusparse.xml:
+	* docs/plugins/inspect/plugin-pcapparse.xml:
+	* docs/plugins/inspect/plugin-pnm.xml:
+	* docs/plugins/inspect/plugin-proxy.xml:
+	* docs/plugins/inspect/plugin-removesilence.xml:
+	* docs/plugins/inspect/plugin-resindvd.xml:
+	* docs/plugins/inspect/plugin-rfbsrc.xml:
+	* docs/plugins/inspect/plugin-rsvg.xml:
+	* docs/plugins/inspect/plugin-rtmp.xml:
+	* docs/plugins/inspect/plugin-rtponvif.xml:
+	* docs/plugins/inspect/plugin-sbc.xml:
+	* docs/plugins/inspect/plugin-sdpelem.xml:
+	* docs/plugins/inspect/plugin-segmentclip.xml:
+	* docs/plugins/inspect/plugin-shm.xml:
+	* docs/plugins/inspect/plugin-siren.xml:
+	* docs/plugins/inspect/plugin-smooth.xml:
+	* docs/plugins/inspect/plugin-smoothstreaming.xml:
+	* docs/plugins/inspect/plugin-soundtouch.xml:
+	* docs/plugins/inspect/plugin-spandsp.xml:
+	* docs/plugins/inspect/plugin-speed.xml:
+	* docs/plugins/inspect/plugin-srtp.xml:
+	* docs/plugins/inspect/plugin-stereo.xml:
+	* docs/plugins/inspect/plugin-subenc.xml:
+	* docs/plugins/inspect/plugin-teletext.xml:
+	* docs/plugins/inspect/plugin-timecode.xml:
+	* docs/plugins/inspect/plugin-ttmlsubs.xml:
+	* docs/plugins/inspect/plugin-uvch264.xml:
+	* docs/plugins/inspect/plugin-vcdsrc.xml:
+	* docs/plugins/inspect/plugin-vdpau.xml:
+	* docs/plugins/inspect/plugin-videofiltersbad.xml:
+	* docs/plugins/inspect/plugin-videoframe_audiolevel.xml:
+	* docs/plugins/inspect/plugin-videoparsersbad.xml:
+	* docs/plugins/inspect/plugin-videosignal.xml:
+	* docs/plugins/inspect/plugin-vmnc.xml:
+	* docs/plugins/inspect/plugin-voaacenc.xml:
+	* docs/plugins/inspect/plugin-voamrwbenc.xml:
+	* docs/plugins/inspect/plugin-vulkan.xml:
+	* docs/plugins/inspect/plugin-wasapi.xml:
+	* docs/plugins/inspect/plugin-waylandsink.xml:
+	* docs/plugins/inspect/plugin-webp.xml:
+	* docs/plugins/inspect/plugin-webrtc.xml:
+	* docs/plugins/inspect/plugin-wildmidi.xml:
+	* docs/plugins/inspect/plugin-x265.xml:
+	* docs/plugins/inspect/plugin-y4mdec.xml:
+	* docs/plugins/inspect/plugin-yadif.xml:
+	* docs/plugins/inspect/plugin-zbar.xml:
+	  Update docs
+
+2018-03-13 13:14:58 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* docs/libs/Makefile.am:
+	  docs: update api decorators to ignore
+
+2018-03-13 13:11:17 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/webrtc/dtlstransport.h:
+	* gst-libs/gst/webrtc/icetransport.h:
+	* gst-libs/gst/webrtc/rtcsessiondescription.h:
+	* gst-libs/gst/webrtc/rtpreceiver.h:
+	* gst-libs/gst/webrtc/rtpsender.h:
+	* gst-libs/gst/webrtc/rtptransceiver.h:
+	* gst-libs/gst/webrtc/webrtc_fwd.h:
+	  webrtc: GST_EXPORT -> GST_WEBRTC_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 13:09:28 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/wayland/wayland.h:
+	  wayland: GST_EXPORT -> GST_WAYLAND_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 13:07:52 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/video/Makefile.am:
+	* gst-libs/gst/video/gstvideoaggregator.h:
+	* gst-libs/gst/video/gstvideoaggregatorpad.h:
+	* gst-libs/gst/video/meson.build:
+	* gst-libs/gst/video/video-bad-prelude.h:
+	  video: GST_EXPORT -> GST_URI_VIDEO_BAD_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 13:05:45 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/uridownloader/Makefile.am:
+	* gst-libs/gst/uridownloader/gstfragment.h:
+	* gst-libs/gst/uridownloader/gsturidownloader.h:
+	* gst-libs/gst/uridownloader/meson.build:
+	* gst-libs/gst/uridownloader/uridownloader-prelude.h:
+	  uridownloader: GST_EXPORT -> GST_URI_DOWNLOADER_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 13:02:54 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/player/Makefile.am:
+	* gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.h:
+	* gst-libs/gst/player/gstplayer-media-info.h:
+	* gst-libs/gst/player/gstplayer-signal-dispatcher.h:
+	* gst-libs/gst/player/gstplayer-types.h:
+	* gst-libs/gst/player/gstplayer-video-overlay-video-renderer.h:
+	* gst-libs/gst/player/gstplayer-video-renderer.h:
+	* gst-libs/gst/player/gstplayer-visualization.h:
+	* gst-libs/gst/player/gstplayer.h:
+	* gst-libs/gst/player/meson.build:
+	* gst-libs/gst/player/player-prelude.h:
+	* gst-libs/gst/player/player.h:
+	  player: GST_EXPORT -> GST_PLAYER_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 12:57:56 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/opencv/Makefile.am:
+	* gst-libs/gst/opencv/gstopencvutils.h:
+	* gst-libs/gst/opencv/gstopencvvideofilter.h:
+	* gst-libs/gst/opencv/meson.build:
+	* gst-libs/gst/opencv/opencv-prelude.h:
+	  opencv: GST_EXPORT -> GST_OPENCV_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 12:47:03 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/mpegts/Makefile.am:
+	* gst-libs/gst/mpegts/gst-atsc-section.h:
+	* gst-libs/gst/mpegts/gst-dvb-descriptor.h:
+	* gst-libs/gst/mpegts/gst-dvb-section.h:
+	* gst-libs/gst/mpegts/gstmpegtsdescriptor.h:
+	* gst-libs/gst/mpegts/gstmpegtssection.h:
+	* gst-libs/gst/mpegts/meson.build:
+	* gst-libs/gst/mpegts/mpegts-prelude.h:
+	* gst-libs/gst/mpegts/mpegts.h:
+	* gst-libs/gst/mpegts/mpegts_enum.py:
+	  mpegts: GST_EXPORT -> GST_MPEGTS_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 12:43:00 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/isoff/gstisoff.h:
+	  isoff: GST_EXPORT -> GST_ISOFF_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 12:41:42 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* common:
+	* gst-libs/gst/interfaces/Makefile.am:
+	* gst-libs/gst/interfaces/build_mkenum.py:
+	* gst-libs/gst/interfaces/meson.build:
+	* gst-libs/gst/interfaces/photography-prelude.h:
+	* gst-libs/gst/interfaces/photography.h:
+	  photography: GST_EXPORT -> GST_PHOTOGRAPHY_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 12:36:26 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/insertbin/gstinsertbin.h:
+	  insertbin: GST_EXPORT -> GST_INSERT_BIN_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 12:34:24 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/codecparsers/Makefile.am:
+	* gst-libs/gst/codecparsers/codecparsers-prelude.h:
+	* gst-libs/gst/codecparsers/gsth264parser.h:
+	* gst-libs/gst/codecparsers/gsth265parser.h:
+	* gst-libs/gst/codecparsers/gstjpeg2000sampling.h:
+	* gst-libs/gst/codecparsers/gstjpegparser.h:
+	* gst-libs/gst/codecparsers/gstmpeg4parser.h:
+	* gst-libs/gst/codecparsers/gstmpegvideometa.h:
+	* gst-libs/gst/codecparsers/gstmpegvideoparser.h:
+	* gst-libs/gst/codecparsers/gstvc1parser.h:
+	* gst-libs/gst/codecparsers/gstvp8parser.h:
+	* gst-libs/gst/codecparsers/gstvp8rangedecoder.h:
+	* gst-libs/gst/codecparsers/gstvp9parser.h:
+	* gst-libs/gst/codecparsers/meson.build:
+	  codecparsers: GST_EXPORT -> GST_CODEC_PARSERS_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 12:29:08 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/basecamerabinsrc/Makefile.am:
+	* gst-libs/gst/basecamerabinsrc/basecamerabinsrc-prelude.h:
+	* gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h:
+	* gst-libs/gst/basecamerabinsrc/gstcamerabin-enum.h:
+	* gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.h:
+	* gst-libs/gst/basecamerabinsrc/meson.build:
+	  basecamerabinsrc: GST_EXPORT -> GST_BASE_CAMERA_BIN_SRC_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 12:21:39 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/audio/Makefile.am:
+	* gst-libs/gst/audio/audio-bad-prelude.h:
+	* gst-libs/gst/audio/gstnonstreamaudiodecoder.h:
+	* gst-libs/gst/audio/meson.build:
+	  audio: GST_EXPORT -> GST_AUDIO_BAD_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-13 12:17:50 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/adaptivedemux/Makefile.am:
+	* gst-libs/gst/adaptivedemux/adaptive-demux-prelude.h:
+	* gst-libs/gst/adaptivedemux/gstadaptivedemux.h:
+	  adaptivedemux: GST_EXPORT -> GST_ADAPTIVE_DEMUX_API
+	  We need different export decorators for the different libs.
+	  For now no actual change though, just rename before the release,
+	  and add prelude headers to define the new decorator to GST_EXPORT.
+
+2018-03-12 20:10:02 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
+	  docs: plugins: add some more elements and plugins
+
+2018-03-10 18:51:14 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* sys/wasapi/gstwasapiutil.c:
+	  wasapi: Minor fixes for debug logging
+
+2018-03-10 18:49:59 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* sys/directsound/meson.build:
+	  meson: Add deviceprovider changes to directsoundsrc
+	  These were missed when they were added to Makefile.am
+
+2018-03-09 22:05:49 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* sys/wasapi/gstaudioclient3.h:
+	  wasapi: Guard IAudioClient2 structs and enums
+	  These are already defined in the audioclient.h provided by the latest
+	  MinGW headers, and the existing #ifndef were obviously wrong.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=794197
+
+2018-03-10 11:41:54 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
+	* docs/plugins/gst-plugins-bad-plugins-sections.txt:
+	* docs/plugins/gst-plugins-bad-plugins.args:
+	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-wasapi.xml:
+	  docs: add wasapi elements
+
+2018-03-09 23:59:16 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* sys/msdk/meson.build:
+	* tests/check/meson.build:
+	  meson: fix build when msdk is not found
+
+2018-03-09 10:48:11 -0900  Wang,Fei <fei.w.wang@intel.com>
+
+	* tests/check/Makefile.am:
+	* tests/check/elements/msdkh264enc.c:
+	* tests/check/meson.build:
+	  tests: add msdkh264enc element unit test
+	  https://bugzilla.gnome.org/show_bug.cgi?id=793236
+
+2018-03-09 10:32:40 -0900  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* sys/msdk/meson.build:
+	  msdk: Fix the misspelled file name in meson build
+
+2018-03-09 11:11:40 +0100  Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
+
+	* sys/wasapi/Makefile.am:
+	  wasapi: ship audioclient3 header in tarballs
+	  https://bugzilla.gnome.org/show_bug.cgi?id=794197
+
+2018-03-08 11:39:25 -0900  Hyunjun Ko <zzoon@igalia.com>
+
+	* sys/msdk/gstmsdkenc.c:
+	* sys/msdk/gstmsdkenc.h:
+	  msdk: enc: fix missing some frames to be encoded
+	  There was not handling the end of encoding sequence in encoder.
+	  This patch does drain any remaining internal streams while decoder
+	  already does this.
+	  Document says:
+	  "To mark the end of the encoding sequence, call this function with a
+	  NULL surface
+	  pointer. Repeat the call to drain any remaining internally cached
+	  bitstreams—one
+	  frame at a time—until MFX_ERR_MORE_DATA is returned."
+	  https://bugzilla.gnome.org/show_bug.cgi?id=793236
+
+2018-03-08 11:38:52 -0900  Hyunjun Ko <zzoon@igalia.com>
+
+	* sys/msdk/gstmsdkdec.c:
+	  msdk: dec: fix leaks when flushing
+	  https://bugzilla.gnome.org/show_bug.cgi?id=793708
+
+2018-03-08 11:38:30 -0900  Hyunjun Ko <zzoon@igalia.com>
+
+	* sys/msdk/gstmsdkcontext.c:
+	  msdk: manage child sessions on parent GstMsdkContext
+	  Sometimes parent context is released before its children get released.
+	  In this case MFXClose of parent session fails.
+	  To make sure that child sessions are closed before closing a parent
+	  session,
+	  Parent context needs to manage child sessions and close them first when
+	  it's released.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=793412
+
+2018-03-08 11:37:52 -0900  Hyunjun Ko <zzoon@igalia.com>
+
+	* sys/msdk/gstmsdkdec.c:
+	* sys/msdk/gstmsdkdec.h:
+	  msdk: dec: remove code to manage buffers with locked surface
+	  https://bugzilla.gnome.org/show_bug.cgi?id=793413
+
+2018-03-08 11:37:12 -0900  Hyunjun Ko <zzoon@igalia.com>
+
+	* sys/msdk/gstmsdkbufferpool.c:
+	* sys/msdk/gstmsdkcontext.c:
+	* sys/msdk/gstmsdkcontext.h:
+	* sys/msdk/gstmsdkvideomemory.c:
+	* sys/msdk/gstmsdkvideomemory.h:
+	  msdk: manage MSDK surfaces seperately
+	  Currently a gst buffer has one mfxFrameSurface when it's allocated and
+	  can't be changed.
+	  This is based on that the life of gst buffer and mfxFrameSurface would
+	  be same.
+	  But it's not true. Sometimes even if a gst buffer of a frame is finished
+	  on downstream,
+	  mfxFramesurface coupled with the gst buffer is still locked, which means
+	  it's still being used in the driver.
+	  So this patch does this.
+	  Every time a gst buffer is acquired from the pool, it confirms if the
+	  surface coupled with the buffer is unlocked.
+	  If not, replace it with new unlocked one.
+	  In this way, user(decoder or encoder) doesn't need to manage gst buffers
+	  including locked surface.
+	  To do that, this patch includes the following:
+	  1. GstMsdkContext
+	  - Manages MSDK surfaces available, used, locked respectively as the
+	  following:
+	  1\ surfaces_avail : surfaces which are free and unused anywhere
+	  2\ surfaces_used : surfaces coupled with a gst buffer and being used
+	  now.
+	  3\ surfaces_locked : surfaces still locked even after the gst buffer
+	  is released.
+	  - Provide an api to get MSDK surface available.
+	  - Provide an api to release MSDK surface.
+	  2. GstMsdkVideoMemory
+	  - Gets a surface available when it's allocated.
+	  - Provide an api to get an available surface with new unlocked one.
+	  - Provide an api to release surface in the msdk video memory.
+	  3. GstMsdkBufferPool
+	  - In acquire_buffer, every time a gst buffer is acquired, get new
+	  available surface from the list.
+	  - In release_buffer, it confirms if the buffer's surface is unlocked or
+	  not.
+	  - If unlocked, it is put to the available list.
+	  - If still locked, it is put to the locked list.
+	  This also fixes bug #793525.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=793413
+	  https://bugzilla.gnome.org/show_bug.cgi?id=793525
+
+2018-03-08 10:12:16 +0100  Michael Tretter <m.tretter@pengutronix.de>
+
+	* configure.ac:
+	  configure.ac: enable largefile support if possible
+	  https://bugzilla.gnome.org/show_bug.cgi?id=793103
+
+2018-03-05 19:37:06 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/libs/player.c:
+	  tests: player: disable broken test_play_media_info test
+	  Until someone can be bothered to debug + fix it.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=787372
+	  https://bugzilla.gnome.org/show_bug.cgi?id=787374
+
+2018-03-05 14:21:14 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst-libs/gst/codecparsers/gsth265parser.c:
+	* tests/check/libs/h265parser.c:
+	  h265parser: allow partial matching on range extension profile
+	  Best to return a valid profiles rather than no profile if bitstream uses
+	  a not standard profile.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=793876
+
+2018-02-26 17:26:07 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst-libs/gst/codecparsers/gsth265parser.c:
+	* gst-libs/gst/codecparsers/gsth265parser.h:
+	* gst/videoparsers/gsth265parse.c:
+	* tests/check/libs/h265parser.c:
+	  h265parse: add support for 'Format range extensions profiles'
+	  Those profiles have been introduced in version 2 of the HEVC spec
+	  (A.3.5).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=793876
+
+2018-02-27 11:30:15 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst-libs/gst/codecparsers/gsth265parser.c:
+	* gst-libs/gst/codecparsers/gsth265parser.h:
+	  h265parser: parse extra profile fields
+	  Those fields have been introduced in version 2 and later to define new
+	  profiles like the format range extensions profiles (A.3.5).
+	  NOTE: This patch breaks the parser ABI, rebuild needed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=793876
+
+2018-03-01 11:08:44 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst-libs/gst/codecparsers/gsth265parser.c:
+	* gst-libs/gst/codecparsers/gsth265parser.h:
+	* gst/videoparsers/gsth265parse.c:
+	* tests/check/Makefile.am:
+	* tests/check/libs/h265parser.c:
+	* tests/check/meson.build:
+	  h265parser: decouple GstH265Profile and GstH265ProfileIDC
+	  We used to have the same enum to represent H265 profiles and idc values.
+	  Those are no longer the same with extension profiles defined from
+	  version 2 of the spec.
+	  Split those enums so the semantic of each is clearer and we'll be able
+	  to add extension profiles to GstH265Profile.
+	  Also add gst_h265_profile_tier_level_get_profile() to retrieve the
+	  GstH265Profile from the GstH265ProfileTierLevel. It will be used to
+	  implement the detection of extension profiles.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=793876
+
 === release 1.13.90 ===
 
 2018-03-03 22:39:27 +0000  Tim-Philipp Müller <tim@centricular.com>
 
+	* ChangeLog:
 	* NEWS:
 	* RELEASE:
 	* configure.ac:
diff --git a/NEWS b/NEWS
index c85b362..407ab98 100644
--- a/NEWS
+++ b/NEWS
@@ -7,13 +7,13 @@
 in early March 2018.
 
 There are unstable pre-releases available for testing and development
-purposes. The latest pre-release is version 1.13.90 (rc1) and was
-released on 03 March 2018.
+purposes. The latest pre-release is version 1.13.91 (rc2) and was
+released on 12 March 2018.
 
 See https://gstreamer.freedesktop.org/releases/1.14/ for the latest
 version of this document.
 
-_Last updated: Saturday 03 March 2018, 16:30 UTC (log)_
+_Last updated: Monday 12 March 2018, 18:00 UTC (log)_
 
 
 Introduction
@@ -28,103 +28,957 @@
 
 Highlights
 
--   this section will be completed shortly
+-   WebRTC support: real-time audio/video streaming to and from web
+    browsers
+
+-   Experimental support for the next-gen royalty-free AV1 video codec
+
+-   Video4Linux: encoding support, stable element names and faster
+    device probing
+
+-   Support for the Secure Reliable Transport (SRT) video streaming
+    protocol
+
+-   RTP Forward Error Correction (FEC) support (ULPFEC)
+
+-   RTSP 2.0 support in rtspsrc and gst-rtsp-server
+
+-   ONVIF audio backchannel support in gst-rtsp-server and rtspsrc
+
+-   playbin3 gapless playback and pre-buffering support
+
+-   tee, our stream splitter/duplication element, now does allocation
+    query aggregation which is important for efficient data handling and
+    zero-copy
+
+-   QuickTime muxer has a new prefill recording mode that allows file
+    import in Adobe Premiere and FinalCut Pro while the file is still
+    being written.
+
+-   rtpjitterbuffer fast-start mode and timestamp offset adjustment
+    smoothing
+
+-   souphttpsrc connection sharing, which allows for connection reuse,
+    cookie sharing, etc.
+
+-   nvdec: new plugin for hardware-accelerated video decoding using the
+    NVIDIA NVDEC API
+
+-   Adaptive DASH trick play support
+
+-   ipcpipeline: new plugin that allows splitting a pipeline across
+    multiple processes
+
+-   Major gobject-introspection annotation improvements for large parts
+    of the library API
 
 
 Major new features and changes
 
-Noteworthy new API
+WebRTC support
 
--   this section will be filled in shortly
+There is now basic support for WebRTC in GStreamer in form of a new
+webrtcbin element and a webrtc support library. This allows you to build
+applications that set up connections with and stream to and from other
+WebRTC peers, whilst leveraging all of the usual GStreamer features such
+as hardware-accelerated encoding and decoding, OpenGL integration,
+zero-copy and embedded platform support. And it's easy to build and
+integrate into your application too!
+
+WebRTC enables real-time communication of audio, video and data with web
+browsers and native apps, and it is supported or about to be support by
+recent versions of all major browsers and operating systems.
+
+GStreamer's new WebRTC implementation uses libnice for Interactive
+Connectivity Establishment (ICE) to figure out the best way to
+communicate with other peers, punch holes into firewalls, and traverse
+NATs.
+
+The implementation is not complete, but all the basics are there, and
+the code sticks fairly close to the PeerConnection API. Where
+functionality is missing it should be fairly obvious where it needs to
+go.
+
+For more details, background and example code, check out Nirbheek's blog
+post _GStreamer has grown a WebRTC implementation_, as well as Matthew's
+_GStreamer WebRTC_ talk from last year's GStreamer Conference in Prague.
 
 New Elements
 
--   this section will be filled in shortly
+-   webrtcbin handles the transport aspects of webrtc connections (see
+    WebRTC section above for more details)
 
-New element features and additions
+-   New srtsink and srtsrc elements for the Secure Reliable Transport
+    (SRT) video streaming protocol, which aims to be easy to use whilst
+    striking a new balance between reliability and latency for low
+    latency video streaming use cases. More details about SRT and the
+    implementation in GStreamer in Olivier's blog post _SRT in
+    GStreamer_.
 
--   this section will be filled in shortly
+-   av1enc and av1dec elements providing experimental support for the
+    next-generation royalty free video AV1 codec, alongside Matroska
+    support for it.
+
+-   hlssink2 is a rewrite of the existing hlssink element, but unlike
+    its predecessor hlssink2 takes elementary streams as input and
+    handles the muxing to MPEG-TS internally. It also leverages
+    splitmuxsink internally to do the splitting. This allows more
+    control over the chunk splitting and sizing process and relies less
+    on the co-operation of an upstream muxer. Different to the old
+    hlssink it also works with pre-encoded streams and does not require
+    close interaction with an upstream encoder element.
+
+-   audiolatency is a new element for measuring audio latency end-to-end
+    and is useful to measure roundtrip latency including both the
+    GStreamer-internal latency as well as latency added by external
+    components or circuits.
+
+-   'fakevideosink is basically a null sink for video data and very
+    similar to fakesink, only that it will answer allocation queries and
+    will advertise support for various video-specific things such
+    GstVideoMeta, GstVideoCropMeta and GstVideoOverlayCompositionMeta
+    like a normal video sink would. This is useful for throughput
+    testing and testing the zero-copy path when creating a new pipeline.
+
+-   ipcpipeline: new plugin that allows the splitting of a pipeline into
+    multiple processes. Usually a GStreamer pipeline runs in a single
+    process and parallelism is achieved by distributing workloads using
+    multiple threads. This means that all elements in the pipeline have
+    access to all the other elements' memory space however, including
+    that of any libraries used. For security reasons one might therefore
+    want to put sensitive parts of a pipeline such as DRM and decryption
+    handling into a separate process to isolate it from the rest of the
+    pipeline. This can now be achieved with the new ipcpipeline plugin.
+    Check out George's blog post _ipcpipeline: Splitting a GStreamer
+    pipeline into multiple processes_ or his lightning talk from last
+    year's GStreamer Conference in Prague for all the gory details.
+
+&nbsp;
+-   proxysink and proxysrc are new elements to pass data from one
+    pipeline to another within the same process, very similar to the
+    existing inter elements, but not limited to raw audio and video
+    data. These new proxy elements are very special in how they work
+    under the hood, which makes them extremely powerful, but also
+    dangerous if not used with care. The reason for this is that it's
+    not just data that's passed from sink to src, but these elements
+    basically establish a two-way wormhole that passes through queries
+    and events in both directions, which means caps negotiation and
+    allocation query driven zero-copy can work through this wormhole.
+    There are scheduling considerations as well: proxysink forwards
+    everything into the proxysrc pipeline directly from the proxysink
+    streaming thread. There is a queue element inside proxysrc to
+    decouple the source thread from the sink thread, but that queue is
+    not unlimited, so it is entirely possible that the proxysink
+    pipeline thread gets stuck in the proxysrc pipeline, e.g. when that
+    pipeline is paused or stops consuming data for some other reason.
+    This means that one should always shut down down the proxysrc
+    pipeline before shutting down the proxysink pipeline, for example.
+    Or at least take care when shutting down pipelines. Usually this is
+    not a problem though, especially not in live pipelines. For more
+    information see Nirbheek's blog post _Decoupling GStreamer
+    Pipelines_, and also check out out the new ipcpipeline plugin for
+    sending data from one process to another process (see above).
+
+-   lcms is a new LCMS-based ICC color profile correction element
+
+-   openmptdec is a new OpenMPT-based decoder for module music formats,
+    such as S3M, MOD, XM, IT. It is built on top of a new
+    GstNonstreamAudioDecoder base class which aims to unify handling of
+    files which do not operate a streaming model. The wildmidi plugin
+    has also been revived and is also implemented on top of this new
+    base class.
+
+-   The curl plugin has gained a new curlhttpsrc element, which is
+    useful for testing HTTP protocol version 2.0 amongst other things.
+
+Noteworthy new API
+
+-   GstPromise provides future/promise-like functionality. This is used
+    in the GStreamer WebRTC implementation.
+
+&nbsp;
+-   GstReferenceTimestampMeta is a new meta that allows you to attach
+    additional reference timestamps to a buffer. These timestamps don't
+    have to relate to the pipeline clock in any way. Examples of this
+    could be an NTP timestamp when the media was captured, a frame
+    counter on the capture side or the (local) UNIX timestamp when the
+    media was captured. The decklink elements make use of this.
+
+&nbsp;
+-   GstVideoRegionOfInterestMeta: it's now possible to attach generic
+    free-form element-specific parameters to a region of interest meta,
+    for example to tell a downstream encoder to use certain codec
+    parameters for a certain region.
+
+&nbsp;
+-   gst_bus_get_pollfd can be used to obtain a file descriptor for the
+    bus that can be poll()-ed on for new messages. This is useful for
+    integration with non-GLib event loops.
+
+&nbsp;
+-   gst_get_main_executable_path() can be used by wrapper plugins that
+    need to find things in the directory where the application
+    executable is located. In the same vein,
+    GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE can be used to
+    signal that plugin dependency paths are relative to the main
+    executable.
+
+-   pad templates can be told about the GType of the pad subclass of the
+    pad via newly-added GstPadTemplate API API or the
+    gst_element_class_add_static_pad_template_with_gtype() convenience
+    function. gst-inspect-1.0 will use this information to print pad
+    properties.
+
+&nbsp;
+-   new convenience functions to iterate over element pads without using
+    the GstIterator API: gst_element_foreach_pad(),
+    gst_element_foreach_src_pad(), and gst_element_foreach_sink_pad().
+
+&nbsp;
+-   GstBaseSrc and appsrc have gained support for buffer lists:
+    GstBaseSrc subclasses can use gst_base_src_submit_buffer_list(), and
+    applications can use gst_app_src_push_buffer_list() to push a buffer
+    list into appsrc.
+
+&nbsp;
+-   The GstHarness unit test harness has a couple of new convenience
+    functions to retrieve all pending data in the harness in form of a
+    single chunk of memory.
+
+&nbsp;
+-   GstAudioStreamAlign is a new helper object for audio elements that
+    handles discontinuity detection and sample alignment. It will align
+    samples after the previous buffer's samples, but keep track of the
+    divergence between buffer timestamps and sample position (jitter).
+    If it exceeds a configurable threshold the alignment will be reset.
+    This simply factors out code that was duplicated in a number of
+    elements into a common helper API.
+
+&nbsp;
+-   The GstVideoEncoder base class implements Quality of Service (QoS)
+    now. This is disabled by default and must be opted in by setting the
+    "qos" property, which will make the base class gather statistics
+    about the real-time performance of the pipeline from downstream
+    elements (usually sinks that sync the pipeline clock). Subclasses
+    can then make use of this by checking whether input frames are late
+    already using gst_video_encoder_get_max_encode_time() If late, they
+    can just drop them and skip encoding in the hope that the pipeline
+    will catch up.
+
+&nbsp;
+-   The GstVideoOverlay interface gained a few helper functions for
+    installing and handling a "render-rectangle" property on elements
+    that implement this interface, so that this functionality can also
+    be used from the command line for testing and debugging purposes.
+    The property wasn't added to the interface itself as that would
+    require all implementors to provide it which would not be
+    backwards-compatible.
+
+&nbsp;
+-   A new base class, GstNonstreamAudioDecoder for non-stream audio
+    decoders was added to gst-plugins-bad. This base-class is meant to
+    be used for audio decoders that require the whole stream to be
+    loaded first before decoding can start. Examples of this are module
+    formats (MOD/S3M/XM/IT/etc), C64 SID tunes, video console music
+    files (GYM/VGM/etc), MIDI files and others. The new openmptdec
+    element is based on this.
+
+&nbsp;
+-   Full list of API new in 1.14:
+-   GStreamer core API new in 1.14
+-   GStreamer base library API new in 1.14
+-   gst-plugins-base libraries API new in 1.14
+-   gst-plugins-bad: no list, mostly GstWebRTC library and new
+    non-stream audio decoder base class.
+
+New RTP features and improvements
+
+-   rtpulpfecenc and rtpulpfecdec are new elements that implement
+    Generic Forward Error Correction (FEC) using Uneven Level Protection
+    (ULP) as described in RFC 5109. This can be used to protect against
+    certain types of (non-bursty) packet loss, and important packets
+    such as those containing codec configuration data or key frames can
+    be protected with higher redundancy. Equally, packets that are not
+    particularly important can be given low priority or not be protected
+    at all. If packets are lost, the receiver can then hopefully restore
+    the lost packet(s) from the surrounding packets which were received.
+    This is an alternative to, or rather complementary to, dealing with
+    packet loss using _retransmission (rtx)_. GStreamer has had
+    retransmission support for a long time, but Forward Error Correction
+    allows for different trade-offs: The advantage of Forward Error
+    Correction is that it doesn't add latency, whereas retransmission
+    requires at least one more roundtrip to request and hopefully
+    receive lost packets; Forward Error Correction increases the
+    required bandwidth however, even in situations where there is no
+    packet loss at all, so one will typically want to fine-tune the
+    overhead and mechanisms used based on the characteristics of the
+    link at the time.
+
+-   New _Redundant Audio Data (RED)_ encoders and decoders for RTP as
+    per RFC 2198 are also provided (rtpredenc and rtpreddec), mostly for
+    chrome webrtc compatibility, as chrome will wrap ULPFEC-protected
+    streams in RED packets, and such streams need to be wrapped and
+    unwrapped in order to use ULPFEC with chrome.
+
+&nbsp;
+-   a few new buffer flags for FEC support:
+    GST_BUFFER_FLAG_NON_DROPPABLE can be used to mark important buffers,
+    e.g. to flag RTP packets carrying keyframes or codec setup data for
+    RTP Forward Error Correction purposes, or to prevent still video
+    frames from being dropped by elements due to QoS. There already is a
+    GST_BUFFER_FLAG_DROPPABLE. GST_RTP_BUFFER_FLAG_REDUNDANT is used to
+    signal internally that a packet represents a redundant RTP packet
+    and used in rtpstorage to hold back the packet and use it only for
+    recovery from packet loss. Further work is still needed in
+    payloaders to make use of these.
+
+-   rtpbin now has an option for increasing timestamp offsets gradually:
+    Instant large changes to the internal ts_offset may cause timestamps
+    to move backwards and also cause visible glitches in media playback.
+    The new "max-ts-offset-adjustment" and "max-ts-offset" properties
+    let the application control the rate to apply changes to ts_offset.
+    There have also been some EOS/BYE handling improvements in rtpbin.
+
+-   rtpjitterbuffer has a new fast start mode: in many scenarios the
+    jitter buffer will have to wait for the full configured latency
+    before it can start outputting packets. The reason for that is that
+    it often can't know what the sequence number of the first expected
+    RTP packet is, so it can't know whether a packet earlier than the
+    earliest packet received will still arrive in future. This behaviour
+    can now be bypassed by setting the "faststart-min-packets" property
+    to the number of consecutive packets needed to start, and the jitter
+    buffer will start output packets as soon as it has N consecutive
+    packets queued internally. This is particularly useful to get a
+    first video frame decoded and rendered as quickly as possible.
+
+-   rtpL8pay and rtpL8depay provide RTP payloading and depayloading for
+    8-bit raw audio
+
+New element features
+
+-   playbin3 has gained support or gapless playback via the
+    "about-to-finish" signal where users can set the uri for the next
+    item to play. For non-live streams this will be emitted as soon as
+    the first uri has finished downloading, so with sufficiently large
+    buffers it is now possible to pre-buffer the next item well ahead of
+    time (unlike playbin where there would not be a lot of time between
+    "about-to-finish" emission and the end of the stream). If the stream
+    format of the next stream is the same as that of the previous
+    stream, the data will be concatenated via the concat element.
+    Whether this will result in true gaplessness depends on the
+    container format and codecs used, there might still be codec-related
+    gaps between streams with some codecs.
+
+-   tee now does allocation query aggregation, which is important for
+    zero-copy and efficient data handling, especially for video. Those
+    who want to drop allocation queries on purpose can use the identity
+    element's new "drop-allocation" property for that instead.
+
+-   audioconvert now has a "mix-matrix" property, which obsoletes the
+    audiomixmatrix element. There's also mix matrix support in the audio
+    conversion and channel mixing API.
+
+-   x264enc: new "insert-vui" property to disable VUI (Video Usability
+    Information) parameter insertion into the stream, which allows
+    creation of streams that are compatible with certain legacy hardware
+    decoders that will refuse to decode in certain combinations of
+    resolution and VUI parameters; the max. allowed number of B-frames
+    was also increased from 4 to 16.
+
+-   dvdlpcmdec: has gained support for Blu-Ray audio LPCM.
+
+-   appsrc has gained support for buffer lists (see above) and also seen
+    some other performance improvements.
+
+-   flvmux has been ported to the GstAggregator base class which means
+    it can work in defined-latency mode with live input sources and
+    continue streaming if one of the inputs stops producing data.
+
+-   jpegenc has gained a "snapshot" property just like pngenc to make it
+    easier to just output a single encoded frame.
+
+-   jpegdec will now handle interlaced MJPEG streams properly and also
+    handle frames without an End of Image marker better.
+
+-   v4l2: There are now video encoders for VP8, VP9, MPEG4, and H263.
+    The v4l2 video decoder handles dynamic resolution changes, and the
+    video4linux device provider now does much faster device probing. The
+    plugin also no longer uses the libv4l2 library by default, as it has
+    prevented a lot of interesting use cases like CREATE_BUFS, DMABuf,
+    usage of TRY_FMT. As the libv4l2 library is totally inactive and not
+    really maintained, we decided to disable it. This might affect a
+    small number of cheap/old webcams with custom vendor formats for
+    which we do not provide conversion in GStreamer. It is possible to
+    re-enable support for libv4l2 at run-time however, by setting the
+    environment variable GST_V4L2_USE_LIBV4L2=1.
+
+-   rtspsrc now has support for RTSP protocol version 2.0 as well as
+    ONVIF audio backchannels (see below for more details). It also
+    sports a new ["accept-certificate"] signal for "manually" checking a
+    TLS certificate for validity. It now also prints RTSP/SDP messages
+    to the gstreamer debug log instead of stdout.
+
+-   shout2send now uses non-blocking I/O and has a configurable network
+    operations timeout.
+
+-   splitmuxsink has gained a "split-now" action signal and new
+    "alignment-threshold" and "use-robust-muxing" properties. If robust
+    muxing is enabled, it will check and set the muxer's reserved space
+    properties if present. This is primarily for use with mp4mux's
+    robust muxing mode.
+
+-   qtmux has a new _prefill recording mode_ which sets up a moov header
+    with the correct sample positions beforehand, which then allows
+    software like Adobe Premiere and FinalCut Pro to import the files
+    while they are still being written to. This only works with constant
+    framerate I-frame only streams, and for now only support for ProRes
+    video and raw audio is implemented but adding new codecs is just a
+    matter of defining appropriate maximum frame sizes.
+
+-   qtmux also supports writing of svmi atoms with stereoscopic video
+    information now. Trak timescales can be configured on a per-stream
+    basis using the "trak-timescale" property on the sink pads. Various
+    new formats can be muxed: MPEG layer 1 and 2, AC3 and Opus, as well
+    as PNG and VP9.
+
+-   souphttpsrc now does connection sharing by default, shares its
+    SoupSession with other elements in the same pipeline via a
+    GstContext if possible (session-wide settings are all the defaults).
+    This allows for connection reuse, cookie sharing, etc. Applications
+    can also force a context to use. In other news, HTTP headers
+    received from the server are posted as element messages on the bus
+    now for easier diagnostics, and it's also possible now to use other
+    types of proxy servers such as SOCKS4 or SOCKS5 proxies, support for
+    which is implemented directly in gio. Before only HTTP proxies were
+    allowed.
+
+-   qtmux, mp4mux and matroskamux will now refuse caps changes of input
+    streams at runtime. This isn't really supported with these
+    containers (or would have to be implemented differently with a
+    considerable effort) and doesn't produce valid and spec-compliant
+    files that will play everywhere. So if you can't guarantee that the
+    input caps won't change, use a container format that does support on
+    the fly caps changes for a stream such as MPEG-TS or use
+    splitmuxsink which can start a new file when the caps change. What
+    would happen before is that e.g. rtph264depay or rtph265depay would
+    simply send new SPS/PPS inband even for AVC format, which would then
+    get muxed into the container as if nothing changed. Some decoders
+    will handle this just fine, but that's often more luck than by
+    design. In any case, it's not right, so we disallow it now.
+
+-   matroskamux had Table of Content (TOC) support now (chapters etc.)
+    and matroskademux TOC support has been improved. matroskademux has
+    also seen seeking improvements searching for the right cluster and
+    position.
+
+-   videocrop now uses GstVideoCropMeta if downstream supports it, which
+    means cropping can be handled more efficiently without any copying.
+
+-   compositor now has support for _crossfade blending_, which can be
+    used via the new "crossfade-ratio" property on the sink pads.
+
+-   The avwait element has a new "end-timecode" property and posts
+    "avwait-status" element messages now whenever avwait starts or stops
+    passing through data (e.g. because target-timecode and end-timecode
+    respectively have been reached).
+
+&nbsp;
+-   h265parse and h265parse will try harder to make upstream output the
+    same caps as downstream requires or prefers, thus avoiding
+    unnecessary conversion. The parsers also expose chroma format and
+    bit depth in the caps now.
+
+-   The dtls elements now longer rely on or require the application to
+    run a GLib main loop that iterates the default main context
+    (GStreamer plugins should never rely on the application running a
+    GLib main loop).
+
+-   openh264enc allows to change the encoding bitrate dynamically at
+    runtime now
+
+-   nvdec is a new plugin for hardware-accelerated video decoding using
+    the NVIDIA NVDEC API (which replaces the old VDPAU API which is no
+    longer supported by NVIDIA)
+
+-   The NVIDIA NVENC hardware-accelerated video encoders now support
+    dynamic bitrate and preset reconfiguration and support the I420
+    4:2:0 video format. It's also possible to configure the gop size via
+    the new "gop-size" property.
+
+-   The MPEG-TS muxer and demuxer (tsmux, tsdemux) now have support for
+    JPEG2000
+
+-   openjpegdec and jpeg2000parse support 2-component images now (gray
+    with alpha), and jpeg2000parse has gained limited support for
+    conversion between JPEG2000 stream-formats. (JP2, J2C, JPC) and also
+    extracts more details such as colorimetry, interlace-mode,
+    field-order, multiview-mode and chroma siting.
+
+-   The decklink plugin for Blackmagic capture and playback cards have
+    seen numerous improvements:
+
+-   decklinkaudiosrc and decklinkvideosrc now put hardware reference
+    timestamp on buffers in form of GstReferenceTimestampMetas.
+    This can be useful to know on multi-channel cards which frames from
+    different channels were captured at the same time.
+
+-   decklinkvideosink has gained support for Decklink hardware keying
+    with two new properties ("keyer-mode" and "keyer-level") to control
+    the built-in hardware keyer of Decklink cards.
+
+-   decklinkaudiosink has been re-implemented around GstBaseSink instead
+    of the GstAudioBaseSink base class, since the Decklink APIs don't
+    fit very well with the GstAudioBaseSink APIs, which used to cause
+    various problems due to inaccuracies in the clock calculations.
+    Problems were audio drop-outs and A/V sync going wrong after
+    pausing/seeking.
+
+-   support for more than 16 devices, without any artificial limit
+
+-   work continued on the msdk plugin for Intel's Media SDK which
+    enables hardware-accelerated video encoding and decoding on Intel
+    graphics hardware on Windows or Linux. More tuning options were
+    added, and more pixel formats and video codecs are supported now.
+    The encoder now also handles force-key-unit events and can insert
+    frame-packing SEIs for side-by-side and top-bottom stereoscopic 3D
+    video.
+
+-   dashdemux can now do adaptive trick play of certain types of DASH
+    streams, meaning it can do fast-forward/fast-rewind of normal (non-I
+    frame only) streams even at high speeds without saturating network
+    bandwidth or exceeding decoder capabilities. It will keep statistics
+    and skip keyframes or fragments as needed. See Sebastian's blog post
+    _DASH trick-mode playback in GStreamer_ for more details. It also
+    supports webvtt subtitle streams now and has seen improvements when
+    seeking in live streams.
+
+&nbsp;
+-   kmssink has seen lots of fixes and improvements in this cycle,
+    including:
+
+-   Raspberry Pi (vc4) and Xilinx DRM driver support
+
+-   new "render-rectangle" property that can be used from the command
+    line as well as "display-width" and "display-height", and
+    "can-scale" properties
+
+-   GstVideoCropMeta support
 
 Plugin and library moves
 
--   this section will be filled in shortly
+MPEG-1 audio (mp1, mp2, mp3) decoders and encoders moved to -good
+
+Following the expiration of the last remaining mp3 patents in most
+jurisdictions, and the termination of the mp3 licensing program, as well
+as the decision by certain distros to officially start shipping full mp3
+decoding and encoding support, these plugins should now no longer be
+problematic for most distributors and have therefore been moved from
+-ugly and -bad to gst-plugins-good. Distributors can still disable these
+plugins if desired.
+
+In particular these are:
+
+-   mpg123audiodec: an mp1/mp2/mp3 audio decoder using libmpg123
+-   lamemp3enc: an mp3 encoder using LAME
+-   twolamemp2enc: an mp2 encoder using TwoLAME
+
+GstAggregator moved from -bad to core
+
+GstAggregator has been moved from gst-plugins-bad to the base library in
+GStreamer and is now stable API.
+
+GstAggregator is a new base class for mixers and muxers that have to
+handle multiple input pads and aggregate streams into one output stream.
+It improves upon the existing GstCollectPads API in that it is a proper
+base class which was also designed with live streaming in mind.
+GstAggregator subclasses will operate in a mode with defined latency if
+any of the inputs are live streams. This ensures that the pipeline won't
+stall if any of the inputs stop producing data, and that the configured
+maximum latency is never exceeded.
+
+GstAudioAggregator, audiomixer and audiointerleave moved from -bad to -base
+
+GstAudioAggregator is a new base class for raw audio mixers and muxers
+and is based on GstAggregator (see above). It provides defined-latency
+mixing of raw audio inputs and ensures that the pipeline won't stall
+even if one of the input streams stops producing data.
+
+As part of the move to stabilise the API there were some last-minute API
+changes and clean-ups, but those should mostly affect internal elements.
+
+It is used by the audiomixer element, which is a replacement for
+'adder', which did not handle live inputs very well and did not align
+input streams according to running time. audiomixer should behave much
+better in that respect and generally behave as one would expected in
+most scenarios.
+
+Similarly, audiointerleave replaces the 'interleave' element which did
+not handle live inputs or non-aligned inputs very robustly.
+
+GstAudioAggregator and its subclases have gained support for input
+format conversion, which does not include sample rate conversion though
+as that would add additional latency. Furthermore, GAP events are now
+handled correctly.
+
+We hope to move the video equivalents (GstVideoAggregator and
+compositor) to -base in the next cycle, i.e. for 1.16.
+
+GStreamer OpenGL integration library and plugin moved from -bad to -base
+
+The GStreamer OpenGL integration library and opengl plugin have moved
+from gst-plugins-bad to -base and are now part of the stable API canon.
+Not all OpenGL elements have been moved; a few had to be left behind in
+gst-plugins-bad in the new openglmixers plugin, because they depend on
+the GstVideoAggregator base class which we were not able to move in this
+cycle. We hope to reunite these elements with the rest of their family
+for 1.16 though.
+
+This is quite a milestone, thanks to everyone who worked to make this
+happen!
+
+Qt QML and GTK plugins moved from -bad to -good
+
+The Qt QML-based qmlgl plugin has moved to -good and provides a
+qmlglsink video sink element as well as a qmlglsrc element. qmlglsink
+renders video into a QQuickItem, and qmlglsrc captures a window from a
+QML view and feeds it as video into a pipeline for further processing.
+Both elements leverage GStreamer's OpenGL integration. In addition to
+the move to -good the following features were added:
+
+-   A proxy object is now used for thread-safe access to the QML widget
+    which prevents crashes in corner case scenarios: QML can destroy the
+    video widget at any time, so without this we might be left with a
+    dangling pointer.
+
+-   EGL is now supported with the X11 backend, which works e.g. on
+    Freescale imx6
+
+The GTK+ plugin has also moved from -bad to -good. It includes gtksink
+and gtkglsink which both render video into a GtkWidget. gtksink uses
+Cairo for rendering the video, which will work everywhere in all
+scenarios but involves an extra memory copy, whereas gtkglsink fully
+leverages GStreamer's OpenGL integration, but might not work properly in
+all scenarios, e.g. where the OpenGL driver does not properly support
+multiple sharing contexts in different threads; on Linux Nouveau is
+known to be broken in this respect, whilst NVIDIA's proprietary drivers
+and most other drivers generally work fine, and the experience with
+Intel's driver seems to be fixed; some proprietary embedded Linux
+drivers don't work; macOS works).
+
+GstPhysMemoryAllocator interface moved from -bad to -base
+
+GstPhysMemoryAllocator is a marker interface for allocators with
+physical address backed memory.
 
 Plugin removals
 
--   this section will be filled in shortly
+-   the sunaudio plugin was removed, since it couldn't ever have been
+    built or used with GStreamer 1.0, but no one even noticed in all
+    these years.
 
+-   the schroedinger-based Dirac encoder/decoder plugin has been
+    removed, as there is no longer any upstream or anyone else
+    maintaining it. Seeing that it's quite a fringe codec it seemed best
+    to simply remove it.
 
-Miscellaneous API additions
+API removals
 
--   this section will be filled in shortly
-
-GstPlayer
-
--   this section will be filled in shortly
+-   some MPEG video parser API in the API unstable codecutils library in
+    gst-plugins-bad was removed after having been deprecated for 5
+    years.
 
 
 Miscellaneous changes
 
--   this section will be filled in shortly
+-   The video support library has gained support for a few new pixel
+    formats:
+-   NV16_10LE32: 10-bit variant of NV16, packed into 32bit words (plus 2
+    bits padding)
+-   NV12_10LE32: 10-bit variant of NV12, packed into 32bit words (plus 2
+    bits padding)
+-   GRAY10_LE32: 10-bit grayscale, packed in 32bit words (plus 2 bits
+    padding)
+
+-   decodebin, playbin and GstDiscoverer have seen stability
+    improvements in corner cases such as shutdown while still starting
+    up or shutdown in error cases (hat tip to the oss-fuzz project).
+
+-   floating reference handling was inconsistent and has been cleaned up
+    across the board, including annotations. This solves various
+    long-standing memory leaks in language bindings, which e.g. often
+    caused elements and pads to be leaked.
+
+-   major gobject-introspection annotation improvements for large parts
+    of the library API, including nullability of return types and
+    function parameters, correct types (e.g. strings vs. filenames),
+    ownership transfer, array length parameters, etc. This allows to use
+    bigger parts of the GStreamer API to be safely used from dynamic
+    language bindings (e.g. Python, Javascript) and allows static
+    bindings (e.g. C#, Rust, Vala) to autogenerate more API bindings
+    without manual intervention.
 
 OpenGL integration
 
--   this section will be filled in shortly
+-   The GStreamer OpenGL integration library has moved to
+    gst-plugins-base and is now part of our stable API.
+
+-   new MESA3D GBM BACKEND. On devices with working libdrm support, it
+    is possible to use Mesa3D's GBM library to set up an EGL context
+    directly on top of KMS. This makes it possible to use the GStreamer
+    OpenGL elements without a windowing system if a libdrm- and
+    Mesa3D-supported GPU is present.
+
+-   Prefer wayland display over X11: As most Wayland compositors support
+    XWayland, the X11 backend would get selected.
+
+-   gldownload can export dmabufs now, and glupload will advertise
+    dmabuf as caps feature.
 
 
 Tracing framework and debugging improvements
 
--   this section will be filled in shortly
+-   NEW MEMORY RINGBUFFER BASED DEBUG LOGGER, useful for long-running
+    applications or to retrieve diagnostics when encountering an error.
+    The GStreamer debug logging system provides in-depth debug logging
+    about what is going on inside a pipeline. When enabled, debug logs
+    are usually written into a file, printed to the terminal, or handed
+    off to a log handler installed by the application. However, at
+    higher debug levels the volume of debug output quickly becomes
+    unmanageable, which poses a problem in disk-space or bandwidth
+    restricted environments or with long-running pipelines where a
+    problem might only manifest itself after multiple days. In those
+    situations, developers are usually only interested in the most
+    recent debug log output. The new in-memory ringbuffer logger makes
+    this easy: just installed it with gst_debug_add_ring_buffer_logger()
+    and retrieve logs with gst_debug_ring_buffer_logger_get_logs() when
+    needed. It is possible to limit the memory usage per thread and set
+    a timeout to determine how long messages are kept around. It was
+    always possible to implement this in the application with a custom
+    log handler of course, this just provides this functionality as part
+    of GStreamer.
+
+&nbsp;
+-   'fakevideosink is a null sink for video data that advertises
+    video-specific metas ane behaves like a video sink. See above for
+    more details.
+
+-   gst_util_dump_buffer() prints the content of a buffer to stdout.
+
+-   gst_pad_link_get_name() and gst_state_change_get_name() print pad
+    link return values and state change transition values as strings.
+
+-   The LATENCY TRACER has seen a few improvements: trace records now
+    contain timestamps which is useful to plot things over time, and
+    downstream synchronisation time is now excluded from the measured
+    values.
+
+-   Miniobject refcount tracing and logging was not entirley
+    thread-safe, there were duplicates or missing entries at times. This
+    has now been made reliable.
+
+-   The netsim element, which can be used to simulate network jitter,
+    packet reordering and packet loss, received new features and
+    improvements: it can now also simulate network congestion using a
+    token bucket algorithm. This can be enabled via the "max-kbps"
+    property. Packet reordering can be disabled now via the
+    "allow-reordering" property: Reordering of packets is not very
+    common in networks, and the delay functions will always introduce
+    reordering if delay > packet-spacing, so by setting
+    "allow-reordering" to FALSE you guarantee that the packets are in
+    order, while at the same time introducing delay/jitter to them. By
+    using the new "delay-distribution" property the use can control how
+    the delay applied to delayed packets is distributed: This is either
+    the uniform distribution (as before) or the normal distribution; in
+    addition there is also the gamma distribution which simulates the
+    delay on wifi networks better.
 
 
 Tools
 
--   this section will be filled in shortly
+-   gst-inspect-1.0 now prints pad properties for elements that have pad
+    subclasses with special properties, such as compositor or
+    audiomixer. This only works for elements that use the newly-added
+    GstPadTemplate API API or the
+    gst_element_class_add_static_pad_template_with_gtype() convenience
+    function to tell GStreamer about the special pad subclass.
+
+-   gst-launch-1.0 now generates a gstreamer pipeline diagram (.dot
+    file) whenever SIGHUP is sent to it on Linux/*nix systems.
+
+-   gst-discoverer-1.0 can now analyse live streams such as rtsp:// URIs
 
 
 GStreamer RTSP server
 
--   this section will be filled in shortly
+-   Initial support for [RTSP protocol version
+    2.0][rtsp2-lightning-talk] was added, which is to the best of our
+    knowledge the first RTSP 2.0 implementation ever!
+
+-   ONVIF audio backchannel support. This is an extension specified by
+    ONVIF that allows RTSP clients (e.g. a control room operator) to
+    send audio back to the RTSP server (e.g. an IP camera).
+    Theoretically this could have been done also by using the RECORD
+    method of the RTSP protocol, but ONVIF chose not to do that, so the
+    backchannel is set up alongside the other streams. Format
+    negotiation needs to be done out of band, if needed. Use the new
+    ONVIF-specific subclasses GstRTSPOnvifServer and
+    GstRTSPOnvifMediaFactory to enable this functionality.
+
+&nbsp;
+-   The internal server streaming pipeline is now dynamically
+    reconfigured on PLAY based on the transports needed. This means that
+    the server no longer adds the pipeline plumbing for all possible
+    transports from the start, but only if needed as needed. This
+    improves performance and memory footprint.
+
+-   rtspclientsink has gained an "accept-certificate" signal for
+    manually checking a TLS certificate for validity.
+
+-   Fix keep-alive/timeout issue for certain clients using TCP
+    interleave as transport who don't do keep-alive via some other
+    method such as periodic RTSP OPTION requests. We now put netaddress
+    metas on the packets from the TCP interleaved stream, so can map
+    RTCP packets to the right stream in the server and can handle them
+    properly.
+
+-   Language bindings improvements: in general there were quite a few
+    improvements in the gobject-introspection annotations, but we also
+    extended the permissions API which was not usable from bindings
+    before.
+
+-   Fix corner case issue where the wrong mount point was found when
+    there were multiple mount points with a common prefix.
 
 
 GStreamer VAAPI
 
--   this section will be filled in shortly
+-   this section will be filled in shortly {FIXME!}
 
 
 GStreamer Editing Services and NLE
 
--   this section will be filled in shortly
+-   this section will be filled in shortly {FIXME!}
 
 
 GStreamer validate
 
--   this section will be filled in shortly
+-   this section will be filled in shortly {FIXME!}
 
 
 GStreamer Python Bindings
 
--   this section will be filled in shortly
+-   this section will be filled in shortly {FIXME!}
 
 
 Build and Dependencies
 
--   this section will be filled in shortly
+-   the new WebRTC support in gst-plugins-bad depends on the GStreamer
+    elements that ship as part of libnice, and libnice version 1.1.14 is
+    required. Also the dtls and srtp plugins.
+
+-   gst-plugins-bad no longer depends on the libschroedinger Dirac codec
+    library.
+
+-   The srtp plugin can now also be built against libsrtp2.
+
+-   some plugins and libraries have moved between modules, see the
+    _Plugin and_ _library moves_ section above, and their respective
+    dependencies have moved with them of course, e.g. the GStreamer
+    OpenGL integration support library and plugin is now in
+    gst-plugins-base, and mpg123, LAME and twoLAME based audio decoder
+    and encoder plugins are now in gst-plugins-good.
+
+-   Unify static and dynamic plugin interface and remove plugin specific
+    static build option: Static and dynamic plugins now have the same
+    interface. The standard --enable-static/--enable-shared toggle is
+    sufficient. This allows building static and shared plugins from the
+    same object files, instead of having to build everything twice.
+
+-   The default plugin entry point has changed. This will only affect
+    plugins that are recompiled against new GStreamer headers. Binary
+    plugins using the old entry point will continue to work. However,
+    plugins that are recompiled must have matching plugin names in
+    GST_PLUGIN_DEFINE and filenames, as the plugin entry point for
+    shared plugins is now deduced from the plugin filename. This means
+    you can no longer have a plugin called foo living in a file called
+    libfoobar.so or such, the plugin filename needs to match. This might
+    cause problems with some external third party plugin modules when
+    they get rebuilt against GStreamer 1.14.
+
+
+Note to packagers and distributors
+
+A number of libraries, APIs and plugins moved between modules and/or
+libraries in different modules between version 1.12.x and 1.14.x, see
+the _Plugin and_ _library moves_ section above. Some APIs have seen
+minor ABI changes in the course of moving them into the stable APIs
+section.
+
+This means that you should try to ensure that all major GStreamer
+modules are synced to the same major version (1.12 or 1.13/1.14) and can
+only be upgraded in lockstep, so that your users never end up with a mix
+of major versions on their system at the same time, as this may cause
+breakages.
+
+Also, plugins compiled against >= 1.14 headers will not load with
+GStreamer <= 1.12 owing to a new plugin entry point (but plugin binaries
+built against older GStreamer versions will continue to load with newer
+versions of GStreamer of course).
+
+There is also a small structure size related ABI breakage introduced in
+the gst-plugins-bad codecparsers library between version 1.13.90 and
+1.13.91. This should "only" affect gstreamer-vaapi, so anyone who ships
+the release candidates is advised to upgrade those two modules at the
+same time.
 
 
 Platform-specific improvements
 
 Android
 
--   this section will be filled in shortly
+-   ahcsrc (Android camera source) does autofocus now
 
 macOS and iOS
 
--   this section will be filled in shortly
+-   this section will be filled in shortly {FIXME!}
 
 Windows
 
--   this section will be filled in shortly
+-   The GStreamer wasapi plugin was rewritten and should not only be
+    usable now, but in top shape and suitable for low-latency use cases.
+    The Windows Audio Session API (WASAPI) is Microsoft's most modern
+    method for talking with audio devices, and now that the wasapi
+    plugin is up to scratch it is preferred over the directsound plugin.
+    The ranks of the wasapisink and wasapisrc elements have been updated
+    to reflect this. Further improvements include:
+
+-   support for more than 2 channels
+
+-   a new "low-latency" property to enable low-latency operation (which
+    should always be safe to enable)
+
+-   support for the AudioClient3 API which is only available on Windows
+    10: in wasapisink this will be used automatically if available; in
+    wasapisrc it will have to be enabled explicitly via the
+    "use-audioclient3" property, as capturing audio with low latency and
+    without glitches seems to require setting the realtime priority of
+    the entire pipeline to "critical", which cannot be done from inside
+    the element, but has to be done in the application.
+
+-   set realtime thread priority to avoid glitches
+
+-   allow opening devices in exclusive mode, which provides much lower
+    latency compared to shared mode where WASAPI's engine period is
+    10ms. This can be activated via the "exclusive" property.
+
+-   There are now GstDeviceProvider implementations for the wasapi and
+    directsound plugins, so it's now possible to discover both audio
+    sources and audio sinks on Windows via the GstDeviceMonitor API
+
+-   debug log timestamps are now higher granularity owing to
+    g_get_monotonic_time() now being used as fallback in
+    gst_utils_get_timestamp(). Before that, there would sometimes be
+    10-20 lines of debug log output sporting the same timestamp.
 
 
 Contributors
@@ -184,9 +1038,7 @@
 
 Bugs fixed in 1.14
 
--   this section will be filled in shortly
-
-More than 704 bugs have been fixed during the development of 1.14.
+More than 800 bugs have been fixed during the development of 1.14.
 
 This list does not include issues that have been cherry-picked into the
 stable 1.12 branch and fixed there as well, all fixes that ended up in
@@ -211,7 +1063,8 @@
 
 Known Issues
 
--   The webrtcdsp element is currently not shipped as part of the
+-   The webrtcdsp element (which is unrelated to the newly-landed
+    GStreamer webrtc support) is currently not shipped as part of the
     Windows binary packages due to a build system issue.
 
 
@@ -230,6 +1083,7 @@
 
 ------------------------------------------------------------------------
 
-_These release notes have been prepared by Tim-Philipp Müller._
+_These release notes have been prepared by Tim-Philipp Müller with_
+_contributions from Sebastian Dröge._
 
 _License: CC BY-SA 4.0_
diff --git a/RELEASE b/RELEASE
index 2841f39..4b406f7 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-bad 1.13.90.
+This is GStreamer gst-plugins-bad 1.13.91.
 
 The GStreamer team is pleased to announce the first release candidate for the
 upcoming stable 1.14 release series.
diff --git a/configure.ac b/configure.ac
index 9ec41d6..dbea415 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@
 dnl initialize autoconf
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, git and prerelease does Werror too
-AC_INIT([GStreamer Bad Plug-ins],[1.13.90],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
+AC_INIT([GStreamer Bad Plug-ins],[1.13.91],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
 
 AG_GST_INIT
 
@@ -51,11 +51,11 @@
 dnl - interfaces added -> increment AGE
 dnl - interfaces removed -> AGE = 0
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 1390, 0, 1390)
+AS_LIBTOOL(GST, 1391, 0, 1391)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.13.90
-GSTPB_REQ=1.13.90
+GST_REQ=1.13.91
+GSTPB_REQ=1.13.91
 
 dnl *** autotools stuff ****
 
diff --git a/gst-plugins-bad.doap b/gst-plugins-bad.doap
index c449743..d6bdd24 100644
--- a/gst-plugins-bad.doap
+++ b/gst-plugins-bad.doap
@@ -35,6 +35,16 @@
 
  <release>
   <Version>
+   <revision>1.13.91</revision>
+   <branch>master</branch>
+   <name></name>
+   <created>2018-03-13</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.13.91.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.13.90</revision>
    <branch>master</branch>
    <name></name>
diff --git a/meson.build b/meson.build
index baa91c7..61e9e16 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
 project('gst-plugins-bad', 'c', 'cpp',
-  version : '1.13.90',
+  version : '1.13.91',
   meson_version : '>= 0.40.1',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
