Newer
Older
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
- 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.
- 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:
- 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.
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
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
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.
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
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
- 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
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
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
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) was released on 20 July 2018.
This release only contains bugfixes and it should be safe to update from
1.14.x.
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
Noteworthy bugfixes in 1.14.2
- asfdemux: Only send flush-stop event for flushing seeks
- glcolorbalance: Support OES textures for input/passthrough, avoids
possibly-unnecessary extra texture copy on Android in the default GL
path inside glimagesink.
- parsebin: Don’t try to continue autoplugging a parser if we got raw
caps
- audiobasesrc: Round down segsize to an integer number of samples
- scaletempo: Mark as Audio in classification
- souphttpsrc: thread-safety fixes
- v4l2bufferpool: Validate that capture buffers were queued, to detect
when buffer importation was refused by the driver.
- v4l2bufferpool: Only return eos for M2M devices not v4l2src when
buggy driver sends empty buffer
- v4l2allocator: Fix userptr importation
- v4l2src: Try to avoid TRY_FMT when camera is streaming, some drivers
don’t like it
- v4l2videoenc: Only renegotiate with upstream, fixes use in
GstRtspServer pipeline
- v4l2: many other fixes
- pitch: fix latency reporting, and various other things
- dvb: fix wrong (GPL) license headers in camconditionalaccess code
- webrtc: Fix transportsendbin to fix spurious shut-down failures in
webrtcbin if DTLS negotiation hasn’t completed yet.
- webrtc: Don’t deadlock on blocked pads on shutdown
- webrtcbin: copy sticky events on our ghostpads so users can use
gst_pad_get_current_caps() to determine what to do with newly-added
pads.
- webrtcbin: fix rtpstorage configuration on 32-bit systems
- webrtcbin: implement support for FEC and RTX
- gstplayer: Fix duration-changed CRITICAL warning if duration did not
actually change
- gstplayer: Avoid trying to join the player thread from itself
- codecparsers: mpeg2 parsing fixes for zero-sized packets
- wasapisink: fix a rounding error when calculating the buffer frame
count
- wasapisink: fix missing unlock in case IAudioClient_Start fails
- wasapi: fix potential crash with MinGW
- rtsp-server: fix race during udpsrc setup, avoiding pushing data on
unlinked udpsrc pad
- rtsp-server: fix waiting for multiple streams in rtspclientsink
- gst-editing-services: group: Fix handling clips that are added to a
layer
- gst-editing-services: python binding fixes
- gst-validate launcher: Allow retrieving coredumps from within
flatpak
- gst-validate launcher: Fix the –forever switch which was not
stopping on error
- vaapi: h264 encoder negotiation fixes
- vaapi: fix issues with native EGL display
- more GIR annotations fixes, especially for arrays
- gstreamer-sharp bindings were updated for g-i annotation fixes in
other modules
- fuzzing fixes
- memory leak fixes
- build fixes:
- build fixes for MSVC compiler
- meson: Fix detection of glib-mkenums under MSYS2 plus other
meson buil fixes
- Fix static build symbol redefinition errors (xvimage, gst-libav)
- qmlgl: build fixes for conflicting declaration of type GLsync
for non-android
- gl: build fixes for missing EGLuint64KHR typedef
- … and many more!
Contributors to 1.14.2
Alessandro Decina, Antoine Jacoutot, Brendan Shanks, Carlos Rafael
Giani, Christoph Reiter, Edward Hervey, Göran Jönsson, Guillaume
Desmottes, Hyunjun Ko, Iñigo Huguet, Jan Schmidt, Johan Bjäreholt,
Louis-Francis Ratté-Boulianne, Lyon Wang, Marian Mihailescu, Mark
Nauwelaerts, Mathieu Duponchelle, Matthew Waters, Michael Tretter,
Nicolas Dufresne, Nirbheek Chauhan, Philipp Zabel, Roland Jon, Sebastian
Dröge, Seungha Yang, Sreerenj Balachandran, Suhas Nayak, Thibault
Saunier, Tim-Philipp Müller, Víctor Manuel Jáquez Leal, Vivia
Nikolaidou, wangzq, and many others. Thank you all.
List of bugs fixed in 1.14.2
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.
- 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 in 1.14 will only build against older ffmpeg
3.x versions and won’t build against the newly-released ffmpeg 4.0
(as in RPM Fusion for Fedora 28) due to API changes. Use the
internal ffmpeg copy instead if you build using autotools. This is
fixed in git master / upcoming 1.16, but won’t be backported to the
1.14 branch as it is rather intrusive and difficult to support both
old and new APIs at the same time.
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._