Skip to content
Snippets Groups Projects
NEWS 60.6 KiB
Newer Older
    same object files, instead of having to build everything twice.

-   The default plugin entry point has changed. This will only affect
    plugins that are recompiled against new GStreamer headers. Binary
    plugins using the old entry point will continue to work. However,
    plugins that are recompiled must have matching plugin names in
    GST_PLUGIN_DEFINE and filenames, as the plugin entry point for
    shared plugins is now deduced from the plugin filename. This means
    you can no longer have a plugin called foo living in a file called
    libfoobar.so or such, the plugin filename needs to match. This might
    cause problems with some external third party plugin modules when
    they get rebuilt against GStreamer 1.14.


Note to packagers and distributors

A number of libraries, APIs and plugins moved between modules and/or
libraries in different modules between version 1.12.x and 1.14.x, see
the _Plugin and_ _library moves_ section above. Some APIs have seen
minor ABI changes in the course of moving them into the stable APIs
section.

This means that you should try to ensure that all major GStreamer
modules are synced to the same major version (1.12 or 1.13/1.14) and can
only be upgraded in lockstep, so that your users never end up with a mix
of major versions on their system at the same time, as this may cause
breakages.

Also, plugins compiled against >= 1.14 headers will not load with
GStreamer <= 1.12 owing to a new plugin entry point (but plugin binaries
built against older GStreamer versions will continue to load with newer
versions of GStreamer of course).

There is also a small structure size related ABI breakage introduced in
the gst-plugins-bad codecparsers library between version 1.13.90 and
1.13.91. This should "only" affect gstreamer-vaapi, so anyone who ships
the release candidates is advised to upgrade those two modules at the
same time.
Platform-specific improvements
-   ahcsrc (Android camera source) does autofocus now
-   no major changes in macOS and iOS support, only bugfixes
-   The GStreamer wasapi plugin was rewritten and should not only be
    usable now, but in top shape and suitable for low-latency use cases.
    The Windows Audio Session API (WASAPI) is Microsoft's most modern
    method for talking with audio devices, and now that the wasapi
    plugin is up to scratch it is preferred over the directsound plugin.
    The ranks of the wasapisink and wasapisrc elements have been updated
    to reflect this. Further improvements include:

-   support for more than 2 channels

-   a new "low-latency" property to enable low-latency operation (which
    should always be safe to enable)

-   support for the AudioClient3 API which is only available on Windows
    10: in wasapisink this will be used automatically if available; in
    wasapisrc it will have to be enabled explicitly via the
    "use-audioclient3" property, as capturing audio with low latency and
    without glitches seems to require setting the realtime priority of
    the entire pipeline to "critical", which cannot be done from inside
    the element, but has to be done in the application.

-   set realtime thread priority to avoid glitches

-   allow opening devices in exclusive mode, which provides much lower
    latency compared to shared mode where WASAPI's engine period is
    10ms. This can be activated via the "exclusive" property.

-   Also see Nirbheek's blog post _Low Latency Audio on Windows with
    GStreamer_.

-   There are now GstDeviceProvider implementations for the wasapi and
    directsound plugins, so it's now possible to discover both audio
    sources and audio sinks on Windows via the GstDeviceMonitor API

-   debug log timestamps are now higher granularity owing to
    g_get_monotonic_time() now being used as fallback in
    gst_utils_get_timestamp(). Before that, there would sometimes be
    10-20 lines of debug log output sporting the same timestamp.


Contributors

