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

Release 1.15.2

parent 2864c635
=== release 1.15.2 ===
2019-02-26 11:43:43 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-plugins-base.doap:
* meson.build:
Release 1.15.2
2019-02-26 11:43:42 +0000 Tim-Philipp Müller <tim@centricular.com>
* docs/plugins/gst-plugins-base-plugins.args:
* docs/plugins/inspect/plugin-adder.xml:
* docs/plugins/inspect/plugin-alsa.xml:
* docs/plugins/inspect/plugin-app.xml:
* docs/plugins/inspect/plugin-audioconvert.xml:
* docs/plugins/inspect/plugin-audiomixer.xml:
* docs/plugins/inspect/plugin-audiorate.xml:
* docs/plugins/inspect/plugin-audioresample.xml:
* docs/plugins/inspect/plugin-audiotestsrc.xml:
* docs/plugins/inspect/plugin-cdparanoia.xml:
* docs/plugins/inspect/plugin-compositor.xml:
* docs/plugins/inspect/plugin-encoding.xml:
* docs/plugins/inspect/plugin-gio.xml:
* docs/plugins/inspect/plugin-libvisual.xml:
* docs/plugins/inspect/plugin-ogg.xml:
* docs/plugins/inspect/plugin-opengl.xml:
* docs/plugins/inspect/plugin-opus.xml:
* docs/plugins/inspect/plugin-overlaycomposition.xml:
* docs/plugins/inspect/plugin-pango.xml:
* docs/plugins/inspect/plugin-pbtypes.xml:
* docs/plugins/inspect/plugin-playback.xml:
* docs/plugins/inspect/plugin-rawparse.xml:
* docs/plugins/inspect/plugin-subparse.xml:
* docs/plugins/inspect/plugin-tcp.xml:
* docs/plugins/inspect/plugin-theora.xml:
* docs/plugins/inspect/plugin-typefindfunctions.xml:
* docs/plugins/inspect/plugin-videoconvert.xml:
* docs/plugins/inspect/plugin-videorate.xml:
* docs/plugins/inspect/plugin-videoscale.xml:
* docs/plugins/inspect/plugin-videotestsrc.xml:
* docs/plugins/inspect/plugin-volume.xml:
* docs/plugins/inspect/plugin-vorbis.xml:
* docs/plugins/inspect/plugin-ximagesink.xml:
* docs/plugins/inspect/plugin-xvimagesink.xml:
Update docs
2019-02-26 11:43:40 +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/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:
Update translations
2019-02-19 16:59:34 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
* gst/videorate/gstvideorate.c:
* gst/videorate/gstvideorate.h:
* tests/check/elements/videorate.c:
videorate: Add max-duplication-time property
This will only duplicate buffers if the gap between two consecutive
buffers is up to fill-until nsec. If it's larger, it will only output
the new buffer and mark it as discont.
2019-02-21 19:18:18 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* ext/meson.build:
meson: Remove outdated msvc-specific disabling code
This was done ages ago when the meson build files were newly added
but now we do the appropriate disabling in Cerbero instead since this
does not apply to gst-build.
https://gitlab.freedesktop.org/gstreamer/cerbero/issues/121
2019-02-20 09:46:30 +0000 Tim-Philipp Müller <tim@centricular.com>
* tests/check/libs/video.c:
tests: video: add basic sanity check of pstrides for formats
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/117
2019-02-09 17:21:13 +0000 James Cowgill <jcowgill@jcowgill.uk>
* gst-libs/gst/video/video-format.c:
video-format: Fix GBRA_10/12 alpha channel pixel strides
These formats have 4 components, so they should also have 4 components
of pixel stride.
2019-01-17 15:38:40 +0100 Victor Toso <me@victortoso.com>
* tests/check/libs/video.c:
tests: use GPOINTER_TO_INT to avoid warnings with mingw
New casts to avoid the the warnings mentioned below. While at it, move
some existing casts (introduced at 61bc9091894062b9) to use
GPOINTER_TO_INT too.
[458/673] Compiling C object 'tests/check/7d01337@@libs_video@exe/libs_video.c.obj'.
../tests/check/libs/video.c: In function 'fourcc_get_size':
../tests/check/libs/video.c:160:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
return (unsigned long) p->endptr;
^
In file included from ../tests/check/libs/video.c:32:
../tests/check/libs/video.c: In function 'test_video_formats':
../tests/check/libs/video.c:563:39: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
fail_unless_equals_int (size, (unsigned long) paintinfo.endptr);
^
And more.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/94
2019-01-17 15:25:58 +0100 Victor Toso <me@victortoso.com>
* tests/check/libs/profile.c:
tests: fix compiler warnings on Windows with mingw
With commit 3f184c3abc55, the gst_dir variable becomes unusable in
windows build. Moving it to linux scope to avoid warning:
[433/673] Compiling C object 'tests/check/7d01337@@libs_profile@exe/libs_profile.c.obj'.
../tests/check/libs/profile.c: In function 'profile_suite':
../tests/check/libs/profile.c:688:10: warning: unused variable 'gst_dir' [-Wunused-variable]
gchar *gst_dir;
^~~~~~~
Also fix a typo in the comment.
2019-02-18 15:24:18 +0100 Kristofer Bjorkstrom <kristofb@axis.com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
rtspconnection: Fix GError set over the top of a previous GError
The function fill_bytes could sometimes return a value greater than zero
and in the same time set the GError.
Function read_bytes calls fill_bytes in a while loop. In the special
case above it would call fill_bytes with error already set.
Thus resulting in "GError set over the top of a previous GError".
Solved this by clearing GError when return value is greater than zero.
Actions are taken depending on error type by caller of read_bytes. Eg.
with EWOULDBLOCK gst_rtsp_source_dispatch_read will try to read the
missing bytes again (GST_RTSP_EINTR )
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/445
2019-02-18 13:28:49 +0000 Tim-Philipp Müller <tim@centricular.com>
* gst-libs/gst/gl/egl/gsteglimage.c:
gl: eglimage: fix build on RPi by adding more fallback defines for EGL_*_EXT
2018-11-16 23:51:44 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* tests/check/libs/video.c:
tests: video: Test video format enum stability
It is really easy to break the API and insert a new video format in the
middle of the enum instead of at the end. This minimal test should catch
the most obvious errors. Ideally, this test should be updated after new
format have been added, so that it won't allow further modification to
the enumeration API.
2019-02-16 15:29:57 +0000 Tim-Philipp Müller <tim@centricular.com>
* gst-libs/gst/pbutils/descriptions.c:
pbutils: add description for AV1 codec
Fixes #558
2019-02-15 16:45:09 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* ext/gl/gstglimagesink.c:
glimagesink: Don't call set_property helper in get_property
2019-02-13 11:59:10 +0100 Edward Hervey <edward@centricular.com>
* gst-libs/gst/gl/wayland/Makefile.am:
wayland: Also dist the private header
2019-02-11 10:01:55 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst-libs/gst/gl/egl/gsteglimage.c:
eglimage: Add some more defines
This allow building on advertised version of libdrm drm_fourcc.h files.
Fixes #549
2019-02-11 10:01:50 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst-libs/gst/gl/egl/gsteglimage.c:
Revert "fix issue"
This reverts commit 5e0c458e0ef544f1afae13c5eb047bc0826b011a.
2019-02-11 16:13:15 +0800 yanle.zhang <yanle.zhang@hobot.cc>
* gst-libs/gst/gl/egl/gsteglimage.c:
fix issue 549."https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/549".
2019-01-30 10:49:37 -0300 Thibault Saunier <tsaunier@igalia.com>
* tools/gst-device-monitor.c:
tools: device-monitor: Add support for modified devices
2019-02-08 21:38:04 +0900 Seungha Yang <seungha.yang@navercorp.com>
* gst-libs/gst/gl/gstglupload.c:
glupload: Don't leak caps features
Create caps features when it is required.
2018-12-14 16:33:50 +0100 Niels De Graef <niels.degraef@barco.com>
* gst-libs/gst/gl/meson.build:
* gst-libs/gst/gl/wayland/Makefile.am:
* gst-libs/gst/gl/wayland/gstgldisplay_wayland.c:
* gst-libs/gst/gl/wayland/gstgldisplay_wayland.h:
* gst-libs/gst/gl/wayland/gstgldisplay_wayland_private.h:
* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c:
* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h:
* m4/gst-gl.m4:
gl/wayland: add support for XDG-shell
[wl_shell] is officially [deprecated], so provide support for the
XDG-shell protocol should be provided by all desktop-like compositors.
(In case they don't, we can of course fall back to wl_shell).
Note that the [XML spec] is provided by the `wayland-protocols`
git repository, which is provided by the Wayland project.
[wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
[deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
[XML spec]: https://github.com/wayland-project/wayland-protocols/blob/master/stable/xdg-shell/xdg-shell.xml
2018-12-14 14:54:24 +0100 Niels De Graef <niels.degraef@barco.com>
* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c:
gl/wayland: extract code to create wl_shell_surface
This is just a cosmetic change that will make it easier to differentiate
between wl_shell and xdg_wm_base later.
2018-12-14 14:28:26 +0100 Niels De Graef <niels.degraef@barco.com>
* gst-libs/gst/gl/wayland/gstgldisplay_wayland.c:
* gst-libs/gst/gl/wayland/gstgldisplay_wayland.h:
* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c:
* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h:
gl/wayland: prefix shell(_surface) with wl_
This will help us make the distinction later with xdg-shell and other
possible protocols that need to be supported.
2019-02-05 22:06:15 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* tests/check/elements/videoscale.c:
* tests/check/libs/profile.c:
* tests/check/libs/rtpbasedepayload.c:
misc: Fix compiler warnings on Cerbero's MinGW
rtpbasedepayload.c:126:5: error: unknown conversion type character 'z' in format [-Werror=format]
profile.c:688:10: error: unused variable 'gst_dir' [-Werror=unused-variable]
2019-02-04 11:48:25 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
* gst-libs/gst/video/gstvideodecoder.c:
videodecoder: remove useless code in negotiate_default_caps()
gst_video_decoder_negotiate_default_caps() is meant to pick a default output
format when we need one earlier because of an incoming GAP.
It tries to use the input caps as a base if available and fallback to a default
format (I420 1280x720@30) for the missing fields.
But the framerate and pixel-aspect were not explicitly passed to
gst_video_decoder_set_output_state() which is solely relying on the input format
as reference to get the framerate anx pixel-aspect-ratio.
So there is no need to manually handling those two fields as
gst_video_decoder_set_output_state() will already use the ones from
upstream if available, and they will be ignored anyway if there are not.
This also prevent confusing debugging output where we claim to use a
specific framerate while actually none was set.
2019-01-31 15:22:21 +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 14:32:50 +0200 Sebastian Dröge <sebastian@centricular.com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
rtspconnection: Fix uninitialized variable warning when compiling with pre-2.59.1 GLib
gstrtspconnection.c: In function ‘writev_bytes’:
gstrtspconnection.c:1348:10: error: ‘res’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
return res;
^
2019-01-30 20:41:13 +0900 Seungha Yang <seungha.yang@navercorp.com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
rtspconnection: Fix broken build on GLib 2.59.0
GPollableReturn enum was introduced after GLib 2.59.0 release.
2019-01-29 10:38:15 +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 18:04:11 -0300 Thibault Saunier <tsaunier@igalia.com>
* gst/typefind/gsttypefindfunctions.c:
typefindfunctions: Add a function to typefind xges files
2019-01-27 12:35:12 +0900 mrk501 <mrk501e@outlook.com>
* gst-libs/gst/audio/gstaudioringbuffer.c:
audioringbuffer: Fix wrong memcpy address when reordering channels
When using multichannel audio data and being needed to reorder channels,
audio data is not copied correctly because destination address of
memcpy is wrong.
For example, the following command
$ gst-launch-1.0 pulsesrc ! audio/x-raw,channels=6,format=S16LE ! filesink location=test.raw
will reproduce this issue if there is 6-ch audio input device.
This commit fixes that.
The detailed process of this issue is as follows:
1. gst-launch-1.0 calls gst_pulsesrc_prepare (gst-plugins-good/ext/pulse/pulsesrc.c)
1466 gst_pulsesrc_prepare (GstAudioSrc * asrc, GstAudioRingBufferSpec * spec)
1467 {
(skip...)
1480 {
1481 GstAudioRingBufferSpec s = *spec;
1482 const pa_channel_map *m;
1483
1484 m = pa_stream_get_channel_map (pulsesrc->stream);
1485 gst_pulse_channel_map_to_gst (m, &s);
1486 gst_audio_ring_buffer_set_channel_positions (GST_AUDIO_BASE_SRC
1487 (pulsesrc)->ringbuffer, s.info.position);
1488 }
In my environment, after line 1485 is processed, position of spec and s are
spec->info.position[0] = 0
spec->info.position[1] = 1
spec->info.position[2] = 2
spec->info.position[3] = 6
spec->info.position[4] = 7
spec->info.position[5] = 8
s.info.position[0] = 0
s.info.position[1] = 6
s.info.position[2] = 2
s.info.position[3] = 1
s.info.position[4] = 7
s.info.position[5] = 8
The values of spec->info.positions equal
GST_AUDIO_BASE_SRC(pulsesrc)->ringbuffer->spec->info.positions.
2. gst_audio_ring_buffer_set_channel_positions calls
gst_audio_get_channel_reorder_map.
3. Arguments of gst_audio_get_channel_reorder_map are
from = s.info.position
to = GST_AUDIO_BASE_SRC(pulsesrc)->ringbuffer->spec->info.positions
At the end of this function, reorder_map is set to
reorder_map[0] = 0
reorder_map[1] = 3
reorder_map[2] = 2
reorder_map[3] = 1
reorder_map[4] = 4
reorder_map[5] = 5
4. Go back to gst_audio_ring_buffer_set_channel_positions and
2065 buf->need_reorder = TRUE;
is processed.
5. Finally, in gst_audio_ring_buffer_read,
1821 if (need_reorder) {
(skip...)
1829 memcpy (data + i * bpf + reorder_map[j] * bps, ptr + j * bps, bps);
is processed and makes this issue.
2019-01-24 17:52:50 +0200 Sebastian Dröge <sebastian@centricular.com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
rtspconnection: Update to merged GOutputStream::writev() API
2018-11-30 12:47:57 +0200 Sebastian Dröge <sebastian@centricular.com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
rtspconnection: Handle EOF on writev() after checking for all other error conditions
Otherwise we would return EOF if nothing was written in any case, even
if this was actually a case of TIMEOUT or EWOULDBLOCK for example.
Thanks to Edward Hervey for debugging and finding this issue.
2018-10-24 11:32:22 +0200 Ognyan Tonchev <ognyan@axis.com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
rtspconnection: Fixes for corrupt RTP packets in dispatch_write()
Fixes 2 problems:
1) Number of unmapped memories does not always match number of mmaped ones in
dispatch_write().
2) When dispatch_write() is dispatched second time after an incomplete write,
already set offsets will not be taken into account, thus corrupt RTP data will
be sent.
2018-09-17 17:03:45 +0300 Sebastian Dröge <sebastian@centricular.com>
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/rtsp/gstrtspconnection.c:
* gst-libs/gst/rtsp/gstrtspconnection.h:
rtsp-connection: Make use of new GstRTSPMessage API for directly storing a body buffer and add API for writing multiple messages
By doing so we can send a whole GstBufferList and each memory in the
contained buffers without copying into a single memory area and with a
single writev() call. This improves performance considerably for
high-packet-rate streams.
This depends on https://gitlab.gnome.org/GNOME/glib/merge_requests/333
to be efficient, otherwise each chunk of memory is a separate write()
call.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/370
2018-08-17 12:51:31 +0300 Sebastian Dröge <sebastian@centricular.com>
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/rtsp/gstrtspmessage.c:
* gst-libs/gst/rtsp/gstrtspmessage.h:
rtsp-message: Add support for storing GstBuffers directly as body payload of messages
This makes it unnecessary for callers to first merge together all
memories, and it allows API like GstRTSPConnection to write them out
without first copying all memories together or using writev()-style API
to write multiple memories out in one go.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/370
2019-01-28 15:16:06 +0100 Andrew Gall <a.gall@activevideo.com>
* gst-libs/gst/video/video-anc.c:
video-anc: Fix glib version check for G_GNUC_CHECK_VERSION macro
Fixes #544
2019-01-28 13:54:43 +0900 Seungha Yang <seungha.yang@navercorp.com>
* tests/check/libs/discoverer.c:
tests: discoverer: Add async API test cases
Add more test cases for async APIs such as gst_discoverer_{start,stop},
and gst_discoverer_discover_uri_async()
2019-01-28 18:13:27 +0900 Seungha Yang <seungha.yang@navercorp.com>
* gst-libs/gst/pbutils/gstdiscoverer.c:
discoverer: Hold GSource object instead of source id
g_source_remove() works only for a GSource which was attached
to default GMainContext, but the GSource might be attached to
custom context depending on how gst_discoverer_start() was called.
Whatever the attached context was, g_source_destroy() can clean it up.
2019-01-24 10:14:36 +0200 Sebastian Dröge <sebastian@centricular.com>
* ext/gl/gstglcolorbalance.c:
glcolorbalance: Copy caps in transform_internal_caps()
We don't get ownership of the caps that are passed in, and doing so
causes crashes at a later time.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/546
2019-01-22 13:24:29 +0000 Tim-Philipp Müller <tim@centricular.com>
* gst-libs/gst/gl/meson.build:
meson: opengl: fix enabled_gl_apis in pkg-config file
Make consistent with what autotools puts into enabled_gl_apis
variable. Autotools puts 'gl' in there instead of 'opengl'.
This would cause problems when building -bad glmixers plugin
in meson against a -base that was built with autotools.
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/871
2018-12-19 10:59:09 +0800 Haihao Xiang <haihao.xiang@intel.com>
* gst-libs/gst/gl/x11/gstglwindow_x11.c:
gstglwindow_x11: require a resize event at once after XResizeWindow
Otherwise surface_width/surface_height stored in GstGLWindowPrivate
isn't changed, sometimes an unnecessary reconfigure event is sent on
sinkpad, then result in upstream reconfiguring.
Example pipeline:
gst-launch-1.0 videotestsrc ! msdkvpp ! glimagesink
2019-01-18 11:39:02 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* ext/alsa/Makefile.am:
* ext/alsa/gstalsadeviceprobe.c:
* ext/alsa/gstalsadeviceprobe.h:
* ext/alsa/gstalsadeviceprovider.c:
* ext/alsa/gstalsadeviceprovider.h:
* ext/alsa/gstalsaplugin.c:
* ext/alsa/gstalsasink.c:
* ext/alsa/gstalsasrc.c:
* ext/alsa/meson.build:
Revert "alsa: Implement a DeviceProvider"
This reverts commit 69c3c31608ecebfadd9717e950d8c708988563e3.
All devices have the same name, they are duplicated with pulseaudio one
and the provided does not respond to HW being plugged/unplugged. I think
it's not ready for 1.16.
2018-08-31 18:33:43 -0300 Thibault Saunier <tsaunier@igalia.com>
* ext/alsa/Makefile.am:
* ext/alsa/gstalsadeviceprobe.c:
* ext/alsa/gstalsadeviceprobe.h:
* ext/alsa/gstalsadeviceprovider.c:
* ext/alsa/gstalsadeviceprovider.h:
* ext/alsa/gstalsaplugin.c:
* ext/alsa/gstalsasink.c:
* ext/alsa/gstalsasrc.c:
* ext/alsa/meson.build:
alsa: Implement a DeviceProvider
Removing gstalsadeviceprobe.[ch] as it was a relique from the 0.10
century.
2018-12-07 18:07:42 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com>
* gst-libs/gst/video/gstvideoaggregator.c:
videoaggregator: remove broken rate adjustment
The start_time and end_time in this context have already
been adjusted for the input's rate by converting them to running
time above. What is needed afterwards is to compare these
with the output's start/stop running time, which also takes
into account the rate, so we are comparing equal things.
Multiplying these with the output's rate here is only breaking
this logic. In most cases the input and output rate is the same,
so this multiplication effectively reverses the rate adjustment
that happened while converting to running time, which is why
we see the video playing with the original rate in tests.
Fixes #541
=== release 1.15.1 ===
2019-01-17 01:50:25 +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