hlsdemux: Send HLSMedia information through custom event
[platform/upstream/gstreamer.git] / NEWS
diff --git a/NEWS b/NEWS
index 510db9f..98dc512 100644 (file)
--- a/NEWS
+++ b/NEWS
-This is GStreamer Bad Plug-ins 0.10.16, "Sensible Precaution"
-
-Changes since 0.10.15:
-    
-      * Fix various bugs in the 0.10.15 release
-      * Fix a deadlock in starting DVD
-      * Fix compilation problems
-      * Allow libneon versions >= 29.x
-
-Bugs fixed since 0.10.15:
-     
-      * 599272 : faac check fails, undefined symbol
-      * 599332 : [neonhttpsrc] fails to compile with libneon 0.29.0
-
-Changes since 0.10.14:
-    
-      * Add barcode scanner plugin using the zbar library
-      * Improvements to camerabin
-      * Support audio-track format switching in DVD
-      * Improve parsing and display of PGS subpictures
-      * Add Cog plugin
-      * Add LV2 plugin support
-      * Improve VDPAU plugin. Add post-processing support
-      * Add videomeasure plugin
-      * Improve Siren codec
-      * Improved Directshow capture element
-      * Add EAC3 mapping in MPEG-TS playback
-      * Improve AAC encoding
-      * Improved MIDI file playback
-      * Improve H-264 parsing
-      * Add MPEG-PS muxer
-      * Add PNM encoder and decoder
-      * Add SVG decoder
-      * Update GLib dependency to GLib 2.16
-      * Various other bug fixes and improvements (see ChangeLog)
-
-Bugs fixed since 0.10.14:
-     
-      * 303975 : Add tar support
-      * 519001 : [wildmidi] Doesn't handle seeking correctly
-      * 575261 : Do not use the outdated Debian/Ubuntu libass libraries!
-      * 583901 : aacparse fails for remuxing
-      * 589609 : [PATCH] fix dvdspu crash when subtitles do not fit the incoming video
-      * 593348 : faac encoder produces first buffer with wrong duration
-      * 593625 : Broken Compilation, missing files with latest commits in git repository
-      * 593683 : Typo in variable name for libraries to link against
-      * 593864 : pcapparse: Set the GStreamer timestamp according to the pcap timestamps
-      * 594030 : [mpegtsdemux] Support for AC3/EAC3 not 100% correct
-      * 594277 : Make the default segment of outputselector TIME instead of UNDEFINED
-      * 594278 : dshowvideosink: remove unused variable
-      * 594279 : dshowsrcwrapper: use tchar macro for string literals
-      * 594321 : Videomeasure plugin
-      * 594382 : assrender: Fix compilation with libass = 0.9.6
-      * 594489 : broken compilation for mpegdemux
-      * 594715 : libgstsignalprocessor install issues
-      * 594812 : [mpegpsdemux] Seeking broken for MPEG PS cut from VOB file
-      * 595215 : PNM encoder doesn't support ASCII encoding
-      * 595409 : PNM decoder can't decode ASCII encoded files.
-      * 596285 : gstvideomeasure crashes at the end of some streams
-      * 596743 : qtmux: fix flags_as_uint to flags[]
-      * 598139 : faad element leaks itself.
-      * 598263 : refcount leak in resindvd
-      * 598274 : dtsdec leaks input buffers
-      * 598369 : Properly detect pre-releases
-      * 598733 : id3mux doesn't write image to APIC tag
-      * 582779 : [resindvd] Add support for other audio codecs than ac3
-      * 595700 : PNM decoder doesn't handle ASCII encoded pnm data split over several buffers
-
-Changes since 0.10.13:
-
-      * Moved rtpmanager to -good
-      * Moved dirac elements from schroedinger to gst-plugins-bad
-        (new schroedinger release without the gstreamer elements
-         will follow shortly)
-      * amrwb: Remove AMR-WB parser and decoder and rename encoder plugin
-        from amrwb to amrwbenc (the removed elements will re-appear in the
-        next -ugly release; no migration strategy provided in this case
-        because of the special status of the amrwb plugin)
-      * asfmux, rtpasfpay: add ASF muxer and windows media payloader
-      * basevideo: add experimental video base class library/API
-      * camerabin: lots of fixes and improvements
-      * capssetter: new element for debugging purposes
-      * directdraw: Implement GstNavigation interface
-      * directshow: refactor and improve dshowsrcwrapper, dshowideosrc, dshowaudiosrc
-      * frei0r: wrapper for frei0r video filter plugins
-      * gme: add libgme plugin which supersedes the existing OpenSPC spc plugin
-      * Implement SEEKING query in more demuxers and decoders (notably
-        mpeg-ps/mpeg-ts, mxf, musepack, rawparse)
-      * kate: add kate subtitle encoder, decoder and overlay
-      * mimic: lots of fixes for mimenc and mimdec; add "paused mode"
-      * mpegpsdemux: added caps for AAC and fixed playback of a clip with LPCM
-      * mpegtsdemux: added VC1, EAC3 and LPCM related to blueray/hdmv
-      * qtmux: handle pixel-aspect-ratio; misc. other fixes and improvements
-      * shapewipe: support ARGB/RGBA for video input/output; fix for still images
-      * vdpau: add experimental vdpau plugin
-
-Bugs fixed since 0.10.13:
-
-      * 587819 : [mpegtsparse] crash because of double free
-      * 344129 : [directsoundsrc] Plugin for Directsound source
-      * 377784 : xvidenc should output video/mpeg
-      * 540128 : Totem freeze with short HDV file
-      * 541962 : [directdrawsink] crash when exposing in GST_STATE_READY
-      * 561241 : metadatademux pad activation deadlock
-      * 561752 : GstRtpBin implement Release pad functions
-      * 575672 : [mpegtsdemux] crashes when souphttpsrc is used as a stream source
-      * 575818 : [ivorbisdec] extract vorbis tags
-      * 576800 : gstreamer SPC plugin requires non-portable x86 code
-      * 583470 : mpegtsparse: Old pes pids not removed when receiving PAT table
-      * 584252 : enhancements to OSSv4 plugin
-      * 584897 : Remove AMR plugin as it has been replaced by updated OpenCore plugin
-      * 585839 : Support for sending RTP packets as GstBufferList in the gstrtpbin
-      * 586019 : [mxfdemux] stray semicolons after if statement
-      * 586097 : GStreamer DVB tuning too quick for some devices
-      * 586956 : Include < sys/time.h > only if it is present in the system
-      * 587023 : [freeze] disable plugin static lib
-      * 587595 : [dshowsrcwrapper] start refactoring
-      * 588638 : [katedec] add x-dvd-subpicture output
-      * 588944 : mpegpsdemux doesn't support seeking with GST_FORMAT_TIME anymore
-      * 590030 : rtpsource: Incoming buffers do not always have caps
-      * 590208 : GstNavigation interface support for directdrawsink
-      * 590360 : [qtmux] requires endianness even if the samples are 8bit
-      * 590446 : [mpegdemux] MPEG TS with A52 not seekable
-      * 590797 : Memory leak in rtpsource.c
-      * 591440 : rtpdtmfsrc event cleanup
-      * 591538 : generic states test fails (vdpau, mimenc)
-      * 591610 : asfmux: messing up with sinkpads
-      * 591927 : REQUIREMENTS is out of date
-      * 592259 : mimenc: fourcc written incorrectly
-      * 593024 : regression in schroenc streamheader initialization
-      * 593063 : resindvd and rawparse do not use correct base LDFLAGS
-      * 593068 : Disarray in directsoundsrc/directdrawsink
-      * 586354 : [h264parse] blocked in infinite loop while parsing a corrupted frame
-
-
-Changes since 0.10.12:
-    
-      * New shapewipe video transition plugin
-      * qtmux improvements
-      * camerabin improvements
-      * HDV MPEG-TS private streams support
-      * Output interlacing information in mpegvideoparse
-      * MS-ADPCM decoder
-      * RTP fixes and enhancements
-      * DTS decoder improvements
-      * New ID3 tagging plugin that supports v1, v2.3 and v2.4
-      * Support for PGS (BluRay) subtitles
-      * Many other bug fixes and enhancements
-
-Bugs fixed since 0.10.12:
-     
-      * 584945 : camerabin unit tests failing
-      * 511097 : Support self-signed certificates in neonhttpsrc
-      * 561752 : GstRtpBin implement Release pad functions
-      * 584164 : gstspu-pgs.c warnings for format string args and uninitia...
-      * 584165 : rtpbin sdes message broken
-      * 584360 : gppmux ftyp
-      * 585015 : debugutils can't find libgstinterfaces
-      * 585660 : segfault in scaletempo plugin
-      * 584114 : gppmux and h263
-      * 583188 : Problem with sdp: bind failed or video disappear after fe...
-      * 583627 : statistic file name needs to be standardized
-
-Changes since 0.10.11:
-    
-      * Presets support in several elements
-      * Support ITV MPEG-TS streams
-      * New element: flvmux
-      * New element: osxvideosrc
-      * Fixes in RTP elements
-      * camerabin fixes
-      * Improved QT/mp4 muxing
-      * xdgmime based content type guessing
-      * deinterlace2 moved to the Good plugins (replacing deinterlace)
-      * Support for MXF muxing, and improved MXF demuxing
-      * Greatly improved DVD playback
-      * DirectDraw element moved back from Good plugins
-      * Many other bug fixes and improvements
-
-Bugs fixed since 0.10.11:
-     
-      * 573852 : Update celt to 0.5.x
-      * 574401 : metadatamux fails^WIS failure
-      * 580091 : soundtouch plugin fails to load
-      * 153684 : [osxvideosrc] Mac users needs an osxvideosrc
-      * 537700 : [scaletempo] Scale audio tempo in sync with playback rate
-      * 569437 : mpegtsparse: flow error or crashes while dynamicly changi...
-      * 569673 : [Mpegtsparse] PAT changes not always signaled
-      * 569781 : [Mpegtsparse] drop of valid TS packets
-      * 573595 : plugins-bad mingw ports
-      * 573846 : Check for soundtouch-1.4 too
-      * 573847 : Use SDL static-libs for conftest and libs for gstsdl*
-      * 573848 : Use native CPU number detection in mpeg2enc
-      * 573849 : modplug's sndfile.h conflicts with libsndfile's sndfile.h
-      * 575388 : [aacparse] deadlocks in busy loop when seeking
-      * 575736 : mpeg2enc's bitrate parameter does not work properly
-      * 576408 : [playbin2] Deadlock when using resindvd as source
-      * 577690 : rtpdtmfmux: missing pad unref
-      * 577864 : [residvd] dvdnav version requirements should be higher
-      * 578112 : x264enc: I-frame request
-      * 578562 : dshowdecwrapper missing check for GST_DISABLE_GST_DEBUG
-      * 578563 : win32 export files are not disted
-      * 580133 : Regression in baseparse since last release
-      * 580144 : emit notify::internal-ssrc when there is a ssrc collision
-      * 580786 : [flvmux] " uninitialized variable " compiler warning
-      * 580901 : Uninitialized variable may be used in fpsdisplaysink.c
-      * 581375 : rtpssrcdemux crashes on SR-less rtcp packets
-      * 582013 : uninitialized var in mxfmux.c prevents gst-plugins-bad bu...
-      * 582074 : [faad] Fails to build with faad 2.6 (misdetected as 2.7)
-      * 582208 : [PATCH] fix for soundtouch-1.4
-      * 582483 : y4menc doesn't pass timestamps on
-      * 582656 : [mxfdemux] Fix deadlock when querying from the pad-added ...
-      * 582702 : qtmux: crash in atom_moov_add_blob_tag
-      * 583337 : [mxfmux] Wrong layout for non-interlaced formats
-      * 580585 : rtpmux memleak
-      * 577843 : input-selector causes problems with DVD menus in playbin2
-      * 581593 : gppmux doesn't support MPEG4 part 2 in sink caps
-      * 575284 : add auto-connect-forced mode to jackaudiosrc and jackaudi...
-      * 576021 : On Windows qtmux can't write files longer than 2-4 GiB, u...
-      * 576712 : Output-selector keeps reference to latest buffer when cha...
-      * 581427 : [mpeg4videoparse] config buffer is leaked
-
-Changes since 0.10.10:
-    
-      * Add ASS/SSA subtitle handling element assrender
-      * Leak fixes in the QuickTime decoder wrapper
-      * Better DirectShow output on Windows
-      * Extend QT muxing support to include AMR and H.263
-      * mms seeking support
-      * Extended MXF file format handling
-      * camerabin and photography API for digital camera interfacing
-      * Merge elements from Farsight: liveadder, sirendec, sirenenc, valve,
-        rtpdtmfsrc, rtpdtmdepay, dtmfsrc, rtpdtmfmux, autoconvert,
-        mimdec, mimenc
-      * typefinder based on xdgmime
-
-Bugs fixed since 0.10.10:
-     
-      * 573369 : [gstfaad] Memory corruption and segfault
-      * 568704 : Metadatamux: unable to configure byte order for EXIF
-      * 354908 : videoflipping interface for v4l2src
-      * 369912 : missing inclusion in rpm spec file
-      * 469930 : [mmssrc] seeking support PATCH
-      * 481075 : Full support for ASS/SSA subtitles
-      * 549645 : merge useful elements from gst-plugins-farsight into core
-      * 567003 : [ladspa] improve plugin scanning
-      * 567371 : [mpegtsparse] memory leak in mpegtspacketizer
-      * 567828 : rtpmanager and RTCP BYE packet
-      * 567965 : [flvdemux] add support for ECMA arrays in script tags
-      * 568480 : gst-plugins-bad dccp plugin won't compile on Soalris
-      * 568483 : Problems linking gst-plugins-bad
-      * 568837 : RFE: allow building against the system modplug library
-      * 569323 : [qtmux] should support audio/AMR sink
-      * 570996 : bpmdetect relibably crashes with SIGSEGV on particular file
-      * 571560 : gstdshowaudio decoder doesn't compile.
-      * 572315 : Compiling camerabin on Windows with Visual Studio
-      * 572900 : gstrtpsession should not forward recv side event to the s...
-      * 573288 : [mpegtsdemux] memory leak when pusi is missed due to pack...
-      * 573391 : [videoanalyse] Wrong brightness calculation
-      * 575157 : xdgmime typefinder: make more conservative
-      * 575565 : [mxf] mxf plugin uses symbols not in glib 2.6 (minimum gl...
-      * 564114 : [PATCH] fbdev: fix depth calculation
-      * 573850 : Use Glib's byte order in gstgsmdec
-      * 573851 : Use glib integer types in gstfaad
-      * 172043 : [mpegpsdemux] wrong video length on mpeg file
-
-Changes since 0.10.9:
-
-      * Require gettext 0.17
-      * ACM mp3 decoder element for win32
-      * New MXF demuxer added
-      * JPEG-2000 encoder - jp2enc added
-      * RTP support
-      * Fixes for RTP support
-      * Add parsers for AAC and AMR
-      * Move libgstapp and elements to -base
-      * Add Quicktime muxer element qtmux
-      * Enhance RFB capture
-      * Improve MPEG-TS and MPEG-PS demuxing
-      * Don't install static libs for plugins
-      * Introduce audioringbuffer element
-      * Improve DVD playback of ResinDVD components
-      * Move old audioresample from -base as legacyaudioresample
-      * Improve speexresampler, and then move it to -base
-      * Improve FLV demuxing and parsing
-      * Various DVB input fixes
-      * Add support for frequency list descriptors for DVB
-      * Improve MPEG-TS muxer
-      * Various other bug-fixes
-
-Bugs fixed since 0.10.9:
-
-      * 127574 : replaygain support
-      * 480543 : [spc] crashes when not given any input data
-      * 546319 : [resindvd] Stuck on first menu (language selection)
-      * 549222 : Totem using resindvd element as DVD navigation module doe...
-      * 550280 : Move qtmux to gst-plugins-bad
-      * 550454 : FLV demuxer screws up in Pitivi
-      * 550613 : [mpegtsmux] Add support for ac3/dts/lpcm
-      * 553823 : CodeStyle improvements and minor fixes to the DCCP plugin.
-      * 555238 : Recent changes in x264 breaks compilation of x264 plugin.
-      * 557161 : Wrong time displayed and no seeking with MPEG PS cut from...
-      * 557763 : [mpegtsmux] DeadlockEOS due to interleaving mechanism
-      * 557814 : [mpegdemux] frequency list descriptor support
-      * 558639 : cross-configuring interrupts due to a failing check for " ...
-      * 560841 : Provide access to packet loss
-      * 561992 : debug format warning during compilation of resindvdsrc.c ...
-      * 562312 : Lip-sync generates wrong `ts-offset' in GstRtpBin
-      * 562319 : [rtpsession] memory corruption
-      * 562802 : [appsrc] lockup in pad_push() if previous flow was wrong-...
-      * 563006 : mxf mpeg422 file stops playing
-      * 563147 : input-selector doesn't notify of active-pad changing when...
-      * 564232 : Dual Licensing qtmux
-      * 565439 : Make pcapparse compile with (mingw32) gcc
-      * 565509 : rtpsource on receiver side can't get clock-rate for h264,...
-      * 565614 : [mpegtsdemux] Fix memory leak
-      * 565910 : allow forcing the ssrc on a rtpsession
-      * 566356 : [dvbbasebin] Couple of memleaks
-      * 566613 : bayer2rgb calculates wrong color offset
-      * 566878 : [ladspa] Add dependencies for ladspa modules
-      * 566957 : Add time based seeking to ResinDVD
-      * 566958 : fix dirac support in qtmux/mp4mux
-      * 566959 : Fix duration query on mpegtsdemux
-      * 508029 : [speexresample] pops/glitches in some cases
-      * 558416 : [PATCH] realvideodec: use pixel aspect ratio of container
-      * 564482 : [appsrc] semantics of push-buffer signal awkward for bind...
-      * 565319 : rtpjitterbuffer: bursty reception can cause time to be re...
-      * 565613 : [mpegtsdemux] Add scrambled field to service structure
-      * 567004 : ladspa plugin crashes on Solaris
-
-Changes since 0.10.8:
-
-      * New CELT encoder and decoder
-      * New TwoLAME encoder
-      * New DCCP element
-      * New AIFF parser element
-      * New APEX sink element
-      * deinterlace2 element improvements
-      * New JACK audio src element
-      * New winscreencap, winks and pcapparse plugins
-      * x624enc fixes
-      * Support for ATSC tuning and channels.conf parsing
-      * RTP improvements
-      * New scaletempo element
-      * Add Fluendo MPEG-TS muxer
-      * Add Fluendo MPEG-TS and MPEG-PS demuxers
-      * New JPEG2000 element
-      * New FLAC parser element
-      * DVD playback improvements
-      * Improved DirectShow decoding support
-      * New Windows Audio Session audio src element
-      * New FLV muxer element
-      * Many other bug fixes and improvements
-
-Bugs fixed since 0.10.8:
-
-      * 537700 : [scaletempo] Scale audio tempo in sync with playback rate
-      * 550468 : [name conflict] New Fluendo mpeg demuxers
-      * 545197 : jackaudiosrc
-      * 555244 : Output-selector has unexpected event forwarding right aft...
-      * 402593 : deinterleave gives corrupt output
-      * 406673 : Need AIFF parser
-      * 535527 : [real] Real video/audio stream fails to play
-      * 537455 : ATSC: VSB / QAM Annex B support
-      * 538500 : AIFF file doesn't play
-      * 542390 : Implementation of DCCP Plugin for gstreamer
-      * 542510 : [apexsink] Apple AirPort Express Wireless Sink
-      * 545247 : use g_setenv() insteed of setenv() in sdlvideosink.c
-      * 546312 : Make the metadata writable before modifying it in rtpmanager
-      * 549409 : gstrtpbin don't stop at the end of a stream
-      * 549774 : audio / video synchronization glitch during rtsp playback
-      * 550486 : [faac] Negotiation problem with mono audio for some sampl...
-      * 550657 : New element jasperdec
-      * 552506 : [neonhttpsrc] doesn't handle/throw errors correctly
-      * 552536 : fix incomplete change to gstdvbsrc.c
-      * 553755 : [mpegpsdemux] FP exception when playing tv2-1_25.mpg
-      * 555193 : [ELEMENT-MOVE] Move mpegtsparse element into mpegdemux pl...
-      * 555198 : [mpegpsdemux] Lower the RANK to MARGINAL for next release
-      * 555912 : [apexsink] Missing from ext/Makefile.am
-      * 555965 : Missing space after point mark
-      * 555968 : Missing space after point mark
-      * 555969 : Missing space after point mark
-      * 556003 : [flvdemux] Regression in handling flow returns in pull-mode
-      * 556274 : [aiffparse] Uses debugging methods before debugging is in...
-      * 556338 : Failed to configure latency
-      * 556428 : [mpegpsdemux] Creates invalid newsegment events 
-      * 556430 : [inputselector] Assumes there's always an otherpad
-      * 556440 : [PATCH] crash on demuxing certain transport streams
-      * 556482 : [PATCH] crash in mpegtsparse get_encoding_and_convert
-      * 556564 : [flvmux] Copy & paste bugs resulting in invalid files
-      * 556588 : [apexsink] should not have PRIMARY rank
-      * 557080 : [mpegpsdemux] Regression with reverse-playback
-      * 543480 : gstrtpbin fails to release lock while emitting signal
-      * 556520 : jitterbuffer seqnum gap detection is wrong
-      * 463941 : Plugin for screen capture on windows
-      * 519935 : New plugin for video capture on Windows
-      * 520899 : New plugin: pcapparse
-      * 520901 : New plugin: wasapi (Windows Audio Session API) 
-
-Changes since 0.10.7:
-
-      * Support shared desktops in RFB input
-      * Make the Quicktime codec wrapper work on win32
-      * Experimental DVD navigation support
-      * Support AAC/H.264 in FLV files
-      * Fixes in the DirectShow codec wrapper
-      * Fix the Real codec wrapper plugin
-      * New deinterlace2 plugin incorporating TVtime deinterlacers
-      * Handle seeking, timestamps, duration in RAW video/audio parsers
-      * New DirectShow video sink for Win32
-      * FAAD reverse playback support
-      * OSS4 support improvements
-      * MythTV seeking support
-      * SPC decoder now supports seeking, tags and duration queries
-      * Replaygain elements moved to Good
-      * Deinterleave/interleave elements fixed and moved to Good
-      * MPEG-4 video stream parser fixes
-      * Improved MPEG-TS parsing for DVB support
-      * Improvements in App source/sink
-      * RTP manager enhancements
-
-Bugs fixed since 0.10.7:
-
-      * 533736 : [mythtvsrc] Seeking doesn't work
-      * 544050 : ext/timidity/gsttimidity.c :  ISO C90 forbids mixed decla...
-      * 454151 : SPC plugin enhancements (patch)
-      * 506594 : [interleave] doesn't work with channels > 1
-      * 521392 : Proposed patches for bayer2rgb encoding
-      * 525613 : [wildmidi] [PATCH] initializes library multiple times
-      * 528618 : amrwb plugin do not build without warning with the 3ggp s...
-      * 529359 : BBC Real Audio stream is just noise
-      * 530611 : [gstsrtenc] declare variables at beginning of block
-      * 531840 : QuickTime wrapper doesn't work on Win32
-      * 531955 : gstrtpsession doesn't send RTCP bye on EOS
-      * 532723 : mpeg4videoparse should parse the codec data
-      * 533435 : wildmidi does not work
-      * 533559 : mpeg4videoparse should skip garbage
-      * 535043 : VCD plugin only plays first track
-      * 536042 : mpeg4videoparse broken on big endian architectures
-      * 536258 : interleave doesn't close properly
-      * 536856 : rtpmanager deadlocks when receiving new data while going ...
-      * 538560 : [mpegtsparse] static caps reference counter incremented i...
-      * 539292 : memory leak in mpegtsparse
-      * 539601 : [realvideodec] not-negotiated error if codec lib isn't found
-      * 541522 : cross mingw32 gcc: festival plugin compilation fix
-      * 541543 : fix HAVE_OSS4 detection code in configure.ac
-      * 543286 : deinterlace2 doesn't build outside gcc
-      * 543846 : [resindvd] Impossible to build from the first configure r...
-      * 543848 : [ladspa] Needs to link with -ldl for dlopen() and friends
-      * 543860 : [modplug] Uses CFLAGS for CXXFLAGS
-      * 543861 : [resindvd] Some files not disted
-      * 544457 : -bad doesn't compile with MSVC
-      * 526905 : [musepack] Port to the new libmpcdec API
-      * 532011 : Deadlock in rtpsession
-      * 536309 : Seeking in pipeline with videoparse crashes
-
-Changes since 0.10.6:
-    
-      * OSS v4 support
-      * libdc1394 2.0.0 support
-      * AAC support fixes
-      * RTP support improved
-      * New OFA element
-      * SRT subtitle encoder added
-      * Windows Inet support for http/ftp
-      * Fixes in dc1394, MIDI, MPEG-2 encoding, MythTV input, NAS
-      * Fixes in Bayer decoder, replaygain analysis, GSM decoder
-      * DVB/MPEG-TS support improved
-      * NSF decoder updated
-      * 'metadata' plugin enhancements
-      * Dirac encoder ported to libschroedinger
-      * mplex element ported to 0.10
-      * VCD/CDXA parser ported to 0.10
-      * Directshow wrapper improvements
-      * 'selector' plugin enhancements
-      * souphttpsrc moved to the -good module
-      * Various other fixes and enhancements
-
-Bugs fixed since 0.10.6:
-     
-      * 498237 : nsfdec crash with SK8ORDIE.
-      * 529378 : faad leaks GstAudioChannelPosition
-      * 351309 : New Element: gst-puid
-      * 469979 : [faad] Could not map channel positions - setting caps on ...
-      * 494499 : replaygain analysis slowdown on low volume (denormals)
-      * 514948 : [souphttpsrc] configurable buffer size setting and zero-copy
-      * 514964 : [dc1394] port to new stable 2.0.x API
-      * 517937 : various C89 fixes
-      * 518227 : test/icles/metadata_editor.c does not compile on Windows
-      * 518722 : [souphttpsrc] append cookie headers to HTTP request
-      * 519905 : [mvedemux] fix audio discontinuity
-      * 520329 : [PATCH] mjpegtools: mplex ported to 0.10 and mpeg2enc upd...
-      * 520626 : Implement collision and loop detection in rtpmanager
-      * 520892 : [dshowvideosrc] latency and shutdown improvements
-      * 520894 : rtpmanager rtcp thread shutdown deadlock
-      * 520897 : new element: wininetsrc
-      * 521749 : [souphttpsrc] unit test fails on mandriva cooker
-      * 522134 : [souphttpsrc] Playback should continue seamlessly on serv...
-      * 522212 : wrong origin
-      * 522884 : gstneonhttpsrc does not handle the HTTP status 303 correc...
-      * 523854 : [souphttpsrc] Glitches and crackling when playing things ...
-      * 524035 : [neonhttpsrc] fails to compile with libneon 0.28.x
-      * 525271 : [new plugin] srtenc
-      * 526337 : souphttpsrc ignores connections error
-      * 527622 : [flvdemux] crash in FLV demuxer
-      * 528000 : [timidity] Doesn't dist all files correctly
-      * 528011 : [dc1394] Shouldn't be included in the states test
-      * 528245 : rtpbin element leaks
-      * 528266 : [ofa] Unit test fails because of different fingerprints
-      * 528614 : timeout introduced in poll loop for fd in dvbsrc causes b...
-      * 529283 : [ofa] Unit test leaks tag string
-      * 529285 : [rganalysis] Unit test leaks a GstTagList
-      * 517854 : DirectFB check fails
-      * 517895 : nas plugin no longer builds (configure.ac error)
-      * 517896 : PATCH: fix building of mpeg2enc plugin with even newer mj...
-      * 525100 : does not build with --disable-external
-      * 481354 : [wavparse] does not play 700Hz GSM 6.10 wav file
-
-Changes since 0.10.5:
-    
-      * DVB support added
-      * dc1394 support
-      * RTP-manager improvements
-      * Support for native QT codecs on OS/X and DirectShow codecs on Windows,
-        courtesy of Songbird and Fluendo
-      * New elements: flvdemux, flvparse, mpegtsparse, dvbsrc, dvdspu
-      * More new elements: mpeg4videoparse, metadatademux/mux, souphttpsrc,
-        speexresample, qtwrapper
-      * Even more new elements: rawaudioparse, fbdevsink
-      * Renamed elements/plugins: switch (now selector), pitch (now soundtouch)
-      * Elements graduated to good: multifilesrc/sink, spectrum, equalizer,
-        bpwsinc, lpwsinc
-      * Elements graduated to ugly: xingmux (now part of mpegaudioparse)
-      * OpenGL support moved to new module: gst-plugins-gl
-      * appsrc/appsink improvements
-      * Fixes in neonhttpsrc
-      * Fixes in amrwbparse
-      * Deinterlacer improvements
-      * Fixes in dtsdec
-      * Fixes in the Real codec wrappers
-
-Bugs fixed since 0.10.5:
-     
-      * 321240 : [PLUGIN-MOVE] dfbvideosink should be moved from -bad to -...
-      * 508029 : [speexresample] pops/glitches in some cases
-      * 508294 : [realaudiodec] crash in set_caps dereferencing NULL funcs...
-      * 387251 : New Plugin! : dc1394 Adds Support for firewire (1394) IID...
-      * 393461 : [Real] Location of .so varies on each distribution
-      * 395424 : neonhttpsrc lacks support for proxy servers
-      * 397759 : Xingmux may not write a proper Xing/VBR header
-      * 403992 : [new plugin] timidity based midi decoder
-      * 409974 : Code for improved GStreamer resampler (based on speex res...
-      * 426657 : Add support for SDP multicast description files
-      * 433373 : [win32] autogenerated win32/common/config.h needed
-      * 444499 : build of fresh CVS is failing in ext/sdl
-      * 450175 : gcc-2.9x build fixes
-      * 450605 : Missing files in po/POTFILES.in
-      * 452009 : ./configure breaks when cross-compiling FAAD2
-      * 452258 : [mpeg2enc] make work with mjpegtools 1.9
-      * 453636 : dvbsrc needs more flexible adapter selection
-      * 454078 : [ivorbis] header files missing in release tarball
-      * 454313 : missing xml files to build docs/plugins
-      * 456901 : PATCH: add several missing supported mime-types to the mo...
-      * 456912 : PATCH: make wildmidi plugin check for /etc/timidity.cfg
-      * 461068 : Seeking not properly implemented by the pitch plugin
-      * 461373 : HP-UX 11.11 build with native compiler
-      * 461377 : [festival] port to GStreamer-0.10
-      * 461601 : Some files missing from POTFILES.in
-      * 462737 : compilation breaks with g++-4.2 and gcc-4.2
-      * 464678 : Add connection-speed property to mmssrc element
-      * 468039 : [mythtvsrc] missing examples for live tv in gst-inspect
-      * 471554 : real media videos do not work
-      * 473562 : [rtpmanager] cvs build problem due to compiler warning
-      * 474969 : [neonhttpsrc] fails to play radio streams with neon > =0.26
-      * 476128 : Printf format fixes
-      * 476148 : Add mpeg4 video parser
-      * 476159 : memleak patch to rtpmanager
-      * 476370 : [faad] shouldn't set channel-positions for mono and stereo
-      * 477306 : amrwbenc has not property to select band mode
-      * 478566 : Add notification of active SSRCs to the RTP manager
-      * 481200 : gstneonhttpsrc discards GET parameters from URL
-      * 481276 : [mpegtsparse] " not linked (-1) " error
-      * 481279 : [mpegtsparse] partial corruption of the output stream
-      * 483400 : mpegtsparse: PAT with version 0 incorrectly skipped by pa...
-      * 484990 : memleak - missing g_free() rtpmanager/gstrtpbin.c
-      * 485462 : alsaspdifsink uses wrong sample rate
-      * 487496 : [dvdspu] fails to link on Mac OS
-      * 487892 : [mpegtsparse] getting pat-info property before PAT is ava...
-      * 487901 : [mpegtsparse] stale PAT info when switching from PLAYING ...
-      * 490060 : [faac] a few minor issues: bitrate, enum nick for low com...
-      * 490682 : [interleave] can't create more than one request sink pad
-      * 492406 : Crasher in libgstdshow on Windows/MSVC
-      * 492798 : [rtpmanager] build issues on Windows/MSVC
-      * 496221 : Streaming FLV's over HTTP doesn't work, for totem and the...
-      * 498430 : incomplete CVS commit
-      * 498667 : gstreamer segfaults in faac
-      * 498755 : FLV files incorrectly report framerate of 1000fps
-      * 499008 : mpeg2enc ignores the incoming stream aspect property
-      * 500099 : Fixes and improvements to souphttpsrc
-      * 500142 : switch element in switch plugin should be renamed
-      * 501579 : rtpmanager should emit a signal when it can associate a s...
-      * 502335 : [souphttpsrc] some enhancements
-      * 502879 : videoparse segmentation fault
-      * 503308 : Changing tempo using pitch plugin doesn't update length info
-      * 507020 : [rtpjitterbuffer] unreffing peeked buffer and not popping...
-      * 507584 : gio: gstgiobasesrc.c does not compile with CVS version of...
-      * 507940 : rtpsession:rtp_send_src shouldnt not have fixed caps
-      * 508515 : [rtpbin] allow request_new_pad with name NULL
-      * 508587 : Improvement to rtpsession
-      * 508979 : Enhancement for xingmux
-      * 510708 : [souphttpsrc] support for libsoup-2.4
-      * 511001 : enhanced deinterlace plugin
-      * 511146 : rtpjitterbuffer should not return an error on no-caps
-      * 511530 : DTS library API change?
-      * 511683 : gstrtpbin fails to associate streams together for lipsync
-      * 511686 : make gstrtpjitterbuffer respect different clock rates for...
-      * 511920 : rtpsource queue full tries to treat GstBuffer as GstObject
-      * 512654 : [h264parse] does not build in cvs head (unused variable i...
-      * 512774 : [rtpjitterbuffer] does not accept clock rate from caps
-      * 512826 : switch / selector event leak
-      * 514093 : bug in configure.ac prevents glimagesink plugin from bein...
-      * 515564 : souphttpsrc unit test fails to build
-      * 515567 : [states] States unit test should exclude the dvb plugin
-      * 515588 : Warning building tremor plugin
-      * 515720 : [xvid] Memory leak caused by not unsetting GValue
-      * 515721 : [rfb] rfbsrc leaking the rfb decoder
-      * 515722 : [fbdev] Leaking the device property string
-      * 515815 : [mpegvideoparse] fix a few new memory leaks
-      * 515860 : plugins should not install headers - fix metadata
-      * 515919 : Fix a bunch of finalize leaks
-      * 515964 : [docs] Still contains docs for the GIO plugin although it...
-      * 515970 : [dshowdecwrapper] Doesn't chain up dispose function properly
-      * 516061 : [h264parse] fix a few new memory leaks
-      * 516094 : Remove glimagesink from -bad
-      * 516114 : dvbbasebin leaks the location string when the uri handler...
-      * 516160 : gstrtpbin did not ignore streams with no SR when doing as...
-      * 516436 : [dvdsub] segfault on display of 1st subpicture in 2nd cha...
-      * 516448 : criticals due to missing debug category init in mpegtsparse
-      * 516499 : critical caused by assuming optional property " descriptor...
-      * 517391 : [tta] Doesn't link with libm
-      * 517571 : small memory leak in gstrtpbin
-      * 517684 : [mythtvsrc] Small bug fixes
-      * 478159 : Could not decode realvideo buffer
-      * 497020 : Add fully async HTTP source based on libsoup.
-      * 501562 : [switch] bogus locking order
-
-Changes since 0.10.4:
-
-      * New plugin - realdec for decoding Real streams using binary libs
-      * New plugin - MythTV source
-      * New plugin - appsrc (for application data insertion)
-      * New plugin - VMnc VMware capture decoder
-      * New plugin - JACK audio output
-      * New plugin - interleave/deinterleave
-      * New plugin - RTP manager
-      * New plugin - Bayer to RGB converter
-      * New plugin - ReplayGain support
-      * New plugin - DirectShow win32 input support
-      * New plugin - videosignal/videoanalyse
-      * LADSPA plugin improvements
-      * IIR equaliser ported to 0.10 (iirequalizer)
-      * libsndfile output ported to 0.10
-      * mpegvideoparse ported to 0.10 and improved
-      * switch element ported to 0.10
-      * VCD source element ported to 0.10
-      * AMR-WB support fixes 
-      * MIDI renderer plugin based on timidity
-      * Windows and OS/X output plugins moved to the Good module 
-      * qtdemux, wavpack and videocrop plugins moved to the Good module
-      * Many other bug fixes and improvements
-      * Parallel installability with 0.8.x series
-      * Threadsafe design and API
-
-Bugs fixed since 0.10.4:
-
-      * 152403 : [mpeg/DVB] Integrating externaly developped DVB source el...
-      * 333307 : AmrWB Plugin
-      * 345633 : [nassink] port to 0.10
-      * 354174 : [PATCH] add REAL support by using the proprietary drivers
-      * 354451 : [mythtvsrc] Plugin for MythTV source
-      * 357055 : Tremor (ivorbis) plug-in is unable to decode vorbis strea...
-      * 374773 : [qtdemux] [PLUGIN-MOVE] Move from -bad to good
-      * 375264 : [neonhttpsrc] add seek support
-      * 376591 : configure.ac looks for wrong symbols for FAAD support
-      * 382184 : Port interleave and deinterleave to 0.10 for audio channe...
-      * 388050 : [neonhttpsrc] code simplifications
-      * 392112 : [rfbsrc] doesn't build with MinGW
-      * 393622 : Not building real plugin, only works on 32bit x86 platforms.
-      * 395536 : [wavpackenc] Trivial cleanup
-      * 395597 : Deinterleave fails to negotiate with alsasrc when using D...
-      * 400555 : dts-in-wav: only 2 channel recognised
-      * 402470 : [osxvideosink] video sink for MacOSX
-      * 412077 : [speed] can't initially set speed > 1
-      * 412710 : [replaygain] Add playback elements
-      * 413818 : [neonhttpsrc] errors out on redirects
-      * 421110 : New x264enc plugin
-      * 421598 : [wavpack] Add support for non-8*n depths and don't play a...
-      * 423283 : [qtdemux] timestamps of outgoing h264 packets are wrong
-      * 423741 : [amrwb] use external shared libamrwb
-      * 430594 : Unable to compile gst-plugins-bad CVS
-      * 430598 : [realvideodec] dll functions not available on MinGW
-      * 430664 : name conflict for " rtpbin " element
-      * 437260 : CFLAGS are poinsoned by the OpenGL test
-      * 437403 : gst-plugins-bad uses #ifdef G_OS_WIN32 instead of #ifdef ...
-      * 437539 : Compilation of DirectDraw and DirectSound plugins using m...
-      * 439405 : YUV not working in GL image sink.
-      * 439910 : [switch] Warning in a debug function (Mingw)
-      * 439911 : [qtdemux] Warning in a debug function (MinGW)
-      * 439914 : [directdraw] Warnings when using MinGW
-      * 440466 : [PLUGIN-MOVE] osxvideo
-      * 440774 : [sdl] sdlvideosink has ill-formatted element details
-      * 442689 : [neon] Property-related cleanups of neonhttpsrc
-      * 445189 : PLUGIN-MOVE - Move Windows sinks to -good
-      * 348973 : New plugins: MVE muxer/demuxer
-      * 391971 : Fix build with gcc-2.x
-      * 392313 : [directdrawsink] dist and add to gst-plugins-bad
-      * 392638 : [directsoundsink] dist and add to gst-plugins-bad
-      * 392856 : [qtdemux] plugin must link against zlib (error with MinGW)
-      * 403572 : Port equaliser element to 0.10
-      * 352605 : [PLUGIN-MOVE] move wavpack to -good
-      * 426972 : Specific set of H.264 files cannot be played
-      * 434101 : [gsm] doesn't link against libgstbase-0.10
-
-Changes since 0.10.3:
-
-      * V4L2 source element moved to Good plugins
-      * Many improvements in Quicktime playback
-      * Xvid encoding and decoding improvements
-      * FAAD decoder fixes
-      * New element: alsaspdifsink for IEC958 output
-      * Spectrum FFT analysis element ported
-      * New element: h264parse. H.264 Parser
-      * Fixes in bz2 support
-      * New element: theoraexpdec. Libtheoraexp based Theora decoder
-      * New element: wavpackenc. Wavpack decoder
-      * Improvements in the libneon based http source
-      * gstfilter ported to 0.10
-      * mpeg2enc ported to 0.10
-      * New element: nsfdec. NSF decoder
-      * New element: spcdec. libopenspc based SPC decoder
-      * videocrop ported/re-written from 0.8
-      * cdaudio element ported to 0.10
-      * New element: rganalysis. ReplayGain analysis element
-      * New element: dvbsrc. DVB source element (disabled by default)
-      * deinterlace (Simple deinterlacer) ported from 0.8
-      * New element: nuvdemux. NUV video demuxer
-      * Fixes in the DirectDraw output elements
-      * New elements: multifilesrc, multifilesink
-      * y4mencode ported from 0.8
-      * rfbsrc, librfb based capture source ported from 0.8
-      * New element: jackaudiosink. JACK audio output element
-      * Many other fixes and improvements
-
-Bugs fixed since 0.10.3:
-
-      * 379261 : crash in Movie Player: Trying to play a partial...
-      * 151192 : [PATCH] nsf decoder
-      * 124580 : [jacksink] plugin needs a maintainer/love/to be updated
-      * 330632 : [qtdemux] MP3 stream in MP4 container not playable
-      * 335507 : [FAAD] blur_warhammer.mp4 movie doesn't transcode
-      * 339462 : [PATCH] xvid plugin to support more capabilities of XviD ...
-      * 340638 : New plugin: h264 parse element
-      * 341231 : [qtdemux] [faad] audio in some superman trailers doesn't ...
-      * 341461 : gst-plugins-bad missing -no-undefined again
-      * 341563 : [faad] fails to decode middle of file, should just skip o...
-      * 343031 : v4l2src caps negotion is faulty
-      * 343131 : [wavpack] add wavpack encoder
-      * 343184 : [mpeg2enc] ported to 0.10
-      * 343866 : cygwin fixes
-      * 344472 : [wavpackdec] should post audio codec tag and extract bitrate
-      * 344821 : [pitch] controllable properties
-      * 344944 : AAC Support crashes with some files
-      * 345182 : [neonhttpsrc] fails to compile with libneon 0.26.x
-      * 345336 : modplug plugin doesn't work on AMD64
-      * 345653 : [videocrop] port to 0.10, support all common formats
-      * 346853 : [PATCH] ported gstfilter elements to 0.10
-      * 347079 : [qtdemux] plugin doesn't decode Year
-      * 347443 : [wavpack] port parser/decoder to official API and random ...
-      * 347935 : [nsf] warning when building RPM
-      * 348220 : New libopenspc-based SPC playback plugin
-      * 348976 : [xviddec] crashes after invalid unit size warning
-      * 350399 : [qtdemux] extract multiple redirect locations and require...
-      * 350741 : [faac] Wrong bitrate set
-      * 351495 : [wavpackparse] add support for push-based mode
-      * 351557 : [wavpackparse] resync in push mode if sync was lost
-      * 357069 : [rganalysis] New element: ReplayGain analysis
-      * 357212 : [glimagesink] crashes if no DISPLAY
-      * 361260 : New element: nuvdemux
-      * 362626 : Fixes compiling with forte: warning clean up (part 5)
-      * 376106 : Port rfbsrc to gst 0.10
-      * 378613 : [qtdemux] non-working redirect ('alis' redirect reference...
-      * 382203 : ladspa element needs to be enabled
-      * 384294 : [modplug] returns position query results in attoseconds
-      * 385048 : [qtdemux] Crash on a mp4 file in qtdemux_parse_trak
-      * 385788 : [SECURITY] buffer overflows in modplug
-      * 387076 : [wavpack] Wrong include
-      * 387122 : [qtdemux] regression: crash in parse_trak
-      * 387160 : [qtdemux] posts buffering message which can cause hangs
-      * 351659 : [wavpackparse] fix resync in push mode, implement it in p...
-      * 351663 : [wavpackenc] doesn't set correct caps on source pad
-      * 352476 : [wavpack] documentation, unit tests, memleak fix
-      * 366523 : [directdraw] fix playback and vs8 fixes
-      * 369539 : [wavpackenc] More sensible values for GstEnums, don't sen...
-      * 384140 : [neonhttpsrc] id3demux autoplug loop streaming mp3 with I...
-      * 387137 : Regression: qtdemux paletted image handling
-      * 349916 : [gdp] raw audio saved in gdp, when depayloading  complain...
-      * 346723 : gstneonhttpsrc fails for URL
-      * 347439 : [qtdemux] seeks poorly in files with slideshows
-      * 349204 : [gdp] raw audio saved in gdp does not depayload correctly
-      * 351825 : [qtdemux] doesn't set proper caps for RGB video
-      * 367696 : [qtdemux] No support for QuickTime Animation (RLE).
-      * 372243 : [PATCH] yuv4mpeg (v2) encoder ported to 0.10
-      * 380610 : [rganalysis] Incorrect event handling
-      * 383471 : cannot link 1 ch raw 24-bit PCM audio
-      * 344987 : [PATCH] [dvbsrc] [ts-tools] gstreamer 0.10 port
-
-There was no 0.10.2 release
-
-Changes since 0.10.1:
-
-      * FAAD/AAC decoder improvements
-      * Better QuickTime support
-      * Plugins ported from 0.8: modplug, v4l2src, Musicbrainz TRM
-      * New plugins: Xing muxer, libsoundtouch, AMR-WB, theora-exp
-      * Musepack decoder improved
-      * libneon based http input now supports iradio mode
-      * More uniform plugin descriptions
-      * Many bug fixes
-
-Bugs fixed since 0.10.1:
-
-      * 334700 : [qtdemux] Memory leaks
-      * 333307 : AmrWB Plugin
-      * 330317 : New xingmux element  for writing Xing headers
-      * 304795 : [ximagesrc] port to 0.9 [PATCH]
-      * 154906 : [qtdemux] A/V Synch problem + crackling sound
-      * 167129 : [qtdemux] eats last chunk
-      * 173007 : [faad] Failed to decode buffer: Channel coupling not yet ...
-      * 302606 : [qtdemux] Movie playback too fast (quicktime mov, H.263 c...
-      * 321351 : extracted AAC output is played too slow
-      * 324082 : [qtdemux] [faad] playback issues with quicktime videos
-      * 327075 : [qtdemux] add support for palettized SMC videos
-      * 327355 : gst-plugins-bad CVS compilation breaks on gcc 4.1
-      * 331335 : New Element: libsoundtouch based pitch shifter
-      * 331909 : support for more fourccs in qtdemux
-      * 332066 : [qtdemux] doesn't extract Disc Number field from some files
-      * 332155 : Seeking problems in .mov files
-      * 332402 : quicktime file will not play
-      * 332598 : port modplug to 0.10
-      * 332892 : [faad] 'Negative scalefactor found' and 'Maximum number o...
-      * 333283 : [xviddec] Fix build with gcc 2.95
-      * 333501 : [patch] taglib element
-      * 334123 : [taglibmux] fixes for TPOS and TCOP
-      * 334417 : autogen.sh bit rot
-      * 334748 : [faad] doesn't take sampling rate from demuxer
-      * 335585 : xvidenc does not mark key-frame/delta-units
-      * 336898 : Port musicbrainz/trm plugin to 0.10
-      * 337263 : plugins need better/unified descriptions
-      * 338233 : theora-exp api out of sync
-      * 339041 : qtdemux : Floating point exception
-      * 339074 : Thumbnail generation fails on the following file
-      * 337436 : Sound is very jerky on this .mov file
-      * 338935 : [qtdemux] floating point exception parsing trac header
-
-Changes since 0.10.0:
-
-      * Parallel installability with 0.8.x series
-      * Threadsafe design and API
-      * Lots of fixes for the QT/MOV demuxer, including restoring 
-        the ability to play web streams, and more codecs supported
-      * AAC decoder fixes
-      * MMS source fixes
-      * DirectFB plugin updated
-      * New plugins ported to 0.10: swfdec, XVid, dtsdec, glimagesink
-      * New libneon based http source filter
-      * APE tag reader moved to gst-plugins-good module
-
-Bugs fixed since 0.10.0:
-
-      * 303167 : Add bzip2 support
-      * 322973 : [wavpack] erroneous sampling rates range
-      * 326524 : Support for Indeo 3-encoded QuickTime files
-      * 327133 : [qtdemux] QuickTime with 8-bit audio
-      * 328854 : AAC+ stream not working with FAAD plugin
-      * 330089 : [bz2] Wrong mimetype and no typefinding
-      * 331302 : bz2 plugin source files lack copyright notices
-      * 331543 : crash on iTunes MPEG v4 AAC-LC files
-      * 331582 : [qtdemux] protect log statement against invalid memory access
-
-Bugs fixed since 0.9.7:
-    
-      * 322962 : wavpack plugins don't get built
-
-Changes since 0.9.6:
-
-      * wavpack ported
-      * libmms ported
-
-Changes since 0.9.5:
-    
-      * Fractional framerates
-
-Bugs fixed since 0.9.5:
-    
-      * 320532 : [faac] set output samplerate and number of channels
-      * 321903 : [qtdemux] does not know fourcc DX50, as produced by DivX 5
-
-Changes since 0.9.4:
-    
-      * Parallel installability with 0.8.x series
-      * Threadsafe design and API
-      * qtdemux supports custom genre tags
-      * tremor integer vorbis decoder ported
-      * directfb video sink ported (with examples and documentation!)
-
-Bugs fixed since 0.9.4:
-    
-      * 321241 : faad compile fix
-
-Bugs fixed since 0.9.3:
-
-      * 317438 : [speed] fix 0.9 port
-      * 318659 : [faac] problem with float capabilities
-      * 318660 : [faac] missing unrefs
-
-Changes since 0.9.1:
-
-      * ported gsm, tta, sdlvideosink
+
+
+GSTREAMER 1.16 RELEASE NOTES
+
+
+GStreamer 1.16.0 was originally released on 19 April 2019.
+
+The latest bug-fix release in the 1.16 series is 1.16.2 and was released
+on 3 December 2019.
+
+See https://gstreamer.freedesktop.org/releases/1.16/ for the latest
+version of this document.
+
+_Last updated: Tuesday 03 December 2019, 08:00 UTC (log)_
+
+
+Introduction
+
+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 many new features, bug
+fixes and other improvements.
+
+
+Highlights
+
+-   GStreamer WebRTC stack gained support for data channels for
+    peer-to-peer communication based on SCTP, BUNDLE support, as well as
+    support for multiple TURN servers.
+
+-   AV1 video codec support for Matroska and QuickTime/MP4 containers
+    and more configuration options and supported input formats for the
+    AOMedia AV1 encoder
+
+-   Support for Closed Captions and other Ancillary Data in video
+
+-   Support for planar (non-interleaved) raw audio
+
+-   GstVideoAggregator, compositor and OpenGL mixer elements are now in
+    -base
+
+-   New alternate fields interlace mode where each buffer carries a
+    single field
+
+-   WebM and Matroska ContentEncryption support in the Matroska demuxer
+
+-   new WebKit WPE-based web browser source element
+
+-   Video4Linux: HEVC encoding and decoding, JPEG encoding, and improved
+    dmabuf import/export
+
+-   Hardware-accelerated Nvidia video decoder gained support for VP8/VP9
+    decoding, whilst the encoder gained support for H.265/HEVC encoding.
+
+-   Many improvements to the Intel Media SDK based hardware-accelerated
+    video decoder and encoder plugin (msdk): dmabuf import/export for
+    zero-copy integration with other components; VP9 decoding; 10-bit
+    HEVC encoding; video post-processing (vpp) support including
+    deinterlacing; and the video decoder now handles dynamic resolution
+    changes.
+
+-   The ASS/SSA subtitle overlay renderer can now handle multiple
+    subtitles that overlap in time and will show them on screen
+    simultaneously
+
+-   The Meson build is now feature-complete (*) and it is now the
+    recommended build system on all platforms. The Autotools build is
+    scheduled to be removed in the next cycle.
+
+-   The GStreamer Rust bindings and Rust plugins module are now
+    officially part of upstream GStreamer.
+
+-   The GStreamer Editing Services gained a gesdemux element that allows
+    directly playing back serialized edit list with playbin or
+    (uri)decodebin
+
+-   Many performance improvements
+
+
+Major new features and changes
+
+Noteworthy new API
+
+-   GstAggregator has a new "min-upstream-latency" property that forces
+    a minimum aggregate latency for the input branches of an aggregator.
+    This is useful for dynamic pipelines where branches with a higher
+    latency might be added later after the pipeline is already up and
+    running and where a change in the latency would be disruptive. This
+    only applies to the case where at least one of the input branches is
+    live though, it won’t force the aggregator into live mode in the
+    absence of any live inputs.
+
+-   GstBaseSink gained a "processing-deadline" property and
+    setter/getter API to configure a processing deadline for live
+    pipelines. The processing deadline is the acceptable amount of time
+    to process the media in a live pipeline before it reaches the sink.
+    This is on top of the systemic latency that is normally reported by
+    the latency query. This defaults to 20ms and should make pipelines
+    such as v4l2src ! xvimagesink not claim that all frames are late in
+    the QoS events. Ideally, this should replace the "max-lateness"
+    property for most applications.
+
+-   RTCP Extended Reports (XR) parsing according to RFC 3611:
+    Loss/Duplicate RLE, Packet Receipt Times, Receiver Reference Time,
+    Delay since the last Receiver (DLRR), Statistics Summary, and VoIP
+    Metrics reports. This only provides the ability to parse such
+    packets, generation of XR packets is not supported yet and XR
+    packets are not automatically parsed by rtpbin / rtpsession but must
+    be actively handled by the application.
+
+-   a new mode for interlaced video was added where each buffer carries
+    a single field of interlaced video, with buffer flags indicating
+    whether the field is the top field or bottom field. Top and bottom
+    fields are expected to alternate in this mode. Caps for this
+    interlace mode must also carry a format:Interlaced caps feature to
+    ensure backwards compatibility.
+
+-   The video library has gained support for three new raw pixel
+    formats:
+
+    -   Y410: packed 4:4:4 YUV, 10 bits per channel
+    -   Y210: packed 4:2:2 YUV, 10 bits per channel
+    -   NV12_10LE40: fully-packed 10-bit variant of NV12_10LE32,
+        i.e. without the padding bits
+
+-   GstRTPSourceMeta is a new meta that can be used to transport
+    information about the origin of depayloaded or decoded RTP buffers,
+    e.g. when mixing audio from multiple sources into a single stream. A
+    new "source-info" property on the RTP depayloader base class
+    determines whether depayloaders should put this meta on outgoing
+    buffers. Similarly, the same property on RTP payloaders determines
+    whether they should use the information from this meta to construct
+    the CSRCs list on outgoing RTP buffers.
+
+-   gst_sdp_message_from_text() is a convenience constructor to parse
+    SDPs from a string which is particularly useful for language
+    bindings.
+
+Support for Planar (Non-Interleaved) Raw Audio
+
+Raw audio samples are usually passed around in interleaved form in
+GStreamer, which means that if there are multiple audio channels the
+samples for each channel are interleaved in memory,
+e.g. |LEFT|RIGHT|LEFT|RIGHT|LEFT|RIGHT| for stereo audio. A
+non-interleaved or planar arrangement in memory would look like
+|LEFT|LEFT|LEFT|RIGHT|RIGHT|RIGHT| instead, possibly with
+|LEFT|LEFT|LEFT| and |RIGHT|RIGHT|RIGHT| residing in separate memory
+chunks or separated by some padding.
+
+GStreamer has always had signalling for non-interleaved audio since
+version 1.0, but it was never actually properly implemented in any
+elements. audioconvert would advertise support for it, but wasn’t
+actually able to handle it correctly.
+
+With this release we now have full support for non-interleaved audio as
+well, which means more efficient integration with external APIs that
+handle audio this way, but also more efficient processing of certain
+operations like interleaving multiple 1-channel streams into a
+multi-channel stream which can be done without memory copies now.
+
+New API to support this has been added to the GStreamer Audio support
+library: There is now a new GstAudioMeta which describes how data is
+laid out inside the buffer, and buffers with non-interleaved audio must
+always carry this meta. To access the non-interleaved audio samples you
+must map such buffers with gst_audio_buffer_map() which works much like
+gst_buffer_map() or gst_video_frame_map() in that it will populate a
+little GstAudioBuffer helper structure passed to it with the number of
+samples, the number of planes and pointers to the start of each plane in
+memory. This function can also be used to map interleaved audio buffers
+in which case there will be only one plane of interleaved samples.
+
+Of course support for this has also been implemented in the various
+audio helper and conversion APIs, base classes, and in elements such as
+audioconvert, audioresample, audiotestsrc, audiorate.
+
+Support for Closed Captions and Other Ancillary Data in Video
+
+The video support library has gained support for detecting and
+extracting Ancillary Data from videos as per the SMPTE S291M
+specification, including:
+
+-   a VBI (Vertical Blanking Interval) parser that can detect and
+    extract Ancillary Data from Vertical Blanking Interval lines of
+    component signals. This is currently supported for videos in v210
+    and UYVY format.
+
+-   a new GstMeta for closed captions: GstVideoCaptionMeta. This
+    supports the two types of closed captions, CEA-608 and CEA-708,
+    along with the four different ways they can be transported (other
+    systems are a superset of those).
+
+-   a VBI (Vertical Blanking Interval) encoder for writing ancillary
+    data to the Vertical Blanking Interval lines of component signals.
+
+The new closedcaption plugin in gst-plugins-bad then makes use of all
+this new infrastructure and provides the following elements:
+
+-   cccombiner: a closed caption combiner that takes a closed captions
+    stream and another stream and adds the closed captions as
+    GstVideoCaptionMeta to the buffers of the other stream.
+
+-   ccextractor: a closed caption extractor which will take
+    GstVideoCaptionMeta from input buffers and output them as a separate
+    closed captions stream.
+
+-   ccconverter: a closed caption converter that can convert between
+    different formats
+
+-   line21encoder, line21decoder: inject/extract line21 closed captions
+    to/from SD video streams
+
+-   cc708overlay: decodes CEA 608/708 captions and overlays them on
+    video
+
+Additionally, the following elements have also gained Closed Caption
+support:
+
+-   qtdemux and qtmux support CEA 608/708 Closed Caption tracks
+
+-   mpegvideoparse, h264parse extracts Closed Captions from MPEG-2/H.264
+    video streams
+
+-   avviddec, avvidenc, x264enc got support for extracting/injecting
+    Closed Captions
+
+-   decklinkvideosink can output closed captions and decklinkvideosrc
+    can extract closed captions
+
+-   playbin and playbin3 learned how to autoplug CEA 608/708 CC overlay
+    elements
+
+-   the externally maintained ajavideosrc element for AJA capture cards
+    has support for extracting closed captions
+
+The rsclosedcaption plugin in the Rust plugins collection includes a
+MacCaption (MCC) file parser and encoder.
+
+New Elements
+
+-   overlaycomposition: New element that allows applications to draw
+    GstVideoOverlayCompositions on a stream. The element will emit the
+    "draw" signal for each video buffer, and the application then
+    generates an overlay for that frame (or not). This is much more
+    performant than e.g. cairooverlay for many use cases, e.g. because
+    pixel format conversions can be avoided or the blitting of the
+    overlay can be delegated to downstream elements (such as
+    gloverlaycompositor). It’s particularly useful for cases where only
+    a small section of the video frame should be drawn on.
+
+-   gloverlaycompositor: New OpenGL-based compositor element that
+    flattens any overlays from GstVideoOverlayCompositionMetas into the
+    video stream. This element is also always part of glimagesink.
+
+-   glalpha: New element that adds an alpha channel to a video stream.
+    The values of the alpha channel can either be set to a constant or
+    can be dynamically calculated via chroma keying. It is similar to
+    the existing alpha element but based on OpenGL. Calculations are
+    done in floating point so results may not be identical to the output
+    of the existing alpha element.
+
+-   rtpfunnel funnels together RTP streams into a single session. Use
+    cases include multiplexing and bundle. webrtcbin uses it to
+    implement BUNDLE support.
+
+-   testsrcbin is a source element that provides an audio and/or video
+    stream and also announces them using the recently-introduced
+    GstStream API. This is useful for testing elements such as playbin3
+    or uridecodebin3 etc.
+
+-   New closed caption elements: cccombiner, ccextractor, ccconverter,
+    line21encoder, line21decoder and cc708overlay (see above)
+
+-   wpesrc: new source element acting as a Web Browser based on WebKit
+    WPE
+
+-   Two new OpenCV-based elements: cameracalibrate and cameraundistort
+    that can communicate to figure out distortion correction parameters
+    for a camera and correct for the distortion.
+
+-   New sctp plugin based on usrsctp with sctpenc and sctpdec elements.
+    These elements are used inside webrtcbin for implementing data
+    channels.
+
+New element features and additions
+
+-   playbin3, playbin and playsink have gained a new "text-offset"
+    property to adjust the positioning of the selected subtitle stream
+    vis-a-vis the audio and video streams. This uses subtitleoverlay’s
+    new "subtitle-ts-offset" property. GstPlayer has gained matching API
+    for this, namely gst_player_get_text_video_offset().
+
+-   playbin3 buffering improvements: in network playback scenarios there
+    may be multiple inputs to decodebin3, and buffering will be done
+    before decodebin3 using queue2 or downloadbuffer elements inside
+    urisourcebin. Since this is before any parsers or demuxers there may
+    not be any bitrate information available for the various streams, so
+    it was difficult to configure the buffering there smartly within
+    global constraints. This was improved now: The queue2 elements
+    inside urisourcebin will now use the new bitrate query to figure out
+    a bitrate estimate for the stream if no bitrate was provided by
+    upstream, and urisourcebin will use the bitrates of the individual
+    queues to distribute the globally-set "buffer-size" budget in bytes
+    to the various queues. urisourcebin also gained "low-watermark" and
+    "high-watermark" properties which will be proxied to the internal
+    queues, as well as a read-only "statistics" property which allows
+    querying of the minimum/maximum/average byte and time levels of the
+    queues inside the urisourcebin in question.
+
+-   splitmuxsink has gained a couple of new features:
+
+    -   new "async-finalize" mode: This mode is useful for muxers or
+        outputs that can take a long time to finalize a file. Instead of
+        blocking the whole upstream pipeline while the muxer is doing
+        its stuff, we can unlink it and spawn a new muxer + sink
+        combination to continue running normally. This requires us to
+        receive the muxer and sink (if needed) as factories via the new
+        "muxer-factory" and "sink-factory" properties, optionally
+        accompanied by their respective properties structures (set via
+        the new "muxer-properties" and "sink-properties" properties).
+        There are also new "muxer-added" and "sink-added" signals in
+        case custom code has to be called for them to configure them.
+
+    -   "split-at-running-time" action signal: When called by the user,
+        this action signal ends the current file (and starts a new one)
+        as soon as the given running time is reached. If called multiple
+        times, running times are queued up and processed in the order
+        they were given.
+
+    -   "split-after" action signal to finish outputting the current GOP
+        to the current file and then start a new file as soon as the GOP
+        is finished and a new GOP is opened (unlike the existing
+        "split-now" which immediately finishes the current file and
+        writes the current GOP into the next newly-started file).
+
+    -   "reset-muxer" property: when unset, the muxer is reset using
+        flush events instead of setting its state to NULL and back. This
+        means the muxer can keep state across resets, e.g. mpegtsmux
+        will keep the continuity counter continuous across segments as
+        required by hlssink2.
+
+-   qtdemux gained PIFF track encryption box support in addition to the
+    already-existing PIFF sample encryption support, and also allows
+    applications to select which encryption system to use via a
+    "drm-preferred-decryption-system-id" context in case there are
+    multiple options.
+
+-   qtmux: the "start-gap-threshold" property determines now whether an
+    edit list will be created to account for small gaps or offsets at
+    the beginning of a stream in case the start timestamps of tracks
+    don’t line up perfectly. Previously the threshold was hard-coded to
+    1% of the (video) frame duration, now it is 0 by default (so edit
+    list will be created even for small differences), but fully
+    configurable.
+
+-   rtpjitterbuffer has improved end-of-stream handling
+
+-   rtpmp4vpay will be preferred over rtpmp4gpay for MPEG-4 video in
+    autoplugging scenarios now
+
+-   rtspsrc now allows applications to send RTSP SET_PARAMETER and
+    GET_PARAMETER requests using action signals.
+
+-   rtspsrc has a small (100ms) configurable teardown delay by default
+    to try and make sure an RTSP TEARDOWN request gets sent out when the
+    source element shuts down. This will block the downward PAUSED to
+    READY state change for a short time, but can be disabled where it’s
+    a problem. Some servers only allow a limited number of concurrent
+    clients, so if no proper TEARDOWN is sent new clients may have
+    problems connecting to the server for a while.
+
+-   souphttpsrc behaves better with low bitrate streams now. Before it
+    would increase the read block size too quickly which could lead to
+    it not reading any data from the socket for a very long time with
+    low bitrate streams that are output live downstream. This could lead
+    to servers kicking off the client.
+
+-   filesink: do internal buffering to avoid performance regression with
+    small writes since we bypass libc buffering by using writev()
+    instead of fwrite()
+
+-   identity: add "eos-after" property and fix "error-after" property
+    when the element is reused
+
+-   input-selector: lets context queries pass through, so that
+    e.g. upstream OpenGL elements can use contexts and displays
+    advertised by downstream elements
+
+-   queue2: avoid ping-pong between 0% and 100% buffering messages if
+    upstream is pushing buffers larger than one of its limits, plus
+    performance optimisations
+
+-   opusdec: new "phase-inversion" property to control phase inversion.
+    When enabled, this will slightly increase stereo quality, but
+    produces a stream that when downmixed to mono will suffer audio
+    distortions.
+
+-   The x265enc HEVC encoder also exposes a "key-int-max" property to
+    configure the maximum allowed GOP size now.
+
+-   decklinkvideosink has seen stability improvements for long-running
+    pipelines (potential crash due to overflow of leaked clock refcount)
+    and clock-slaving improvements when performing flushing seeks
+    (causing stalls in the output timeline), pausing and/or buffering.
+
+-   srtpdec, srtpenc: add support for MKIs which allow multiple keys to
+    be used with a single SRTP stream
+
+-   srtpdec, srtpenc: add support for AES-GCM and also add support for
+    it in gst-rtsp-server and rtspsrc.
+
+-   The srt Secure Reliable Transport plugin has integrated server and
+    client elements srt{client,server}{src,sink} into one (srtsrc and
+    srtsink), since SRT connection mode can be changed by uri
+    parameters.
+
+-   h264parse and h265parse will handle SEI recovery point messages and
+    mark recovery points as keyframes as well (in addition to IDR
+    frames)
+
+-   webrtcbin: "add-turn-server" action signal to pass multiple ICE
+    relays (TURN servers).
+
+-   The removesilence element has received various new features and
+    properties, such as a "threshold" property, detecting silence only
+    after minimum silence time/buffers, a "silent" property to control
+    bus message notifications as well as a "squash" property.
+
+-   AOMedia AV1 decoder gained support for 10/12bit decoding whilst the
+    AV1 encoder supports more image formats and subsamplings now and
+    acquired support for rate control and profile related configuration.
+
+-   The Fraunhofer fdkaac plugin can now be built against the 2.0.0
+    version API and has improved multichannel support
+
+-   kmssink now supports unpadded 24-bit RGB and can configure mode
+    setting from video info, which enables display of multi-planar
+    formats such as I420 or NV12 with modesetting. It has also gained a
+    number of new properties: The "restore-crtc" property does what it
+    says on the tin and is enabled by default. "plane-properties" and
+    "connector-properties" can be used to pass custom properties to the
+    DRM.
+
+-   waylandsink has a "fullscreen" property now and supports the
+    XDG-Shell protocol.
+
+-   decklinkvideosink, decklinkvideosrc support selecting between
+    half/full duplex
+
+-   The vulkan plugin gained support for macOS and iOS via MoltenVK in
+    addition to the existing support for X11 and Wayland
+
+-   imagefreeze has a new num-buffers property to limit the number of
+    buffers that are produced and to send an EOS event afterwards
+
+-   webrtcbin has a new, introspectable get-transceiver signal in
+    addition to the old get-transceivers signal that couldn’t be used
+    from bindings
+
+-   Support for per-element latency information was added to the latency
+    tracer
+
+Plugin and library moves
+
+-   The stereo element was moved from -bad into the existing audiofx
+    plugin in -good. If you get duplicate type registration warnings
+    when upgrading, check that you don’t have a stale stereoplugin lying
+    about somewhere.
+
+GstVideoAggregator, compositor, and OpenGL mixer elements moved from -bad to -base
+
+GstVideoAggregator is a new base class for raw video mixers and muxers
+and is based on GstAggregator. It provides defined-latency mixing of raw
+video 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.
+Most notably, the "ignore-eos" pad property was renamed to
+"repeat-after-eos" and the conversion code was moved to a
+GstVideoAggregatorConvertPad subclass to avoid code duplication, make
+things less awkward for subclasses like the OpenGL-based video mixer,
+and make the API more consistent with the audio aggregator API.
+
+It is used by the compositor element, which is a replacement for
+‘videomixer’ which did not handle live inputs very well. compositor
+should behave much better in that respect and generally behave as one
+would expected in most scenarios.
+
+The compositor element has gained support for per-pad blending mode
+operators (SOURCE, OVER, ADD) which determines what operator to use for
+blending this pad over the previous ones. This can be used to implement
+crossfading and the available operators can be extended in the future as
+needed.
+
+A number of OpenGL-based video mixer elements (glvideomixer, glmixerbin,
+glvideomixerelement, glstereomix, glmosaic) which are built on top of
+GstVideoAggregator have also been moved from -bad to -base now. These
+elements have been merged into the existing OpenGL plugin, so if you get
+duplicate type registration warnings when upgrading, check that you
+don’t have a stale openglmixers plugin lying about somewhere.
+
+Plugin removals
+
+The following plugins have been removed from gst-plugins-bad:
+
+-   The experimental daala plugin has been removed, since it’s not so
+    useful now that all effort is focused on AV1 instead, and it had to
+    be enabled explicitly with --enable-experimental anyway.
+
+-   The spc plugin has been removed. It has been replaced by the gme
+    plugin.
+
+-   The acmmp3dec and acmenc plugins for Windows have been removed. ACM
+    is an ancient legacy API and there was no point in keeping the
+    plugins around for a licensed MP3 decoder now that the MP3 patents
+    have expired and we have a decoder in -good. We also didn’t ship
+    these in our cerbero-built Windows packages, so it’s unlikely that
+    they’ll be missed.
+
+
+Miscellaneous API additions
+
+-   GstBitwriter: new generic bit writer API to complement the existing
+    bit reader
+
+-   gst_buffer_new_wrapped_bytes() creates a wrap buffer from a GBytes
+
+-   gst_caps_set_features_simple() sets a caps feature on all the
+    structures of a GstCaps
+
+-   New GST_QUERY_BITRATE query: This allows determining from downstream
+    what the expected bitrate of a stream may be which is useful in
+    queue2 for setting time based limits when upstream does not provide
+    timing information. tsdemux, qtdemux and matroskademux have basic
+    support for this query on their sink pads.
+
+-   elements: there is a new “Hardware” class specifier. Elements
+    interacting with hardware devices should specify this classifier in
+    their element factory class metadata. This is useful to advertise as
+    one might need to put such elements into READY state to test if the
+    hardware is present in the system for example.
+
+-   protection: Add a new definition for unspecified system protection,
+    GST_PROTECTION_UNSPECIFIED_SYSTEM_ID
+
+-   take functions for various mini objects that didn’t have them yet:
+    gst_query_take(), gst_message_take(), gst_tag_list_take(),
+    gst_buffer_list_take(). Unlike the various _replace() functions
+    _take() does not increase the reference count but takes ownership of
+    the mini object passed.
+
+-   clear functions for various mini object types and GstObject which
+    unrefs the object or mini object (if non-NULL) and sets the variable
+    pointed to to NULL: gst_clear_structure(), gst_clear_tag_list(),
+    gst_clear_query(), gst_clear_message(), gst_clear_event(),
+    gst_clear_caps(), gst_clear_buffer_list(), gst_clear_buffer(),
+    gst_clear_mini_object(), gst_clear_object()
+
+-   miniobject: new API gst_mini_object_add_parent() and
+    gst_mini_object_remove_parent() to set parent pointers on mini
+    objects to ensure correct writability: Every container of
+    miniobjects now needs to store itself as parent in the child object,
+    and remove itself again later. A mini object is then only writable
+    if there is at most one parent, that parent is writable itself, and
+    the reference count of the mini object is 1. GstBuffer (for
+    memories), GstBufferList (for buffers), GstSample (for caps, buffer,
+    bufferlist), and GstVideoOverlayComposition were updated
+    accordingly. Without this it was possible to have e.g. a buffer list
+    with a refcount of 2 used in two places at once that both modify the
+    same buffer with refcount 1 at the same time wrongly thinking it is
+    writable even though it’s really not.
+
+-   poll: add API to watch for POLLPRI and stop treating POLLPRI as a
+    read. This is useful to wait for video4linux events which are
+    signalled via POLLPRI.
+
+-   sample: new API to update the contents of a GstSample and make it
+    writable: gst_sample_set_buffer(), gst_sample_set_caps(),
+    gst_sample_set_segment(), gst_sample_set_info(), plus
+    gst_sample_is_writable() and gst_sample_make_writable(). This makes
+    it possible to reuse a sample object and avoid unnecessary memory
+    allocations, for example in appsink.
+
+-   ClockIDs now keep a weak reference to underlying clock to avoid
+    crashes in basesink in corner cases where a clock goes away while
+    the ClockID is still in use, plus some new API
+    (gst_clock_id_get_clock(), gst_clock_id_uses_clock()) to check the
+    clock a ClockID is linked to.
+
+-   The GstCheck unit test library gained a
+    fail_unless_equals_clocktime() convenience macro as well as some new
+    GstHarness API for for proposing meta APIs from the allocation
+    query: gst_harness_add_propose_allocation_meta(). ASSERT_CRITICAL()
+    checks in unit tests are now skipped if GStreamer was compiled with
+    GST_DISABLE_GLIB_CHECKS.
+
+-   gst_audio_buffer_truncate() convenience function to truncate a raw
+    audio buffer
+
+-   GstDiscoverer has support for caching the results of discovery in
+    the default cache directory. This can be enabled with the use-cache
+    property and is disabled by default.
+
+-   GstMeta that are attached to GstBuffers are now always stored in the
+    order in which they were added.
+
+-   Additional support for signalling ONVIF specific features were
+    added: the SEEK event can store a trickmode-interval now and support
+    for the Rate-Control and Frames RTSP headers was added to the RTSP
+    library.
+
+
+Miscellaneous performance and memory optimisations
+
+As always there have been many performance and memory usage improvements
+across all components and modules. Some of them (such as dmabuf
+import/export) have already been mentioned elsewhere so won’t be
+repeated here.
+
+The following list is only a small snapshot of some of the more
+interesting optimisations that haven’t been mentioned in other contexts
+yet:
+
+-   The GstVideoEncoder and GstVideoDecoder base classes now release the
+    STREAM_LOCK when pushing out buffers, which means (multi-threaded)
+    encoders and decoders can now receive and continue to process input
+    buffers whilst waiting for downstream elements in the pipeline to
+    process the buffer that was pushed out. This increases throughput
+    and reduces processing latency, also and especially for
+    hardware-accelerated encoder/decoder elements.
+
+-   GstQueueArray has seen a few API additions
+    (gst_queue_array_peek_nth(), gst_queue_array_set_clear_func(),
+    gst_queue_array_clear()) so that it can be used in other places like
+    GstAdapter instead of a GList, which reduces allocations and
+    improves performance.
+
+-   appsink now reuses the sample object in pull_sample() if possible
+
+-   rtpsession only starts the RTCP thread when it’s actually needed now
+
+-   udpsrc uses a buffer pool now and the GstUdpSrc object structure was
+    optimised for better cache performance
+
+GstPlayer
+
+-   API was added to fine-tune the synchronisation offset between
+    subtitles and video
+
+
+Miscellaneous changes
+
+-   As a result of moving to newer FFmpeg APIs, encoder and decoder
+    elements exposed by the GStreamer FFmpeg wrapper plugin (gst-libav)
+    may have seen possibly incompatible changes to property names and/or
+    types, and not all properties exposed might be functional. We are
+    still reviewing the new properties and aim to minimise breaking
+    changes at least for the most commonly-used properties, so please
+    report any issues you run into!
+
+OpenGL integration
+
+-   The OpenGL mixer elements have been moved from -bad to
+    gst-plugins-base (see above)
+
+-   The Mesa GBM backend now supports headless mode
+
+-   gloverlaycompositor: New OpenGL-based compositor element that
+    flattens any overlays from GstVideoOverlayCompositionMetas into the
+    video stream.
+
+-   glalpha: New element that adds an alpha channel to a video stream.
+    The values of the alpha channel can either be set to a constant or
+    can be dynamically calculated via chroma keying. It is similar to
+    the existing alpha element but based on OpenGL. Calculations are
+    done in floating point so results may not be identical to the output
+    of the existing alpha element.
+
+-   glupload: Implement direct dmabuf uploader, the idea being that some
+    GPUs (like the Vivante series) can actually perform the YUV->RGB
+    conversion internally, so no custom conversion shaders are needed.
+    To make use of this feature, we need an additional uploader that can
+    import DMABUF FDs and also directly pass the pixel format, relying
+    on the GPU to do the conversion.
+
+-   The OpenGL library no longer restores the OpenGL viewport. This is a
+    performance optimization to not require performing multiple
+    expensive glGet*() function calls per frame. This affects any
+    application or plugin use of the following functions and objects:
+    -   glcolorconvert library object (not the element)
+    -   glviewconvert library object (not the element)
+    -   gst_gl_framebuffer_draw_to_texture()
+    -   custom GstGLWindow implementations
+
+
+Tracing framework and debugging improvements
+
+-   There is now a GDB PRETTY PRINTER FOR VARIOUS GSTREAMER TYPES: For
+    GstObject pointers the type and name is added, e.g.
+    0x5555557e4110 [GstDecodeBin|decodebin0]. For GstMiniObject pointers
+    the object type is added, e.g. 0x7fffe001fc50 [GstBuffer]. For
+    GstClockTime and GstClockTimeDiff the time is also printed in human
+    readable form, e.g. 150116219955 [+0:02:30.116219955].
+
+-   GDB EXTENSION WITH TWO CUSTOM GDB COMMANDS gst-dot AND gst-print:
+
+    -   gst-dot creates dot files that a very close to what
+        GST_DEBUG_BIN_TO_DOT_FILE() produces, but object properties and
+        buffer contents such as codec-data in caps are not available.
+
+    -   gst-print produces high-level information about a GStreamer
+        object. This is currently limited to pads for GstElements and
+        events for the pads. The output may look like this:
+
+-   gst_structure_to_string() now serialises the actual value of
+    pointers when serialising GstStructures instead of claiming they’re
+    NULL. This makes debug logging in various places less confusing,
+    because it’s clear now that structure fields actually hold valid
+    objects. Such object pointer values will never be deserialised
+    however.
+
+
+Tools
+
+-   gst-inspect-1.0 has coloured output now and will automatically use a
+    pager if the output does not fit on a page. This only works in a
+    UNIX environment and if the output is not piped, and on Windows 10
+    build 16257 or newer. If you don’t like the colours you can disable
+    them by setting the GST_INSPECT_NO_COLORS=1 environment variable or
+    passing the --no-color command line option.
+
+
+GStreamer RTSP server
+
+-   Improved backlog handling when using TCP interleaved for data
+    transport. Before there was a fixed maximum size for backlog
+    messages, which was prone to deadlocks and made it difficult to
+    control memory usage with the watch backlog. The RTSP server now
+    limits queued TCP data messages to one per stream, moving queuing of
+    the data into the pipeline and leaving the RTSP connection
+    responsive to RTSP messages in both directions, preventing all those
+    problems.
+
+-   Initial ULP Forward Error Correction support in rtspclientsink and
+    for RECORD mode in the server.
+
+-   API to explicitly enable retransmission requests (RTX)
+
+-   Lots of multicast-related fixes
+
+-   rtsp-auth: Add support for parsing .htdigest files
+
+
+GStreamer VAAPI
+
+-   Support Wayland’s display for context sharing, so the application
+    can pass its own wl_display in order to be used for the VAAPI
+    display creation.
+
+-   A lot of work to support new Intel hardware using media-driver as VA
+    backend.
+
+-   For non-x86 devices, VAAPI display can instantiate, through DRM,
+    with no PCI bus. This enables the usage of libva-v4l2-request
+    driver.
+
+-   Added support for XDG-shell protocol as wl_shell replacement which
+    is currently deprecated. This change add as dependency
+    wayland-protocol.
+
+-   GstVaapiFilter, GstVaapiWindow, and GstVaapiDecoder classes now
+    inherit from GstObject, gaining all the GStreamer’s instrumentation
+    support.
+
+-   The metadata now specifies the plugin as Hardware class.
+
+-   H264 decoder is more stable with problematic streams.
+
+-   In H265 decoder added support for profiles main-422-10 (P010_10LE),
+    main-444 (AYUV) and main-444-10 (Y410)
+
+-   JPEG decoder handles dynamic resolution changes.
+
+-   More specification adherence in H264 and H265 encoders.
+
+
+GStreamer OMX
+
+-   Add support of NV16 format to video encoders input.
+
+-   Video decoders now handle the ALLOCATION query to tell upstream
+    about the number of buffers they require. Video encoders will also
+    use this query to adjust their number of allocated buffers
+    preventing starvation when using dynamic buffer mode.
+
+-   The OMX_PERFORMANCE debug category has been renamed to OMX_API_TRACE
+    and can now be used to track a widder variety of interactions
+    between OMX and GStreamer.
+
+-   Video encoders will now detect frame rate only changes and will
+    inform OMX about it rather than doing a full format reset.
+
+-   Various Zynq UltraScale+ specific improvements:
+    -   Video encoders are now able to import dmabuf from upstream.
+    -   Support for HEVC range extension profiles and more AVC profiles.
+    -   We can now request video encoders to generate an IDR using the
+        force key unit event.
+
+
+GStreamer Editing Services and NLE
+
+-   Added a gesdemux element, it is an auto pluggable element that
+    allows decoding edit list like files supported by GES
+
+-   Added gessrc which wraps a GESTimeline as a standard source element
+    (implementing the ges protocol handler)
+
+-   Added basic support for videorate::rate property potentially
+    allowing changing playback speed
+
+-   Layer priority is now fully automatic and they should be moved with
+    the new ges_timeline_move_layer method, ges_layer_set_priority is
+    now deprecated.
+
+-   Added a ges_timeline_element_get_layer_priority so we can simply get
+    all information about GESTimelineElement position in the timeline
+
+-   GESVideoSource now auto orientates the images if it is defined in a
+    meta (overridable).
+
+-   Added some PyGObject overrides to make the API more pythonic
+
+-   The threading model has been made more explicit with safe guard to
+    make sure not thread safe APIs are not used from the wrong threads.
+    It is also now possible to properly handle in what thread the API
+    should be used.
+
+-   Optimized GESClip and GESTrackElement creation
+
+-   Added a way to compile out the old, unused and deprecated
+    GESPitiviFormatter
+
+-   Re implemented the timeline editing API making it faster and making
+    the code much more maintainable
+
+-   Simplified usage of nlecomposition outside GES by removing quirks in
+    it API usage and removing the need to treat it specially from an
+    application perspective.
+
+-   ges-launch-1.0:
+
+    -   Added support to add titles to the timeline
+    -   Enhance the help auto generating it from the code
+
+-   Deprecate ges_timeline_load_from_uri as loading the timeline should
+    be done through a project now
+
+-   MANY leaks have been plugged and the unit testsuite is now “leak
+    free”
+
+
+GStreamer validate
+
+-   Added an action type to verify the checksum of the sink last-sample
+
+-   Added an include keyword to validate scenarios
+
+-   Added the notion of variable in scenarios, with the set-vars keyword
+
+-   Started adding support for “performance” like tests by allowing to
+    define the number of dropped buffers or the minimum buffer frequency
+    on a specific pad
+
+-   Added a validateflow plugin which allows defining the data flow to
+    be seen on a particular pad and verifying that following runs match
+    the expectations
+
+-   Added support for appsrc based test definition so we can instrument
+    the data pushed into the pipeline from scenarios
+
+-   Added a mockdecryptor allowing adding tests with on encrypted files,
+    the element will potentially be instrumented with a validate
+    scenario
+
+-   gst-validate-launcher:
+
+    -   Cleaned up output
+
+    -   Changed the default for “muting” tests as user doesn’t expect
+        hundreds of windows to show up when running the testsuite
+
+    -   Fixed the outputted xunit files to be compatible with GitLab
+
+    -   Added support to run tests on media files in push mode (using
+        pushfile://)
+
+    -   Added support for running inside gst-build
+
+    -   Added support for running ssim tests on rendered files
+
+    -   Added a way to simply define tests on pipelines through a simple
+        .json file
+
+    -   Added a python app to easily run python testsuite reusing all
+        the launcher features
+
+    -   Added flatpak knowledge so we can print backtrace even when
+        running from within flatpak
+
+    -   Added a way to automatically generated “known issues”
+        suppressions lines
+
+    -   Added a way to rerun tests to check if they are flaky and added
+        a way to tolerate tests known to be flaky
+
+    -   Add a way to output html log files
+
+
+GStreamer Python Bindings
+
+-   add binding for gst_pad_set_caps()
+
+-   pygobject dependency requirement was bumped to >= 3.8
+
+-   new audiotestsrc, audioplot, and mixer plugin examples, and a
+    dynamic pipeline example
+
+
+GStreamer C# Bindings
+
+-   bindings for the GstWebRTC library
+
+
+GStreamer Rust Bindings
+
+The GStreamer Rust bindings are now officially part of the GStreamer
+project and are also maintained in the GStreamer GitLab.
+
+The releases will generally not be synchronized with the releases of
+other GStreamer parts due to dependencies on other projects.
+
+Also unlike the other GStreamer libraries, the bindings will not commit
+to full API stability but instead will follow the approach that is
+generally taken by Rust projects, e.g.:
+
+1)  0.12.X will be completely API compatible with all other 0.12.Y
+    versions.
+2)  0.12.X+1 will contain bugfixes and compatible new feature additions.
+3)  0.13.0 will _not_ be backwards compatible with 0.12.X but projects
+    will be able to stay at 0.12.X without any problems as long as they
+    don’t need newer features.
+
+The current stable release is 0.12.2 and the next release series will be
+0.13, probably around March 2019.
+
+At this point the bindings cover most of GStreamer core (except for most
+notably GstAllocator and GstMemory), and most parts of the app, audio,
+base, check, editing-services, gl, net. pbutils, player, rtsp,
+rtsp-server, sdp, video and webrtc libraries.
+
+Also included is support for creating subclasses of the following types
+and writing GStreamer plugins:
+
+-   gst::Element
+-   gst::Bin and gst::Pipeline
+-   gst::URIHandler and gst::ChildProxy
+-   gst::Pad, gst::GhostPad
+-   gst_base::Aggregator and gst_base::AggregatorPad
+-   gst_base::BaseSrc and gst_base::BaseSink
+-   gst_base::BaseTransform
+
+Changes to 0.12.X since 0.12.0
+
+Fixed
+
+-   PTP clock constructor actually creates a PTP instead of NTP clock
+
+Added
+
+-   Bindings for GStreamer Editing Services
+-   Bindings for GStreamer Check testing library
+-   Bindings for the encoding profile API (encodebin)
+
+-   VideoFrame, VideoInfo, AudioInfo, StructureRef implements Send and
+    Sync now
+-   VideoFrame has a function to get the raw FFI pointer
+-   From impls from the Error/Success enums to the combined enums like
+    FlowReturn
+-   Bin-to-dot file functions were added to the Bin trait
+-   gst_base::Adapter implements SendUnique now
+-   More complete bindings for the gst_video::VideoOverlay interface,
+    especially
+    gst_video::is_video_overlay_prepare_window_handle_message()
+
+Changed
+
+-   All references were updated from GitHub to freedesktop.org GitLab
+-   Fix various links in the README.md
+-   Link to the correct location for the documentation
+-   Remove GitLab badge as that only works with gitlab.com currently
+
+Changes in git master for 0.13
+
+Fixed
+
+-   gst::tag::Album is the album tag now instead of artist sortname
+
+Added
+
+-   Subclassing infrastructure was moved directly into the bindings,
+    making the gst-plugin crate deprecated. This involves many API
+    changes but generally cleans up code and makes it more flexible.
+    Take a look at the gst-plugins-rs crate for various examples.
+
+-   Bindings for CapsFeatures and Meta
+-   Bindings for
+    ParentBufferMeta,VideoMetaandVideoOverlayCompositionMeta`
+-   Bindings for VideoOverlayComposition and VideoOverlayRectangle
+-   Bindings for VideoTimeCode
+
+-   UniqueFlowCombiner and UniqueAdapter wrappers that make use of the
+    Rust compile-time mutability checks and expose more API in a safe
+    way, and as a side-effect implement Sync and Send now
+
+-   More complete bindings for Allocation Query
+-   pbutils functions for codec descriptions
+-   TagList::iter() for iterating over all tags while getting a single
+    value per tag. The old ::iter_tag_list() function was renamed to
+    ::iter_generic() and still provides access to each value for a tag
+-   Bus::iter() and Bus::iter_timed() iterators around the corresponding
+    ::pop\*() functions
+
+-   serde serialization of Value can also handle Buffer now
+
+-   Extensive comments to all examples with explanations
+-   Transmuxing example showing how to use typefind, multiqueue and
+    dynamic pads
+-   basic-tutorial-12 was ported and added
+
+Changed
+
+-   Rust 1.31 is the minimum supported Rust version now
+-   Update to latest gir code generator and glib bindings
+
+-   Functions returning e.g. gst::FlowReturn or other “combined” enums
+    were changed to return split enums like
+    Result<gst::FlowSuccess, gst::FlowError> to allow usage of the
+    standard Rust error handling.
+
+-   MiniObject subclasses are now newtype wrappers around the underlying
+    GstRc<FooRef> wrapper. This does not change the API in any breaking
+    way for the current usages, but allows MiniObjects to also be
+    implemented in other crates and makes sure rustdoc places the
+    documentation in the right places.
+
+-   BinExt extension trait was renamed to GstBinExt to prevent conflicts
+    with gtk::Bin if both are imported
+
+-   Buffer::from_slice() can’t possible return None
+
+-   Various clippy warnings
+
+
+GStreamer Rust Plugins
+
+Like the GStreamer Rust bindings, the Rust plugins are now officially
+part of the GStreamer project and are also maintained in the GStreamer
+GitLab.
+
+In the 0.3.x versions this contained infrastructure for writing
+GStreamer plugins in Rust, and a set of plugins.
+
+In git master that infrastructure was moved to the GLib and GStreamer
+bindings directly, together with many other improvements that were made
+possible by this, so the gst-plugins-rs repository only contains
+GStreamer elements now.
+
+Elements included are:
+
+-   Tutorials plugin: identity, rgb2gray and sinesrc with extensive
+    comments
+
+-   rsaudioecho, a port of the audiofx element
+
+-   rsfilesrc, rsfilesink
+
+-   rsflvdemux, a FLV demuxer. Not feature-equivalent with flvdemux yet
+
+-   threadshare plugin: ts-appsrc, ts-proxysrc/sink, ts-queue, ts-udpsrc
+    and ts-tcpclientsrc elements that use a fixed number of threads and
+    share them between instances. For more background about these
+    elements see Sebastian’s talk “When adding more threads adds more
+    problems - Thread-sharing between elements in GStreamer” at the
+    GStreamer Conference 2017.
+
+-   rshttpsrc, a HTTP source around the hyper/reqwest Rust libraries.
+    Not feature-equivalent with souphttpsrc yet.
+
+-   togglerecord, an element that allows to start/stop recording at any
+    time and keeps all audio/video streams in sync.
+
+-   mccparse and mccenc, parsers and encoders for the MCC closed caption
+    file format.
+
+Changes to 0.3.X since 0.3.0
+
+-   All references were updated from GitHub to freedesktop.org GitLab
+-   Fix various links in the README.md
+-   Link to the correct location for the documentation
+
+Changes in git master for 0.4
+
+-   togglerecord: Switch to parking_lot crate for mutexes/condition
+    variables for lower overhead
+-   Merge threadshare plugin here
+-   New closedcaption plugin with mccparse and mccenc elements
+-   New identity element for the tutorials plugin
+
+-   Register plugins statically in tests instead of relying on the
+    plugin loader to find the shared library in a specific place
+
+-   Update to the latest API changes in the GLib and GStreamer bindings
+-   Update to the latest versions of all crates
+
+
+Build and Dependencies
+
+-   The MESON BUILD SYSTEM BUILD IS NOW FEATURE-COMPLETE (*) and it is
+    now the recommended build system on all platforms and also used by
+    Cerbero to build GStreamer on all platforms. The Autotools build is
+    scheduled to be removed in the next cycle. Developers who currently
+    use gst-uninstalled should move to gst-build. The build option
+    naming has been cleaned up and made consistent and there are now
+    feature options to enable/disable plugins and various other features
+    on a case-by-case basis. (*) with the exception of plugin docs which
+    will be handled differently in future
+
+-   Symbol export in libraries is now controlled via explicit exports
+    using symbol visibility or export defines where supported, to ensure
+    consistency across all platforms. This also allows libraries to have
+    exports that vary based on detected platform features and configure
+    options as is the case with the GStreamer OpenGL integration library
+    for example. A few symbols that had been exported by accident in
+    earlier versions may no longer be exported. These symbols will not
+    have had declarations in any public header files then though and
+    would not have been usable.
+
+-   The GStreamer FFmpeg wrapper plugin (gst-libav) now depends on
+    FFmpeg 4.x and uses the new FFmpeg 4.x API and stopped relying on
+    ancient API that was removed with the FFmpeg 4.x release. This means
+    that it is no longer possible to build this module against an older
+    system-provided FFmpeg 3.x version. Use the internal FFmpeg 4.x copy
+    instead if you build using autotools, or use gst-libav 1.14.x
+    instead which targets the FFmpeg 3.x API and _should_ work fine in
+    combination with a newer GStreamer. It’s difficult for us to support
+    both old and new FFmpeg APIs at the same time, apologies for any
+    inconvenience caused.
+
+-   Hardware-accelerated Nvidia video encoder/decoder plugins nvdec and
+    nvenc can be built against CUDA Toolkit versions 9 and 10.0 now. The
+    dynlink interface has been dropped since it’s deprecated in 10.0.
+
+-   The (optional) OpenCV requirement has been bumped to >= 3.0.0 and
+    the plugin can also be built against OpenCV 4.x now.
+
+-   New sctp plugin based on usrsctp (for WebRTC data channels)
+
+Cerbero
+
+Cerbero is a meta build system used to build GStreamer plus dependencies
+on platforms where dependencies are not readily available, such as
+Windows, Android, iOS and macOS.
+
+Cerbero has seen a number of improvements:
+
+-   Cerbero has been ported to Python 3 and requires Python 3.5 or newer
+    now
+
+-   Source tarballs are now protected by checksums in the recipes to
+    guard against download errors and malicious takeover of projects or
+    websites. In addition, downloads are only allowed via secure
+    transports now and plain HTTP, FTP and git:// transports are not
+    allowed anymore.
+
+-   There is now a new fetch-bootstrap command which downloads sources
+    required for bootstrapping, with an optional --build-tools-only
+    argument to match the bootstrap --build-tools-only command.
+
+-   The bootstrap, build, package and bundle-source commands gained a
+    new --offline switch that ensures that only sources from the cache
+    are used and never downloaded via the network. This is useful in
+    combination with the fetch and fetch-bootstrap commands that acquire
+    sources ahead of time before any build steps are executed. This
+    allows more control over the sources used and when sources are
+    updated, and is particularly useful for build environments that
+    don’t have network access.
+
+-   bootstrap --assume-yes will automatically say ‘yes’ to any
+    interactive prompts during the bootstrap stage, such as those from
+    apt-get or yum.
+
+-   bootstrap --system-only will only bootstrap the system without build
+    tools.
+
+-   Manifest support: The build manifest can be used in continuous
+    integration (CI) systems to fixate the Git revision of certain
+    projects so that all builds of a pipeline are on the same reference.
+    This is used in GStreamer’s gitlab CI for example. It can also be
+    used in order to re-produce a specific build. To set a manifest, you
+    can set manifest = 'my_manifest.xml' in your configuration file, or
+    use the --manifest command line option. The command line option will
+    take precedence over anything specific in the configuration file.
+
+-   The new build-deps command can be used to build only the
+    dependencies of a recipe, without the recipe itself.
+
+-   new --list-variants command to list available variants
+
+-   variants can now be set on the command line via the -v option as a
+    comma-separated list. This overrides any variants set in any
+    configuration files.
+
+-   new qt5, intelmsdk and nvidia variants for enabling Qt5 and hardware
+    codec support. See the Enabling Optional Features with Variants
+    section in the Cerbero documentation for more details how to enable
+    and use these variants.
+
+-   When building on Windows, Cerbero can now build GStreamer recipes
+    and core dependencies such as glib with Visual Studio. This is
+    controlled by the visualstudio variant. Visual Studio 2015, 2017,
+    and 2019 are supported. Currently, only 64-bit x86 is supported due
+    to a known bug which will be fixed for the next release.
+
+-   A new -t / --timestamp command line switch makes commands print
+    timestamps
+
+
+Platform-specific changes and improvements
+
+Android
+
+-   toolchain: update compiler to clang and NDKr18. NDK r18 removed the
+    armv5 target and only has Android platforms that target at least
+    armv7 so the armv5 target is not useful anymore.
+
+-   The way that GIO modules are named has changed due to upstream GLib
+    natively adding support for loading static GIO modules. This means
+    that any GStreamer application using gnutls for SSL/TLS on the
+    Android or iOS platforms (or any other setup using static libraries)
+    will fail to link looking for the g_io_module_gnutls_load_static()
+    function. The new function name is now
+    g_io_gnutls_load(gpointer data). data can be NULL for a static
+    library. Look at this commit for the necessary change in the
+    examples.
+
+-   various build issues on Android have been fixed.
+
+macOS and iOS
+
+-   various build issues on iOS have been fixed.
+
+-   the minimum required iOS version is now 9.0. The difference in
+    adoption between 8.0 and 9.0 is 0.1% and the bump to 9.0 fixes some
+    build issues.
+
+-   The way that GIO modules are named has changed due to upstream GLib
+    natively adding support for loading static GIO modules. This means
+    that any GStreamer application using gnutls for SSL/TLS on the
+    Android or iOS platforms (or any other setup using static libraries)
+    will fail to link looking for the g_io_module_gnutls_load_static()
+    function. The new function name is now
+    g_io_gnutls_load(gpointer data). data can be NULL for a static
+    library. Look at this commit for the necessary change in the
+    examples.
+
+Windows
+
+-   The webrtcdsp element is shipped again as part of the Windows binary
+    packages, the build system issue has been resolved.
+
+-   ‘Inconsistent DLL linkage’ warnings when building with MSVC have
+    been fixed
+
+-   Hardware-accelerated Nvidia video encoder/decoder plugins nvdec and
+    nvenc build on Windows now, also with MSVC and using Meson.
+
+-   The ksvideosrc camera capture plugin supports 16-bit grayscale video
+    now
+
+-   The wasapisrc audio capture element implements loopback recording
+    from another output device or sink
+
+-   wasapisink recover from low buffer levels in shared mode and some
+    exclusive mode fixes
+
+-   dshowsrc now implements the GstDeviceMonitor interface
+
+
+Contributors
+
+Aaron Boxer, Aleix Conchillo Flaqué, Alessandro Decina, Alexandru Băluț,
+Alex Ashley, Alexey Chernov, Alicia Boya García, Amit Pandya, Andoni
+Morales Alastruey, Andreas Frisch, Andre McCurdy, Andy Green, Anthony
+Violo, Antoine Jacoutot, Antonio Ospite, Arun Raghavan, Aurelien Jarno,
+Aurélien Zanelli, ayaka, Bananahemic, Bastian Köcher, Branko Subasic,
+Brendan Shanks, Carlos Rafael Giani, Charlie Turner, Christoph Reiter,
+Corentin Noël, Daeseok Youn, Damian Vicino, Dan Kegel, Daniel Drake,
+Daniel Klamt, Danilo Spinella, Dardo D Kleiner, David Ing, David
+Svensson Fors, Devarsh Thakkar, Dimitrios Katsaros, Edward Hervey,
+Emilio Pozuelo Monfort, Enrique Ocaña González, Erlend Eriksen, Ezequiel
+Garcia, Fabien Dessenne, Fabrizio Gennari, Florent Thiéry, Francisco
+Velazquez, Freyr666, Garima Gaur, Gary Bisson, George Kiagiadakis, Georg
+Lippitsch, Georg Ottinger, Geunsik Lim, Göran Jönsson, Guillaume
+Desmottes, H1Gdev, Haihao Xiang, Haihua Hu, Harshad Khedkar, Havard
+Graff, He Junyan, Hoonhee Lee, Hosang Lee, Hyunjun Ko, Ilya Smelykh,
+Ingo Randolf, Iñigo Huguet, Jakub Adam, James Stevenson, Jan Alexander
+Steffens, Jan Schmidt, Jerome Laheurte, Jimmy Ohn, Joakim Johansson,
+Jochen Henneberg, Johan Bjäreholt, John-Mark Bell, John Bassett, John
+Nikolaides, Jonathan Karlsson, Jonny Lamb, Jordan Petridis, Josep Torra,
+Joshua M. Doe, Jos van Egmond, Juan Navarro, Julian Bouzas, Jun Xie,
+Junyan He, Justin Kim, Kai Kang, Kim Tae Soo, Kirill Marinushkin, Kyrylo
+Polezhaiev, Lars Petter Endresen, Linus Svensson, Louis-Francis
+Ratté-Boulianne, Lucas Stach, Luis de Bethencourt, Luz Paz, Lyon Wang,
+Maciej Wolny, Marc-André Lureau, Marc Leeman, Marco Trevisan (Treviño),
+Marcos Kintschner, Marian Mihailescu, Marinus Schraal, Mark Nauwelaerts,
+Marouen Ghodhbane, Martin Kelly, Matej Knopp, Mathieu Duponchelle,
+Matteo Valdina, Matthew Waters, Matthias Fend, memeka, Michael Drake,
+Michael Gruner, Michael Olbrich, Michael Tretter, Miguel Paris, Mike
+Wey, Mikhail Fludkov, Naveen Cherukuri, Nicola Murino, Nicolas Dufresne,
+Niels De Graef, Nirbheek Chauhan, Norbert Wesp, Ognyan Tonchev, Olivier
+Crête, Omar Akkila, Pat DeSantis, Patricia Muscalu, Patrick Radizi,
+Patrik Nilsson, Paul Kocialkowski, Per Forlin, Peter Körner, Peter
+Seiderer, Petr Kulhavy, Philippe Normand, Philippe Renon, Philipp Zabel,
+Pierre Labastie, Piotr Drąg, Roland Jon, Roman Sivriver, Roman Shpuntov,
+Rosen Penev, Russel Winder, Sam Gigliotti, Santiago Carot-Nemesio,
+Sean-Der, Sebastian Dröge, Seungha Yang, Shi Yan, Sjoerd Simons, Snir
+Sheriber, Song Bing, Soon, Thean Siew, Sreerenj Balachandran, Stefan
+Ringel, Stephane Cerveau, Stian Selnes, Suhas Nayak, Takeshi Sato,
+Thiago Santos, Thibault Saunier, Thomas Bluemel, Tianhao Liu,
+Tim-Philipp Müller, Tobias Ronge, Tomasz Andrzejak, Tomislav Tustonić,
+U. Artie Eoff, Ulf Olsson, Varunkumar Allagadapa, Víctor Guzmán, Víctor
+Manuel Jáquez Leal, Vincenzo Bono, Vineeth T M, Vivia Nikolaidou, Wang
+Fei, wangzq, Whoopie, Wim Taymans, Wind Yuan, Wonchul Lee, Xabier
+Rodriguez Calvar, Xavier Claessens, Haihao Xiang, Yacine Bandou,
+Yeongjin Jeong, Yuji Kuwabara, Zeeshan Ali,
+
+… and many others who have contributed bug reports, translations, sent
+suggestions or helped testing.
+
+
+Stable 1.16 branch
+
+After the 1.16.0 release there will be several 1.16.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.16.x bug-fix releases will be made from
+the git 1.16 branch, which is a stable branch.
+
+1.16.0
+
+1.16.0 was released on 19 April 2019.
+
+1.16.1
+
+The first 1.16 bug-fix release (1.16.1) was released on 23 September
+2019.
+
+This release only contains bugfixes and it _should_ be safe to update
+from 1.16.0.
+
+Highlighted bugfixes in 1.16.1
+
+-   GStreamer-vaapi: fix green frames and decoding artefacts in some
+    cases
+-   OpenGL: fix wayland event source burning CPU in certain
+    circumstances
+-   Memory leak fixes and memory footprint improvements
+-   Performance improvements
+-   Stability and security fixes
+-   Fix enum for GST_MESSAGE_DEVICE_CHANGED which is technically an API
+    break, but this is only used internally in GStreamer and duplicated
+    another message enum
+-   hls: Make crypto dependency optional when hls-crypto is auto
+-   player: fix switching back and forth between forward and reverse
+    playback
+-   decklinkaudiosink: Drop late buffers
+-   openh264enc: Fix compilation with openh264 v2.0
+-   wasapisrc: fix segtotal value being always 2
+-   android: Fix gnutls issue causing a FORTIFY crash on Android Q
+-   windows: Fix two crashes due to cross-CRT free when using MSVC
+
+gstreamer core
+
+-   device: gst_device_create_element() is transfer floating, not
+    transfer full
+-   filesink, fdsink: respect IOV_MAX for the writev iovec array
+    (Solaris)
+-   miniobject: free qdata array when the last qdata is removed (reduces
+    memory footprint)
+-   bin: Fix minor race when adding to a bin
+-   aggregator: Actually handle NEED_DATA return from update_src_caps()
+-   aggregator: Ensure that the source pad is created as a
+    GstAggregatorPad if no type is given in the pad template
+-   latency: fix custom event leaks
+-   registry: Use plugin directory from the build system for
+    relocateable Windows builds
+-   message: fix up enum value for GST_MESSAGE_DEVICE_CHANGED
+-   info: Fix deadlock in gst_ring_buffer_logger_log()
+-   downloadbuffer: Check for flush after seek
+-   identity: Non-live upstream have no max latency
+-   identity: Fix the ts-offset property getter
+-   aggregator: Make parsing of explicit sink pad names more robust
+-   bufferpool: Fix the buffer size reset code
+-   fakesink, fakesrc, identity: sync gst_buffer_get_flags_string() with
+    new flags
+-   multiqueue: never unref queries we do not own
+-   concat: Reset last_stop on FLUSH_STOP too
+-   aggregator: fix flow-return boolean return type mismatch
+-   gstpad: Handle probes that reset the data field
+-   gst: Add support for g_autoptr(GstPromise)
+-   gst-inspect: fix unused-const-variable error in windows
+-   base: Include gstbitwriter.h in the single-include header
+-   Add various Since: 1.16 markers
+-   GST_MESSAGE_DEVICE_CHANGED duplicates GST_MESSAGE_REDIRECT
+-   Targetting wrong meson version
+-   meson: Make get_flex_version.py script executable
+-   meson: Link to objects instead of static helper library
+-   meson: set correct install path for gdb helper
+-   meson: fix warning about configure_file() install kwarg
+
+gst-plugins-base
+
+-   video-info: parse field-order for all interleaved formats
+-   tests: fix up valgrind suppressions for glibc getaddrinfo leaks
+-   meson: Reenable NEON support (in audio resampler)
+-   audio-resampler: Update NEON to handle remainders not multiples of 4
+-   eglimage: Fix memory leak
+-   audiodecoder: Set output caps with negotiated caps to avoid critical
+    info printed
+-   video-frame: Take TFF flag from the video info if it was set in
+    there
+-   glcolorconvert: Fix external-oes shader
+-   video-anc: Fix ADF detection when trying to extract data from vanc
+-   gl/wayland: fix wayland event source burning CPU
+-   configure: add used attribute in order to make NEON detection
+    working with -flto.
+-   audioaggregator: Return a valid rate range from caps query if
+    downstream supports a whole range
+-   rtspconnection: data-offset increase not set
+-   rtpsconnection: Fix number of n_vectors
+-   video-color: Add compile-time assert for ColorimetryInfo enum
+-   audiodecoder: Fix leak on failed audio gaps
+-   glupload: Keep track of cached EGLImage texture format
+-   playsink: Set ts-offset to text sink.
+-   meson.build: use join_paths() on prefix
+-   compositor: copy frames as-is when possible
+-   compositor: Skip background when a pad obscures it completely
+-   rtspconnection: Start CSeq at 1 (some servers don’t cope well with
+    seqnum 0)
+-   viv-fb: fix build break for GST_GL_API
+-   gl/tests: fix shader creation tests part 2
+-   gl/tests: fix shader creation tests
+-   wayland: set the event queue also for the xdg_wm_base object
+-   video: Added GI annotation for gstvideoaffinetransformationmeta
+    apply_matrix
+-   compositor: Remove unneeded left shift for ARGB/AYUV SOURCE operator
+-   Colorimetry fixes
+-   alsasrc: Don’t use driver timestamp if it’s zero
+-   gloverlaycompositor: fix crash if buffer doesn’t have video meta
+-   meson: Don’t try to find gio-unix on Windows
+-   glshader: fix default external-oes shaders
+-   subparse: fix pushing WebVTT cue with no newline at the end
+-   meson: Missing “android” choice in gl_winsys
+-   video test: Keep BE test inline with LE test
+-   id3tag: Correctly validate the year from v1 tags before passing to
+    GstDateTime
+-   gl/wayland: Don’t prefix wl_shell struct field
+-   eglimage: Add compatibility define for DRM_FORMAT_NV24
+-   Add various Since: 1.16 markers
+-   video-anc: Handle SD formats correctly
+-   Docs: add GL_CFLAGS to GTK_DOC_CFLAGS
+-   GL: using vaapi and showing on glimagesink on wayland loads one core
+    for 100% on 1.16
+-   GL: external-oes shader places precision qualifier before #extension
+    (was: androidmedia amcviddec fail after 1.15.90 1.16.0 update)
+
+gst-plugins-good
+
+-   alpha: Fix one_over_kc calculation on arm/aarch64
+-   souphttpsrc: Fix incompatible type build warning
+-   rtpjitterbuffer: limit max-dropout-time to maxint32
+-   rtpjitterbuffer: Clear clock master before unreffing
+-   qtdemux: Use empty-array safe way to cleanup GPtrArray
+-   v4l2: Fix type compatibility issue with glibc 2.30
+-   valgrind: suppress Cond error coming from gnutls and Ignore leaks
+    caused by shout/sethostent
+-   rtpfunnel: forward correct segment when switching pad
+-   gtkglsink: fix crash when widget is resized after element
+    destruction
+-   jpegdec: Don’t dereference NULL input state if we have no caps in
+    TIME segments
+-   rtp: opuspay: fix memory leak in gst_rtp_opus_pay_setcaps
+-   v4l2videodec: return right type for drain.
+-   rtpssrcdemux: Avoid taking streamlock out-of-band
+-   Support v4l2src buffer orphaning
+-   splitmuxsink: Only set running time on finalizing sink element when
+    in async-finalize mode
+-   rtpsession: Always keep at least one NACK on early RTCP
+-   rtspsrc: do not try to send EOS with invalid seqnum
+-   rtpsession: Call on-new-ssrc earlier
+-   rtprawdepay: Don’t get rid of the buffer pool on FLUSH_STOP
+-   rtpbin: Free storage when freeing session
+-   scaletempo: Advertise interleaved layout in caps templates
+-   Support v4l2src buffer orphaning
+
+gst-plugins-bad
+
+-   hls: Make crypto dependency optional when hls-crypto is auto
+-   player: fix switching back and forth between forward and reverse
+    playback
+-   decklinkaudiosink: Drop late buffers
+-   srt: Add stats property, include sender-side statistics and fix a
+    crash
+-   dshowsrcwrapper: fix regression on device selection
+-   tsdemux: Limit the maximum PES payload size
+-   wayland: Define libdrm_dep in meson.build to fix meson configure
+    error when kms is disabled
+-   sctp: Fix crash on free() when using the MSVC binaries
+-   webrtc: Fix signals documentation
+-   h264parse: don’t critical on VUI parameters > 2^31
+-   rtmp: Fix crash inside free() with MSVC on Windows
+-   iqa: fix leak of map_meta.data
+-   d3dvideosink: Fix crash on WinProc handler
+-   amc: Fix crash when a sync_meta survives its sink
+-   pitch: Fix race between putSamples() and setting soundtouch
+    parameters
+-   webrtc: fix type of max-retransmits, make it work
+-   mxfdemux: Also allow picture essence element type 0x05 for VC-3
+-   wasapi: fix symbol redefinition build error
+-   decklinkvideosrc: Retrieve mode of the ancillary data from the frame
+-   decklinkaudiosrc/decklinkvideosrc: Do nothing in
+    BaseSrc::negotiate() and…
+-   adaptivedemux: do not retry downloads during shutdown.
+-   webrtcbin: fix GInetAddress leak
+-   dtls: fix dtls connection object leak
+-   siren: fix a global buffer overflow spotted by asan
+-   kmssink: Fix implicit declaration build error
+-   Fix -Werror=return-type error in configure.
+-   aiff: Fix infinite loop in header parsing.
+-   nvdec: Fix possible frame drop on EOS
+-   srtserversrc: yields malformed rtp payloads
+-   srtsink: Fix crash in case no URI
+-   dtlsagent: Fix leaked dtlscertificate
+-   meson: bluez: Early terminate configure on Windows
+-   decklink: Correctly ensure >=16 byte alignment for the buffers we
+    allocate
+-   webrtcbin: fix DTLS when receivebin is set to DROP
+-   zbar: Include running-time, stream-time and duration in the messages
+-   uvch264src: Make sure we set our segment
+-   avwait: Allow start and end timecode to be set back to NULL
+-   avwait: Don’t print warnings for every buffer passed
+-   hls/meson: fix dependency logic
+-   Waylandsink gnome shell workaround
+-   avwait: Allow setting start timecode after end timecode; protect
+    propeties with mutex
+-   wayland/wlbuffer: just return if used_by_compositor is true when
+    attach
+-   proxy: Set SOURCE flag on the source and SINK flag on the sink
+-   ivfparse: Check the data size against IVF_FRAME_HEADER_SIZE
+-   webrtc: Add various Since markers to new types after 1.14.0
+-   msdk: fix the typo in debug category
+-   dtlsagent: Do not overwrite openssl locking callbacks
+-   meson: Fix typo in gsm header file name
+-   srt: handle races in state change
+-   webrtc: Add g_autoptr() support for public types
+-   openh264enc: Fix compilation with openh264 v2.0
+-   meson: Allow CUDA_PATH fallback on linux
+-   meson: fix build with opencv=enabled and opencv4. Fixes #964
+-   meson: Add support for the colormanagement plugin
+-   autotools: gstsctp: set LDFLAGS
+-   nvenc/nvdec: Add NVIDIA SDK headers to noinst_HEADERS
+-   h264parse: Fix typo when setting multiview mode and flags
+-   Add various Since: 1.16 markers
+-   opencv: allow compilation against 4.1.x
+-   Backport of some minor srt commits without MR into 1.16
+-   meson: fix build with opencv=enabled and opencv4
+-   wasapisrc: fix segtotal value being always 2 due to an unused
+    variable
+-   meson: colormanagement missing
+-   androidmedia amcviddec fail after 1.15.90 1.16.0 update
+
+gst-plugins-ugly
+
+-   meson: Always require the gmodule dependency
+
+gst-libav
+
+-   docs: don’t include the type hierarchy, fixing build with gtk-doc
+    1.30
+-   avvidenc: Correctly signal interlaced input to ffmpeg when the input
+    caps are interlaced
+-   autotools: add bcrypt to win32 libs
+-   gstav: Use libavcodec util function for version check
+-   API documentation fails to build with gtk-doc 1.30
+
+gst-rtsp-server
+
+-   rtsp-client: RTP Info must exist in PLAY response
+-   onvif-media: fix “void function returning a value” compiler warning
+-   Add various Since: 1.16 markers
+
+gstreamer-vaapi
+
+-   fix egl context leak and display creation race
+-   pluginutil: Remove Mesa from drivers white list
+-   Classify vaapidecodebin as a hardware decoder
+-   Fix two leak
+-   vaapivideomemory: demote error message to info
+-   encoder: vp8,vp9: reset frame_counter when input frame’s format
+    changes
+-   encoder: mpeg2: No packed header for SPS and PPS
+-   decoder: vp9: clear parser pointer after release
+-   encoder: Fixes deadlock in change state function
+-   encoder: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
+-   encoder: not call ensure_num_slices inside g_assert()
+-   encoder: continue if roi meta is NULL
+-   decoder: vp9: Set chroma_ ype by VP9 bit_depth
+-   vaapipostproc: don’t do any color conversion when GL_TEXTURE_UPLOAD
+-   libs: surface: fix double free when dmabuf export fails
+-   h264 colors and artifacts upon upgrade to GStreamer Core Library
+    version 1.15.90
+
+gst-editing-services
+
+-   element: Properly handle the fact that pasting can return NULL
+-   Add various missing Since markers
+-   launch: Fix caps restriction short names
+-   python: Avoid warning about using deprecated methods
+-   video-transition: When using non crossfade effect use ‘over’
+    operations
+-   meson: Generate a pkgconfig file for the GES plugin
+
+gst-devtools
+
+-   launcher: testsuites: skip systemclock stress tests
+-   validate: fix build on macOS
+
+gst-build
+
+-   Update win flex bison binaries
+-   Update the flexmeson windows binary version
+-   Don’t allow people to run meson inside the uninstalled env
+
+Cerbero build tool and packaging changes in 1.16.1
+
+-   cerbero: Add enums for Fedora 30, Fedora 31 and Debian bullseye
+-   gnutls.recipe: Fix crash when running on Android Q
+-   recipes: Upgrade openssl to 1.1.1c
+-   Fix some typos
+-   add support for vs build tools 2019, fixes #183
+-   android: Adjust gstreamer-1.0.mk for NDK r20
+-   Fix license enums
+-   bootstrap: Fix dnf usage on CentOS
+-   Make _add_system_libs reentrant
+-   meson.recipe: Fix setting of bitcode compiler options
+-   cerbero: support Ubuntu disco dingo
+-   cerbero: Set utf-8 to execution character set also on MSVC
+-   git: simplify the reset of the source branch.
+-   FORTIFY: %n not allowed on Android Q
+-   Fails to build if there’s no license file for the given license
+    (GPL/LGPL without Plus, Proprietary, …)
+
+Contributors to 1.16.1
+
+Aaron Boxer, Adam Duskett, Alicia Boya García, Andoni Morales Alastruey,
+Antonio Ospite, Arun Raghavan, Askar Safin, A. Wilcox, Charlie Turner,
+Christoph Reiter, Damian Hobson-Garcia, Daniel Klamt, Danny Smith, David
+Gunzinger, David Ing, David Svensson Fors, Doug Nazar, Edward Hervey,
+Eike Hein, Fabrice Bellet, Fernando Herrrera, Georg Lippitsch, Göran
+Jönsson, Guillaume Desmottes, Haihao Xiang, Haihua Hu, Håvard Graff, Hou
+Qi, Ignacio Casal Quinteiro, Ilya Smelykh, Jan Schmidt, Javier Celaya,
+Jim Mason, Jonas Larsson, Jordan Petridis, Jose Antonio Santos Cadenas,
+Juan Navarro, Knut Andre Tidemann, Kristofer Björkström, Lucas Stach,
+Marco Felsch, Marcos Kintschner, Mark Nauwelaerts, Martin Liska, Martin
+Theriault, Mathieu Duponchelle, Matthew Waters, Michael Olbrich, Mike
+Gorse, Nicola Murino, Nicolas Dufresne, Niels De Graef, Niklas
+Hambüchen, Nirbheek Chauhan, Olivier Crête, Philippe Normand, Ross
+Burton, Sebastian Dröge, Seungha Yang, Song Bing, Thiago Santos,
+Thibault Saunier, Thomas Coldrick, Tim-Philipp Müller, Víctor Manuel
+Jáquez Leal, Vivia Nikolaidou, Xavier Claessens, Yeongjin Jeong,
+
+… and many others who have contributed bug reports, translations, sent
+suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.16.1
+
+-   List of Merge Requests applied in 1.16
+-   List of Issues fixed in 1.16.1
+
+1.16.2
+
+The second 1.16 bug-fix release (1.16.2) was released on 03 December
+2019.
+
+This release only contains bugfixes and it _should_ be safe to update
+from 1.16.1.
+
+Highlighted bugfixes in 1.16.2
+
+-   Interlaced video scaling fixes
+-   CineForm video support in AVI
+-   audioresample: avoid glitches due to rounding errors after changing
+    rate
+-   Command line tool output printing improvements on Windows
+-   various performance improvements, memory leak fixes and security
+    fixes
+-   VP9 decoding fixes
+-   avfvideosrc: Explicitly request video permission on macOS 10.14+
+-   wasapi: bug fixes and stability improvements
+-   webrtc-audio-processing: fix segmentation fault on 32-bit windows
+-   tsdemux: improved handling of certain discontinuities
+-   vaapi h265 decoder: wait for I-frame before trying to decode
+
+gstreamer
+
+-   gst-launch: Fix ugly stdout on Windows
+-   tee: Make sure to actually deactivate pads that are released
+-   bin: Drop need-context messages without source instead of crashing
+-   gst: Don’t pass miniobjects to GST_DEBUG_OBJECT() and similar macros
+-   tracers: Don’t leak temporary GstStructure
+
+gst-plugins-base
+
+-   xvimagepool: Update size, stride, and offset with allocated XvImage
+-   video-converter: Fix RGB-XYZ-RGB conversion
+-   audiorate: Update next_offset on rate change
+-   audioringbuffer: Reset reorder flag before check
+-   audio-buffer: Don’t fail to map buffers with zero samples
+-   videorate: Fix max-duplication-time handling
+-   gl/gbm: ensure we call the resize callback before attempting to draw
+-   video-converter: Various fixes for interlaced scaling
+-   gstrtspconnection: messages_bytes not decreased
+-   check: Don’t use real audio devices for tests
+-   riff: add CineForm mapping
+-   glfilters: Don’t use static variables for storing per-element state
+-   glupload: Add VideoMetas and GLSyncMeta to the raw uploaded buffers
+-   streamsynchronizer: avoid pad release race during logging.
+-   gst-play: Use gst_print* to avoid broken stdout string on Windows
+
+gst-plugins-good
+
+-   vp9dec: Fix broken 4:4:4 8bits decoding
+-   rtpsession: add locking for clear-pt-map
+-   rtpL16depay: don’t crash if data is not modulo channels*width
+-   wavparse: Fix push mode ignoring audio with a size smaller than
+    segment buffer
+-   wavparse: Fix push mode ignoring last audio payload chunk
+-   aacparse: fix wrong offset of the channel number in adts header
+-   jpegdec: Fix incorrect logic in EOI tag detection
+-   videocrop: Also update the coordinate when in-place
+-   jpegdec: don’t overwrite the last valid line
+-   vpx: Error out if enabled and no features found
+-   v4l2videodec: ensure pool exists before orphaning it
+-   v4l2videoenc: fix type conversion errors
+-   v4l2bufferpool: Queue number of allocated buffers to capture
+-   v4l2object: fix mpegversion number typo
+-   v4l2object: Work around bad TRY_FMT colorimetry implementations
+
+gst-plugins-bad
+
+-   avfvideosrc: Explicitly request video permission on macOS 10.14+
+-   wasapi: Various fixes and a workaround for a specific driver bug
+-   wasapi: Move to CoInitializeEx for COM initialization
+-   wasapi: Fix runtime/build warnings
+-   waylandsink: Commit the parent after creating subsurface
+-   msdkdec: fix surface leak in msdkdec_handle_frame
+-   tsmux: Fix copying of buffer region
+-   tsdemux: Handle continuity mismatch in more cases
+-   tsdemux: Always issue a DTS even when it’s equal to PTS
+-   openexr: Fix build with OpenEXR 2.4 (and also OpenEXR 2.2 on Ubuntu
+    18.04)
+-   ccextractor: Always forward all sticky events to the caption pad
+-   pnmdec: Return early on ::finish() if we have no actual data to
+    parse
+-   ass: avoid infinite unref loop with bad data
+-   fluidsynth: add sf3 to soundfont search path
+-   webrtcdsp/webrtcechoprobe segmentation fault on windows (1.16.0 x86)
+
+gst-libav
+
+-   avvidenc: Fix error propagation
+-   avdemux: Fix segmentation fault if long_name is NULL
+-   avviddec: Fix huge leak caused by circular reference
+-   avviddec: Enforce allocate new AVFrame per input frame
+-   avdec_mpeg2video (and probably more): Huge memory leak in git master
+
+gst-rtsp-server
+
+-   rtsp-media: Use lock in gst_rtsp_media_is_receive_only
+-   rtsp-client: RTP Info when completed_sender
+-   rtsp-client: fix location uri-format by getting uri directly from
+    context instead
+
+gstreamer-vaapi
+
+-   meson build: halt configuration if no renderer API
+-   libs: decoder: h265: skip all pictures prior the first I-frame
+-   libs: window: x11: Avoid usage of deprecated API
+
+gst-editing-services
+
+-   Initialize debug categories before usage
+
+gst-build
+
+-   gst-env: Use locally built GStreamer utility programs
+
+Cerbero build tool and packaging changes in 1.16.2
+
+General
+
+-   openssl: Update to 1.1.1d
+-   Updated ffmpeg, expat, flac, freetype, croco, ogg, xml2, mpg123,
+    openjpeg, opus, pixman, speex, tiff recipes
+-   Fix setting of git credentials in local source repos
+
+Windows
+
+-   webrtc-audio-processing: fix segmentation fault on 32-bit windows
+    with webrtcdsp/webrtcechoprobe elemens
+-   vpx plugin has no features when built with Visual Studio 2019
+-   libvpx: Add support for Visual Studio 2019
+-   mingw-runtime.recipe: Correctly package pkg-config in the MSI
+-   GIO doesn’t load any modules on Windows with MSVC, which breaks TLS
+    support since glib-networking’s giognutls module isn’t loaded
+-   Make the instructions for running Cerbero the same on all platforms
+
+macOS + iOS
+
+-   Add support for macOS 10.15 Catalina
+-   Updates for Xcode 11
+-   macos/ios: expose objc++ compilers in env variables
+-   srt.recipe: Fix crash in constructor on iOS
+-   osx-framework.recipe: Dynamically generate the list of libraries and
+    ship pkg-config
+-   macos: add -mmacosx-version-min for framework
+-   gstreamer-1.0-osx-framework.recipe contains an outdated hard-coded
+    list of libraries
+-   We need to ship pkg-config with macOS
+
+Linux
+
+-   Fix filesprovider.find_shlib_regex when a lib_suffix is used in the
+    cerbero config file
+
+Contributors to 1.16.2
+
+Adam Nilsson, Amr Mahdi, Angus Ao, Charlie Turner, Edward Hervey, Fabian
+Greffrath, Fuwei Tang, Havard Graff, Hu Qian, James Cowgill, Jan
+Alexander Steffens (heftig), Jeffy Chen, Jeremy Lempereur, Joakim
+Johansson, Jochen Henneberg, Julien Isorce, Kevin Joly, Kristofer
+Bjorkstrom, Kyrylo Polezhaiev, Matthew Waters, Michael Olbrich, Muhammet
+Ilendemli, Nicolas Dufresne, Nirbheek Chauhan, Pablo Marcos Oltra, Roman
+Shpuntov, Ruben Gonzalez, Scott Kanowitz, Sebastian Dröge, Seungha Yang,
+Thibault Saunier, Tim-Philipp Müller, Víctor Manuel Jáquez Leal, Vivia
+Nikolaidou,
+
+… and many others who have contributed bug reports, translations, sent
+suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.16.2
+
+-   List of Merge Requests applied in 1.16
+-   List of Issues fixed in 1.16.2
+
+
+Known Issues
+
+-   possibly breaking/incompatible changes to properties of wrapped
+    FFmpeg decoders and encoders (see above).
+
+-   The way that GIO modules are named has changed due to upstream GLib
+    natively adding support for loading static GIO modules. This means
+    that any GStreamer application using gnutls for SSL/TLS on the
+    Android or iOS platforms (or any other setup using static libraries)
+    will fail to link looking for the g_io_module_gnutls_load_static()
+    function. The new function name is now
+    g_io_gnutls_load(gpointer data). See Android/iOS sections above for
+    further details.
+
+
+Schedule for 1.18
+
+Our next major feature release will be 1.18, and 1.17 will be the
+unstable development version leading up to the stable 1.18 release. The
+development of 1.17/1.18 will happen in the git master branch.
+
+The plan for the 1.18 development cycle is yet to be confirmed, but it
+is now expected that feature freeze will take place in December 2019,
+with the first 1.18 stable release ready in late January or February.
+
+1.18 will be backwards-compatible to the stable 1.16, 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 Tim-Philipp Müller with_
+_contributions from Sebastian Dröge, Guillaume Desmottes, Matthew
+Waters, _ _Thibault Saunier, and Víctor Manuel Jáquez Leal._
+
+_License: CC BY-SA 4.0_