Aaron Boxer, Adrián Pardini, Adrien SCH, Akinobu Mita, Alban Bedel,
Alessandro Decina, Alex Ashley, Alicia Boya García, Alistair Buxton,
Alvaro Margulis, Anders Jonsson, Andreas Frisch, Andrejs Vasiljevs,
Andrew Bott, Antoine Jacoutot, Antonio Ospite, Antoni Silvestre, Anton
Obzhirov, Anuj Jaiswal, Arjen Veenhuizen, Arnaud Bonatti, Arun Raghavan,
Ashish Kumar, Aurélien Zanelli, Ayaka, Branislav Katreniak, Branko
Subasic, Brion Vibber, Carlos Rafael Giani, Cassandra Rommel, Chris
Bass, Chris Paulson-Ellis, Christoph Reiter, Claudio Saavedra, Clemens
Lang, Cyril Lashkevich, Daniel van Vugt, Dave Craig, Dave Johnstone,
David Evans, David Schleef, Deepak Srivastava, Dimitrios Katsaros,
Dmitry Zhadinets, Dongil Park, Dustin Spicuzza, Eduard Sinelnikov,
Edward Hervey, Enrico Jorns, Eunhae Choi, Ezequiel Garcia, fengalin,
Filippo Argiolas, Florent Thiéry, Florian Zwoch, Francisco Velazquez,
François Laignel, fvanzile, George Kiagiadakis, Georg Lippitsch, Graham
Leggett, Guillaume Desmottes, Gurkirpal Singh, Gwang Yoon Hwang, Gwenole
Beauchesne, Haakon Sporsheim, Haihua Hu, Håvard Graff, Heekyoung Seo,
Heinrich Fink, Holger Kaelberer, Hoonhee Lee, Hosang Lee, Hyunjun Ko,
Ian Jamison, James Stevenson, Jan Alexander Steffens (heftig), Jan
Schmidt, Jason Lin, Jens Georg, Jeremy Hiatt, Jérôme Laheurte, Jimmy
Ohn, Jochen Henneberg, John Ludwig, John Nikolaides, Jonathan Karlsson,
Josep Torra, Juan Navarro, Juan Pablo Ugarte, Julien Isorce, Jun Xie,
Jussi Kukkonen, Justin Kim, Lasse Laursen, Lubosz Sarnecki, Luc
Deschenaux, Luis de Bethencourt, Marcin Lewandowski, Mario Alfredo
Carrillo Arevalo, Mark Nauwelaerts, Martin Kelly, Matej Knopp, Mathieu
Duponchelle, Matteo Valdina, Matt Fischer, Matthew Waters, Matthieu
Bouron, Matthieu Crapet, Matt Staples, Michael Catanzaro, Michael
Olbrich, Michael Shigorin, Michael Tretter, Michał Dębski, Michał Górny,
Michele Dionisio, Miguel París, Mikhail Fludkov, Munez, Nael Ouedraogo,
Neos3452, Nicholas Panayis, Nick Kallen, Nicola Murino, Nicolas
Dechesne, Nicolas Dufresne, Nirbheek Chauhan, Ognyan Tonchev, Ole André
Vadla Ravnås, Oleksij Rempel, Olivier Crête, Omar Akkila, Orestis
Floros, Patricia Muscalu, Patrick Radizi, Paul Kim, Per-Erik Brodin,
Peter Seiderer, Philip Craig, Philippe Normand, Philippe Renon, Philipp
Zabel, Pierre Pouzol, Piotr Drąg, Ponnam Srinivas, Pratheesh Gangadhar,
Raimo Järvi, Ramprakash Jelari, Ravi Kiran K N, Reynaldo H. Verdejo
Pinochet, Rico Tzschichholz, Robert Rosengren, Roland Peffer, Руслан
Ижбулатов, Sam Hurst, Sam Thursfield, Sangkyu Park, Sanjay NM, Satya
Prakash Gupta, Scott D Phillips, Sean DuBois, Sebastian Cote, Sebastian
Dröge, Sebastian Rasmussen, Sejun Park, Sergey Borovkov, Seungha Yang,
Shakin Chou, Shinya Saito, Simon Himmelbauer, Sky Juan, Song Bing,
Sreerenj Balachandran, Stefan Kost, Stefan Popa, Stefan Sauer, Stian
Selnes, Thiago Santos, Thibault Saunier, Thijs Vermeir, Tim Allen,
Tim-Philipp Müller, Ting-Wei Lan, Tomas Rataj, Tom Bailey, Tonu Jaansoo,
U. Artie Eoff, Umang Jain, Ursula Maplehurst, VaL Doroshchuk, Vasilis
Liaskovitis, Víctor Manuel Jáquez Leal, vijay, Vincent Penquerc'h,
Vineeth T M, Vivia Nikolaidou, Wang Xin-yu (王昕宇), Wei Feng, Wim
Taymans, Wonchul Lee, Xabier Rodriguez Calvar, Xavier Claessens,
XuGuangxin, Yasushi SHOJI, Yi A Wang, Youness Alaoui,

