Commit 48b46e3f authored by Tim-Philipp Müller's avatar Tim-Philipp Müller 🐠

Release 1.15.2

parent 1ef240e2
Pipeline #21548 failed with stages
in 12 minutes and 7 seconds
=== release 1.15.2 ===
2019-02-26 11:47:29 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-plugins-good.doap:
* meson.build:
Release 1.15.2
2019-02-26 11:47:29 +0000 Tim-Philipp Müller <tim@centricular.com>
* docs/plugins/gst-plugins-good-plugins.args:
* docs/plugins/inspect/plugin-1394.xml:
* docs/plugins/inspect/plugin-aasink.xml:
* docs/plugins/inspect/plugin-alaw.xml:
* docs/plugins/inspect/plugin-alpha.xml:
* docs/plugins/inspect/plugin-alphacolor.xml:
* docs/plugins/inspect/plugin-apetag.xml:
* docs/plugins/inspect/plugin-audiofx.xml:
* docs/plugins/inspect/plugin-audioparsers.xml:
* docs/plugins/inspect/plugin-auparse.xml:
* docs/plugins/inspect/plugin-autodetect.xml:
* docs/plugins/inspect/plugin-avi.xml:
* docs/plugins/inspect/plugin-cacasink.xml:
* docs/plugins/inspect/plugin-cairo.xml:
* docs/plugins/inspect/plugin-cutter.xml:
* docs/plugins/inspect/plugin-debug.xml:
* docs/plugins/inspect/plugin-deinterlace.xml:
* docs/plugins/inspect/plugin-dtmf.xml:
* docs/plugins/inspect/plugin-dv.xml:
* docs/plugins/inspect/plugin-effectv.xml:
* docs/plugins/inspect/plugin-equalizer.xml:
* docs/plugins/inspect/plugin-flac.xml:
* docs/plugins/inspect/plugin-flv.xml:
* docs/plugins/inspect/plugin-flxdec.xml:
* docs/plugins/inspect/plugin-gdkpixbuf.xml:
* docs/plugins/inspect/plugin-goom.xml:
* docs/plugins/inspect/plugin-goom2k1.xml:
* docs/plugins/inspect/plugin-gtk.xml:
* docs/plugins/inspect/plugin-icydemux.xml:
* docs/plugins/inspect/plugin-id3demux.xml:
* docs/plugins/inspect/plugin-imagefreeze.xml:
* docs/plugins/inspect/plugin-interleave.xml:
* docs/plugins/inspect/plugin-isomp4.xml:
* docs/plugins/inspect/plugin-jack.xml:
* docs/plugins/inspect/plugin-jpeg.xml:
* docs/plugins/inspect/plugin-lame.xml:
* docs/plugins/inspect/plugin-level.xml:
* docs/plugins/inspect/plugin-matroska.xml:
* docs/plugins/inspect/plugin-mpg123.xml:
* docs/plugins/inspect/plugin-mulaw.xml:
* docs/plugins/inspect/plugin-multifile.xml:
* docs/plugins/inspect/plugin-multipart.xml:
* docs/plugins/inspect/plugin-navigationtest.xml:
* docs/plugins/inspect/plugin-oss4.xml:
* docs/plugins/inspect/plugin-ossaudio.xml:
* docs/plugins/inspect/plugin-png.xml:
* docs/plugins/inspect/plugin-pulseaudio.xml:
* docs/plugins/inspect/plugin-qmlgl.xml:
* docs/plugins/inspect/plugin-replaygain.xml:
* docs/plugins/inspect/plugin-rtp.xml:
* docs/plugins/inspect/plugin-rtpmanager.xml:
* docs/plugins/inspect/plugin-rtsp.xml:
* docs/plugins/inspect/plugin-shapewipe.xml:
* docs/plugins/inspect/plugin-shout2.xml:
* docs/plugins/inspect/plugin-smpte.xml:
* docs/plugins/inspect/plugin-soup.xml:
* docs/plugins/inspect/plugin-spectrum.xml:
* docs/plugins/inspect/plugin-speex.xml:
* docs/plugins/inspect/plugin-taglib.xml:
* docs/plugins/inspect/plugin-twolame.xml:
* docs/plugins/inspect/plugin-udp.xml:
* docs/plugins/inspect/plugin-video4linux2.xml:
* docs/plugins/inspect/plugin-videobox.xml:
* docs/plugins/inspect/plugin-videocrop.xml:
* docs/plugins/inspect/plugin-videofilter.xml:
* docs/plugins/inspect/plugin-videomixer.xml:
* docs/plugins/inspect/plugin-vpx.xml:
* docs/plugins/inspect/plugin-wavenc.xml:
* docs/plugins/inspect/plugin-wavpack.xml:
* docs/plugins/inspect/plugin-wavparse.xml:
* docs/plugins/inspect/plugin-ximagesrc.xml:
* docs/plugins/inspect/plugin-y4menc.xml:
Update docs
2019-02-26 11:47:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* po/af.po:
* po/az.po:
* po/bg.po:
* po/ca.po:
* po/cs.po:
* po/da.po:
* po/de.po:
* po/el.po:
* po/en_GB.po:
* po/eo.po:
* po/es.po:
* po/eu.po:
* po/fi.po:
* po/fr.po:
* po/fur.po:
* po/gl.po:
* po/hr.po:
* po/hu.po:
* po/id.po:
* po/it.po:
* po/ja.po:
* po/lt.po:
* po/lv.po:
* po/mt.po:
* po/nb.po:
* po/nl.po:
* po/or.po:
* po/pl.po:
* po/pt_BR.po:
* po/ro.po:
* po/ru.po:
* po/sk.po:
* po/sl.po:
* po/sq.po:
* po/sr.po:
* po/sv.po:
* po/tr.po:
* po/uk.po:
* po/vi.po:
* po/zh_CN.po:
* po/zh_HK.po:
* po/zh_TW.po:
Update translations
2019-02-25 19:08:08 +1100 Matthew Waters <matthew@centricular.com>
* sys/v4l2/gstv4l2videodec.c:
v4l2dec: also remove the colorimetry and chroma-site fields
If a different format is chosen, then these values are incorrect.
2019-02-22 16:02:12 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst/rtpmanager/gstrtpsession.c:
rtpsession: Fix EOS forwarding
So far we assumed that if all sources are bye, this meant we needed to
send an EOS on the RTCP sink. The problem is that this case may happens
if we only had one internal source and it detected a collision.
So now we limit the EOS forwarding to when there is a send_rtp_sink pad
and that this pad has received EOS. We don'tcheck the recv_rtp_sink
since the code does not wait for the bye to be send before sending EOS
to the RTCP src pad.
2019-02-25 01:12:56 +1100 Jan Schmidt <jan@centricular.com>
* gst/wavparse/gstwavparse.c:
wavparse: Declare support for RF64
RF64 encode support was added to wavenc quite some time
ago, but not declared in wavparse. It seems wavparse can
decode it though, so add it to the sink pad.
The RF64 support was added in
https://bugzilla.gnome.org/show_bug.cgi?id=735627
2019-02-12 18:28:40 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst/rtpmanager/rtpsession.c:
* gst/rtpmanager/rtpsource.c:
* gst/rtpmanager/rtpsource.h:
rtp: Add property to disable RTCP reports per internal rtpsource
This is useful when implementing custom retransmission mechanism like
RIST to prevent RTCP from being produces for the retransmitted SSRC.
This would also be used in general for various purpose when customizing
an RTP base pipeline.
2019-02-12 18:26:21 -0500 Olivier Crête <olivier.crete@collabora.com>
* gst/rtpmanager/rtpsession.c:
rtpsession: Emit on-new-sender-ssrc for RTX ssrc also
2019-01-15 18:04:09 -0500 Olivier Crête <olivier.crete@collabora.com>
* tests/check/elements/rtpjitterbuffer.c:
rtp jitterbuffer test: Test for queue filling
2019-01-11 17:53:43 -0500 Olivier Crête <olivier.crete@collabora.com>
* gst/rtpmanager/gstrtpjitterbuffer.c:
* gst/rtpmanager/rtpjitterbuffer.c:
* gst/rtpmanager/rtpjitterbuffer.h:
rtpjitterbuffer: Limit size to 2^15 packets
If it goes over 2^15 packets, it will think it has rolled over
and start dropping all packets. So make sure the seqnum distance is not too big.
But let's not limit it to a number that is too small to avoid emptying it
needlessly if there is a spurious huge sequence number, let's allow at
least 10k packets in any case.
2019-02-11 11:33:32 -0500 Olivier Crête <olivier.crete@collabora.com>
* gst/rtpmanager/gstrtpjitterbuffer.c:
rtpjitterbuffer: There is no automatic reorder threshold
2019-01-30 10:47:49 -0300 Thibault Saunier <tsaunier@igalia.com>
* ext/pulse/pulsedeviceprovider.c:
pulse: Post DEVICE_CHANGED on modification
2018-11-26 13:48:56 -0300 Thibault Saunier <tsaunier@igalia.com>
* ext/pulse/pulsedeviceprovider.c:
* ext/pulse/pulsedeviceprovider.h:
pulse: Mark default devices as "default"
2019-02-08 16:10:25 +0000 Ilya Smelykh <ilya.smelykh@gmail.com>
* gst/flv/gstflvmux.c:
flvmux: Use 8kHz sample rate for alaw/mulaw audio
2019-02-07 09:54:31 +0000 Ilya Smelykh <ilya.smelykh@gmail.com>
* gst/flv/gstflvdemux.c:
flvdemux: set sample rate to 8KHz for G.711 audio
2019-02-08 13:59:19 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
* gst/isomp4/gstqtmux.c:
qtmux: Only write timecode trak for video
Recent changes in ccextractor were attaching timecode meta to the closed
caption track. We shouldn't write timecode information for the closed
caption trak.
2019-02-05 22:14:18 +0100 Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
* configure.ac:
* ext/vpx/gstvpxdec.c:
* ext/vpx/meson.build:
vpx: Fix build against libvpx 1.8
The deprecated debug visualizer was removed.
2019-02-05 19:41:51 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* tests/check/elements/rtph264.c:
* tests/check/elements/rtph265.c:
* tests/check/elements/rtpulpfec.c:
misc: Fix warnings on Cerbero's mingw (gcc 4.7)
error: this decimal constant is unsigned only in ISO C90 [-Werror]
2019-02-06 14:43:18 +0530 Arun Raghavan <arunsr@codeaurora.org>
* ext/pulse/pulsesink.c:
pulsesink: Deal with not being able to convert a format to caps
It is possible that PulseAudio adds formats that are not yet supported
in pulsesink, and in those cases, we want to gracefully skip them rather
than cause an assert on a NULL caps.
2019-01-17 09:22:18 +0100 Edward Hervey <edward@centricular.com>
* gst/isomp4/qtdemux.c:
qtdemux: Remove trailing '\n' in debug
2019-02-05 15:27:49 +1100 Matthew Waters <matthew@centricular.com>
* ext/qt/gstqtgl.h:
qmlgl: Fix opengl header guard changes again
Reapply 3d708a5bfa8961cc37671bc3226976dfc9ba50ad in the correct place
after the iOS additions.
2019-02-02 02:29:10 +0100 Mathieu Duponchelle <mathieu@centricular.com>
* gst/rtsp/gstrtspsrc.c:
* gst/rtsp/gstrtspsrc.h:
rtspsrc: use the correct segment seqnum
2019-02-02 02:26:47 +0100 Mathieu Duponchelle <mathieu@centricular.com>
* gst/rtpmanager/gstrtpjitterbuffer.c:
rtpjitterbuffer: use the correct segment seqnum
2019-02-02 02:24:01 +0100 Mathieu Duponchelle <mathieu@centricular.com>
* gst/rtpmanager/gstrtpsession.c:
* gst/rtpmanager/gstrtpsession.h:
rtpsession: use the correct segment seqnum
2019-01-26 10:35:31 -0300 Thibault Saunier <tsaunier@igalia.com>
* gst/flv/gstflvdemux.c:
flvdemux: Do not error out if the first added and chained pad is not linked
And let it the oportunity to get its other pad linked
Example:
```
$ gst-launch-1.0 uridecodebin uri=file:///home/thiblahute/gst-validate.save/gst-integration-testsuites/testsuites/../medias/defaults/flv/819290236.flv caps=audio/x-raw expose-all-streams=FALSE ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstFlvDemux:flvdemux0: Internal data stream error.
Additional debug info:
../subprojects/gst-plugins-good/gst/flv/gstflvdemux.c(2760): gst_flv_demux_loop (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstFlvDemux:flvdemux0:
streaming stopped, reason not-linked (-1)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
```
2019-01-16 23:54:25 -0800 Christopher Snowhill <kode54@gmail.com>
* gst/matroska/webm-mux.c:
webmmux: allow resolutions above 4096
Modify the caps string to allow width and height greater than 4096.
There is no need to restrict it since the matroska format allows the
width and height values to be up to eight bytes long, and this also
applies to the webm subset of the format.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/550
2019-02-01 14:27:11 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* ext/qt/meson.build:
meson: qmlgl plugin iOS definitions
Tested with cross-ios-arm64 and cross-ios-x86, since those two are the
only archs shipped with the official Qt binaries.
2019-02-01 14:27:11 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* ext/qt/gstqtgl.h:
qt: Don't define GLsync inside gstglfuncs.h
This was originally added for fixing conflicting definitions between
Android and Qt, but times have changed and now this breaks the build
on iOS:
[...]/OpenGLES.framework/Headers/ES3/gl.h:1006:48: error: unknown type name 'gst_qt_GLsync'
GL_API void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) OPENGLES_DEPRECATED(ios(7.0, 12.0), tvos(9.0, 12.0));
^
../ext/qt/gstqtgl.h:49:16: note: expanded from macro 'GLsync'
#define GLsync gst_qt_GLsync
^
6 errors generated.
Instead, we simply avoid defining GLsync ourselves if we're using Qt.
2019-02-01 14:27:11 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* ext/qt/meson.build:
meson: Fix indentation in qt plugin and add a FIXME comment
2019-01-26 21:02:27 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst/rtp/gstrtph265depay.c:
rtph265depay; Fix handling of marker on aggregated packet
When multiple nals are aggrgated, the marker bit should be associated only
with the last NAL of the packet. Otherwise we may break rendering in with
AU alignment.
2019-01-26 21:01:08 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst/rtp/gstrtph264depay.c:
rtph264depay: Fix handling or marker on STAP-A
Only forward the marker for the last NAL of the STAP-A. Otherwise each NAL
endup being assumed to be a full frame which may break rendering.
Fixes 557
2019-01-27 09:19:00 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* tests/check/elements/rtph265.c:
test: h265depay: Add todo for testing aggregate packets with marker
We are missing a sample to test this, but a fix has been made, so add a
todo.
2019-01-26 20:42:40 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* tests/check/elements/rtph264.c:
test: rtph264depay: Check handling of STAP-A marker
Related to #557
2019-01-31 15:23:43 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* tests/check/meson.build:
meson: orc-test is not required
This is especially never available on iOS.
2019-01-30 19:44:01 +0900 Seungha Yang <seungha.yang@navercorp.com>
* meson.build:
* tests/check/meson.build:
meson: Add support orc fallback
Allow fallback to orc subproject if any.
Additionally 'dependencies' keyword is removed from find_library,
because it's invalid keyword for find_library.
2019-01-17 21:06:54 +0100 Mathieu Duponchelle <mathieu@centricular.com>
* ext/gdk_pixbuf/gstgdkpixbufdec.c:
gdkpixbufdec: always output a TIME segment
It makes no sense for a decoder to output a BYTES segment, and
many elements one would plug downstream of a video decoder assume
the segments they receive are in TIME format, for example this fixes:
gst-validate-1.0 filesrc location=opacity01.svg ! gdkpixbufdec ! \
videobalance ! videoconvert ! fakesink
In that case, videobalance was emitting an assertion when trying to
call gst_object_sync_values()
2019-01-29 12:12:51 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* ext/qt/meson.build:
meson: Add macOS definitions for qmlgl plugin
Tested with Cerbero.
2019-01-29 12:12:51 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* ext/qt/meson.build:
meson: Fix building of qmlgl plugin on Android
Needs gnustl for C++ STL support, which is the GNU STL on Android API
19 and older, and is a wrapper for the llvm-libc++ STL on newer APIs.
QtGui C++ templates use GL functions, so GLESv2 is needed at link time
2019-01-24 16:21:12 -0500 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
* gst/interleave/deinterleave.c:
deinterleave: Allow switching between 1 channel configs
regardless of whether they're positioned, since positioning
with a 1 channel stream doesn't change anything.
2019-01-22 11:45:49 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* configure.ac:
configure.ac: Fix Qt Android integration
The Qt Android integration is now signalled with HAVE_QT_ANDROID
See: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/merge_requests/86
2018-12-18 14:46:25 -0500 Xavier Claessens <xavier.claessens@collabora.com>
* ext/soup/meson.build:
Meson: fallback to libsoup subproject
2019-01-22 12:52:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* meson.build:
meson: detect opengl api from -base .pc files correctly
There was a mismatch between the .pc files generated by
autotools and by meson that would lead to meson not detecting
that opengl api is available even though it is, if -base was
built with autotools. The mismatch has now been rectified in
-base, so we need to update for that.
This is mostly for consistency, this problem didn't seem
to affect anything in -good.
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/871
2019-01-22 09:51:33 +0000 Tim-Philipp Müller <tim@centricular.com>
* sys/ximage/meson.build:
meson: ximage: check for XShmAttach()
Fixes FIXME.
2019-01-22 09:32:31 +0000 Tim-Philipp Müller <tim@centricular.com>
* meson_options.txt:
* sys/ximage/meson.build:
meson: add options for ximagesrc xshm, xfixes, xdamage checks
And rename x11 option to ximagesrc.
Fixes #553
2019-01-21 11:53:53 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com>
* ext/qt/README.md:
qmlgl: add README.md with information on building for non-linux platforms with qmake
2019-01-19 15:46:41 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com>
* ext/qt/meson.build:
qmlgl: meson: fix theoretical support for building for android
The android code path is slightly different than the EGLFS one,
so I added previously a HAVE_QT_ANDROID define for use with qmake.
Here I also add it in meson, although I expect nobody will ever use
meson to build this, as it's complicated.
2019-01-19 15:37:45 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com>
* ext/qt/qtplugin.pro:
qmlgl: qmake: add support for MacOS target
2019-01-19 15:21:43 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com>
* ext/qt/qtplugin.pro:
qmlgl: qmake: remove cerbero's include dir from the include path
pkg-config should do it's job here, this is unnecessary and implies using cerbero
2019-01-19 15:19:26 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com>
* ext/qt/gstqtgl.h:
* ext/qt/qtplugin.pro:
qmlgl: qualify Qt includes with their module and remove module include dir from the .pro file
it is perfectly legal to use the <module/class> style of includes with Qt
and it avoids the need for having the module's include dir in the include path
2019-01-19 15:10:09 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com>
* ext/qt/qtplugin.pro:
qmlgl: qmake: don't link against QtWidgets, it's not used
2019-01-19 15:07:44 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com>
* ext/qt/gstqtglutility.cc:
* ext/qt/qtplugin.pro:
qmlgl: qmake: fix building for android
2019-01-19 02:39:32 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* ext/qt/meson.build:
meson: Generate pkg-config file for qmlgl plugin
2019-01-17 16:26:56 +0100 Victor Toso <me@victortoso.com>
* tests/check/elements/rtp-payloading.c:
tests: rtp-payloading avoid -Wmaybe-uninitialized
More false positives as both of them are initialized in the line
before they are used, wrapped with fail_unless() check.
2019-01-17 16:19:40 +0100 Victor Toso <me@victortoso.com>
* tests/check/elements/matroskamux.c:
tests: matroskamux avoid -Wmaybe-uninitialized
False positive for the three variables but some warnings like:
../tests/check/elements/matroskamux.c:875:10:
warning: 'chapters_offset' may be used uninitialized in this function [-Wmaybe-uninitialized]
*index = chapters_offset;
~~~~~~~^~~~~~~~~~~~~~~~~
The above is false positive as there is a gboolean to check if it was
initialized or not (found_chapters_declaration).
2018-05-28 14:39:53 +0530 Arun Raghavan <arunsr@codeaurora.org>
* ext/pulse/pulseutil.c:
pulse: Fix format info to caps conversion for PCM
2019-01-18 12:27:34 +0530 Arun Raghavan <arunsr@codeaurora.org>
* ext/pulse/pulsesink.c:
* ext/pulse/pulsesrc.c:
* ext/pulse/pulsesrc.h:
* ext/pulse/pulseutil.c:
* ext/pulse/pulseutil.h:
Revert "pulsesrc: Move to extended stream API"
This reverts commit 4d67d1bd16bcf25acf89d8acd952badcd5b9a657.
Using the extended API for the capture path depends on a fix in
PulseAudio
(https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/49).
Until then, let's go back to the standard API.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/552
2019-01-18 14:41:14 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* ext/qt/meson.build:
meson: Search for qmake-qt5 before qmake
The canonical name for the binary is qmake-qt5, and qmake is the
generic name that can also be a qt4 qmake.
2019-01-17 15:30:25 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
* sys/v4l2/gstv4l2.c:
v4l2: mark caps from probe as MAY_BE_LEAKED
2019-01-15 18:06:11 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
* sys/v4l2/gstv4l2transform.c:
v4l2transform: fix cdata caps leaks
The cdata structure was freed but not its caps.
It was already done in gst_v4l2_video_dec_subclass_init() and
gst_v4l2_video_enc_subclass_init().
=== release 1.15.1 ===
2019-01-17 01:59:28 +0000 Tim-Philipp Müller <tim@centricular.com>
......@@ -15,7 +15,7 @@ the git master branch and which will eventually result in 1.16.
See https://gstreamer.freedesktop.org/releases/1.16/ for the latest
version of this document.
_Last updated: Monday 14 January 2019, 13:00 UTC (log)_
_Last updated: Monday 25 January 2019, 15:00 UTC (log)_
Introduction
......@@ -24,8 +24,8 @@ The GStreamer team is proud to announce a new major feature release in
the stable 1.x API series of your favourite cross-platform multimedia
framework!
As always, this release is again packed with new features, bug fixes and
other improvements.
As always, this release is again packed with many new features, bug
fixes and other improvements.
Highlights
......@@ -40,7 +40,7 @@ Highlights
- Support for Closed Captions and other Ancillary Data in video
- Spport for planar (non-interleaved) raw audio
- Support for planar (non-interleaved) raw audio
- GstVideoAggregator, compositor and OpenGL mixer elements are now in
-base
......@@ -98,14 +98,17 @@ Noteworthy new API
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 “v4lsrc ! xvimagesink” not claim that all frames are late in
the QoS events. Ideally, this should replace max_lateness for most
applications.
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.
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
......@@ -146,9 +149,10 @@ or planar arrangement in memory would look like
|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, but it
was never actually properly implemented in any elements. audioconvert
would advertise support for it, but wasn’t actually able to handle it.
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
......@@ -177,18 +181,18 @@ The video support library has gained support for detecting and
extracting Ancillary Data from videos as per the SMPTE S291M
specification, including:
- a VBI (Video 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 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 (Video Blanking Interval) encoder for writing ancillary data
to the Vertical Blanking Interval lines of component signals.
- 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:
......@@ -222,6 +226,9 @@ support:
- 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.
......@@ -239,7 +246,7 @@ New Elements
- gloverlaycompositor: New OpenGL-based compositor element that
flattens any overlays from GstVideoOverlayCompositionMetas into the
video stream.
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
......@@ -248,7 +255,7 @@ New Elements
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
- rtpfunnel funnels together RTP streams into a single session. Use
cases include multiplexing and bundle. webrtcbin uses it to
implement BUNDLE support.
......@@ -264,10 +271,12 @@ New Elements
WPE
- Two new OpenCV-based elements: cameracalibrate and cameraundistort
who can communicate to figure out distortion correction parameters
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
- 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
......@@ -348,12 +357,12 @@ New element features and additions
- rtspsrc now allows applications to send RTSP SET_PARAMETER and
GET_PARAMETER requests using action signals.
- rtspsrc also 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 unset
where it’s a problem. Some servers only allow a limited number of
concurren clients, so if no proper TEARDOWN is sent clients may have
- 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
......@@ -364,6 +373,7 @@ New element features and additions
- 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
......@@ -405,9 +415,9 @@ New element features and additions
relays (TURN servers).
- The removesilence element has received various new features and
properties, such as a
"threshold"1 property, detecting silence only after minimum silence time/buffers, a“silent”property to control bus message notifications as well as a“squash”`
property.
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
......@@ -430,15 +440,15 @@ 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 gststereo plugin
lying about somewhere.
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][aggregator]. 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.
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.
......@@ -456,14 +466,15 @@ 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.
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 gstopenglmixers plugin lying about somewhere.
don’t have a stale openglmixers plugin lying about somewhere.
Plugin removals
......@@ -477,11 +488,11 @@ The following plugins have been removed from gst-plugins-bad:
plugin.
- The acmmp3dec and acmenc plugins for Windows have been removed. ACM
is an ancient legacy API and there was no point in keeping them
around for a licensed mp3 decoder now that 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.
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
......@@ -506,7 +517,8 @@ Miscellaneous API additions
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
- 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(),
......@@ -522,11 +534,18 @@ Miscellaneous API additions
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), andGstVideoOverlayComposition`
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.