... and many others who have contributed bug reports, translations, sent
suggestions or helped testing.

Bugs fixed in 1.14
More than 800 bugs have been fixed during the development of 1.14.

This list does not include issues that have been cherry-picked into the
stable 1.12 branch and fixed there as well, all fixes that ended up in
the 1.12 branch are also included in 1.14.

This list also does not include issues that have been fixed without a
bug report in bugzilla, so the actual number of fixes is much higher.
Stable 1.14 branch
After the 1.14.0 release there will be several 1.14.x bug-fix releases
which will contain bug fixes which have been deemed suitable for a
stable branch, but no new features or intrusive changes will be added to
a bug-fix release usually. The 1.14.x bug-fix releases will be made from
the git 1.14 branch, which is a stable branch.
1.14.0 was released on 19 March 2018.

1.14.1

The first 1.14 bug-fix release (1.14.1) was released on 17 May 2018.

This release only contains bugfixes and it should be safe to update from
1.14.0.
Noteworthy bugfixes in 1.14.1

-   GstPad: Fix race condition causing the same probe to be called
    multiple times
-   Fix occasional deadlocks on windows when outputting debug logging
-   Fix debug levels being applied in the wrong order
-   GIR annotation fixes for bindings
-   audiomixer, audioaggregator: fix some negotiation issues
-   gst-play-1.0: fix leaving stdin in non-blocking mode after exit
-   flvmux: wait for caps on all input pads before writing header even
    if source is live
-   flvmux: don't wake up the muxer unless there is data, fixes busy
    looping if there's no input data
-   flvmux: fix major leak of input buffers
-   rtspsrc, rtsp-server: revert to RTSP RFC handling of
    sendonly/recvonly attributes
-   rtpvrawpay: fix payloading with very large mtu sizes where
    everything fits into a single RTP packet
-   v4l2: Fix hard-coded enabled v4l2 probe on Linux/ARM
-   v4l2: Disable DMABuf for emulated formats when using libv4l2
-   v4l2: Always set colorimetry in S_FMT
-   asfdemux: Set stream-format field for H264 streams and handle H.264
    in bytestream format
-   x265enc: Fix tagging of keyframes on output buffers
-   ladspa: Fix critical during plugin load on Windows
-   decklink: Fix COM initialisation on Windows
-   h264parse: fix re-use across pipeline stop/restart
-   mpegtsmux: fix force-keyframe event handling and PCR/PMT changes
    that would confuse some players with generated HLS streams
-   adaptivedemux: Support period change in live playlist
-   rfbsrc: Fix support for applevncserver and support NULL pool in
    decide_allocation
-   jpegparse: Fix APP1 marker segment parsing
-   h265parse: Make caps writable before modifying them, fixes criticals
-   fakevideosink: request an extra buffer if enable-last-sample is
    enabled
-   wasapisrc: Don't provide a clock based on WASAPI's clock
-   wasapi: Only use audioclient3 when low-latency, as it might
    otherwise glitch with slow CPUs or VMs
-   wasapi: Don't derive device period from latency time, should make it
    more robust against glitches
-   audiolatency: Fix wave detection in buffers and avoid bogus pts
    values while starting
-   msdk: fix plugin load on implementations with only HW support
-   msdk: dec: set framerate to the driver only if provided, not in 0/1
    case
-   msdk: Don't set extended coding options for JPEG encode
-   rtponviftimestamp: fix state change function init/reset causing
    races/crashes on shutdown
-   decklink: fix initialization failure in windows binary
-   ladspa: Fix critical warnings during plugin load on Windows and fix
    dependencies in meson build
-   gl: fix cross-compilation error with viv-fb
-   qmlglsink: make work with eglfs_kms
-   rtspclientsink: Don't deadlock in preroll on early close
-   rtspclientsink: Fix client ports for the RTCP backchannel
-   rtsp-server: Fix session timeout when streaming data to client over
    TCP
-   vaapiencode: h264: find best profile in those available, fixing
    negotiation errors
-   vaapi: remove custom GstGL context handling, use GstGL instead.
    Fixes GL Context sharing with WebkitGtk on wayland
-   gst-editing-services: various fixes
-   gst-python: bump pygobject req to 3.8; fix
    GstPad.set_query_function(); dist autogen.sh and configure.ac in
    tarball
-   g-i: pick up GstVideo-1.0.gir from local build directory in GstGL
    build
-   g-i: update constant values for bindings
-   avoid duplicate symbols in plugins across modules in static builds
-   ... and many, many more!

Cerbero build tool and packaging changes in 1.14.1

Toolchain updates on iOS and Android necessitated a fairly large number
of changes in our cerbero build tool used to create our binary packages
for the various platforms we support:

-   Add support for Ubuntu 18.04 in cerbero
-   Fix generation of fat shared libraries on macOS
-   gnutls: also rename assembly functions on macos/ios to fix link
    errors
-   gnutls: fix assembly symbol names for windows x86
-   openssl: fix linking on android/armv7
-   openssl: fix linker issue with Android NDK's r16 binutils
-   ffmpeg: disable asm for android x86 to fix issues when linking with
    apps
-   x264: disable asm for android x86 to fix issues when linking with
    apps
-   gnutls: rename private symbols for armv8, x86 to not conflict with
    openssl
-   mpg123: disable assembly on android/x86 to fix linker problems with
    relocations
-   Check built version while loading recipe and rebuild if needed
-   Fix packaging of libgcc_s_sjlj which was missing in Windows packages
-   Make not-found in library search fatal so we don't accidentally ship
    broken packages
-   ship the proxy plugin which was new in 1.14
-   Fix git commands accidentally pulling in locally built libraries and
    failing

Contributors to 1.14.1

Antonio Ospite, Aurélien Zanelli, Brendan Shanks, Carlos Rafael Giani,
Edward Hervey, Emilio Pozuelo Monfort, Enrique Ocaña González, Garima
Gaur, Georg Lippitsch, Guillaume Desmottes, Havard Graff, Hoonhee Lee,
Hyunjun Ko, James Stevenson, Jan Alexander Steffens (heftig), Jan
Schmidt, Joakim Johansson, Jun Xie, Kai Kang, Kirill Marinushkin, Mark
Nauwelaerts, Matej Knopp, Mathieu Duponchelle, Matthew Waters, Matthias
Fend, Michael Olbrich, Mikhail Fludkov, Nicolas Dufresne, Nirbheek
Chauhan, Olivier Crête, Omar Akkila, Patrik Nilsson, Philippe Normand,
Pierre Labastie, Sebastian Dröge, Seungha Yang, Sreerenj Balachandran,
Stian Selnes, Takeshi Sato, Thibault Saunier, Tim-Philipp Müller, U.
Artie Eoff, Víctor Manuel Jáquez Leal, Vivia Nikolaidou, Whoopie, Xabier
Rodriguez Calvar, Xavier Claessens, Zeeshan Ali, and countless others.

List of bugs fixed in 1.14.1

For a full list of bugfixes see Bugzilla. Note that this is not the full
list of changes. For the full list of changes please refer to the GIT
logs or ChangeLogs of the particular modules.

1.14.2

The second 1.14 bug-fix release (1.14.2) is scheduled to be released
around mid-June 2018.

This release only contains bugfixes and it should be safe to update from
1.14.x.

Known Issues
-   The webrtcdsp element (which is unrelated to the newly-landed
    GStreamer webrtc support) is currently not shipped as part of the
    Windows binary packages due to a build system issue.
-   The gst-libav module currently won't build against the
    newly-released ffmpeg 4.0 (as in F28). Use the internal ffmpeg copy
    instead, if you build using autotools.

Schedule for 1.16
Our next major feature release will be 1.16, and 1.15 will be the
unstable development version leading up to the stable 1.16 release. The
development of 1.15/1.16 will happen in the git master branch.
The plan for the 1.16 development cycle is yet to be confirmed, but it
is expected that feature freeze will be around August 2018 followed by
several 1.15 pre-releases and the new 1.16 stable release in September.
1.16 will be backwards-compatible to the stable 1.14, 1.12, 1.10, 1.8,
1.6, 1.4, 1.2 and 1.0 release series.
------------------------------------------------------------------------
_These release notes have been prepared by Tim-Philipp Müller with_
_contributions from Sebastian Dröge, Sreerenj Balachandran, Thibault
Saunier_ _and Víctor Manuel Jáquez Leal._
_License: CC BY-SA 4.0_