From 82a58f567f758140d7f50aad521ec8e04b3823a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Fri, 19 Jun 2020 19:16:01 +0100 Subject: [PATCH] Release 1.17.1 --- ChangeLog | 5692 +++++++++++++++++++++++++++ NEWS | 1300 +----- RELEASE | 15 +- docs/plugins/gst_plugins_cache.json | 529 ++- gst-plugins-base.doap | 12 +- meson.build | 2 +- 6 files changed, 6279 insertions(+), 1271 deletions(-) diff --git a/ChangeLog b/ChangeLog index dbbae2ae78..31d1f6495e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,5695 @@ +=== release 1.17.1 === + +2020-06-19 19:16:01 +0100 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * gst-plugins-base.doap: + * meson.build: + Release 1.17.1 + +2020-06-19 12:17:55 +0300 Sebastian Dröge + + * gst-libs/gst/audio/audio-converter.c: + * gst-libs/gst/audio/audio-converter.h: + * gst-libs/gst/audio/audio-resampler.c: + * gst-libs/gst/audio/audio-resampler.h: + * gst-libs/gst/pbutils/install-plugins.c: + * gst-libs/gst/rtp/gstrtcpbuffer.c: + * gst-libs/gst/rtsp/gstrtspmessage.h: + Fix up and add various "Since" markers and other related docs fixes + Part-of: + +2020-06-18 12:15:57 +0200 Guillaume Desmottes + + * gst-libs/gst/sdp/gstsdpmessage.c: + sdp: fix gst_sdp_message_new_from_text() doc + Arguments were in the wrong order in the doc. + Part-of: + +2020-06-18 10:40:14 +0100 Tim-Philipp Müller + + * tests/validate/meson.build: + tests: validate: Add workaround for older meson versions + subproject.get_variable() only has fallback since 0.51 + Part-of: + +2020-06-18 09:01:34 +0900 Hosang Lee + + * tests/check/elements/subparse.c: + tests: subparse: add test for webvtt without hour component + Test for webvtt without hour component. + mm:ss.000 + +2020-06-15 13:22:38 -0400 Thibault Saunier + + * gst/videotestsrc/gstvideotestsrc.c: + videotestsrc: Do not try to answer the duration query before negotiation + We have no idea at that moment and this code was trying to divide by 0! + Part-of: + +2020-06-15 09:46:17 -0400 Aaron Boxer + + * gst-libs/gst/video/video-frame.c: + video: allow frame copy where destination dimensions are smaller than source + Part-of: + +2020-06-12 13:04:23 +1000 Matthew Waters + + * tests/examples/gl/meson.build: + * tests/examples/gl/qt/meson.build: + * tests/examples/gl/qt/mousevideooverlay/meson.build: + * tests/examples/gl/qt/qglwidgetvideooverlay/meson.build: + * tests/examples/gl/qt/qglwtextureshare/meson.build: + * tests/examples/gl/qt/qglwtextureshare/pipeline.cpp: + * tests/examples/gl/qt/qglwtextureshare/qglrenderer.cpp: + * tests/examples/gl/qt/videooverlay/GeneratedFiles/debug/moc_gstthread.cpp: + * tests/examples/gl/qt/videooverlay/GeneratedFiles/debug/moc_pipeline.cpp: + * tests/examples/gl/qt/videooverlay/GeneratedFiles/debug/moc_qrenderer.cpp: + * tests/examples/gl/qt/videooverlay/meson.build: + * tests/examples/gl/qt/videooverlay/videooverlay.pri: + * tests/examples/gl/qt/videooverlay/videooverlay.pro: + gl/examples/qt: hook up to meson build + Part-of: + +2020-06-06 01:22:21 +1000 Jan Schmidt + + * gst-libs/gst/video/video-converter.c: + * tests/check/libs/video.c: + video-converter: Add checks for configuration sanity. + If the cropping or scaling input or output rects put us completely + outside the input/output frame respectively, we can't draw anything + except black safely. Check for those conditions and don't set up a + configuration that attempts to access out of bounds memory outside + the input/output framebuffers. + Part-of: + +2020-06-05 23:34:44 +1000 Jan Schmidt + + * gst-libs/gst/video/video-converter.c: + * tests/check/libs/video.c: + video-converter: Guard against invalid frame input + If the frames passed in to gst_video_converter_frame() + have a different layout than was configured for, the + conversion code might go out of bounds and crash. + Do a sanity check on each frame passed in, and in the + absence of a return value in the API, just + refuse the conversion in invalid cases and leave the + destination frame untouched so it's obvious to + users that it was broken. + Part-of: + +2020-06-12 00:21:56 +0200 David Bender + + * gst-libs/gst/gl/x11/gstglwindow_x11.c: + gstglwindow_x11: fix resize + This patch was taken from #629#note_178766, the comment made + at the time was: + The root issue is a mismatch between the initialization of render_rect + in GstGLWindowX11Private and what's expected in the draw_cb function. + Because render_rect is not explicitly initialized to a width and height + of -1 (unlike gstglwindow_wayland_egl.c which does initialize to -1), + the less-than check for explicitly-set render_rect at gstglwindow_x11.c:453-454 + always fails, even when the parent_win has been set and the render rectangle + has never been set. + Maybe this came from copying the similar check in the wayland code? Regardless, + I think the correct inequality should be '<= 0' (on both lines). + Alternatively initialization could be changed, but other sinks, e.g. + xvimagesink don't appear to use -1 to mean "unset" render_rect this way. + The issue can be reproduced by running the example in + tests/examples/gl/qt/videooverlay/ on X11, and resizing the output + window + Part-of: + +2020-06-12 00:17:24 +0200 Mathieu Duponchelle + + * gst-libs/gst/video/videooverlay.c: + videooverlay: chevrons don't need to be escaped in code examples + Part-of: + +2020-06-11 16:39:23 -0400 Thibault Saunier + + * gst/playback/gstdecodebin3.c: + decodebin3: Lower error message to debug + Debugging leftover + Part-of: + +2020-06-11 20:57:58 +0300 Jordan Petridis + + * ext/libvisual/visual.c: + libvisual: use gst_element_class_set_metadata when passing dynamic strings + gst_element_class_set_metadata is meant to only be used with + static or inlined strings, which isn't the case for this element + resulting in use-after-free later on. + https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c#gst_element_class_set_static_metadata + Part-of: + +2020-06-11 13:16:40 +0530 Nirbheek Chauhan + + * meson_options.txt: + * tests/meson.build: + * tests/validate/meson.build: + meson: Use the tests option for validate + This is what gstreamer core does too, and avoids a configure error + when tests are disabled globally. Also print a useful error when + gst_tester is not found from the gstreamer subproject. + This broke in https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/667 + Part-of: + +2020-06-09 15:18:43 -0400 Thibault Saunier + + * docs/plugins/gst_plugins_cache.json: + docs: Update plugins cache + +2020-06-10 10:43:42 +0200 Guillaume Desmottes + + * gst-libs/gst/audio/audio-format.h: + audio: add missing space in GST_AUDIO_FORMATS_ALL + Part-of: + +2020-06-08 10:40:15 -0400 Thibault Saunier + + * docs/plugins/gst_plugins_cache.json: + docs: Update plugins cache + +2020-06-04 16:40:44 +0200 Guillaume Desmottes + + * gst-libs/gst/video/video-format.h: + video: sort formats by quality + Will ensure that we pick the "best" format when negotiating caps. + Fix #649 + Part-of: + +2020-06-04 16:40:44 +0200 Guillaume Desmottes + + * gst-libs/gst/audio/audio-format.h: + audio: sort formats by quality + Will ensure that we pick the "best" format when negotiating caps. + Fix #649 + Part-of: + +2020-06-05 15:26:58 +0200 Guillaume Desmottes + + * tests/check/elements/compositor.c: + * tests/validate/videorate/change_rate_reverse_playback.validatetest: + * tests/validate/videorate/change_rate_while_playing.validatetest: + * tests/validate/videorate/check-rate-prop.meta: + tests: enforce I420 format + Tests are assuming video is I420 but are not actually enforcing it. + Part-of: + +2020-05-22 00:35:03 -0400 Thibault Saunier + + * gst/playback/gsturidecodebin3.c: + uridecodebin3: Let decodebin do its stream selection if no one answers + If no one answers our `select-stream` signal, uridecodebin3 should + behave the same way as `decodebin3` and let decodebin do its own stream + selection. + Part-of: + +2020-05-22 00:32:15 -0400 Thibault Saunier + + * gst/playback/gstdecodebin3.c: + decodebin3: Avoid overriding explicit user selection + In case the user set a list of streams to select or answer explicitly + to all 'select-stream' event, we should respect his choice and not + try to add a stream per type. + Part-of: + +2020-06-08 08:11:00 +0200 Edward Hervey + + * tests/check/elements/decodebin.c: + tests: Avoid hang with decodebin test + When adding elements dynamically to a pipeline one should never guess what the + curren/target state is, and instead use `gst_element_sync_state_with_parent()`. + Fixes racy hang when running within valgrind + Part-of: + +2020-06-06 20:22:28 +0900 Seungha Yang + + * gst/playback/gstplaybin2.c: + * gst/playback/gstplaybin3.c: + playbin: Fix wrong AV element pair selection when rank is very large value + If user set very high rank to an element (e.g., integer max), + integer overflow can happen while multiplication operation + Part-of: + +2020-06-06 00:41:17 +0200 Mathieu Duponchelle + + * ext/cdparanoia/gstcdparanoiasrc.c: + * ext/gl/gstglalpha.c: + * ext/gl/gstgldeinterlace.c: + * ext/gl/gstgleffects.c: + * ext/gl/gstglimagesink.c: + * ext/gl/gstglmixer.c: + * ext/gl/gstglmixerbin.c: + * ext/gl/gstglstereomix.c: + * ext/gl/gstgltestsrc.c: + * ext/gl/gstglvideoflip.c: + * ext/gl/gstglvideomixer.c: + * ext/opus/gstopusenc.c: + * ext/pango/gstbasetextoverlay.c: + * ext/pango/gsttextrender.c: + * ext/pango/gsttimeoverlay.c: + * ext/theora/gsttheoraenc.c: + * gst/audiomixer/gstaudiointerleave.c: + * gst/audiomixer/gstaudiomixer.c: + * gst/audioresample/gstaudioresample.c: + * gst/audiotestsrc/gstaudiotestsrc.c: + * gst/compositor/compositor.c: + * gst/encoding/gstencodebin.c: + * gst/playback/gstdecodebin2.c: + * gst/playback/gstplaybin2.c: + * gst/playback/gstplaysink.c: + * gst/rawparse/gstrawaudioparse.c: + * gst/tcp/gstmultihandlesink.c: + * gst/videoscale/gstvideoscale.c: + * gst/videotestsrc/gstvideotestsrc.c: + plugins: uddate gst_type_mark_as_plugin_api() calls + +2020-06-04 16:25:12 +0300 Sebastian Dröge + + * tests/check/libs/videoencoder.c: + videoencoder: Add test for min-force-key-unit-interval property + Part-of: + +2020-06-04 15:19:18 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideoencoder.c: + * tests/check/libs/videoencoder.c: + videoencoder: Also don't request a new key-unit if we already got one after the requested running time + Part-of: + +2020-06-04 15:10:12 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideoencoder.c: + videoencoder: Don't request another keyunit if another one is pending or we requested one for a future time already + Part-of: + +2020-06-03 21:46:38 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideoencoder.c: + * gst-libs/gst/video/gstvideoencoder.h: + videoencoder: Add min-force-key-unit-interval property + This allows configuring the minimum interval between subsequent + force-key-unit requests and prevents a big bitrate increase if a lot of + key-units are requested. + Part-of: + +2020-06-03 20:49:12 +0300 Sebastian Dröge + + * tests/check/libs/videoencoder.c: + videoencoder: Add test for correct force-keyunit event handling + Part-of: + +2020-06-03 20:26:33 +0300 Sebastian Dröge + + * tests/check/libs/videoencoder.c: + videoencoder: Fix force-keyunit handling in test + This now behaves according to the videoencoder API instead of some other + signalling. + Part-of: + +2020-06-03 22:38:07 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideoencoder.c: + videoencoder: When pushing headers as part of a keyframe mark the first header as keyframe + Part-of: + +2020-06-03 20:17:06 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideoencoder.c: + videoencoder: Handle all matching force-keyunit events at once + Previously we only handled one event at a time, which could lead to the + following two suboptimal situations: + - frame 0 at 20ms, frame 1 at 40ms and two force-keyunit events at 10ms + and 15ms. We would create a new keyframe for both of the frames. + - 100 force-keyunit events with running-time NONE would cause all + following 100 frames to be made into a keyframe. + Part-of: + +2020-06-03 19:59:03 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideoencoder.c: + videoencoder: Sort force-keyunit-events by their running time + That way we can more easily work with the whole list without iterating + over all of the elements. + Part-of: + +2020-06-03 11:29:09 +0200 Edward Hervey + + * gst/playback/gsturidecodebin.c: + uridecodebin: Dont link random pads + When linking source pads to decodebin, make sure we use the *specified* new + source pad and not some random one. + This avoids ending up with source pads being unlinked. + Main cause of random timeouts with rtsp change_state_intensive validate tests + Part-of: + +2020-06-04 10:41:13 +0200 Stéphane Cerveau + + * gst-libs/gst/video/video-hdr.c: + video-hdr: fix memset warning + Fix warning on fedora arm64 target + Part-of: + +2020-06-04 11:22:00 -0400 Nicolas Dufresne + + * gst-libs/gst/video/video-format.c: + video: Fix NV12_64Z32 number of component + This format has 3 components, just like NV12. + Part-of: + +2020-06-03 20:50:05 -0400 Thibault Saunier + + * gst-libs/gst/video/video-multiview.h: + doc: Add a minimal GstVideoMultiviewFlagsSet documentation + +2020-06-03 18:38:38 -0400 Thibault Saunier + + * docs/meson.build: + doc: Require hotdoc >= 0.11.0 + +2020-05-27 16:00:48 +0300 Sebastian Dröge + + * docs/plugins/gst_plugins_cache.json: + docs: Update gst_plugins_cache.json + +2020-05-29 02:43:59 +0200 Mathieu Duponchelle + + * ext/cdparanoia/gstcdparanoiasrc.c: + * ext/gl/gstglalpha.c: + * ext/gl/gstgldeinterlace.c: + * ext/gl/gstgleffects.c: + * ext/gl/gstglimagesink.c: + * ext/gl/gstglmixer.c: + * ext/gl/gstglmixerbin.c: + * ext/gl/gstglstereomix.c: + * ext/gl/gstgltestsrc.c: + * ext/gl/gstglvideoflip.c: + * ext/gl/gstglvideomixer.c: + * ext/opus/gstopusenc.c: + * ext/pango/gstbasetextoverlay.c: + * ext/pango/gsttextrender.c: + * ext/pango/gsttimeoverlay.c: + * ext/theora/gsttheoraenc.c: + * gst/audiomixer/gstaudiointerleave.c: + * gst/audiomixer/gstaudiomixer.c: + * gst/audioresample/gstaudioresample.c: + * gst/audiotestsrc/gstaudiotestsrc.c: + * gst/compositor/compositor.c: + * gst/encoding/gstencodebin.c: + * gst/playback/gstdecodebin2.c: + * gst/playback/gstplaybin2.c: + * gst/playback/gstplaysink.c: + * gst/rawparse/gstrawaudioparse.c: + * gst/rawparse/gstrawaudioparse.h: + * gst/tcp/gstmultihandlesink.c: + * gst/videoscale/gstvideoscale.c: + * gst/videotestsrc/gstvideotestsrc.c: + plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin types + +2020-06-03 15:06:08 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideoencoder.c: + videoencoder: Simplify header buffer metadata updating + Instead of doing a shallow copy of the list just to call make_writable() + on each buffer, do that inline in the same loop and modify the list + contents. + Part-of: + +2020-06-03 14:37:00 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideodecoder.c: + * gst-libs/gst/video/gstvideoencoder.c: + * gst-libs/gst/video/gstvideoutils.h: + video: Use GQueue instead of plain GList in a few places + Also not optimal but at least simplifies the code a bit and doesn't + require g_list_length() and g_list_append() in a few places. + For 2.0 there are some more candidates to change but unfortunately + they're currently part of the API. + Part-of: + +2020-06-02 16:56:44 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-format.c: + video-format: RGB16/15 are not 16 bit per component but only 5.333 and 5 + Part-of: + +2020-05-27 15:41:43 +0200 Guillaume Desmottes + + * gst-libs/gst/audio/audio-format.c: + * gst-libs/gst/audio/audio-format.h: + * gst-libs/gst/audio/audio-info.h: + * tests/check/libs/audio.c: + audio: add gst_audio_make_raw_caps() + More binding friendly version of GST_AUDIO_CAPS_MAKE(). + Part-of: + +2020-06-01 15:24:32 +0200 Guillaume Desmottes + + * gst-libs/gst/audio/audio-format.h: + audio-format: remove empty space prefix from GST_AUDIO_FORMATS_ALL + This space prevent deserialization using gst_value_deserialize(). + Part-of: + +2020-05-27 15:05:37 +0200 Guillaume Desmottes + + * gst-libs/gst/audio/audio-format.c: + * gst-libs/gst/audio/audio-format.h: + audio-format: add gst_audio_formats_raw() + The existing GST_AUDIO_FORMATS_ALL macro is not binding friendly. + Part-of: + +2020-05-27 15:41:43 +0200 Guillaume Desmottes + + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-format.h: + * tests/check/libs/video.c: + video: add gst_video_make_raw_caps() + More binding friendly version of GST_VIDEO_CAPS_MAKE(). + Part-of: + +2020-05-27 15:05:37 +0200 Guillaume Desmottes + + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-format.h: + video-format: add gst_video_formats_raw() + The existing GST_VIDEO_FORMATS_ALL macro is not binding friendly. + Part-of: + +2020-05-29 19:08:51 +1000 Matthew Waters + + * gst-libs/gst/gl/eagl/gstglwindow_eagl.m: + glcontext/eagl: handle sending one message during shutdown + gst_gl_window_quit() will attempt to send a message but will be called + from GstGLContext's finalize handler and so the weak ref that backs + gst_gl_window_get_context will return NULL as it has already been + cleared. We need that context in send_message_async to decide whether + to run the provided callback immediately or queue in GCD + This is the equivalent commit for iOS as: + 7f59cefafb1cd733cf527fb935b2cd32418fcbe2 + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/618 + Part-of: + +2020-05-29 15:44:55 +1000 Matthew Waters + + * gst-libs/gst/gl/eagl/gstglcontext_eagl.h: + * gst-libs/gst/gl/eagl/gstglcontext_eagl.m: + * gst-libs/gst/gl/eagl/gstglios_utils.h: + * gst-libs/gst/gl/eagl/gstglwindow_eagl.h: + * gst-libs/gst/gl/eagl/gstglwindow_eagl.m: + * gst-libs/gst/gl/meson.build: + gl/eagl: don't access UIkit objects on the main thread + This means we cannot access [view layer] or view.bounds from the OpenGL + thread. This also means that we need to call the main thread when + setting the window handle. However, we cannot perform that + synchronously as that may deadlock with the application performing the + set_window_handle() call. + We need to defer the actual update and run it asynchronously and wait + for the window handle update internally at each point it is needed. + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/372 + Part-of: + +2020-05-29 14:12:38 +1000 Matthew Waters + + * gst-libs/gst/gl/eagl/gstglcontext_eagl.h: + * gst-libs/gst/gl/eagl/gstglcontext_eagl.m: + * gst-libs/gst/gl/eagl/gstglwindow_eagl.h: + * gst-libs/gst/gl/eagl/gstglwindow_eagl.m: + gl/ios: fix typo GS_GL -> GST_GL + Part-of: + +2020-05-29 16:21:11 -0400 Thibault Saunier + + * gst/videorate/gstvideorate.c: + * tests/validate/meson.build: + * tests/validate/videorate/check-rate-prop.meta: + * tests/validate/videorate/rate_0_5.validatetest: + * tests/validate/videorate/rate_0_5/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/rate_0_5/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/rate_0_5_with_decoder.validatetest: + * tests/validate/videorate/rate_0_5_with_decoder/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/rate_0_5_with_decoder/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/rate_2_0.validatetest: + * tests/validate/videorate/rate_2_0/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/rate_2_0/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/rate_2_0_with_decoder.validatetest: + * tests/validate/videorate/rate_2_0_with_decoder/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/rate_2_0_with_decoder/flow-expectations/log-videorate-src-expected: + videorate: Update QoS events taking into account our rate + Otherwise there is a mismatch between the QoS values and what upstream + would expect, leading to too much buffer dropping in video decoders in + case rate < 1.0 or not enough buffer dropping in case rate > 1.0 + Adding validate tests with and without decoders. + Part-of: + +2020-05-31 00:27:14 -0400 Thibault Saunier + + * gst/videorate/gstvideorate.c: + * gst/videorate/gstvideorate.h: + * tests/validate/meson.build: + * tests/validate/videorate/change_rate_reverse_playback.validatetest: + * tests/validate/videorate/change_rate_reverse_playback/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/change_rate_reverse_playback/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/change_rate_while_playing.validatetest: + * tests/validate/videorate/change_rate_while_playing/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/change_rate_while_playing/flow-expectations/log-videorate-src-expected: + videorate: Fix changing `rate` property during playback + We need to take into account the base_ts to compute next_ts and it needs + to be updated on rate change. + This introduces `pending_rate` so that change rate is properly handled + in the streaming thread in a safe way. + Added tests + Part-of: + +2020-05-28 13:42:22 -0400 Thibault Saunier + + * tests/validate/meson.build: + * tests/validate/videorate/10_to_1fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/10_to_1fps/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/reverse.10_to_30fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/reverse.10_to_30fps/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/reverse.1_to_10fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/reverse.1_to_10fps/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/reverse.30fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/reverse.30fps/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/reverse.variable_to_10fps.validatetest: + * tests/validate/videorate/reverse.variable_to_10fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/reverse.variable_to_10fps/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/videorate-test.meta: + tests:validate: Run all test using a simple fakesink + `fakevideosink` is in -bad and thus not available here. + Update the expectation files as video metas are not negotiated anymore. + Part-of: + +2020-05-29 11:39:57 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/gl/gstglcolorconvert.h: + * gst-libs/gst/gl/gstglmemory.h: + * gst-libs/gst/gl/gstglupload.h: + libs: gl: silence gir compiler + There were a couple complains of the gir compiler on these gstgl + files. + * Added namespace to public macros, even if they are helpers. + * Removed a misused private tag + Part-of: + +2020-01-23 12:38:44 -0600 Michael Gruner + + * gst/videoscale/gstvideoscale.c: + videoscale: reorder code to avoid indent missmatches + Part-of: + +2020-01-23 11:02:52 -0600 Michael Gruner + + * gst/videoscale/gstvideoscale.c: + videoscale: transform size sensitive metas + Currently, videoscale just drops all metas that have other tags + besides video. However videoscale wont change the colorspace or + the orientation of the video so metas tagged as such may be + copied safely. Additionaly, given that videoscale will change + the frame size, we invoke the meta transform implementation + to give it the opportunity to scale accordingly. + Part-of: + +2020-01-22 22:30:11 +0900 Seungha Yang + + * tests/check/libs/audiosink.c: + * tests/check/meson.build: + tests: audiosink: Test class extension struct + Test a vfunc which belongs to GstAudioSinkExtension struct. + Part-of: + +2020-01-22 00:14:14 +0900 Seungha Yang + + * gst-libs/gst/audio/gstaudiosink.c: + * gst-libs/gst/audio/gstaudiosink.h: + audiosink: Keep baseclass extensible + Add a structure for future extension. + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/716 + Part-of: + +2020-05-27 15:11:17 +0200 uno20001 + + * gst/playback/gstdecodebin2.c: + decodebin: only emit 'drained' signal when top chain is drained + Without this, decodebin emits 'drained' multiple times which then + causes (uri)playbin to emit 'about-to-finish' multiple times for + for file types. + Fixes #751 + Part-of: + +2020-05-27 19:59:56 +0300 Sebastian Dröge + + * tests/check/elements/audioresample.c: + audioresample: Add new test that checks for downstream renegotiation + This test always consumes 48kHz and outputs different sample rates based + on downstream renegotiation. Previously this would produce completely + wrong timestamps and not output all samples. + Part-of: + +2020-05-27 19:08:45 +0300 Sebastian Dröge + + * tests/check/elements/audioresample.c: + audioresample: Fix up test_live_switch + Actually check that we get back all samples, which we didn't before + because no draining was happening. Also remove commented out 0.10 code + and related comments. + Part-of: + +2020-05-26 22:51:06 +0300 Sebastian Dröge + + * gst/audioresample/gstaudioresample.c: + audioresample: Drain resampler on discontinuities + Otherwise we would lose the last few samples when resetting the + resampler. + Part-of: + +2020-05-26 22:49:44 +0300 Sebastian Dröge + + * gst/audioresample/gstaudioresample.c: + audioresample: Drain resampler and reset timestamp tracking on stream-start event too + And also reset timestamp tracking on EOS events as more data might come + afterwards with a new stream-start event. This keeps the code the same. + Part-of: + +2020-05-26 22:45:41 +0300 Sebastian Dröge + + * gst/audioresample/gstaudioresample.c: + audioresample: Drain the resampler and reset timestamp tracking on caps changes + Especially when changing the sample rate our timestamp tracking will be + completely off, but even otherwise we would usually lose the last few + samples if we don't drain here as the resampler gets reset if anything + but the sample rate changes. + This is usually not a problem as the first buffer after a caps event + usually has the discont flag set, but can cause problems if + - the caps event is followed by a segment event, which then causes + draining according to the new sample rate + - the caps were changed because of rengotiation due to a reconfigure + event and there is not discontinuity from upstream + In both cases we would output buffers with completely wrong timestamps. + Part-of: + +2020-05-08 11:19:24 +0200 Stéphane Cerveau + + * gst-libs/gst/video/video-anc.c: + video-anc: init type before g_once_init_enter + Part-of: + +2020-05-08 11:03:52 +0200 Stéphane Cerveau + + * gst-libs/gst/video/video-hdr.c: + video-hdr: fix typo + fix typo in video_hdr_ascii_string_to_unsigned + method name. + Part-of: + +2020-05-26 18:51:03 +0200 Niels De Graef + + * ext/gl/gstglimagesink.c: + glimagesink: Correct signals gtkdoc + Part-of: + +2020-05-25 16:59:53 -0400 Thibault Saunier + + * gst/videorate/gstvideorate.c: + * tests/validate/meson.build: + * tests/validate/videorate/reverse.10_to_1fps.validatetest: + * tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/reverse.10_to_30fps.validatetest: + * tests/validate/videorate/reverse.10_to_30fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/reverse.10_to_30fps/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/reverse.1_to_10fps.validatetest: + * tests/validate/videorate/reverse.1_to_10fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/reverse.1_to_10fps/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/reverse.30fps.validatetest: + * tests/validate/videorate/reverse.30fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/reverse.30fps/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/reverse.variable_to_10fps.validatetest: + * tests/validate/videorate/reverse.variable_to_10fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/reverse.variable_to_10fps/flow-expectations/log-videorate-src-expected: + videorate: Fix buffer selection logic in reverse playback + Stop comparing all timestamps from buffers that are before the segment + with the segment.stop and compare with the actual end times. + Comparing to segment.stop for all the buffers that where before + the segment.stop was incorrect and leading to consuming wrong buffers + and not respecting segment.stop, this is now properly tested. + Expectations for `reverse.10_to_1fps.validatetest` have been fixed to + take that into account and comparing the checksums of the sinkpad and + srcpad expectations makes pretty clear how wrong that was. + (we can see in the expectations that videotestsrc outputs an extra + buffer with pts == segment.stop and this one is now properly dropped + by videorate as bec7f4ad5ed4bb1abfb92db946e654338766562b aimed at + doing) + Part-of: + +2020-05-25 16:29:15 -0400 Thibault Saunier + + * gst/videorate/gstvideorate.c: + videorate: Factor out a method for the`max-duplication-time` property + Sensibly simplifying gst_video_rate_transform_ip + Part-of: + +2020-05-25 14:48:04 -0400 Thibault Saunier + + * gst/videorate/gstvideorate.c: + videorate: Use CLOCK_TIME_IS_VALID instead of checking CLOCK_TIME_NONE + Making it more consistency with the rest of the code. + Part-of: + +2020-05-25 14:33:54 -0400 Thibault Saunier + + * gst/videorate/gstvideorate.c: + videorate: Factor out a method to reset mode + Working on simplifying gst_video_rate_transform_ip + Part-of: + +2020-05-25 12:31:32 -0400 Thibault Saunier + + * gst/videorate/gstvideorate.c: + * tests/validate/meson.build: + * tests/validate/videorate/10_to_1fps.validatetest: + * tests/validate/videorate/10_to_1fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/10_to_1fps/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/reverse.10_to_1fps.validatetest: + * tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/videorate-test.meta: + videorate: Do not push an extra buffer on EOS when we are done pushing already + There is no reason that when we have already pushed all the buffers in + a segment we push a new one on EOS + Part-of: + +2020-05-22 23:24:55 -0400 Thibault Saunier + + * gst/audiotestsrc/gstaudiotestsrc.c: + * meson_options.txt: + * tests/check/meson.build: + * tests/meson.build: + * tests/validate/audiotestsrc/reverse.validatetest: + * tests/validate/audiotestsrc/reverse/flow-expectations/log-asink-sink-expected: + * tests/validate/meson.build: + audiotestsrc: Fix the way we compute EOS in reverse playback + In reverse playback we were not taking into account the current buffer + samples to check if we had reached EOS which was leading to a buffer + with PTS = CLOCK_TIME_NONE containing too many frames followed by a + useless buffer with pts=0 duration=0, and a g_critical issue in + gst_object_sync_values. + Also add a validate based test case. + Without that patch this is how the expectation fails: + ``` diff + --- log-asink-sink-expected 2020-05-22 23:22:42.654384579 -0400 + +++ log-asink-sink-actual 2020-05-22 23:29:35.671586380 -0400 + @@ -27,5 +27,6 @@ + buffer: pts=0:00:00.058820861, due=0:00:00.023219955, flags=discont + buffer: pts=0:00:00.035600907, due=0:00:00.023219954, flags=discont + buffer: pts=0:00:00.012380952, due=0:00:00.023219955, flags=discont + -buffer: pts=0:00:00.000000000, due=0:00:00.012380952, flags=discont + +buffer: due=0:00:00.012380953, flags=discont + +buffer: pts=0:00:00.000000000, flags=discont + event eos: (no structure) + ``` + Part-of: + +2020-05-13 15:28:33 +0200 Guillaume Desmottes + + * gst-libs/gst/gl/egl/gsteglimage.c: + gl: egl: fix gtk-doc doc start code + Part-of: + +2020-05-13 14:50:22 +0200 Guillaume Desmottes + + * gst-libs/gst/gl/gstglfilter.c: + * gst-libs/gst/gl/gstglfilter.h: + gl: workaround gir warning + The gir generator wrongly assume that the vfunc + GstGLFilterClass.filter() and the method gst_gl_filter_filter_texture() + are related. As a result it complains about not matching argument names. + Workaround this by naming both of their arguments input and output. + Part-of: + +2020-05-13 10:08:25 +0200 Guillaume Desmottes + + * gst-libs/gst/gl/egl/gstegl.c: + * gst-libs/gst/gl/egl/gsteglimage.c: + * gst-libs/gst/gl/egl/gstgldisplay_egl.c: + gl: egl: add missing gir annotations + Part-of: + +2020-05-13 10:13:04 +0200 Guillaume Desmottes + + * gst-libs/gst/gl/x11/gstgldisplay_x11.c: + gl: x11: skip gst_gl_display_x11_new_with_display() from gir + The X11 Display type is not usable in gir. + Part-of: + +2019-01-25 22:48:17 +0100 Nicola Murino + + * gst-libs/gst/riff/riff-media.c: + riff-media: add H.265 + Closes #359 + Part-of: + +2020-05-05 17:39:04 +0200 Mathieu Duponchelle + + * ext/gl/gstglcolorscale.c: + glcolorscale: fix documentation + Part-of: + +2020-05-14 14:00:22 +1000 Matthew Waters + + * gst-libs/gst/gl/egl/gstgldisplay_egl.c: + gl/display/egl: ensure debug category is initialized + Part-of: + +2020-05-12 04:58:24 +0530 Nirbheek Chauhan + + * meson.build: + meson: Pass native: false to add_languages() + This is needed for cross-compiling without a build machine compiler + available. The option was added in 0.54, but we only need this in + Cerbero and it doesn't affect older versions so it should be ok. + Will only cause a spurious warning. + Part-of: + +2020-05-09 07:31:04 +0200 Edward Hervey + + * tests/check/elements/glfilter.c: + * tests/check/elements/glmixer.c: + check: verify gst_gl_display_add_context() + As is done almost everywhere else. Doesn't cost anything. + CID #1462817 + Part-of: + +2020-05-08 15:10:17 +1000 Matthew Waters + + * tests/check/libs/gstglcontext.c: + tests/gl: add test for GL context removal + Tests functionality fixed by: + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/654 + Part-of: + +2020-04-27 09:57:30 -0400 Thibault Saunier + + * gst/videorate/gstvideorate.c: + videorate: Fix buffer timestamp underflow in reverse playback + And fix reverse playback buffer duration computation as in reverse + playback, buffer duration is prev_buffer.pts - buffer.pts not pts - + next_pts (buffers are displayed from buffer.pts + buffer.duration for + a duration of buffers.duration). + This is now tested with the `validate.test.clock_sync.videorate.*` + tests in the default integration testsuite where we check the exact + data flow and the synchronization on the clock behaviour with a + TestClock. + Part-of: + +2020-04-23 20:35:39 -0400 Thibault Saunier + + * gst/videotestsrc/gstvideotestsrc.c: + videotestsrc: Fix buffer duration in reverse playback + In reverse playback, buffers have to be displayed at buffer.stop running + time, meaning: + buffer.pts + buffer.duration = prev_buffer.pts + => + buffer.duration = prev_buffer.pts - buffer.pts + We were setting buffer.duration = next_buffer.pts - buffer.pts which + is not correct. + Part-of: + +2020-05-06 16:13:11 +0300 Sebastian Dröge + + * gst-libs/gst/gl/gstgldisplay.c: + gldisplay: Fix context leak when removing a context from the display + Part-of: + +2020-05-06 09:26:35 +0200 Edward Hervey + + * gst-libs/gst/gl/gstgldisplay.c: + gldisplay: Fix list iteration + We were never moving past the first entry it seems... + CID #1461275 + Part-of: + +2020-02-27 00:05:52 +0000 Tim-Philipp Müller + + * tests/check/meson.build: + tests: fix meson test env setup to make sure we use the right gst-plugin-scanner + If core is built as a subproject (e.g. as in gst-build), make sure to use + the gst-plugin-scanner from the built subproject. Without this, gstreamer + might accidentally use the gst-plugin-scanner from the install prefix if + that exists, which in turn might drag in gst library versions we didn't + mean to drag in. Those gst library versions might then be older than + what our current build needs, and might cause our newly-built plugins + to get blacklisted in the test registry because they rely on a symbol + that the wrongly-pulled in gst lib doesn't have. + This should fix running of unit tests in gst-build when invoking + meson test or ninja test from outside the devenv for the case where + there is an older or different-version gst-plugin-scanner installed + in the install prefix. + In case no gst-plugin-scanner is installed in the install prefix, this + will fix "GStreamer-WARNING: External plugin loader failed. This most + likely means that the plugin loader helper binary was not found or + could not be run. You might need to set the GST_PLUGIN_SCANNER + environment variable if your setup is unusual." warnings when running + the unit tests. + In the case where we find GStreamer core via pkg-config we use + a newly-added pkg-config var "pluginscannerdir" to get the right + directory. This has the benefit of working transparently for both + installed and uninstalled pkg-config files/setups. + Part-of: + +2020-02-26 23:46:57 +0000 Tim-Philipp Müller + + * tests/check/meson.build: + tests: don't look for plugins in -base installdir for tests + -base plugins will always be found in the build directory, and + core plugins will be found either also via the build directory + (if both core and -base are a subproject) or by getting the + pluginsdir via pkg-config if core is installed. + The GST_PLUGIN_LOADING_WHITELIST env var will make sure we only + pick up plugins from core/base and base plugins only from the + builddir. + There is no reason to look for -base plugins in the install dir. + Part-of: + +2020-03-12 09:38:58 +0200 Vivia Nikolaidou + + * gst/tcp/gsttcpclientsrc.c: + * gst/tcp/gsttcpserversrc.c: + * gst/tcp/gsttcpserversrc.h: + * gst/tcp/gsttcpsrcstats.c: + * gst/tcp/gsttcpsrcstats.h: + * gst/tcp/meson.build: + tcpserversrc: Add stats property + Like in tcpclientsrc + Part-of: + +2020-05-06 11:52:20 +0300 Sebastian Dröge + + * gst-libs/gst/pbutils/gstdiscoverer.c: + discoverer: Check sinkpad existence before retrieving caps + Otherwise we would error out without releasing the caps first. + Part-of: + +2020-05-06 11:44:39 +0300 Sebastian Dröge + + * gst-libs/gst/pbutils/gstdiscoverer.c: + discoverer: Ensure that we have fixed, non-empty caps before passing passing to is_subtitle_caps() + Part-of: + +2020-05-06 11:42:05 +0300 Sebastian Dröge + + * gst-libs/gst/pbutils/gstdiscoverer.c: + discoverer: Try to get negotiated caps first on pad-added and only then fall back to a caps query + The negotiated caps will be more accurate and are fixed caps in any + case. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/498 + Part-of: + +2020-05-05 17:17:57 +0200 Edward Hervey + + * ext/gl/gstgloverlaycompositorelement.c: + gloverlaycompositor: Don't leak caps feature + Only copy it if we really are going to modify and use it + CID #1439873 + Part-of: + +2020-05-01 11:27:46 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: Don't crash when setting pad properties after the aggregator was finalized + The application might still have a strong reference to a pad and change + properties, which should work without crashing. + Part-of: + +2020-05-01 10:08:40 +0300 Sebastian Dröge + + * gst-libs/gst/rtsp/gstrtspurl.c: + * gst-libs/gst/video/video-anc.h: + Add missing colons to Since markers in the docs + Part-of: + +2020-04-30 17:59:45 +0100 Philippe Normand + + * gst-libs/gst/gl/gstglbasesrc.c: + * gst-libs/gst/gl/gstglbasesrc.h: + gl: Add since tags for new glbasesrc base class + Part-of: + +2020-04-30 17:59:24 +0100 Philippe Normand + + * gst-libs/gst/gl/gstglwindow.c: + gst/gl: Add documentation for new scroll API + Part-of: + +2020-04-30 17:58:43 +0100 Philippe Normand + + * gst-libs/gst/video/navigation.h: + navigation: Add since tag for new API + Part-of: + +2020-04-28 21:27:36 +0800 He Junyan + + * tests/check/libs/pbutils.c: + test: pbutils: Add check for high throughput scc. + Part-of: + +2020-04-28 21:14:07 +0800 He Junyan + + * gst-libs/gst/pbutils/codec-utils.c: + libs: pbutils: Add High throughput scc extensions profile idc(IDC 11) + It is compitable with scc and we can use scc's function to identify it. + Part-of: + +2020-04-28 19:10:05 +0800 He Junyan + + * gst-libs/gst/pbutils/codec-utils.c: + libs: pbutils: select extension profile by profile idc. + the old manner does not consider the profile idc. The profile idc should + play an more important role in recognizing the profile than the other + information. And there is no need to mix profiles of different extensions + together to find the closest profile when the bits stream is not standard, + different extensions support different features and should not be mixed. + The correct way should be recognize the extension category by profile idc + firstly, and then find the closest profile. + Part-of: + +2020-04-28 18:17:30 +0800 He Junyan + + * gst-libs/gst/pbutils/codec-utils.c: + libs: pbutils: rename the GstH265FormatRangeExtensionProfile. + GstH265FormatRangeExtensionProfile declares the common bits used + for not only format range extensions profiles, but also for several + different h265 extension profiles, such as high throughput, screen + content coding extensions, etc. And So the old name is not proper. + Part-of: + +2020-04-27 09:40:23 +0200 Guillaume Desmottes + + * gst-libs/gst/pbutils/codec-utils.c: + opusdec: prevent 'channels=0' in caps + gst_opus_channel_positions() should fail if caps contains "channels=0". + Prevent index underflow when indexing gst_opus_channel_positions[] (CID 1462590). + Part-of: + +2020-04-24 22:40:10 +1000 Matthew Waters + + * gst-libs/gst/gl/gstglbasesrc.c: + glbasesrc: avoid deadlock when querying for OpenGL context + Continuation of: + a4e49ba8c9657e2230aad32b6988bbda7a755440 + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/642 + Part-of: + +2020-04-24 22:38:32 +1000 Matthew Waters + + * ext/gl/gstglbasemixer.c: + * ext/gl/gstglstereosplit.c: + * gst-libs/gst/gl/gstglbasefilter.c: + gl: fix application context querying between elements + Fixes error introduced by: + a4e49ba8c9657e2230aad32b6988bbda7a755440 + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/642 + Using the application GL context as the local GL context is not going to + work very well. + Part-of: + +2020-04-23 10:17:31 +0200 Guillaume Desmottes + + * ext/opus/gstopusdec.c: + * ext/opus/gstopusdec.h: + opusdec: add 'stats' property + Allow users to retrieve the number of samples, and their duration, + generated using PLC. + Part-of: + +2020-04-24 14:44:46 +1000 Matthew Waters + + * ext/gl/gstglbasemixer.c: + * ext/gl/gstglmixerbin.c: + * ext/gl/gstglstereosplit.c: + * gst-libs/gst/gl/gstglbasefilter.c: + * gst-libs/gst/gl/gstglbasesrc.c: + * tests/check/elements/glmixer.c: + * tests/check/meson.build: + gl: avoid deadlock querying for OpenGL context + If there are two elements and threads attempting to query each other for + an OpenGL context. The locking may result in a deadlock. + We need to unlock each element's context_lock when querying another + element for the OpenGL context in order to allow any other element to + take the lock when the other element is querying for an OpenGL context. + Part-of: + +2020-04-21 20:09:41 +1000 Matthew Waters + + * tests/check/elements/glstereo.c: + * tests/check/meson.build: + tests: add glviewconvert users integration unit test + Catch all smoke test for ensuring a basic pipeline can negotiate + successfully. + Part-of: + +2020-04-21 22:56:49 +1000 Jan Schmidt + + * ext/pango/gsttextrender.c: + textrender: Don't calculate caps on every buffer + Only renegotiate with downstream when the srcpad has a pending + reconfigure flag, instead of querying, fixating and sending caps + for every buffer. + Part-of: + +2020-04-19 18:29:18 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-anc.c: + video-anc: Register an init function for Bar meta + The init function is mandatory and we keep around uninitialized memory + otherwise. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/747 + +2020-04-10 14:08:15 +1000 Matthew Waters + + * ext/gl/gstglmixer.c: + glvideomixer: fix black output after display changes + Partial revert of 55e80b550e4ad02aaf44b30ec8b03da9ee485ac6 + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/743 + +2020-04-10 14:05:08 +1000 Matthew Waters + + * ext/gl/gstglvideomixer.c: + glvideomixer: intersect with template caps when updating + Downstream may provide extra things when we ask it for caps that we may + need to remove. + Fixes the following pipeline warning: + gltestsrc ! glvideomixerelement ! glimagesinkelement + ** (gst-launch-1.0:908581): WARNING **: 13:53:28.518: glvideomixer0: update_src_caps returned caps which are not a real subset of the filter caps + +2020-04-10 22:45:26 +1000 Jan Schmidt + + * gst/typefind/gsttypefindfunctions.c: + typefind: Consider MPEG-PS PSM to be a PES type + Include the Program Stream Map packet type 0xBC in the + set of packets we treat as PES. This fixes typefinding + on MPEG-PS streams with PSM, where the PSM would previously + be considered a loss-of-sync and cause the typefind + to require more data. + +2019-08-12 10:41:31 +0100 Philippe Normand + + * gst/playback/gsturidecodebin3.c: + uridecodebin3: Activate suburi playback item + The suburi playback item has to be activated after the main playback item so + that playsink can properly enable text rendering. + Fixes #451 + +2020-04-10 04:24:03 +1000 Jan Schmidt + + * ext/pango/gsttextrender.c: + textrender: Fix AYUV output. + Fix the check for whether the element is operating in ARGB mode. It + was incorrectly checking if the output format has an alpha channel, + which is true for both ARGB and AYUV, leading to the element + incorrectly outputting ARGB values into AYUV caps. + +2020-04-08 15:26:23 +0800 He Junyan + + * gst-libs/gst/gl/gstgldisplay.c: + libs: gl: Fix a context leak when display_create_context failed + +2020-04-03 10:36:02 -0300 Thibault Saunier + + * tools/gst-discoverer.c: + discoverer: Enhance printed information when not verbose + Basically print information about media tracks making without tags + nor buffers in caps making still quite small but containing all + information infos. + Stop making 'Topology' section and just print the info + before: + ``` + Topology: + container: MPEG-2 Transport Stream + audio: AC-3 (ATSC A/52) + video: H.264 (High Profile) + Properties: + Duration: 0:00:05.512394259 + Seekable: yes + Live: no + Tags: + audio codec: AC-3 (ATSC A/52) + bitrate: 192000 + video codec: H.264 (High Profile) + minimum bitrate: 12947 + maximum bitrate: 12947 + ``` + After: + ``` + Properties: + Duration: 0:00:05.512394259 + Seekable: yes + Live: no + container: MPEG-2 Transport Stream + audio: AC-3 (ATSC A/52) + Stream ID: b076403d73e0c5fc13985832e8d585945603993437ba14b0799f422f9495e8ef:1/00001100 + Language: + Channels: 2 (front-left, front-right) + Sample rate: 48000 + Depth: 32 + Bitrate: 192000 + Max bitrate: 0 + video: H.264 (High Profile) + Stream ID: b076403d73e0c5fc13985832e8d585945603993437ba14b0799f422f9495e8ef:1/00001011 + Width: 1920 + Height: 1080 + Depth: 24 + Frame rate: 30000/1001 + Pixel aspect ratio: 1/1 + Interlaced: true + Bitrate: 10363396 + Max bitrate: 12947 + ``` + +2020-04-06 15:20:39 +0300 Sebastian Dröge + + * gst/typefind/gsttypefindfunctions.c: + typefindfunctions: Fix otio typefinder to actually detect otio files + The string "\"OTIO_SCHEMA\":" is 14 characters and not 15. Checking for + 15 characters would also check for the final '\0', which does not exist + in any otio file as the string is the key of a JSON map. + +2020-04-06 15:14:41 +0300 Sebastian Dröge + + * gst/typefind/gsttypefindfunctions.c: + typefindfunctions: Fix otio typefinder detecting anything with curly braces at the start + memcmp() returns 0 (aka FALSE) on match and a difference otherwise. + Previously the typefinder was matching on anything but otio files that + happened to have some curly braces in the beginning of the file. + Fixes a false positive with a MOV file. + +2020-03-20 10:58:19 -0300 Thibault Saunier + + * gst-libs/gst/pbutils/encoding-profile.c: + pbutils: Add EncodingProfile serialization support + +2020-03-19 17:02:57 -0300 Thibault Saunier + + * gst-libs/gst/pbutils/encoding-profile.c: + pbutils: Support for variable framerate in the encoding serialization + +2020-04-02 23:30:57 +1100 Jan Schmidt + + * gst-libs/gst/video/video-hdr.h: + video-hdr: Fix a docs typo (x -> y) + +2018-11-30 23:10:55 +1100 Jan Schmidt + + * gst-libs/gst/audio/gstaudiodecoder.c: + audiodecoder: Handle instant-rate-change event + When receiving an instant-rate-change event, store the updated + seek flags and replace the flags in any input segments with them + to allow for instant switching between trickmodes and not. + +2018-11-30 22:56:11 +1100 Jan Schmidt + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: Handle instant-rate-change event + When receiving an instant-rate-change event, store the updated + seek flags and replace the flags in any input segments with them + to allow for instant switching between trickmodes and not. + +2018-09-29 00:49:46 +1000 Jan Schmidt + + * gst-libs/gst/audio/gstaudiobasesink.c: + audiobasesink: Handle an extra case of buffers being out of segment + It's possible that a buffer might be within the segment proper, + but not within the "valid" part we're playing, which is only + things after the 'offset' part of the segment. In that case, + the running-times of the buffer-start and buffer-stop will be + GST_CLOCK_TIME_NONE, and we'd better not schedule playback that + far in the future. + +2018-08-21 02:21:23 +1000 Jan Schmidt + + * tools/gst-play.c: + gst-play: Add -i parameter for instant rate changes + Add a command line flag that enables use of the + instant rate changes flag when doing rate changes. + +2018-08-18 03:37:09 +1000 Jan Schmidt + + * tests/examples/seek/instant-rate-change.c: + * tests/examples/seek/meson.build: + tests/examples/seek/instant-rate-change: Add example app + Add an example app to exercise instant rate changes in a few + scenarios. Currently it deadlocks a lot sending rate changes to + paused pipelines. + +2018-06-18 08:51:05 +0300 Sebastian Dröge + + * tests/examples/playback/playback-test.c: + playback-test: Add support for start_type=stop_type=NONE seeks + +2018-05-25 11:01:58 +0300 Sebastian Dröge + + * tests/examples/playback/playback-test.c: + playback-test: Add support for sending instant-rate-change seeks + +2020-04-01 17:47:04 +0200 Stéphane Cerveau + + * gst-libs/gst/video/gstvideoencoder.c: + videoencoder: subclass 'set_format' should be optional + Aligns documentation with the code to make the subclass + 'set_format' call optional. + +2020-03-10 20:36:16 +0900 Seungha Yang + + * gst-libs/gst/video/video-hdr.c: + * gst-libs/gst/video/video-hdr.h: + * tests/check/libs/video.c: + video-hdr: Rework for GstVideoMasteringDisplayInfo and GstVideoContentLightLevel struct + This commit modifies GstVideoMasteringDisplayInfo and GstVideoContentLightLevel + structs so that each value is to be more like hdr_metadata_infoframe struct + of linux drm header and DXGI_HDR_METADATA_HDR10 struct of Windows. + So each value is no more fraction but normalized one as per CTA 861.G spec. + Also the unit of each value will be consistent with H.264, H.265 + specifications, hdr_metadata_infoframe struct for linux and + DXGI_HDR_METADATA_HDR10 struct for Windows. + +2020-04-01 20:05:06 +1100 Matthew Waters + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: fix gir warning about invalid doc comment + [38/1301] Generating GstVideo-1.0.gir with a custom command. + ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideoaggregator.c:231: Error: GstVideo: identifier not found on the first line: + * + ^ + +2020-04-01 13:55:50 +0800 Haihao Xiang + + * gst-libs/gst/gl/gstglcolorconvert.c: + * gst-libs/gst/gl/gstglcolorconvert.h: + * gst-libs/gst/gl/gstglformat.c: + * gst-libs/gst/gl/gstglmemory.h: + gl: add support for Y412_LE / Y412_BE format + Reuse Y410 code for Y412_LE / Y412_BE except gl format. The gl format is + RGBA16 for Y412_LE / Y412_BE. + Sample pipeline: + gst-launch-1.0 videotestsrc ! video/x-raw,format=Y412_LE ! glimagesink + +2020-03-30 14:37:26 +0800 Haihao Xiang + + * gst-libs/gst/gl/gstglcolorconvert.c: + * gst-libs/gst/gl/gstglcolorconvert.h: + * gst-libs/gst/gl/gstglformat.c: + * gst-libs/gst/gl/gstglmemory.h: + gl: add support for Y212_LE / Y212_BE format + Because the color value is stored in MSB, so we can reuse the + Y210 code for P012_LE / P012_BE + Sample pipeline: + gst-launch-1.0 videotestsrc ! video/x-raw,format=Y212_LE ! glimagesink + +2020-03-27 02:48:39 +0100 Mathieu Duponchelle + + * gst-libs/gst/video/gstvideoaggregator.c: + gstvideoaggregator: expose max-last-buffer-repeat property on pads + This can be used to have compositor display either the background + or a stream on a lower zorder after a live input stream freezes + for a certain amount of time, for example because of network + issues. + +2020-03-20 19:09:17 +0100 Mathieu Duponchelle + + * gst/subparse/gstsubparse.c: + * gst/subparse/gstsubparse.h: + * tests/check/elements/subparse.c: + subparse: convert from pango-markup to utf8 .. + when downstream requires it + +2020-03-12 10:27:34 +0800 Haihao Xiang + + * gst-libs/gst/video/video-converter.c: + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-format.h: + * gst-libs/gst/video/video-info.c: + video: add support for Y412 format + Y412 is a packed 12 bits 4:4:4:4 format in the order U, Y, V, A, 2 bytes + per component with the color value stored in the 12 most significant + bits + Refer to https://github.com/torvalds/linux/blob/master/include/uapi/drm/drm_fourcc.h#L182 + for the LE variant + +2020-03-11 10:58:00 +0800 Haihao Xiang + + * gst-libs/gst/video/video-converter.c: + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-format.h: + * gst-libs/gst/video/video-info.c: + video: add support for Y212 format + Y212 is a packed 12 bits 4:2:2 format in the order Y, U, Y, V, 2 bytes + per component with the color value stored in the 12 most significant + bits + Refer to https://github.com/torvalds/linux/blob/master/include/uapi/drm/drm_fourcc.h#L174 + for the LE variant + +2020-03-12 15:18:22 +0200 Sebastian Dröge + + * gst-libs/gst/video/video-blend.c: + * gst-libs/gst/video/video-overlay-composition.h: + video-blend: Add support for blending on top of 16 bit per component formats + With this we can support every currently supported video format for + blending. + +2020-03-26 13:51:24 +1100 Matthew Waters + + * gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m: + glcontext/cocoa: handle sending one message during shutdown + gst_gl_window_quit() will attempt to send a message but will be called + from GstGLContext's finalize handler and so the weak ref that backs + gst_gl_window_get_context will return NULL as it has already been + cleared. We need that context in send_message_async to decide whether + to run the provided callback immediately or queue in GCD + +2020-03-26 13:50:52 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglcontext.c: + glcontext: add context is valid precondition to get_thread() + +2020-03-26 13:50:22 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglwindow.c: + glwindow: remove unused private alive variable + +2020-03-26 13:46:56 +0800 Haihao Xiang + + * gst-libs/gst/gl/gstglupload.c: + glupload: fix segfault + Without this fix, it is possible that outbuf is not initialized, which + will result in segfault when call gst_buffer_replace (&outbuf, NULL). In + addition, the patch fixes potential memory leak in restart path. + The segfault can be reproduced by the pipeline below: + GST_GL_PLATFORM=egl \ + gst-launch-1.0 videotestsrc ! msdkh265enc ! msdkh265dec ! \ + 'video/x-raw(memory:DMABuf)' ! glimagesink + +2020-03-24 12:39:50 +0800 Haihao Xiang + + * gst-libs/gst/gl/egl/gsteglimage.c: + * gst-libs/gst/gl/gstglcolorconvert.c: + * gst-libs/gst/gl/gstglcolorconvert.h: + * gst-libs/gst/gl/gstglformat.c: + * gst-libs/gst/gl/gstglmemory.h: + gl: add support for P012_LE / P012_BE format + Because the color value is stored in MSB, so we can reuse the + P016_LE / P016_BE code for P012_LE / P012_BE + +2020-03-09 10:21:53 +0000 Chris Lord + + * gst-libs/gst/gl/egl/gsteglimage.c: + * gst-libs/gst/gl/egl/gsteglimage_private.h: + * gst-libs/gst/gl/gstglupload.c: + glupload: Fix fallback from direct dmabuf to dmabuf upload method + In the situation that the direct dmabuf path is chosen, but with an + unsupported texture format, this causes accept to fail rather than + continue and fail at the upload stage. It is also possibly necessary to + reconfigure after falling back from direct to non-direct dmabuf upload + paths. + +2020-03-23 18:42:19 +0900 Seungha Yang + + * gst/videorate/gstvideorate.c: + videorate: Signalling reconfigure to upstream whenever updating downstream caps + Previously configured bufferpool can be expired/inactivate by the + updated caps. Therefore new reconfigure event should be signalled in order to + do allocation query dancing between upstream and downstream again. + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/730 + +2020-03-14 20:22:50 +0100 Loïc Minier + + * pkgconfig/gstreamer-audio-uninstalled.pc.in: + * pkgconfig/gstreamer-audio.pc.in: + * pkgconfig/gstreamer-pbutils-uninstalled.pc.in: + * pkgconfig/gstreamer-pbutils.pc.in: + pkgconfig: fix missing gst-tag Requires + Promote deps gstreamer-tag to Requires for pbutils and add missing + gstreamer-tag Requires for gst-audio. Uninstalled builds would fail + with: + stage/usr/local/lib/x86_64-linux-gnu/libgstpbutils-1.0.so: undefined reference to `gst_tag_list_to_vorbiscomment_buffer' + [...] + stage/usr/local/lib/x86_64-linux-gnu/libgstaudio-1.0.so: undefined reference to `gst_tag_register_musicbrainz_tags' + +2020-03-14 19:42:24 +0100 Loïc Minier + + * pkgconfig/gstreamer-sdp-uninstalled.pc.in: + * pkgconfig/gstreamer-sdp.pc.in: + pkgconfig: add missing gst-rtp dep to gst-sdp + Uninstalled builds using rtp would fail with: + stage/usr/local/lib/x86_64-linux-gnu/libgstsdp-1.0.so: undefined reference to `gst_rtp_payload_info_for_pt' + +2020-03-21 14:03:44 +0100 Víctor Manuel Jáquez Leal + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: fix documentation + Fix list indentation, othewise it is interpreted as verbatim. + +2020-03-17 18:40:26 +0100 Niels De Graef + + * gst-libs/gst/video/navigation.c: + navigation: Use G_DEFINE_INTERFACE + +2020-03-17 18:20:59 +0100 Niels De Graef + + * gst-libs/gst/audio/streamvolume.h: + streamvolume: Use G_DECLARE_INTERFACE + +2020-03-17 17:51:36 +0100 Niels De Graef + + * gst-libs/gst/allocators/gstphysmemory.c: + * gst-libs/gst/allocators/gstphysmemory.h: + gstphysmemory: Use G_DECLARE_INTERFACE + +2020-03-17 17:47:47 +0100 Niels De Graef + + * gst-libs/gst/pbutils/gstaudiovisualizer.h: + audiovisualizer: Add support for g_autoptr() + Ideally, we would use something like `G_DECLARE_DERIVABLE_TYPE`, but + that would break API. + +2020-02-20 17:25:19 +0100 Miguel Paris + + * gst-libs/gst/rtp/gstrtpbuffer.c: + * tests/check/libs/rtp.c: + rtpbuffer: add_extension_onebyte_header: fix the proper wordlen + The wordlen ("length") MUST represent the total "number of 32-bit words + in the extension, excluding the four-octet extension header" (rfc3550). + There are cases where already existent padding is reused for adding + the new extension. So the new wordlen should be updated if the new + added extension makes it to increase. + +2019-12-13 16:06:44 +0100 Miguel Paris + + * gst-libs/gst/rtp/gstrtpbuffer.c: + rtpbuffer: get_onebyte_header_end_offset: allow 0 offset + There are some cases where the full extension data could be padding. + In order to make the GstRtpBuffer robust enough, this change supports + this case. + +2020-02-10 18:17:42 +0000 Philippe Normand + + * ext/gl/gstglimagesink.c: + * gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c: + gl/wayland: Mouse events handling + +2020-02-10 18:05:01 +0000 Philippe Normand + + * ext/gl/gstglimagesink.c: + * ext/gl/gstglimagesink.h: + * gst-libs/gst/gl/gstglwindow.c: + * gst-libs/gst/gl/gstglwindow.h: + gl/navigation: Scroll events dispatch support + +2020-02-10 17:55:24 +0000 Philippe Normand + + * gst-libs/gst/video/navigation.c: + * gst-libs/gst/video/navigation.h: + * tests/check/libs/navigation.c: + navigation: Mouse scroll events support + This patch introduces a new API to send and parse mouse scroll events. Mouse + event coordinates are sent relative to the display space of the related output + area. This is usually the size in pixels of the window associated with the + element implementing the GstNavigation interface. + +2020-03-18 15:38:25 +0100 Guillaume Desmottes + + * gst-libs/gst/audio/gstaudiodecoder.c: + * gst-libs/gst/audio/gstaudioencoder.c: + audio: annotate @buf in finish_frame methods + +2020-02-27 17:52:20 +0800 Haihao Xiang + + * gst-libs/gst/video/video-converter.c: + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-format.h: + * gst-libs/gst/video/video-info.c: + video: add support for P012 format + P012 is a semi-planar 4:2:0 format, 2bytes per component with the value + stored in the 12 most significant bits + +2020-03-12 13:32:23 +0100 Niels De Graef + + * gst/volume/gstvolume.h: + volume: Use G_DECLARE_FINAL_TYPE + +2020-03-12 13:31:22 +0100 Niels De Graef + + * gst/videotestsrc/gstvideotestsrc.h: + videotestsrc: Use G_DECLARE_FINAL_TYPE + +2020-03-12 13:29:22 +0100 Niels De Graef + + * gst/videoscale/gstvideoscale.h: + videoscale: Use G_DECLARE_FINAL_TYPE + +2020-03-12 13:27:40 +0100 Niels De Graef + + * gst/videorate/gstvideorate.h: + videorate: Use G_DECLARE_FINAL_TYPE + +2020-03-12 13:25:47 +0100 Niels De Graef + + * gst/videoconvert/gstvideoconvert.c: + * gst/videoconvert/gstvideoconvert.h: + videoconvert: Use G_DECLARE_FINAL_TYPE + +2020-03-12 13:23:36 +0100 Niels De Graef + + * gst/subparse/gstssaparse.h: + * gst/subparse/gstsubparse.h: + subparse: Use G_DECLARE_FINAL_TYPE + +2020-03-12 13:20:51 +0100 Niels De Graef + + * gst/rawparse/gstrawaudioparse.h: + * gst/rawparse/gstrawbaseparse.h: + * gst/rawparse/gstrawvideoparse.h: + * gst/rawparse/gstunalignedaudioparse.c: + * gst/rawparse/gstunalignedaudioparse.h: + * gst/rawparse/gstunalignedvideoparse.c: + * gst/rawparse/gstunalignedvideoparse.h: + rawparse: Use G_DECLARE_FINAL_TYPE + +2020-03-12 13:20:31 +0100 Niels De Graef + + * gst/overlaycomposition/gstoverlaycomposition.h: + overlaycomposition: Use G_DECLARE_FINAL_TYPE + +2020-03-12 08:02:02 +0100 Niels De Graef + + * gst/gio/gstgiobasesink.h: + * gst/gio/gstgiobasesrc.h: + * gst/gio/gstgiosink.h: + * gst/gio/gstgiosrc.h: + * gst/gio/gstgiostreamsink.h: + * gst/gio/gstgiostreamsrc.h: + gio: Use G_DECLARE_FINAL_TYPE + +2020-03-12 07:55:52 +0100 Niels De Graef + + * gst/encoding/gstsmartencoder.h: + * gst/encoding/gststreamcombiner.h: + * gst/encoding/gststreamcombinerpad.h: + * gst/encoding/gststreamsplitter.h: + encoding: Use G_DECLARE_FINAL_TYPE + Note that we didn't do it for encodebin, as it has a class struct. We + _could_ techincally use `G_DECLARE_DERIVABLE_TYPE()` for that one, but + that would mean also using a private struct, which is even more work for + no gain. + +2020-03-12 07:51:24 +0100 Niels De Graef + + * gst/adder/gstadder.h: + adder: Use G_DECLARE_FINAL_TYPE + +2020-03-12 07:49:45 +0100 Niels De Graef + + * gst/audioconvert/gstaudioconvert.c: + * gst/audioconvert/gstaudioconvert.h: + * gst/audioconvert/plugin.c: + * gst/audioconvert/plugin.h: + audioconvert: Use G_DECLARE_FINAL_TYPE + +2020-03-12 07:46:47 +0100 Niels De Graef + + * gst/audiomixer/gstaudiointerleave.h: + * gst/audiomixer/gstaudiomixer.h: + audiomixer: Use G_DECLARE_FINAL_TYPE + +2020-03-12 07:44:28 +0100 Niels De Graef + + * gst/audiorate/gstaudiorate.h: + audiorate: Use G_DECLARE_FINAL_TYPE + +2020-03-12 07:42:52 +0100 Niels De Graef + + * gst/audioresample/gstaudioresample.h: + audioresample: Use G_DECLARE_FINAL_TYPE + +2020-03-12 07:41:16 +0100 Niels De Graef + + * gst/audiotestsrc/gstaudiotestsrc.h: + audiotestsrc: Use G_DECLARE_FINAL_TYPE + +2020-03-12 07:39:09 +0100 Niels De Graef + + * gst/compositor/compositor.h: + compositor: Use G_DECLARE_FINAL_TYPE + +2020-03-14 14:42:12 +0100 Niels De Graef + + * gst-libs/gst/audio/gstaudioaggregator.h: + * gst-libs/gst/video/gstvideoaggregator.h: + *aggregator: Add g_autoptr support for *ConvertPad + +2020-03-09 15:26:42 +0100 Tobias Ronge + + * gst-libs/gst/rtp/gstrtpbasepayload.c: + gstrtpbasepayloader: Add property for scaling RTP timestamp + This patch introduces a property which, if set to FALSE, prevents RTP + basepayloader from scaling the RTP time when a segment's rate is not + equal to 1.0. The specification is ambiguous on this subject and some + clients expect the timestamps not to be scaled. + +2020-03-16 15:32:47 +1100 Matthew Waters + + * gst-libs/gst/video/gstvideometa.c: + * gst-libs/gst/video/gstvideometa.h: + videometa: constify tc argument to add_video_time_meta() + We don't modify the argument. + +2019-12-16 19:49:09 +0100 Peter Seiderer + + * gst-libs/gst/gl/meson.build: + * meson_options.txt: + meson: add window system egl + +2020-03-12 13:44:10 +0530 Guillaume Desmottes + + * gst-libs/gst/rtsp/gstrtspconnection.c: + rtsp: remove documentation link on GTimeVal + Looks like it's been removed from glib.devhelp2 on Fedora 31. + Fix #508 + +2020-03-05 12:29:49 +1100 Matthew Waters + + * gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c: + * gst-libs/gst/gl/wayland/wayland_event_source.c: + * gst-libs/gst/gl/wayland/wayland_event_source.h: + gl/wayland: use wayland's roundtrip_queue() + There's no need to roll our own anymore + +2020-03-11 01:01:34 +0100 Mathieu Duponchelle + + * gst/subparse/gstsubparse.c: + subparse: accept WebVTT timestamps without an hour component + https://www.w3.org/TR/webvtt1/#webvtt-timestamp + mm:ss,000 is a valid WebVTT timestamp + +2020-03-09 20:16:47 +0200 Sebastian Dröge + + * gst/compositor/blend.c: + compositor: Create a square checkerboard for UYVY/YUY2/YVYU too + Previously the "squares" were twice as wide. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/732 + +2020-03-09 20:12:12 +0200 Sebastian Dröge + + * gst/compositor/blend.c: + * gst/compositor/blend.h: + compositor: Define a separate checker fill function for BGRx/RGBx than for xBGR/xRGB + Otherwise we'll create a cyan or yellow checkerboard. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/736 + +2020-03-03 15:19:21 +0200 Vivia Nikolaidou + + * gst/tcp/gsttcpclientsrc.c: + * meson.build: + tcpclientsrc: Fix compilation on FreeBSD + The members of the tcp_info struct are prefixed with a double + underscore, as reported in + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/584#note_423487 + +2020-03-06 00:03:49 +0100 Philipp Zabel + + * gst-libs/gst/gl/gstglupload.c: + glupload: dmabuf: only accept uploads to external-oes if supported by the context + This keeps the DirectDmabufExternal uploader from accepting buffers if + texture-target=external-oes is not supported by the GL context. + +2019-11-28 17:31:57 +0100 Edward Hervey + + * ext/gl/gstgloverlaycompositorelement.c: + gloverlay: Fix various issues in allocation handling + * A copy-paste error was getting the information from the wrong + query + * The 'allocation_meta' GstStructure was being leaked + * No check was done on whether the query existed (to try to set the + resulting allocation meta on) + CID: 1439872 + CID: 1439873 + CID: 1439874 + CID: 1439875 + CID: 1439876 + CID: 1439877 + +2020-03-03 17:07:24 +0100 Peter Seiderer + + * tools/meson.build: + meson: static linkig of tools needs gmodule_dep + Add gmodule_dep (analog to gstreamer/tools/meson.build). + Fixes: + .../bin/ld: .../usr/lib/libgstreamer-1.0.a(gstplugin.c.o): in function `gst_plugin_register_func': + gstplugin.c:(.text+0x3bc): undefined reference to `g_module_make_resident' + .../bin/ld: .../usr/lib/libgstreamer-1.0.a(gstplugin.c.o): in function `_priv_gst_plugin_load_file_for_registry': + gstplugin.c:(.text+0x1228): undefined reference to `g_module_supported' + .../bin/ld: gstplugin.c:(.text+0x126c): undefined reference to `g_module_open' + .../bin/ld: gstplugin.c:(.text+0x1368): undefined reference to `g_module_symbol' + .../bin/ld: gstplugin.c:(.text+0x1494): undefined reference to `g_module_supported' + .../bin/ld: gstplugin.c:(.text+0x17f4): undefined reference to `g_module_close' + .../bin/ld: gstplugin.c:(.text+0x1a2c): undefined reference to `g_module_error' + +2020-03-03 11:53:53 +1100 Matthew Waters + + * gst-libs/gst/gl/meson.build: + * 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: + * gst-libs/gst/gl/wayland/wayland_event_source.c: + * gst-libs/gst/gl/wayland/wayland_event_source.h: + gl/wayland: use a proxy wrapper for the wl_display + This allows us to remove races when setting the wl_queue on wayland + objects with wl_proxy_set_queue() as each created object is created with + the queue already set. + We can also move all our initilization code into the window as we + can retrieve all wayland objects from each window instance. This + removes a possible race when integrating with external API's as we would + always attempt to immediately retrieve a small set of wayland objects. + That is no longer the case with the objects from each window instance. + +2020-03-03 11:43:48 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglfilter.c: + glfilter: use gst_object_unref/ref functions + Allows better visibility into ref/unref points with the leaks tracer + +2020-03-03 11:42:11 +1100 Matthew Waters + + * gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c: + gl/wayland: fix xdg shell close notification + Don't segfault by not calling the appropriate callback that destroys + resources in the correct order. + +2020-02-12 12:44:54 +1100 Matthew Waters + + * ext/gl/gstglstereomix.c: + glstereomix: support gl display changes + +2020-02-05 12:26:54 +1100 Matthew Waters + + * ext/gl/gstglcolorconvertelement.c: + * gst-libs/gst/gl/gstglbasefilter.c: + * gst-libs/gst/gl/gstglbasefilter.h: + * tests/check/elements/glfilter.c: + * tests/check/meson.build: + glbasefilter: add support for changing the display + Each element will remove its usage of the old display and context and + try to retrieve a new GL context. + +2020-02-04 14:19:21 +1100 Matthew Waters + + * ext/gl/gstglstereosplit.c: + * ext/gl/gstglstereosplit.h: + glstereosplit: support gl display changes + +2020-02-04 14:06:05 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglbasesrc.c: + glbasesrc: add support for changing display's + +2020-02-04 14:04:21 +1100 Matthew Waters + + * gst-libs/gst/gl/gstgldisplay.c: + * gst-libs/gst/gl/gstgldisplay.h: + gldisplay: add support removing a context from the internal list + +2020-02-04 13:58:06 +1100 Matthew Waters + + * ext/gl/gstglbasemixer.c: + * ext/gl/gstglbasemixer.h: + * ext/gl/gstglmixer.c: + * ext/gl/gstglvideomixer.c: + gl/mixer: support GstGLDisplay changes + +2020-02-18 13:46:08 +0100 Philipp Zabel + + * gst-libs/gst/gl/gstglupload.c: + glupload: dmabuf: add DirectDmabufExternal uploader + Automatic negotiation of texture-target=external-oes does not work + without separating the external-oes support out of the DirectDmabuf + uploader into a separate DirectDmabufExternal uploader. + +2020-02-24 16:38:56 +0100 Philipp Zabel + + * gst-libs/gst/gl/gstglupload.c: + glupload: fix transform_caps NULL pointer dereference + gst_gl_upload_transform_caps() is missing a NULL pointer check in case + the current upload method's transform_caps returns a NULL pointer. In + the following loop over all upload methods, NULL pointer return values + are already handled correctly. + +2020-02-12 18:25:54 +0100 Philipp Zabel + + * gst-libs/gst/gl/gstglupload.c: + glupload: dmabuf: support direct upload into external-oes textures + Some drivers support directly importing DMA buffers in some formats into + external-oes textures only, for example because the hardware contains + native YUV samplers. + Note that in these cases colorimetry can only be passed as hints and + there is no feedback whether the driver supports the required YUV + encoding matrix and quantization range. + +2020-02-13 10:28:40 +0100 Philipp Zabel + + * gst-libs/gst/gl/egl/gsteglimage.c: + * gst-libs/gst/gl/egl/gsteglimage.h: + * gst-libs/gst/gl/egl/gstglmemoryegl.c: + gl/egl: support direct dmabuf import with external-oes only formats + Allow creating EGL images from DMA buffers in formats that the driver + only supports for the external-oes texture target. + Pass the intended texture target to gst_egl_image_from_dmabuf_direct so + that _gst_egl_image_check_dmabuf_direct can decide whether to create an + EGL image for a format that can only be targeted at external-oes + textures by the driver. Allow creating GstGLMemoryEGL objects from these + DMA buffers. + +2020-03-02 19:35:16 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglquery.c: + glquery: fix a possible unintialized value + A GL driver may not fill the resulting value so initialize it to 0 + ourselves. + +2020-02-26 14:33:16 +1100 Matthew Waters + + * gst-libs/gst/gl/x11/gstglcontext_glx.c: + gl/context/glx: dump GLXFBConfig information to debug logs + +2020-02-24 16:44:12 +0200 Vivia Nikolaidou + + * gst/tcp/gsttcpclientsrc.c: + * gst/tcp/gsttcpclientsrc.h: + * meson.build: + tcpclientsrc: Expose connection stats as property + Unfortunately the OS takes care of bad connections for us, so we can't + get the stats in a platform-independent way. Count total bytes received + as well, platform-independently. + +2020-02-10 10:29:25 +0530 Guillaume Desmottes + + * gst-libs/gst/video/video-info.h: + video-info: fix typo in doc + +2020-02-07 11:18:24 +0530 Guillaume Desmottes + + * gst-libs/gst/video/video-frame.h: + * tests/check/libs/video.c: + video: fix GST_VIDEO_FRAME_IS_BOTTOM_FIELD() + GST_VIDEO_FRAME_FLAG_BOTTOM_FIELD is a subset of + GST_VIDEO_FRAME_FLAG_TOP_FIELD so needs to be checked accordingly. + Fix #726 + +2020-02-06 14:35:47 +0530 Guillaume Desmottes + + * gst-libs/gst/video/video-frame.h: + * tests/check/libs/video.c: + video: add macros checking for GST_VIDEO_BUFFER_FLAG_TOP/BOTTOM_FIELD flags + The GST_VIDEO_BUFFER_FLAG_TOP_FIELD flag is a superset of + GST_VIDEO_BUFFER_FLAG_BOTTOM_FIELD as they are defined using other + flags. As a result we can't use GST_BUFFER_FLAG_IS_SET() to check for + those flags. + +2020-02-06 09:52:31 +0100 Stéphane Cerveau + + * gst-libs/gst/video/gstvideoencoder.c: + videoencoder: protect the use of num_subframes + change stream lock location to protect the use of + frame->abidata.ABI.num_subframes + +2020-02-05 02:58:14 -0800 Devarsh Thakkar + + * gst-libs/gst/video/gstvideoencoder.c: + videoencoder: Release stream lock in finish_subframe before pad_push + Derived from 780d635dadc0723e39a8ba90cfe0903a2de346fd for + https://bugzilla.gnome.org/show_bug.cgi?id=715192 + which was for finish_frame. + +2020-02-18 20:36:38 +0900 Seungha Yang + + * gst-libs/gst/gl/meson.build: + meson: gl: Update to support when egl and win32 window system are explicitly requested + +2020-02-18 20:09:19 +0900 Seungha Yang + + * gst-libs/gst/gl/win32/gstglwindow_win32.c: + glwindow/win32: Accept both win32 and egl display + EGL would be the case where we use ANGLE. + +2020-02-18 19:40:34 +0900 Seungha Yang + + * gst-libs/gst/gl/egl/gstglcontext_egl.c: + * gst-libs/gst/gl/meson.build: + glcontext: egl: Fix build with win32 window system + +2020-02-18 19:33:18 +0900 Seungha Yang + + * gst-libs/gst/gl/gstglcontext.c: + * gst-libs/gst/gl/meson.build: + * gst-libs/gst/gl/wgl/gstglcontext_wgl.c: + * gst-libs/gst/gl/wgl/gstglcontext_wgl.h: + gl: Decouple win32 window and wgl context + With ANGLE, win32 window can be used with gles and egl + +2020-02-18 13:03:00 +0900 Seungha Yang + + * gst-libs/gst/gl/egl/gstglcontext_egl.c: + * gst-libs/gst/gl/egl/gstgldisplay_egl.c: + glcontext/egl: Fix build with upstream ANGLE + ANGLE_surface_d3d_render_to_back_buffer extension is only available + with Microsoft fork of ANGLE. Note that Microsoft's ANGLE repository + has been deprecated. + +2020-02-13 21:33:11 +0900 Seungha Yang + + * gst-libs/gst/gl/win32/gstglwindow_win32.c: + gl/window/win32: Handle mouse and key events + This is at least useful for the gst-play-1.0 use case. + +2020-02-15 01:19:29 +0800 He Junyan + + * gst-libs/gst/allocators/gstdmabuf.c: + libs: dmabuf: init the GST_CAT_DEFAULT in type define. + To avoid `gst_debug_log_valist: assertion 'category != NULL' failed` + if we do not call gst_dmabuf_allocator_new + +2020-02-12 13:11:43 +0200 Sebastian Dröge + + * gst-libs/gst/app/gstappsink.c: + * gst-libs/gst/app/gstappsrc.c: + appsrc/appsink: Make setting/replacing callbacks thread-safe + Previously we would simply use them without any locking at all, while + using the object lock for setting them. Nothing prevented new callbacks + to be set in the meantime, potentially calling a callback with already + freed user_data. + To prevent this move the callbacks into a reference counted struct and + use the appsrc/appsink mutex to protect access to it, which is used in + all functions calling the callbacks already anyway. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/729 + +2020-02-14 09:40:59 +0000 Håvard Graff + + * gst-libs/gst/rtp/gstrtpbasepayload.c: + * tests/check/libs/rtpbasepayload.c: + rtpbasepayload: add property for embedding twcc sequencenumbers + By setting the extension-ID for TWCC (Transport Wide Congestion Control), + the payloader will embed sequencenumbers as a RTP header-extension + according to https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01#section-2 + The negotiation of this being enabled with downstream elements + is done with caps reflecting the way this is communicated using SDP. + +2020-02-13 10:41:29 +1100 Matthew Waters + + * gst-libs/gst/gl/win32/gstglwindow_win32.c: + gl/window/win32: implement get_window_handle() + Some other frameworks need the HWND to retrieve information from. + +2020-02-10 17:39:57 +0100 Havard Graff + + * tests/check/libs/rtpbasepayload.c: + rtpbasepayload: fix test warnings + Compiling with MSVC and Clang. + +2020-01-23 16:11:28 +0100 Kristofer Björkström + + * gst-libs/gst/rtp/gstrtpbasepayload.c: + * tests/check/libs/rtpbasepayload.c: + rtpbasepayload: timestamp bug, if rate control=no + With commit "basepayload: Expose onvif-no-rate-control property" the rtp + timestamp changed behaviour when rate control is disabled. + When disabling rate control, we must take care of the stream time to + avoid the timestamps to begin from zero again. + +2020-02-10 17:15:13 -0300 Thibault Saunier + + * gst-libs/gst/pbutils/gstdiscoverer.c: + discoverer: Start discovering next URI from right thread + When using the cache, we were not using the right GMainContext to setup + next URI to discovery, fix that. + +2020-02-04 14:14:38 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglcolorconvert.c: + glcolorconvert: error out if memory context is different than ours + +2020-02-04 14:06:36 +1100 Matthew Waters + + * ext/gl/gstgltestsrc.c: + gltestsrc: NULL out the functions used + Fixes segfault when the display changes + +2020-02-04 14:01:47 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglviewconvert.c: + glviewconvert: fix reset context for GL context change + We need to remove GL resources from the old context instead of the new + GL context. The two GL context may not even be shared. + +2020-02-04 14:00:48 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglviewconvert.c: + glviewconvert: fix a use-after-free with allocation params + _free(params) followed by a params->align is a bad idea :) + +2020-02-04 13:59:37 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglviewconvert.c: + glviewconvert: also remove GL buffers on a reset + Fixes a possible memory leak on renegotiation + +2019-12-12 18:59:10 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglbasesrc.c: + gl/basesrc: call gl_stop when shutting down + Fixes multiple leaks + +2020-01-28 18:17:47 +0100 Havard Graff + + * gst-libs/gst/rtp/gstrtpbuffer.c: + * gst-libs/gst/rtp/gstrtpbuffer.h: + rtpbuffer: add gst_rtp_buffer_get_extension_onebyte_header_from_bytes + So that one can parse the GBytes returned by gst_rtp_buffer_get_extension_bytes + +2020-01-30 19:00:07 +0100 Mathieu Duponchelle + + * gst-libs/gst/video/gstvideoaggregator.c: + * tests/check/elements/compositor.c: + videoaggregator: handle gap buffers properly + This simply implies not trying to "prepare" those buffers, + as mapping an empty buffer to a video frame does not make + much sense. + This also adds a simple test in compositor that performs + some trivial checking of the handling of gap events, the test + was not failing before, but an error was logged, this is + no longer the case. + Fixes #717 + +2020-01-28 22:07:44 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: Don't configure NULL chroma-site/colorimetry + If there's no known value in the best caps then the functions to convert + them to strings will return NULL. Having the fields not in the caps is + not a problem, having them with a NULL value however will cause + negotiation failures. + +2020-01-17 14:26:29 +0100 Dimitrios Katsaros + + * gst/playback/gstdecodebin3.c: + decodebin3: Reset main group id on PAUSED->READY state change + The main_input stream-id would not get reset when going to READY state. + This would cause warnings when trying to reuse the same decodebin3, since + you would get a new STREAM_START event with a new stream-id, which would + collide with the now stale stream-id + +2020-01-17 14:16:23 +0100 Dimitrios Katsaros + + * gst/playback/gstdecodebin3.c: + decodebin3: Reduced logging level of messages + The logging is set to warning for a drain event, which is part of the + normal functionality of the parsebin. + +2020-01-23 18:03:13 +0000 Tim-Philipp Müller + + * ext/pango/gstclockoverlay.c: + clockoverlay: fix bogus time display caused by previous commit + Fixes regression introduced by "clean-up" done as part of commit 98ebcb4. + dummy must live as long as use the return value of localtime_r() since + that's just a pointer to it, and by putting it inside the block we made + dummy go out of scope right after localtime_r() returned, which messed + up the time values since when we poked at the struct the contents might + already have been overwritten. + Fixes #722 + +2020-01-17 11:22:48 +0100 Dimitrios Katsaros + + * gst/playback/gsturidecodebin3.c: + uridecodebin3: Fixed defauts not being set on initialization + The default values were not being set on element initialization. This + was a problem for buffer_duration and buffer_size since they would be + zero initialized, rather then being set to -1. This would cause the + underlaying queue2 element to have no limits and depending on the + streamed file, could cause queue2 to allocate massive amounts of memory. + +2020-01-13 18:32:59 -0300 Thibault Saunier + + * gst-libs/gst/pbutils/encoding-profile.c: + encodebin: Add missing 'Since' marker + +2020-01-13 09:06:02 +0000 Philippe Normand + + * ext/ogg/gstoggstream.c: + oggstream: Workaround for broken PAR in VP8 BOS + Similarily to the Theora mapping, process 0:N, N:0 and 0:0 pixel aspect ratios + as 1:1. + Fixes #719 + +2020-01-11 19:26:24 -0500 Nicolas Dufresne + + * tests/check/libs/rtpbasedepayload.c: + tests: rtpbasedepayload: Test flow return whith push/push_list + This validate that the base class properly save and return the flow + return value received when gst_rtp_base_depay_push/push_list() helper is + being used. + +2019-11-21 21:04:14 -0500 Nicolas Dufresne + + * gst-libs/gst/rtp/gstrtpbasedepayload.c: + rtpbasepayload: Save and forward the push flow return + Save push/push_list helper flow return and in case of failure, return it + in the process function. This allow forwarding downstream flow return + even if the subclass is using the push/push_list helper. + +2019-11-03 15:52:28 +0100 Víctor Manuel Jáquez Leal + + * gst/playback/gstdecodebin3.c: + * gst/playback/gstplaybin3.c: + * gst/playback/gsturidecodebin3.c: + playbin3: handle GST_PLAY_FLAG_FORCE_SW_DECODERS + In decodebin3 and uridecodebin3 the `force-sw-decoders` boolean property is + added. In uridecodebin3 it is only a proxy property which will forward + the value to decodebin3. + When decodebin3 has `force-sw-decoders` disabled, it will filter out in its + decoder and decodable factories those elements within the 'Hardware' + class, at reconfiguring output stream. + playbin3 adds by default GST_PLAY_FLAG_FORCE_SW_DECODERS, and sets + `force-sw-decoders` property accordingly to its internal uridecodebin, also + filters out the 'Hardware' class decoder elements when caps + negotiation. + +2019-11-03 15:37:44 +0100 Víctor Manuel Jáquez Leal + + * gst/playback/gstdecodebin2.c: + * gst/playback/gstplaybin2.c: + * gst/playback/gsturidecodebin.c: + playbin2: handle GST_PLAY_FLAG_FORCE_SW_DECODERS + Added `force-sw-decoders` boolean property in decodebin2 and + uridecodebin. By default the property is %FALSE and it bypass the new + code. Otherwise the factory list is filtered removing decoders + within 'Hardware' class. + uridecodebin sets the `force-sw-decoders` property in its internal + decodebin, and also filters out Hardware class in the + autoplug-factories default signal handler. + playbin2 adds by default GST_PLAY_FLAG_FORCE_SW_DECODERS it its flags + property, and depending on it playbin2 sets the `force-sw-decoders` + property on its internal uridecodebin, also filters out the Hardware + class decoding decoders at the autoplug-factories signal handler. + +2019-11-03 15:16:04 +0100 Víctor Manuel Jáquez Leal + + * gst/playback/gstplay-enum.c: + * gst/playback/gstplay-enum.h: + playback: add GST_PLAY_FLAG_FORCE_SW_DECODERS enum + This flag would be common either for playbin2 and playbin3. + +2020-01-08 17:28:46 +0000 Tim-Philipp Müller + + * ext/gl/meson.build: + * subprojects/graphene.wrap: + meson: add graphene subproject + So we can build all the OpenGL elements. + +2020-01-08 08:29:18 +0200 Sebastian Dröge + + * gst/compositor/blend.c: + compositor: memcpy() lines directly for alpha formats with SOURCE operator and alpha=1.0 + +2020-01-08 02:34:17 +0000 Randy Li + + * gst/rawparse/gstrawvideoparse.c: + * gst/rawparse/gstrawvideoparse.h: + rawvideoparse: allow setting the colorimetry + You can neither guess nor parse the colorimetry from the + input stream. + Signed-off-by: Randy Li + +2020-01-07 20:01:14 +0200 Sebastian Dröge + + * gst/compositor/compositor.c: + compositor: Alpha inputs with the SOURCE operator can be considered opaque + We don't have to look at each pixel's alpha component because we will + directly write it over the background. + +2019-12-30 23:08:05 -0800 Ryan Huang + + * gst-libs/gst/video/video-format.h: + Fix link to raw video format design document + +2019-08-11 11:25:50 +0100 Philippe Normand + + * gst/playback/gstplaybin3.c: + playbin3: Propagate sink context + When the playsink's sink is activated its state is set to READY but it remains + unlinked. So, in order for decodebin3 to potentially reuse the context later on, + the whole playbin3 needs to have it internally stored. + +2019-12-31 15:49:05 +0900 Seungha Yang + + * gst/playback/gstplaybin2.c: + playbin: Propagate sink context + Any contexts created by sink during activation need to be propagated + to whole elements of playbin. + +2019-12-06 08:47:14 -0500 Aaron Boxer + + * gst-libs/gst/rtsp/gstrtspurl.c: + * gst-libs/gst/rtsp/gstrtspurl.h: + * tests/check/libs/rtsp.c: + rtspurl: add API method to create request uri combined with control url + code logic very similar to gst_rtsp_url_get_request_uri () + +2019-12-27 12:53:41 +0100 Mathieu Duponchelle + + * gst-libs/gst/video/gstvideoaggregator.c: + gstvideoaggregator: always update converter when needed + In prepare_frame, it is not enough for the target info + (conversion_info) to not have changed to decide not to update + the converter, as the vpad info may have changed as well. + Fixes #714 + +2019-12-27 11:34:26 +0200 Sebastian Dröge + + * gst-libs/gst/fft/_kiss_fft_guts_f32.h: + * gst-libs/gst/fft/_kiss_fft_guts_f64.h: + * gst-libs/gst/fft/_kiss_fft_guts_s16.h: + * gst-libs/gst/fft/_kiss_fft_guts_s32.h: + * gst-libs/gst/fft/kiss_fft_f32.c: + * gst-libs/gst/fft/kiss_fft_f32.h: + * gst-libs/gst/fft/kiss_fft_f64.c: + * gst-libs/gst/fft/kiss_fft_f64.h: + * gst-libs/gst/fft/kiss_fft_s16.c: + * gst-libs/gst/fft/kiss_fft_s16.h: + * gst-libs/gst/fft/kiss_fft_s32.c: + * gst-libs/gst/fft/kiss_fft_s32.h: + * gst-libs/gst/fft/kiss_fftr_f32.c: + * gst-libs/gst/fft/kiss_fftr_f32.h: + * gst-libs/gst/fft/kiss_fftr_f64.c: + * gst-libs/gst/fft/kiss_fftr_f64.h: + * gst-libs/gst/fft/kiss_fftr_s16.c: + * gst-libs/gst/fft/kiss_fftr_s16.h: + * gst-libs/gst/fft/kiss_fftr_s32.c: + * gst-libs/gst/fft/kiss_fftr_s32.h: + * gst-libs/gst/fft/kiss_version: + fft: Update our kiss fft version + This fixes thread-safety issues and various other minor issues. Our + previous version was about 13 years old. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/715 + +2019-12-20 12:27:57 +0900 Seungha Yang + + * gst-libs/gst/gl/win32/gstglwindow_win32.c: + glwindow/win32: Don't post any WinProc message to parent window + Posting any message to parent seems to be pointless. That might break + parent window. + Regardless of the posting, parent window can catch mouse event + and also any keyboard events will be handled by parent window by default. + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/634 + +2019-12-19 14:48:43 -0500 Aaron Boxer + + * gst/playback/gstplaybin2.c: + * gst/playback/gstplaybin3.c: + * gst/playback/gstplaysink.c: + * gst/playback/gstplaysink.h: + playbin: remove deprecated raw audio and raw video sink flags + These flags were deprecated in 2011 with commit + 105da803ade859fb299ed3c5265d6acdd168ca8f + Removing these flags will simplify the logic in playbin. + +2019-09-06 18:07:48 +0200 Stéphane Cerveau + + * tests/check/libs/videoencoder.c: + tests: add video encoder test with subframes API + +2019-09-12 12:07:08 +0200 Stéphane Cerveau + + * gst-libs/gst/video/gstvideoencoder.c: + videoencoder: send new headers in finish_frame + If headers have been set by subclass, this headers should be sent + for a first time or on demand with a key-unit + +2019-09-25 10:45:28 +0200 Stéphane Cerveau + + * gst-libs/gst/video/gstvideoencoder.c: + * gst-libs/gst/video/video-frame.h: + videoencoder: Use video marker flag to signal end of frame + This marker is optional, its name refer to RTP marker bit. This mark can + be use to reduce latency in various use cases. With the split between + finish_frame() and finish_subframe() we will now be able to identitfy + the last subframe with no latency. + In order to detail the use of GST_BUFFER_FLAG_MARKER in a video + use case, the flag GST_VIDEO_BUFFER_FLAG_MARKER has been introduced + with a proper documentation clarifying marker's role. + +2018-08-31 12:09:57 +0200 Guillaume Desmottes + + * gst-libs/gst/video/gstvideoencoder.c: + * gst-libs/gst/video/gstvideoencoder.h: + * gst-libs/gst/video/gstvideoutils.h: + videoencoder: add API to push subframes + Introduce a new API so encoders can split the encoding in subframes. + This can be useful to reduce the overall latency as we no longer need to + wait for the full frame to be encoded to start decoding or sending it. + +2018-08-31 10:55:30 +0200 Guillaume Desmottes + + * gst-libs/gst/video/gstvideoencoder.c: + videoencoder: factor out logic from gst_video_encoder_finish_frame() + No semantic change, I'm going to reuse all those functions in a new + finish_slice() methods. + +2019-12-20 13:35:53 +0100 Jonas Holmberg + + * gst-libs/gst/audio/gstaudioencoder.c: + audioencoder: fix segment event leak + Segment event was leaked if format != _TIME. + +2019-12-19 17:52:12 -0500 Olivier Crête + + * gst-libs/gst/video/gstvideoencoder.c: + * gst-libs/gst/video/gstvideoencoder.h: + * gst-libs/gst/video/gstvideoutils.h: + * gst-libs/gst/video/video-frame.h: + * tests/check/libs/videoencoder.c: + Revert "videoencoder: factor out logic from gst_video_encoder_finish_frame()" + This reverts commit b1ec312b8ed39ffaeeca1f5a8a014acd4b74d5f9. + +2019-12-19 21:59:10 +0000 Stéphane Cerveau + + * gst-libs/gst/video/gstvideoencoder.c: + * gst-libs/gst/video/gstvideoencoder.h: + * gst-libs/gst/video/gstvideoutils.h: + * gst-libs/gst/video/video-frame.h: + * tests/check/libs/videoencoder.c: + videoencoder: factor out logic from gst_video_encoder_finish_frame() + No semantic change, I'm going to reuse all those functions in a new + finish_slice() methods. + +2019-12-10 18:03:05 -0500 Olivier Crête + + * gst-libs/gst/rtsp/gstrtspconnection.c: + * gst-libs/gst/rtsp/gstrtspconnection.h: + * tests/check/libs/rtspconnection.c: + rtspconnection: Add functions without GTimeVal deprecate existing + GTimeVal is now deprecated in GLib, so let's deprecate it here too + +2019-12-10 17:09:57 -0500 Olivier Crête + + * tests/examples/gl/qt/mousevideooverlay/pipeline.cpp: + * tests/examples/gl/qt/qglwidgetvideooverlay/pipeline.cpp: + tests: Remove deprecated GTimeVal + GTimeVal won't work past 2038 + +2019-12-18 16:03:54 +0100 Stéphane Cerveau + + * gst/tcp/gsttcpclientsink.c: + * gst/tcp/gsttcpclientsrc.c: + * gst/tcp/gsttcpserversink.c: + * gst/tcp/gsttcpserversrc.c: + * sys/xvimage/xvimagesink.c: + base: use of g_value_dup_string + Use helper method to get string from GValue. + +2019-12-11 10:07:12 +0100 Stéphane Cerveau + + * ext/alsa/gstalsamidisrc.c: + * gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.c: + * gst-libs/gst/gl/gstglshader.c: + remove various useless linefeed in logs + +2019-12-08 01:17:31 +0000 Tim-Philipp Müller + + * tests/check/meson.build: + tests: actually define HAVE_VALGRIND + This stuff should probably be done differently, but + for now just define it like we used to. + +2019-12-08 00:52:17 +0000 Tim-Philipp Müller + + * sys/xvimage/meson.build: + xvimage: remove unused HAVE_XVIDEO define + +2019-12-08 00:50:03 +0000 Tim-Philipp Müller + + * meson.build: + * tests/examples/seek/jsseek.c: + test: fix up HAVE_X11 / HAVE_X defines + Only HAVE_X was defined, while both HAVE_X11 and HAVE_X were used. + +2019-12-08 00:00:37 +0000 Tim-Philipp Müller + + * gst/typefind/meson.build: + * meson_options.txt: + typefindfunctions: build gio xdgmime typefinder again + And add gio-typefinder option to disable it. HAVE_GIO + was never set, at least not in the Meson build. + +2019-12-07 21:13:09 +0000 Tim-Philipp Müller + + * tests/check/pipelines/simple-launch-lines.c: + tests: simple-launch-lines: remove use of unused HAVE_LIBVISUAL define + This is not set anywhere, and it's pretty clear the pipeline in + question has not been tested in a long time. Disable test with + a FIXME, test needs to be rewritten to not use real output devices. + +2019-12-07 21:02:53 +0000 Tim-Philipp Müller + + * tests/check/pipelines/gl-launch-lines.c: + tests: gl-launch-lines: check for features at runtime + Instead of using HAVE_PNG and HAVE_JPEG defines. + +2019-12-07 20:47:01 +0000 Tim-Philipp Müller + + * gst/tcp/gstmultifdsink.c: + * tests/check/elements/multifdsink.c: + * tests/check/elements/multisocketsink.c: + multifdsink: remove defunct include guarded by unused HAVE_FIONREAD_IN_SYS_FILIO + The configure check for this went away in 2012 in commit cd3eee. + +2019-12-07 14:36:36 +0000 Tim-Philipp Müller + + * ext/theora/meson.build: + * tests/check/pipelines/oggmux.c: + tests: oggmux: check vorbisenc + theoraenc availability at runtime + HAVE_VORBIS was used but never set, so only 3 out of 7 tests + actually ran. Drop now-unused HAVE_THEORA define. + +2019-12-07 14:22:06 +0000 Tim-Philipp Müller + + * meson.build: + * tests/icles/playback/test4.c: + * tests/icles/playback/test5.c: + * tests/icles/playback/test6.c: + * tests/icles/playback/test7.c: + tests: playback: include stdlib.h unconditionally + Like we do elsewhere. And drop the check for the header. + Also remove some superfluous unistd.h includes. + +2019-12-07 14:12:04 +0000 Tim-Philipp Müller + + * ext/vorbis/gstvorbisdec.c: + * ext/vorbis/meson.build: + vorbis: drop unneeded check for vorbis_synthesis_restart() + This was added in 1.0.1 more than 16 years ago, I think we + can safely assume this is always present now. Also in tremor. + While at it, bump vorbis requirement to 1.3.1 from 2010. + +2019-12-07 14:04:00 +0000 Tim-Philipp Müller + + * ext/pango/gstclockoverlay.c: + * meson.build: + pango: check if localtime_r is available + HAVE_LOCALTIME_R was used, but never defined. + +2019-12-08 18:13:55 +0900 Seungha Yang + + * tests/examples/overlaycomposition/overlaycomposition.c: + examples: overlaycomposition: Fix implicit declaration warning + overlaycomposition.c:276:5: warning: implicit declaration of function 'exit' [-Wimplicit-function-declaration] + overlaycomposition.c(263): warning C4090: 'initializing': different 'const' qualifiers + +2019-12-08 18:12:00 +0900 Seungha Yang + + * tests/examples/overlay/win32-videooverlay.c: + examples: win32-videooverlay: Remove unused variable + win32-videooverlay.c:34:20: warning: 'msg_io_channel' defined but not used [-Wunused-variable] + +2019-12-03 23:35:23 +0000 Stéphane Cerveau + + * gst-libs/gst/pbutils/codec-utils.c: + * tests/check/libs/pbutils.c: + codec-utils: add h264 constrained and progressive profiles + Those profiles have been added in the version 2012-01 + and 2011-06 of the AVC spec. + Aligned code with https://bugzilla.gnome.org/show_bug.cgi?id=794127 + +2019-12-03 14:16:06 +1100 Matthew Waters + + * meson.build: + build: use -fvisibility=hidden for objc code + +2019-12-03 14:15:58 +1100 Matthew Waters + + * gst-libs/gst/gl/cocoa/gstgl_cocoa_private.h: + gl/macos+ios: privatise _invoke_on_main() + https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1132 + +2019-11-27 20:42:34 +0200 Mart Raudsepp + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: don't let a repeat-after-eos pad prevent EOS + .. if there are pads present that are not repeating after EOS. + Fixes #664 + +2019-11-27 15:54:57 +0200 Mart Raudsepp + + * tests/check/elements/compositor.c: + tests: expand compositor repeat-after-eos tests for multiple pads + If there are any pads with repeat-after-eos NOT set, then the compositor + should EOS after all of those pads have gone EOS, but not before all + repeat-after-eos pads have as well. + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/664 + +2019-06-04 10:05:54 -0400 Thibault Saunier + + * tools/gst-device-monitor.c: + tools: Add support for CameraSource pipeline description + +2019-11-08 15:13:59 +0100 Edward Hervey + + * gst-libs/gst/video/video-converter.c: + video-converter: Fix RGB-XYZ-RGB conversion + The matrices were in the wrong order. + Instead of the conversion matrix being + _ XYZ_TO_RGB_output * RGB_TO_XYZ_input * input_RGB + It was + _ RGB_TO_XYZ_input * XYZ_TO_RGB_output * input_RGB + +2019-05-21 21:59:23 +0900 Akinobu Mita + + * sys/ximage/meson.build: + * sys/ximage/ximagesink.c: + * sys/ximage/ximagesink.h: + * sys/xvimage/meson.build: + * sys/xvimage/xvcontext.c: + * sys/xvimage/xvcontext.h: + * sys/xvimage/xvimagesink.c: + ximagesink, xvimagesink: don't use XkbKeycodeToKeysym if Xkb is unavailable + ximagesink and xvimagesink use XkbKeycodeToKeysym when the key event is + received. However, this function returns NoSymbol if Xkb is unavailable. + This causes all key events to be translated to "unknown" key when running + ximagsink under some VNC. + Fix it by using XKeycodeToKeysym if Xkb is unavailable. + +2019-09-27 20:08:39 +0900 Seungha Yang + + * tools/gst-play-kb.c: + gst-play: Handle KeyDown event instead of KeyUp on Win32 keyboard handler + To handle long press case, KeyDown input should be handled instead of KeyUp. + Note that OS will take care of the sensitivity of KeyDown event, so we can safely + assume one KeyDown as one input. That will not break user experience. + +2019-09-27 19:26:03 +0900 Seungha Yang + + * tools/gst-play-kb.c: + gst-play: Remove timer GSource from Win32 keyboard handler + Use WaitForMultipleObjects to handle keyboard input only if pending + keyboard input exists. + +2019-11-13 19:37:29 +0900 Seungha Yang + + * tests/examples/overlay/win32-videooverlay.c: + examples: win32-videooverlay: Add an option for testing reuse of external window + Adding "repeat" option to test a case where external window is reused. + +2019-11-07 22:00:03 +0900 Seungha Yang + + * gst/audiorate/gstaudiorate.c: + audiorate: Update next_offset per rate change + To support runtime audio samplerate change, re-calculate next target offset + per caps. Calculating the next buffer offset using the previous + offset seems to be tricky and rounding error prone. + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/693 + +2019-11-07 21:42:25 +0900 Seungha Yang + + * gst/audiorate/gstaudiorate.c: + * gst/audiorate/gstaudiorate.h: + Revert "audiorate: accumulate offset by time diff" + This reverts commit 4fa850e3e6c039000fc7f648de238af6c2278469. + The commit would break an constant rate audio stream with gap. + +2019-11-08 17:28:44 +0900 Seungha Yang + + * sys/xvimage/xvimagepool.c: + * sys/xvimage/xvimagepool.h: + xvimagepool: Update size, stride, and offset with allocated XvImage + Memory layout of XvImage might be different from that of GstVideoInfo. + If so, the image size, stride, and offset would be wrongly informed. + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/677 + +2019-11-08 17:33:17 +0900 Seungha Yang + + * sys/xvimage/xvimagepool.c: + xvimagepool: Fix confusing debug message for padding size + +2019-11-17 18:23:59 +0000 Ambareesh "Amby" Balaji + + * ext/opus/gstopusenc.c: + opusenc: Add low delay option + Fixes #681 + +2019-08-26 15:03:48 +0200 Jochen Henneberg + + * gst-libs/gst/audio/gstaudioringbuffer.c: + audioringbuffer: Reset reorder flag before check + This function might be revisited with different channel position mapping + while audio source goes into play so the reorder flag needs to be reset + before the checks happen. + +2019-11-15 18:06:13 +0900 Wonchul Lee + + * gst-libs/gst/gl/gstglupload.c: + glupload: Fix allocator leak + It fixes allocator leak in failure case + +2019-11-15 12:19:56 +0900 Seungha Yang + + * tests/examples/overlaycomposition/overlaycomposition.c: + examples: overlaycomposition: Fix typo + Sorry for the noise. Default should be autovideosink + +2019-11-13 15:28:20 +0530 Guillaume Desmottes + + * gst-libs/gst/video/video-info.h: + video-info: improve GST_CAPS_FEATURE_FORMAT_INTERLACED documentation + Copied the description from gst-doc written by Tim. + Fix #606 + +2019-11-12 12:17:44 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglwindow.c: + gl/window: marshall quit to the window thread + Fixes a possible deadlock where we're waiting for the window thread to + quit but it never does. + +2019-11-14 12:37:58 +0100 Sebastian Dröge + + * gst-libs/gst/audio/audio-buffer.c: + audio-buffer: Don't fail to map buffers with zero samples + Instead initialize the map infos, etc to NULL like gst_buffer_map() + would be doing on a zero-sized buffer. + This fixes a crash in audioresample if the first output buffer would + contain zero samples. + +2019-11-12 21:15:38 +0900 Seungha Yang + + * tests/examples/overlaycomposition/overlaycomposition.c: + examples: overlaycomposition: Add option for videosink element selection + It would be useful for testing overlaycomposition with specific videosink element. + +2019-11-13 17:31:29 +0900 Wonchul Lee + + * gst-libs/gst/gl/egl/gstglcontext_egl.c: + glcontext/egl: Fix window leak + Fixed to do unref after use of window get by gst_gl_context_get_window() + +2019-11-10 20:05:59 -0500 Nicolas Dufresne + + * ext/gl/gstgldownloadelement.c: + * ext/gl/gstgldownloadelement.h: + gldownload: Fix renegotiation loop + When DMABuf was tried, we would renegotiate back and fourth between + DMABuf and system memory if the export failed. This would happen for + every single frame. + This patch introduces try_dmabuf_exports boolean, which is unset when + an export failed. This boolean is then put back to TRUE when upstream + pushes new caps, or downstream pushes a reconfigure event. + +2019-11-10 20:02:09 -0500 Nicolas Dufresne + + * ext/gl/gstgldownloadelement.c: + * ext/gl/gstgldownloadelement.h: + gldownload: Refactor download mode selection + This introduces an enum in order to cleanup how we select the + transfer mode. It also fixes the case where we callback to PBO but + we didn't execute the PBO. That was not causing any issue, just that + the processing latency would be delayed to the next element, which + can be confusing. + +2019-07-14 16:42:17 -0400 Nicolas Dufresne + + * gst-libs/gst/gl/egl/gsteglimage.c: + eglimage: Fix extension names in dmabuf import check + There was a typo in the extension name which resulted in the modifiers + to never be set when doing DMABuf import. That triggered the modifiers + lookup in Intel driver, which was in fact hiding bugs in the gldownload + to glupload path when doing DMABuf. + Note, this changes breaks pipeline the following pipeline on Intel and + some other drivers: + gltestsrc ! gldownload ! video/x-raw\(memory:DMABuf\) ! glimagsink + A fix for this was added to Mesa recently: + Related to https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1338 + Fixes 5d0e191710 + +2019-07-14 16:33:35 -0400 Nicolas Dufresne + + * ext/gl/gstgldownloadelement.c: + * gst-libs/gst/gl/egl/gsteglimage.c: + eglimage: Fix exported DMABuf size + All we know is the height and the stride, so make sure not to expose + the DMABuf larger then the size we know about. + +2018-04-25 13:09:05 -0400 Nicolas Dufresne + + * gst-libs/gst/gl/egl/gsteglimage.c: + eglimage: Fail exportation if a modififer is used + We don't support modififers and that would result in bad image being + displayed. Note that this was fixes recently in Mesa MR 1138, prior to + that, the reported modifier is always 0, which makes this change a + no-op. + Fixes #441 + Related to https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1338 + +2019-08-03 13:14:53 -0400 Nicolas Dufresne + + * ext/gl/gstgldownloadelement.c: + gldownload: Wait on sync meta if any + This is possibly not strictly needed when pixels are being downloaded to + CPU memory, but would cause issue when exporting DMABuf, as the data may + not be yet ready when the DMABuf reaches the consumer. + +2019-09-03 16:03:49 -0400 Thibault Saunier + + * gst/playback/gstplaybin2.c: + playbin: Handle error message with redirection indication + There are in the wild (mp4) streams that basically contain no tracks + but do have a redirect info[0], in which case, qtdemux won't be able + to expose any pad (there are no tracks) so can't post anything but + an error on the bus, as: + - it can't send EOS downstream, it has no pad, + - posting an EOS message will be useless as PAUSED state can't be + reached and there is no sink in the pipeline meaning GstBin will + simply ignore it + In that case, currently the application could try to handle that but it + is pretty complex as it will get the REDIRECT message on the bus at + which point it could set the URL but playbin will ignore it, as + it will only be for the next EOS, it thus need to set the pipeline to + NULL (READY won't do as it is already in READY at that point). And it + needs to figure out the following ERROR message on the bus needs to be + ignored, which is not really simple. + The approach here is to allow element to add details to the ERROR + message with a `redirect-location` field which elements like playbin handle + and use right away. + We could also use the element 'redirect' message in playbin, but the + issue with that approach is that the element will still emit the ERROR + message on the bus, leading to wrong behaviour. That can't be avoided + since in the case the app/parent pipeline is not handling the redirect + instruction, the ERROR message is necessary (and there is no way to + detect that the message has been "handled" from the element emitting the + redirect). + [0]: http://movietrailers.apple.com/movies/paramount/terminator-dark-fate/terminator-dark-fate-trailer-2_480p.mov + +2019-09-19 15:12:25 -0600 Aaron Boxer + + * gst/overlaycomposition/gstoverlaycomposition.c: + overlaycomposition: set sink pad to proxy allocation queries + +2019-11-03 00:46:49 +1100 Matthew Waters + + * gst-libs/gst/gl/gstgldisplay.c: + * gst-libs/gst/gl/gstgldisplay.h: + display: add a specific lock for the list of windows + It's either this or replacing all the object lock usage in gldisplay + with a recursive mutex which is not backwards compatible + The failure case is effectively: + 1. The user has locked the display object lock + 2. a glcontext loses it's last ref and attempts to quit the window + 3. gst_gl_window_quit() attempts to remove the window from the display + 4. gst_gl_display_remove_window attempts to take the display object lock + The only concern with changing the locking for the window list in the + display is that gst_gl_display_create_window() has documentation requiring + the object lock to be held which must continue to work correctly. + +2019-03-08 17:43:40 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglwindow.c: + glwindow: fix racy resize updates + Take locks around resize handling and marshall all resizes to the + windowing thread by default. + +2019-03-08 17:40:52 +1100 Matthew Waters + + * gst-libs/gst/gl/gstgldisplay.c: + * gst-libs/gst/gl/gstglwindow.c: + glwindow: remove window from display list on quit/finalize + Fixes a possible use-after-free in the X11 backend. + +2019-11-02 22:58:42 +1100 Matthew Waters + + * gst-libs/gst/gl/gstgldisplay.c: + * gst-libs/gst/gl/gstgldisplay.h: + * gst-libs/gst/gl/x11/gstgldisplay_x11.c: + gl/display: Add thread-safe retrieve_window + Returning a transfer none value for a value checked by a lock is not + thread safe as the reference could disappear before the caller can take + its reference. + +2019-08-30 17:16:35 -0400 Thibault Saunier + + * gst-libs/gst/pbutils/encoding-profile.c: + * gst-libs/gst/pbutils/encoding-profile.h: + * gst/encoding/gstencodebin.c: + encodebin: Ensure that a single segment is pushed into encoders + Following the [design document] encodebin needs to handle sources that + output multiple streams, for that purpose and to make it simpler, + we ensure that a single segment is outputted to the encoders by using + an `identity single-segment=true` at the beginning of streams chains. + Added API to enable or disable the use of that new feature. + Added support for the encoding profile parser for that new property, + keeping backward compatibility + [design document]: https://gstreamer.freedesktop.org/documentation/additional/design/encoding.html?gi-language=c#rendering-timelines + +2019-03-19 16:20:01 +0100 Havard Graff + + * gst-libs/gst/rtp/gstrtcpbuffer.h: + rtcpbuffer: add RTPFB_TYPE_TWCC for Transport-Wide Congestion Control + +2019-11-03 10:25:55 +0000 Jochen Henneberg + + * gst/audioconvert/gstaudioconvert.c: + * gst/audioconvert/gstaudioconvert.h: + audioconvert: Fixed changing mix-matrix at runtime + Setting the property again after it had already been set ran + g_value_unset() but did not initialize it again to g_value_copy() failed + afterwards. Removed the unset as cleanup is done implicitely from + g_value_copy(). + Changing the mix-matrix property did not trigger reconfiguration of the + caps, this has been added. + If the matrix is set to an empty matrix, instead of copying this the + matrix is simply disabled by setting mix_matrix_is_set (formerly + mix_matrix_was_set) to FALSE so the mix-matrix is ignored from now on. + +2019-10-28 14:43:50 +0200 Sebastian Dröge + + * gst/videorate/gstvideorate.c: + * tests/check/elements/videorate.c: + videorate: Fix max-duplication-time handling + Previously this would've only set discont=TRUE and then for all future + buffers simply returned immediately. + Instead we also need to + a) drain previous input until its buffer time + b) update next_ts and base_ts accordingly for the gap + c) actually store the new buffer after the gap so it can be used in + the future and so the old buffer before the gap is gone + Also update the unit test accordingly so that it actually tests for this + behaviour. Previously it only tested that after the gap we got no output + at all. + +2019-08-20 23:12:22 +0900 Seungha Yang + + * gst/compositor/blend.c: + * gst/compositor/blend.h: + * gst/compositor/compositor.c: + * tests/check/elements/compositor.c: + compositor: Add support for VUYA format + Reversed order of AYUV format. Most of core methods are prepared + already. + +2019-05-25 19:23:35 +0200 Guillaume Desmottes + + * gst-libs/gst/video/gstvideometa.h: + videometa: document how the meta can be used to negotiate buffers layout + I'm going to use this new API in gst-omx so an encoder can request + v4l2src to produce buffers matching the encoder stride and slice heights + preventing copies of incoming buffers. + +2019-11-04 00:38:18 +1100 Matthew Waters + + * ext/gl/gstglimagesink.c: + * gst-libs/gst/gl/gbm/gstglwindow_gbm_egl.c: + gl/gbm: ensure we call the resize callback before attempting to draw + Without this, sinks will not be notified about size changes or even the + initial size and would render at 0x0. + +2019-11-02 16:24:39 +0100 Sebastian Dröge + + * gst-libs/gst/video/video-scaler.c: + video-scaler: Ensure we're always using the correct lines for scaling in gst_video_scaler_2d() + Especially for interlaced input make sure to + a) never mix both fields + b) never read lines after the end of the input frame + c) allocate enough space in the temporary lines to not write outside + the allocated memory area + This fixes various memory corruptions and rescaling artefacts. + +2018-10-02 12:04:14 -0400 Nicolas Dufresne + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: Add a property to disable dropping on QoS + +2018-10-02 11:09:33 -0400 Nicolas Dufresne + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: Post QoS when we drop because of QoS + At the moment, we only posted QoS messages when frame_drop() was + called, but not in finish_frame() when QoS triggered a late push. + This should fix applications that tries to account the dropped + frames. We also emit a warning on drops so it's more clear what is + happening. + +2019-07-23 11:49:07 +0530 Guillaume Desmottes + + * ext/gl/gstgldownloadelement.c: + * gst-libs/gst/gl/gstglmemory.c: + * gst-libs/gst/gl/gstglviewconvert.c: + gl: use gst_video_meta_set_alignment() + +2019-07-22 16:55:04 +0530 Guillaume Desmottes + + * sys/ximage/ximagepool.c: + * sys/xvimage/xvimagepool.c: + x(v)image: use gst_video_meta_set_alignment() + Use the new API to tell buffer consumers about alignment details. + This change is backward compatible as non ported elements can safely + ignore the alignment information and keep processing buffers as they use + to, copying if necessary. + +2019-07-09 12:17:44 +0200 Guillaume Desmottes + + * gst-libs/gst/video/gstvideometa.c: + * gst-libs/gst/video/gstvideometa.h: + * tests/check/libs/video.c: + videometa: add alignment field + By adding this field, buffer producers can now explicitly set the exact + geometry of planes, allowing users to easily know the padded size and + height of each plane. + GstVideoMeta is always heap allocated by GStreamer itself so we can + safely extend it. + +2019-06-03 16:26:08 +0530 Guillaume Desmottes + + * gst-libs/gst/video/video-info.c: + * gst-libs/gst/video/video-info.h: + * tests/check/libs/video.c: + video-info: add gst_video_info_align_full() + When using gst_video_info_align() user had no easy way to retrieve the + padded size and height of each plane. + This can easily be implemented in fill_planes() as it's already called + in align() with the padded height. + Ideally we'd add a plane_size field to GstVideoInfo but the remaining + padding is too small so that would be an ABI break. + Fix #618 + +2019-11-02 12:15:15 +0100 Guillaume Desmottes + + * gst-libs/gst/video/video-info.h: + video-info: fix GST_VIDEO_INFO_FIELD_HEIGHT() with frame odd height + We want to round up when halfing height. + I do have a test for this but it relies on my new video-align tests so + it's part of the next commit. Recording the fix separately if we want to + backport this fix to the stable branch. + +2019-10-30 14:59:40 +0100 Nicola Murino + + * ext/gl/gstglimagesink.c: + glimagesink: fix upper-left and upper-right rotate matrices + +2019-10-25 20:44:27 +0900 Seungha Yang + + * tests/check/libs/audio.c: + tests: audio: Add test for gst_audio_info_from_caps() method + Test gst_audio_info_from_caps() with raw and encoded formats. + +2019-10-25 12:05:54 +0900 Seungha Yang + + * gst-libs/gst/audio/audio-info.c: + audio-info: Allow from_caps() with encoded audio format + Similar to gst_video_info_from_caps() which allows encoded video format, + don't error gst_audio_info_from_caps() with encoded audio format. + Because gst_audio_info_set_format() supports encoded format, current + behavior does not seem to be consistent. + +2019-10-21 16:43:32 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-converter.c: + video-converter: Use G_N_ELEMENTS instead of writing it out manually + +2019-10-21 17:40:35 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-converter.c: + video-converter: Scaling-only fast-paths for planar formats are keeping interlacing + So we can also use them for interlaced content and speed up scaling a + bit. + +2019-10-21 17:28:46 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-scaler.c: + video-scaler: Correctly handle interlaced vertical scalers in gst_video_scaler_2d() + We need to provide twice as many lines as usual to the scaling function + as every second lines would be skipped. + Without this we read from random memory and produce colorful output and + crashes. + +2019-10-21 16:43:02 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-converter.c: + video-converter: Don't use fast-path halfing/doubling rescalers for interlaced planar formats + They will mix lines from the top and bottom field and by that + effectively deinterlace the video, badly. + +2019-10-21 16:43:02 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-converter.c: + video-converter: Use interlaced scalers for vertical scaling if needed + Without this, scaling e.g. interlaced UYVY causes corrupted output with + lines as follows: f1 f1 f2 f2, i.e. two lines of each field and only + then the other field. + +2019-10-03 12:03:09 +0200 Joakim Johansson + + * gst-libs/gst/rtsp/gstrtspconnection.c: + gstrtspconnection: messages_bytes not decreased + The watch->messages_bytes is not decreased when the write operation + from the backlog is only partly successfull. + This commit decreases the watch->messages_bytes for the successfully + sent messages. + Fixes #679 + +2019-10-17 20:06:24 +0100 Tim-Philipp Müller + + * meson.build: + meson: build gir even when cross-compiling if introspection was enabled explicitly + This can be made to work in certain circumstances when + cross-compiling, so default to not building g-i stuff + when cross-compiling, but allow it if introspection was + enabled explicitly via -Dintrospection=enabled. + See gstreamer/gstreamer#454 and gstreamer/gstreamer#381. + +2019-10-12 12:00:46 +0800 Haihao Xiang + + * gst-libs/gst/gl/gstglcolorconvert.c: + * gst-libs/gst/gl/gstglcolorconvert.h: + * gst-libs/gst/gl/gstglformat.c: + * gst-libs/gst/gl/gstglmemory.h: + glimagesink: add support for Y210 format + Y210 is a 10-bit YUY2, so we may re-use the YUY2 shaders but gl format + is set to RG16 + Sample pipeline: + gst-launch-1.0 videotestsrc ! video/x-raw,format=Y210 ! glimagesink + +2019-10-11 10:14:49 +0200 David Trussel + + * gst-libs/gst/gl/gstglcolorconvert.c: + * gst-libs/gst/gl/gstglcolorconvert.h: + * gst-libs/gst/gl/gstglformat.c: + * gst-libs/gst/gl/gstglmemory.h: + glcolorconvert: add support for the NV16 and NV61 formats + NV16/NV61 is basically the same as NV12/NV21 with a higher chroma resolution. + Since only the size of the UV plane/texture is different, the same shaders are used as for NV12/NV21. + +2019-10-11 22:54:02 +0800 Haihao Xiang + + * gst-libs/gst/gl/gstglcolorconvert.c: + * gst-libs/gst/gl/gstglcolorconvert.h: + * gst-libs/gst/gl/gstglformat.c: + * gst-libs/gst/gl/gstglmemory.h: + glimagesink: add support for Y410 format + Sample pipeline: + gst-launch-1.0 videotestsrc ! video/x-raw,format=Y410 ! glimagesink + +2019-10-14 10:02:59 +0800 Haihao Xiang + + * gst-libs/gst/gl/gstglcolorconvert.c: + glcolorconvert: merge shaders for AYUV and VUYA formats + The shaders can be used for AYUV and varieties. + +2019-06-09 00:57:47 +0100 Tim-Philipp Müller + + * .gitignore: + * .gitmodules: + * Makefile.am: + * README: + * autogen.sh: + * common: + * configure.ac: + * docs/.gitignore: + * ext/Makefile.am: + * ext/alsa/Makefile.am: + * ext/cdparanoia/Makefile.am: + * ext/gl/Makefile.am: + * ext/libvisual/Makefile.am: + * ext/ogg/Makefile.am: + * ext/opus/Makefile.am: + * ext/pango/Makefile.am: + * ext/theora/Makefile.am: + * ext/vorbis/Makefile.am: + * gst-libs/Makefile.am: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/allocators/Makefile.am: + * gst-libs/gst/app/Makefile.am: + * gst-libs/gst/audio/.gitignore: + * gst-libs/gst/audio/Makefile.am: + * gst-libs/gst/fft/Makefile.am: + * gst-libs/gst/gl/.gitignore: + * gst-libs/gst/gl/Makefile.am: + * gst-libs/gst/gl/android/Makefile.am: + * gst-libs/gst/gl/cocoa/Makefile.am: + * gst-libs/gst/gl/dispmanx/Makefile.am: + * gst-libs/gst/gl/eagl/Makefile.am: + * gst-libs/gst/gl/egl/Makefile.am: + * gst-libs/gst/gl/gbm/Makefile.am: + * gst-libs/gst/gl/glprototypes/Makefile.am: + * gst-libs/gst/gl/viv-fb/Makefile.am: + * gst-libs/gst/gl/wayland/Makefile.am: + * gst-libs/gst/gl/win32/Makefile.am: + * gst-libs/gst/gl/x11/Makefile.am: + * gst-libs/gst/pbutils/.gitignore: + * gst-libs/gst/pbutils/Makefile.am: + * gst-libs/gst/pbutils/install-plugins.c: + * gst-libs/gst/riff/Makefile.am: + * gst-libs/gst/rtp/Makefile.am: + * gst-libs/gst/rtsp/.gitignore: + * gst-libs/gst/rtsp/Makefile.am: + * gst-libs/gst/sdp/Makefile.am: + * gst-libs/gst/tag/Makefile.am: + * gst-libs/gst/video/.gitignore: + * gst-libs/gst/video/Makefile.am: + * gst/Makefile.am: + * gst/adder/.gitignore: + * gst/adder/Makefile.am: + * gst/app/Makefile.am: + * gst/audioconvert/.gitignore: + * gst/audioconvert/Makefile.am: + * gst/audiomixer/Makefile.am: + * gst/audiorate/Makefile.am: + * gst/audioresample/Makefile.am: + * gst/audiotestsrc/Makefile.am: + * gst/compositor/.gitignore: + * gst/compositor/Makefile.am: + * gst/encoding/Makefile.am: + * gst/gio/Makefile.am: + * gst/overlaycomposition/Makefile.am: + * gst/pbtypes/Makefile.am: + * gst/playback/.gitignore: + * gst/playback/Makefile.am: + * gst/rawparse/Makefile.am: + * gst/subparse/Makefile.am: + * gst/tcp/.gitignore: + * gst/tcp/Makefile.am: + * gst/typefind/Makefile.am: + * gst/videoconvert/Makefile.am: + * gst/videorate/Makefile.am: + * gst/videoscale/.gitignore: + * gst/videoscale/Makefile.am: + * gst/videotestsrc/.gitignore: + * gst/videotestsrc/Makefile.am: + * gst/volume/.gitignore: + * gst/volume/Makefile.am: + * m4/.gitignore: + * m4/Makefile.am: + * m4/README: + * m4/check-libheader.m4: + * m4/gst-alsa.m4: + * m4/gst-gl.m4: + * m4/gst-ivorbis.m4: + * m4/lrint.m4: + * m4/lrintf.m4: + * m4/ogg.m4: + * m4/vorbis.m4: + * pkgconfig/.gitignore: + * pkgconfig/Makefile.am: + * po/.gitignore: + * po/Makevars: + * po/POTFILES: + * sys/Makefile.am: + * sys/ximage/Makefile.am: + * sys/xvimage/Makefile.am: + * tests/Makefile.am: + * tests/check/.gitignore: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/generic/.gitignore: + * tests/check/gst/.gitignore: + * tests/check/libs/.gitignore: + * tests/check/pipelines/.gitignore: + * tests/examples/Makefile.am: + * tests/examples/app/.gitignore: + * tests/examples/app/Makefile.am: + * tests/examples/audio/.gitignore: + * tests/examples/audio/Makefile.am: + * tests/examples/compositor/Makefile.am: + * tests/examples/decodebin_next/.gitignore: + * tests/examples/decodebin_next/Makefile.am: + * tests/examples/dynamic/.gitignore: + * tests/examples/dynamic/Makefile.am: + * tests/examples/encoding/.gitignore: + * tests/examples/encoding/Makefile.am: + * tests/examples/fft/.gitignore: + * tests/examples/fft/Makefile.am: + * tests/examples/gio/.gitignore: + * tests/examples/gio/Makefile.am: + * tests/examples/gl/Makefile.am: + * tests/examples/gl/cocoa/.gitignore: + * tests/examples/gl/cocoa/Makefile.am: + * tests/examples/gl/generic/Makefile.am: + * tests/examples/gl/generic/cube/.gitignore: + * tests/examples/gl/generic/cube/Makefile.am: + * tests/examples/gl/generic/cubeyuv/.gitignore: + * tests/examples/gl/generic/cubeyuv/Makefile.am: + * tests/examples/gl/generic/doublecube/.gitignore: + * tests/examples/gl/generic/doublecube/Makefile.am: + * tests/examples/gl/generic/recordgraphic/.gitignore: + * tests/examples/gl/generic/recordgraphic/Makefile.am: + * tests/examples/gl/gtk/3dvideo/.gitignore: + * tests/examples/gl/gtk/3dvideo/Makefile.am: + * tests/examples/gl/gtk/Makefile.am: + * tests/examples/gl/gtk/filternovideooverlay/.gitignore: + * tests/examples/gl/gtk/filternovideooverlay/Makefile.am: + * tests/examples/gl/gtk/filtervideooverlay/.gitignore: + * tests/examples/gl/gtk/filtervideooverlay/Makefile.am: + * tests/examples/gl/gtk/fxtest/.gitignore: + * tests/examples/gl/gtk/fxtest/Makefile.am: + * tests/examples/gl/gtk/switchvideooverlay/.gitignore: + * tests/examples/gl/gtk/switchvideooverlay/Makefile.am: + * tests/examples/gl/qt/.gitignore: + * tests/examples/gl/qt/Makefile.am: + * tests/examples/gl/qt/qglwtextureshare/.gitignore: + * tests/examples/gl/sdl/.gitignore: + * tests/examples/gl/sdl/Makefile.am: + * tests/examples/overlay/.gitignore: + * tests/examples/overlay/Makefile.am: + * tests/examples/overlaycomposition/.gitignore: + * tests/examples/overlaycomposition/Makefile.am: + * tests/examples/playback/Makefile.am: + * tests/examples/playrec/.gitignore: + * tests/examples/playrec/Makefile.am: + * tests/examples/seek/.gitignore: + * tests/examples/seek/Makefile.am: + * tests/examples/snapshot/.gitignore: + * tests/examples/snapshot/Makefile.am: + * tests/files/Makefile.am: + * tests/icles/.gitignore: + * tests/icles/Makefile.am: + * tests/icles/playback/.gitignore: + * tests/icles/playback/Makefile.am: + * tools/.gitignore: + * tools/Makefile.am: + Remove autotools build system + +2019-10-10 17:18:34 +0200 Edward Hervey + + * gst/tcp/gstmultifdsink.c: + * gst/tcp/gstmultihandlesink.c: + * gst/tcp/gstmultisocketsink.c: + * gst/videotestsrc/videotestsrc.c: + * tests/examples/gl/generic/cube/main.cpp: + * tests/examples/gl/generic/cubeyuv/main.cpp: + * tests/examples/gl/generic/doublecube/main.cpp: + * tests/examples/gl/generic/recordgraphic/main.cpp: + * tests/examples/seek/scrubby.c: + base: Avoid usage of deprecated API + GTimeval and related functions are now deprecated in glib. + Replacement APIs have been present since 2.26 + +2019-10-10 16:58:26 +0200 Edward Hervey + + * tests/check/elements/adder.c: + * tests/check/elements/audiomixer.c: + check: Don't use real audio devices for tests + When checking the behaviour of live seeking on audiomixer or + adder we don't *really* need real audio devices. audiotestsrc + in live mode is enough to test the behaviour of those elements. + Also avoids people repeatedly wasting hours trying to figure out + whether that failing behaviour is due to their code or not. + +2019-10-08 19:35:49 +0100 Tim-Philipp Müller + + * gst-libs/gst/pbutils/descriptions.c: + pbutils: add description for CineForm codec + +2019-10-08 19:35:23 +0100 Tim-Philipp Müller + + * gst-libs/gst/riff/riff-media.c: + riff: add mapping for CineForm codec + Makes CineForm-in-AVI work. + +2019-09-07 04:28:46 +0200 Mathieu Duponchelle + + * tests/examples/device-provider/example-device-provider.c: + * tests/examples/device-provider/meson.build: + * tests/examples/meson.build: + examples: add device provider example + +2019-10-02 23:21:09 +0300 Sebastian Dröge + + * ext/gl/effects/gstgleffectblur.c: + * ext/gl/gstglbumper.c: + * ext/gl/gstglbumper.h: + * ext/gl/gstglfiltercube.c: + * ext/gl/gstglfiltercube.h: + * ext/gl/gstglfilterglass.c: + * ext/gl/gstglfilterglass.h: + * ext/gl/gstglmosaic.c: + * ext/gl/gstglmosaic.h: + glfilters: Don't use static variables for storing per-element state + +2019-09-27 11:10:43 -0300 Thibault Saunier + + * gst-libs/gst/gl/gstglupload.c: + * tests/check/libs/gstglupload.c: + glupload: Add VideoMetas and GLSyncMeta to the raw uploaded buffers + This is done by reusing `gst_gl_memory_setup_buffer` avoiding to + duplicate code. + Without a VideoMeta, mapping those buffers lead to GstBuffer mapping the + buffer in system memory even when specifying the GL flags (through the + buffer merging mechanism) making the result totally broken. + +2019-10-02 23:35:36 +1000 Matthew Waters + + * tests/examples/gl/sdl/sdlshare.c: + examples/gl/sdlshare: port to OpenGL 3.0 core profile + +2019-10-01 00:00:57 +1000 Matthew Waters + + * tools/gst-play-kb.c: + build: fix werror build on windows + _isatty() is in the io.h header + +2019-09-30 16:11:18 +0200 Mathieu Duponchelle + + * tools/gst-device-monitor.c: + device-monitor: fix device listing without --follow + In !427, I removed the call to get_devices in order to always + print added devices from the bus handler, however this requires + the main loop to run until all pending messages have been consumed. + This commit achieves this by always running the main loop, and + simply adding an idle source to quit it in the non --follow case. + +2019-09-30 10:27:03 +0800 Haihao Xiang + + * gst-libs/gst/video/video-format.c: + video-format: correct the pixel stride for Y410 + The stride for Y410 is 4 bytes, not 0 byte + +2019-03-14 16:24:11 +0100 Sebastian Dröge + + * tests/examples/gl/sdl/sdlshare.c: + examples/sdlshare: Map video frames as early as possible and wait via GL sync meta before using texture ids + +2019-03-13 08:28:58 +0100 Sebastian Dröge + + * tests/examples/gl/sdl/sdlshare.c: + examples/sdlshare: Initialize GL as part of the event loop + And unref additional buffers we never use for rendering directly instead + of going via the output queue. + +2019-03-13 08:20:57 +0100 Sebastian Dröge + + * tests/examples/gl/sdl/sdlshare.c: + * tests/examples/gl/sdl/sdlshare2.c: + examples/sdlshare: Activate and initialize our wrapped GL context + This allows us to e.g. use the GL functions vtable on it later. + +2019-03-13 07:31:43 +0100 Sebastian Dröge + + * tests/examples/gl/sdl/sdlshare.c: + * tests/examples/gl/sdl/sdlshare2.c: + examples/sdlshare: Call gst_init() a bit earlier in main() + Let's not accidentally call other GStreamer API before that. + +2019-03-13 07:21:12 +0100 Sebastian Dröge + + * tests/examples/gl/sdl/sdlshare.c: + * tests/examples/gl/sdl/sdlshare2.c: + examples/sdlshare: Create an OpenGL context for OpenGL 2.0 + +2019-03-12 22:37:48 +0100 Sebastian Dröge + + * tests/examples/gl/sdl/sdlshare.c: + examples/sdlshare: Switch from a GLib main loop to a normal SDL event loop + +2019-03-12 22:09:18 +0100 Sebastian Dröge + + * m4/gst-gl.m4: + * tests/examples/gl/sdl/meson.build: + * tests/examples/gl/sdl/sdlshare.c: + * tests/examples/gl/sdl/sdlshare2.c: + examples/sdlshare: Port to SDL2 + +2019-03-12 21:31:24 +0100 Sebastian Dröge + + * tests/examples/gl/sdl/sdlshare.c: + examples/sdlshare: Move from a fakesink to an appsink + +2019-03-12 21:29:07 +0100 Sebastian Dröge + + * tests/examples/gl/sdl/sdlshare.c: + examples/sdlshare: Store buffer queues and loop in a global variable + There's no point storing them in GObject data, we already have other + global variables anyway. + +2019-03-12 21:24:03 +0100 Sebastian Dröge + + * tests/examples/gl/sdl/sdlshare.c: + * tests/examples/gl/sdl/sdlshare2.c: + examples/sdlshare: Bus sync handlers return no value + +2019-03-12 21:20:24 +0100 Sebastian Dröge + + * tests/examples/gl/sdl/sdlshare.c: + * tests/examples/gl/sdl/sdlshare2.c: + examples/sdlshare: Fix various memory leaks + +2018-06-18 10:49:28 +0200 Axel Mårtensson + + * ext/alsa/gstalsasink.c: + * ext/alsa/gstalsasink.h: + alsasink: pause/resume + alsasink can now detect a resume, stop and pause. The sink is now + properly paused using snd_pcm_pause(), and without losing any data + +2018-06-18 10:44:55 +0200 Axel Mårtensson + + * gst-libs/gst/audio/gstaudiosink.c: + * gst-libs/gst/audio/gstaudiosink.h: + audiosink: fix resuming after pause + For resuming after paused, gst_audio_sink_ring_buffer_start() needs to + be called to notify the ringbuffer to continue to play. + +2017-10-10 20:41:31 +0200 Philippe Renon + + * gst-libs/gst/audio/gstaudioringbuffer.c: + * gst-libs/gst/audio/gstaudioringbuffer.h: + * gst-libs/gst/audio/gstaudiosink.c: + * gst-libs/gst/audio/gstaudiosink.h: + audiosink: expose more audioringbuffer vmethods to child sinks + The newly exposed vmethods are pause, resume, stop and clear_all. + The existing reset vmethod is deprecated. + The audio sink will fallback to calling reset if pause or stop + are not provided and will fallback to calling start if + resume is not provided. There is no default clear_all + implementation. + Existing audio sinks continue to work as before. + This change is useful for sinks that need to distinguish + between a pause and a stop (currently both are handled + by a reset) and is needed for https://bugzilla.gnome.org/show_bug.cgi?id=788362 + https://bugzilla.gnome.org/show_bug.cgi?id=788361 + +2019-09-24 15:05:30 +0900 Seungha Yang + + * tools/gst-play-kb.c: + gst-play: Add support for interacting console input on Windows + Add Windows keyboard input handler. This could make gst-play UX + consistent between *nix and Windows. + +2019-09-20 09:48:30 +0100 Charlie Turner + + * gst/playback/gststreamsynchronizer.c: + streamsynchronizer: avoid pad destruction races. + Due to the use of {set/get}-element_private methods being used to store + the GstSyncStream in the src and sink pads, and the racey nature of pad + destruction, there are numerous ways we can be bitten by race conditions + in the stream synchronizer. Fix that by tying the pads toghether with + references. + +2019-05-10 07:32:21 +0530 Nirbheek Chauhan + + * gst-libs/gst/audio/gstaudioutilsprivate.c: + audio: Use LoadPackagedLibrary when building for UWP + Universal Windows Platform apps are not allowed to use LoadLibrary to + load arbitrary DLLs from the filesystem. They can only use + LoadPackagedLibrary to load DLLs that have been packaged with the app + as assets. + See also: https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/190 + +2019-09-24 15:32:33 +0900 Seungha Yang + + * tools/gst-play.c: + gst-play: Use gst_print* to avoid broken stdout string on Windows + Equvalant to https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/258 + When debug enabled, the debug string might be broken on Windows. + +2019-09-23 15:39:55 +1000 Matthew Waters + + * gst-libs/gst/gl/gstglsl.c: + * gst-libs/gst/tag/gsttageditingprivate.c: + * gst-libs/gst/tag/gstxmptag.c: + * tools/gst-discoverer.c: + build: fix debug output werror build with newer gcc + In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55, + from ../gst-libs/gst/tag/tag.h:25, + from ../gst-libs/gst/tag/gsttageditingprivate.h:24, + from ../gst-libs/gst/tag/gsttageditingprivate.c:23: + ../gst-libs/gst/tag/gsttageditingprivate.c: In function ‘__exif_tag_capturing_white_balance_to_exif_value’: + ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=] + 645 | gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \ + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 646 | (GObject *) (object), __VA_ARGS__); \ + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1068:27: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’ + 1068 | #define GST_WARNING(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__) + | ^~~~~~~~~~~~~~~~~ + ../gst-libs/gst/tag/gsttageditingprivate.c:265:3: note: in expansion of macro ‘GST_WARNING’ + 265 | GST_WARNING ("Invalid white balance: %s", str); + | ^~~~~~~~~~~ + ../gst-libs/gst/tag/gsttageditingprivate.c:265:40: note: format string is defined here + 265 | GST_WARNING ("Invalid white balance: %s", str); + | ^~ + In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55, + from ../gst-libs/gst/tag/tag.h:25, + from ../gst-libs/gst/tag/gstxmptag.c:39: + ../gst-libs/gst/tag/gstxmptag.c: In function ‘deserialize_exif_gps_direction’: + ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=] + 645 | gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \ + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 646 | (GObject *) (object), __VA_ARGS__); \ + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1068:27: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’ + 1068 | #define GST_WARNING(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__) + | ^~~~~~~~~~~~~~~~~ + ../gst-libs/gst/tag/gstxmptag.c:818:5: note: in expansion of macro ‘GST_WARNING’ + 818 | GST_WARNING ("Missing %s tag", dirref_str); + | ^~~~~~~~~~~ + ../gst-libs/gst/tag/gstxmptag.c:818:27: note: format string is defined here + 818 | GST_WARNING ("Missing %s tag", dirref_str); + | ^~ + In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55, + from ../gst-libs/gst/tag/tag.h:25, + from ../gst-libs/gst/tag/gstxmptag.c:39: + ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=] + 645 | gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \ + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 646 | (GObject *) (object), __VA_ARGS__); \ + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1068:27: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’ + 1068 | #define GST_WARNING(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__) + | ^~~~~~~~~~~~~~~~~ + ../gst-libs/gst/tag/gstxmptag.c:814:5: note: in expansion of macro ‘GST_WARNING’ + 814 | GST_WARNING ("Missing %s tag", dir_str); + | ^~~~~~~~~~~ + ../gst-libs/gst/tag/gstxmptag.c:814:27: note: format string is defined here + 814 | GST_WARNING ("Missing %s tag", dir_str); + | ^~ + In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55, + from ../gst-libs/gst/gl/gstgl_fwd.h:24, + from ../gst-libs/gst/gl/gl.h:24, + from ../gst-libs/gst/gl/gstglsl.c:25: + ../gst-libs/gst/gl/gstglsl.c: In function ‘gst_glsl_version_profile_from_string’: + ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=] + 645 | gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \ + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 646 | (GObject *) (object), __VA_ARGS__); \ + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1068:27: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’ + 1068 | #define GST_WARNING(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__) + | ^~~~~~~~~~~~~~~~~ + ../gst-libs/gst/gl/gstglsl.c:333:7: note: in expansion of macro ‘GST_WARNING’ + 333 | GST_WARNING ("Invalid preprocesser directive detected: %s", version_s); + | ^~~~~~~~~~~ + ../gst-libs/gst/gl/gstglsl.c:333:62: note: format string is defined here + 333 | GST_WARNING ("Invalid preprocesser directive detected: %s", version_s); + | ^~ + In function ‘print_stream_info’, + inlined from ‘print_topology’ at ../tools/gst-discoverer.c:352:3: + ../tools/gst-discoverer.c:316:3: error: ‘%s’ directive argument is null [-Werror=format-overflow=] + 316 | g_print ("%*s%s: %s\n", 2 * GPOINTER_TO_INT (depth), " ", + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 317 | gst_discoverer_stream_info_get_stream_type_nick (info), desc); + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +2019-09-11 01:29:23 +0200 Mathieu Duponchelle + + * tools/gst-device-monitor.c: + gst-device-monitor: stop calling gst_device_monitor_get_devices() + See https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/280 + +2019-09-17 21:33:49 +1000 Matthew Waters + + * tools/gst-device-monitor.c: + device-monitor: print caps features in the caps + +2019-09-16 11:03:59 +0800 Haihao Xiang + + * gst-libs/gst/gl/egl/gsteglimage.c: + glimagesink: Fix VUYA in memory:DMABuf + Sample pipeline: + gst-launch-1.0 videotestsrc ! msdkvpp ! \ + video/x-raw\(memory:DMABuf\),format=VUYA ! glimagesink + +2019-08-28 14:50:24 +0900 Seungha Yang + + * gst-libs/gst/gl/egl/gstgldisplay_egl_device.c: + egldevice: Fix undeclared type build error + Not all eglext.h defines EGLDeviceEXT type. That's implementation and + egl extension version dependent. + +2019-09-08 01:03:57 +0100 Tim-Philipp Müller + + * tests/check/gst-plugins-base.supp: + tests: fix up valgrind suppressions for glibc getaddrinfo leaks + Make more flexible. There is an extra + gethostbyname2_r@@GLIBC_2.2.5 (getXXbyYY_r.c:217) + in the trace on the build bots (F30). + Fixes the -base and -good valgrind jobs on the 1.16 branch CI. + +2019-08-29 11:16:39 -0400 Thibault Saunier + + * ext/ogg/gstoggdemux.c: + * ext/ogg/gstoggdemux.h: + oggdemux: Move seeking in pull mode to the streaming thread + Flushing and teering down the streaming thread from the seeking thread + and simply letting the streaming thread handle the seek event in its + loop function. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/639 + +2018-04-15 19:19:34 +0900 Seungha Yang + + * gst/encoding/gststreamsplitter.c: + * gst/encoding/gststreamsplitter.h: + streamsplitter: Drop duplicated force-key-unit events + Forward force-key-unit event only once for the corresponding sequence number. + +2018-04-15 19:15:28 +0900 Seungha Yang + + * gst/encoding/gststreamcombiner.c: + streamcombiner: Forward upstream force-key-unit events to all sinkpads + streamcombiner element forwards a upstream event only to one sinkpad. + When the streamcombiner is used with encodebin, the sinkpad + corresponding to pass-through path is configured before that of encoder, + and therefore streamcombiner forwards upstream events only to + the firstly configured one (i.e., pass-through path). + +2019-09-02 16:20:07 -0400 Doug Nazar + + * meson.build: + meson: Reenable NEON support + +2019-09-02 23:25:39 -0400 Doug Nazar + + * gst-libs/gst/audio/audio-resampler-neon.h: + audio-resampler: Update NEON to handle remainders not multiples of 4 + If the remainder is not evenly divisable by 4, we'd miss the check + for zero and continue the loop until crashing. Change the branch + to take into account negatives as well. + This more closely matches the SSE loop. + +2019-08-29 13:42:39 -0400 Thibault Saunier + + * configure.ac: + * ext/alsa/gstalsasrc.c: + * ext/gl/effects/gstgleffectxray.c: + * ext/gl/gstglalpha.c: + * ext/gl/gstglcolorbalance.c: + * ext/gl/gstglfilterreflectedscreen.c: + * ext/gl/gstglfiltershader.c: + * ext/gl/gstglimagesink.c: + * ext/gl/gstglstereomix.c: + * ext/ogg/gstoggaviparse.c: + * ext/ogg/gstoggdemux.c: + * ext/ogg/gstoggdemux.h: + * ext/pango/gstbasetextoverlay.c: + * ext/theora/gsttheoradec.h: + * ext/theora/gsttheoraenc.c: + * ext/vorbis/gstvorbistag.c: + * gst-libs/gst/allocators/gstdmabuf.h: + * gst-libs/gst/app/gstappsink.c: + * gst-libs/gst/app/gstappsrc.c: + * gst-libs/gst/audio/audio-channels.h: + * gst-libs/gst/audio/audio-converter.c: + * gst-libs/gst/audio/audio-format.h: + * gst-libs/gst/audio/audio-resampler.c: + * gst-libs/gst/audio/audio-resampler.h: + * gst-libs/gst/audio/gstaudioaggregator.c: + * gst-libs/gst/audio/gstaudiobasesink.c: + * gst-libs/gst/audio/gstaudiobasesrc.c: + * gst-libs/gst/audio/gstaudiodecoder.c: + * gst-libs/gst/audio/gstaudioencoder.c: + * gst-libs/gst/audio/gstaudioringbuffer.c: + * gst-libs/gst/audio/gstaudiosink.c: + * gst-libs/gst/audio/gstaudiosrc.c: + * gst-libs/gst/audio/gstaudiostreamalign.c: + * gst-libs/gst/fft/kiss_fft_f32.c: + * gst-libs/gst/fft/kiss_fft_f64.c: + * gst-libs/gst/fft/kiss_fft_s16.c: + * gst-libs/gst/fft/kiss_fft_s32.c: + * gst-libs/gst/gl/egl/gstglcontext_egl.c: + * gst-libs/gst/gl/gbm/gstgl_gbm_utils.c: + * gst-libs/gst/gl/gstglapi.c: + * gst-libs/gst/gl/gstglbasememory.c: + * gst-libs/gst/gl/gstglbasememory.h: + * gst-libs/gst/gl/gstglbufferpool.c: + * gst-libs/gst/gl/gstglcolorconvert.c: + * gst-libs/gst/gl/gstglcontext.c: + * gst-libs/gst/gl/gstgldisplay.c: + * gst-libs/gst/gl/gstglfeature.c: + * gst-libs/gst/gl/gstglfilter.c: + * gst-libs/gst/gl/gstglformat.c: + * gst-libs/gst/gl/gstglframebuffer.c: + * gst-libs/gst/gl/gstglmemory.c: + * gst-libs/gst/gl/gstglmemorypbo.c: + * gst-libs/gst/gl/gstglshader.c: + * gst-libs/gst/gl/gstglsl.c: + * gst-libs/gst/gl/gstglsl.h: + * gst-libs/gst/gl/gstglslstage.c: + * gst-libs/gst/gl/gstglupload.c: + * gst-libs/gst/gl/gstglupload.h: + * gst-libs/gst/gl/gstglutils.c: + * gst-libs/gst/gl/gstglviewconvert.c: + * gst-libs/gst/gl/gstglwindow.c: + * gst-libs/gst/gl/gstglwindow.h: + * gst-libs/gst/gl/viv-fb/gstglwindow_viv_fb_egl.c: + * gst-libs/gst/gl/win32/gstglwindow_win32.c: + * gst-libs/gst/gl/x11/gstgldisplay_x11.c: + * gst-libs/gst/pbutils/codec-utils.c: + * gst-libs/gst/pbutils/encoding-profile.c: + * gst-libs/gst/pbutils/encoding-profile.h: + * gst-libs/gst/pbutils/encoding-target.c: + * gst-libs/gst/pbutils/gstaudiovisualizer.c: + * gst-libs/gst/pbutils/gstdiscoverer-types.c: + * gst-libs/gst/pbutils/gstdiscoverer.c: + * gst-libs/gst/pbutils/install-plugins.c: + * gst-libs/gst/pbutils/install-plugins.h: + * gst-libs/gst/riff/riff-ids.h: + * gst-libs/gst/riff/riff-media.c: + * gst-libs/gst/rtp/README: + * gst-libs/gst/rtp/gstrtcpbuffer.c: + * gst-libs/gst/rtp/gstrtpbasedepayload.c: + * gst-libs/gst/rtp/gstrtpbuffer.c: + * gst-libs/gst/rtp/gstrtppayloads.c: + * gst-libs/gst/rtsp/gstrtspconnection.c: + * gst-libs/gst/rtsp/gstrtspconnection.h: + * gst-libs/gst/rtsp/gstrtspdefs.h: + * gst-libs/gst/rtsp/gstrtspextension.h: + * gst-libs/gst/rtsp/gstrtspmessage.c: + * gst-libs/gst/sdp/gstmikey.c: + * gst-libs/gst/sdp/gstmikey.h: + * gst-libs/gst/tag/gstexiftag.c: + * gst-libs/gst/tag/gsttagdemux.h: + * gst-libs/gst/tag/gstxmptag.c: + * gst-libs/gst/tag/id3v2.3.0.txt: + * gst-libs/gst/tag/lang.c: + * gst-libs/gst/video/TODO: + * gst-libs/gst/video/convertframe.c: + * gst-libs/gst/video/gstvideodecoder.c: + * gst-libs/gst/video/gstvideoencoder.c: + * gst-libs/gst/video/gstvideosink.c: + * gst-libs/gst/video/video-anc.h: + * gst-libs/gst/video/video-blend.c: + * gst-libs/gst/video/video-color.h: + * gst-libs/gst/video/video-converter.c: + * gst-libs/gst/video/video-dither.c: + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-format.h: + * gst-libs/gst/video/video-frame.h: + * gst-libs/gst/video/video-hdr.c: + * gst-libs/gst/video/video-info.c: + * gst-libs/gst/video/video-overlay-composition.c: + * gst-libs/gst/video/video-scaler.c: + * gst-libs/gst/video/videooverlay.c: + * gst/adder/gstadder.c: + * gst/audiomixer/gstaudiointerleave.c: + * gst/audiomixer/gstaudiomixer.c: + * gst/audioresample/gstaudioresample.c: + * gst/audiotestsrc/gstaudiotestsrc.c: + * gst/compositor/compositor.c: + * gst/encoding/gststreamcombiner.c: + * gst/gio/gstgiobasesrc.c: + * gst/overlaycomposition/gstoverlaycomposition.c: + * gst/playback/gstdecodebin2.c: + * gst/playback/gstdecodebin3.c: + * gst/playback/gstparsebin.c: + * gst/playback/gstplaybin2.c: + * gst/playback/gstplaybin3.c: + * gst/playback/gstplaysink.c: + * gst/playback/gstsubtitleoverlay.c: + * gst/playback/gsturidecodebin.c: + * gst/playback/gsturidecodebin3.c: + * gst/playback/gsturisourcebin.c: + * gst/rawparse/gstrawaudioparse.h: + * gst/rawparse/gstrawbaseparse.h: + * gst/subparse/gstsubparse.c: + * gst/subparse/samiparse.c: + * gst/tcp/gstmultifdsink.c: + * gst/tcp/gstmultihandlesink.c: + * gst/tcp/gstmultisocketsink.c: + * gst/typefind/gsttypefindfunctions.c: + * gst/videoconvert/gstvideoconvert.c: + * gst/videorate/gstvideorate.c: + * gst/videotestsrc/gstvideotestsrc.c: + * hooks/pre-commit.hook: + * m4/ogg.m4: + * m4/vorbis.m4: + * sys/ximage/ximagepool.c: + * sys/ximage/ximagesink.c: + * sys/ximage/ximagesink.h: + * sys/xvimage/xvcontext.h: + * tests/check/Makefile.am: + * tests/check/elements/decodebin.c: + * tests/check/elements/glimagesink.c: + * tests/check/elements/multifdsink.c: + * tests/check/elements/rawvideoparse.c: + * tests/check/elements/videorate.c: + * tests/check/gst-plugins-base.supp: + * tests/check/libs/gstglmatrix.c: + * tests/check/libs/gstglupload.c: + * tests/check/libs/rtpbasedepayload.c: + * tests/check/libs/rtpbasepayload.c: + * tests/check/libs/rtspconnection.c: + * tests/check/libs/tag.c: + * tests/check/libs/videodecoder.c: + * tests/examples/decodebin_next/playbin-test.c: + * tests/examples/dynamic/addstream.c: + * tests/examples/playback/playback-test.c: + * tests/examples/seek/jsseek.c: + * tests/examples/snapshot/snapshot.c: + * tests/icles/stress-playbin.c: + Pass the code through codespell + +2019-08-30 13:27:28 +1000 Matthew Waters + + * ext/ogg/gstoggdemux.c: + oggdemux: fix werror build on macos + ../ext/ogg/gstoggdemux.c:1071:7: error: format specifies type 'long' but the argument has type 'ogg_int64_t' (aka 'long long') [-Werror,-Wformat] + packet->granulepos); + ^~~~~~~~~~~~~~~~~~~ + /Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:1062:96: note: expanded from macro 'GST_DEBUG_OBJECT' + #define GST_DEBUG_OBJECT(obj,...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_DEBUG, obj, __VA_ARGS__) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ + /Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:646:31: note: expanded from macro 'GST_CAT_LEVEL_LOG' + (GObject *) (object), __VA_ARGS__); \ + ^~~~~~~~~~~ + ../ext/ogg/gstoggdemux.c:1312:15: error: format specifies type 'long' but the argument has type 'ogg_int64_t' (aka 'long long') [-Werror,-Wformat] + packet.granulepos); + ^~~~~~~~~~~~~~~~~~ + /Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:1060:98: note: expanded from macro 'GST_WARNING_OBJECT' + #define GST_WARNING_OBJECT(obj,...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, obj, __VA_ARGS__) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ + /Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:646:31: note: expanded from macro 'GST_CAT_LEVEL_LOG' + (GObject *) (object), __VA_ARGS__); \ + ^~~~~~~~~~~ + +2019-08-30 13:13:54 +1000 Matthew Waters + + * ext/gl/meson.build: + gl: also build plugin with -fobjc-arc + Fixes macos werror build + ../ext/gl/caopengllayersink.m:336:23: error: '__bridge_retained' casts have no effect when not using ARC [-Werror,-Warc-bridge-casts-disallowed-in-nonarc] + ca_sink->layer = (__bridge_retained gpointer)layer; + ^~~~~~~~~~~~~~~~~~ + +2019-08-30 13:00:14 +1000 Matthew Waters + + * gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m: + glwindow/cocoa: silence unused-variable warning + We are using ARC to cleanup after ourselves. + ../gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:159:20: error: unused variable 'queue' [-Werror,-Wunused-variable] + dispatch_queue_t queue = (__bridge_transfer dispatch_queue_t) window->priv->gl_queue; + ^ + +2019-08-29 00:48:16 +1000 Jan Schmidt + + * m4/gst-gl.m4: + m4/gst-gl: Add dummy GST_GL_HAVE_WINDOW_WINRT + Add a dummy define to make fix the autotools build for now. To + actually build WinRT support, use the meson build. + +2019-08-29 01:21:12 +1000 Matthew Waters + + * gst-libs/gst/gl/egl/gstglcontext_egl.c: + glcontext/egl: fallback to WINDOW_BIT if PBUFFER_BIT fails + There are some drivers that do not advertise any PBUFFER EGLConfig's. + +2019-08-28 11:24:01 -0700 Jonas Larsson + + * gst-libs/gst/gl/egl/gsteglimage.c: + eglimage: Fix memory leak + Also free the GstEGLImage struct allocated by g_new0. + Fixes #661 + +2019-08-27 00:10:32 +0200 Mathieu Duponchelle + + * gst-libs/gst/audio/gstaudioaggregator.h: + * gst-libs/gst/video/gstvideoaggregator.h: + {audio,video}aggregator: define autoptr cleanup functions + +2019-08-21 19:04:56 +0800 Hou Qi + + * gst-libs/gst/audio/gstaudiodecoder.c: + audiodecoder: fix ctitical info assertion 'GST_IS_CAPS (dec->priv->ctx.caps)' failed + Matroskademux will send gap event when lag of video and audio is over 3 seconds. + audiodecoder needs to handle gap event and set default output caps. + Only audio info is set, while output caps is ignored. This cause the assertion failed. + Need to fill output caps in gst_audio_decoder_negotiate_default_caps() with + negotiated caps to avoid critical info printed when check it later. + +2019-05-21 11:44:39 +0530 Nirbheek Chauhan + + * gst-libs/gst/gl/egl/gstglcontext_egl.c: + * gst-libs/gst/gl/egl/gstgldisplay_egl.c: + * gst-libs/gst/gl/gstglconfig.h.meson: + * gst-libs/gst/gl/gstglwindow.c: + * gst-libs/gst/gl/meson.build: + * gst-libs/gst/gl/winrt/gstglwindow_winrt_egl.c: + * gst-libs/gst/gl/winrt/gstglwindow_winrt_egl.h: + * meson_options.txt: + gstgl: Add a new window type for WinRT + This is needed for using GstGL with ANGLE as the GLES implementation + in Universal Windows Platform apps that use the Windows Runtime + (WinRT) instead of Win32, which is deprecated and not allowed in + Windows Store apps. + This has been tested with Servo on the Microsoft HoloLens 2, and seems + to work quite well. + +2019-08-27 01:03:40 +0200 Mathieu Duponchelle + + * gst-libs/gst/pbutils/encoding-target.c: + encoding-target: fix SECTION comment syntax + See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/658 + +2019-08-26 07:54:48 +0200 Niels De Graef + + * ext/cdparanoia/gstcdparanoiasrc.c: + * ext/gl/gstglfilterapp.c: + * ext/gl/gstglfilterbin.c: + * ext/gl/gstglfiltershader.c: + * ext/gl/gstglimagesink.c: + * ext/gl/gstglmixerbin.c: + * ext/gl/gstglsinkbin.c: + * ext/gl/gstglsrcbin.c: + * gst-libs/gst/app/gstappsink.c: + * gst-libs/gst/app/gstappsrc.c: + * gst-libs/gst/gl/gstgldisplay.c: + * gst-libs/gst/gl/gstglwindow.c: + * gst-libs/gst/pbutils/gstdiscoverer.c: + * gst-libs/gst/rtsp/gstrtspextension.c: + * gst/encoding/gstencodebin.c: + * gst/overlaycomposition/gstoverlaycomposition.c: + * gst/playback/gstdecodebin2.c: + * gst/playback/gstdecodebin3.c: + * gst/playback/gstparsebin.c: + * gst/playback/gstplaybin2.c: + * gst/playback/gstplaybin3.c: + * gst/playback/gstplaysink.c: + * gst/playback/gsturidecodebin.c: + * gst/playback/gsturidecodebin3.c: + * gst/playback/gsturisourcebin.c: + * gst/tcp/gstmultifdsink.c: + * gst/tcp/gstmultihandlesink.c: + * gst/tcp/gstmultisocketsink.c: + Don't pass default GLib marshallers for signals + By passing NULL to `g_signal_new` instead of a marshaller, GLib will + actually internally optimize the signal (if the marshaller is available + in GLib itself) by also setting the valist marshaller. This makes the + signal emission a bit more performant than the regular marshalling, + which still needs to box into `GValue` and call libffi in case of a + generic marshaller. + Note that for custom marshallers, one would use + `g_signal_set_va_marshaller()` with the valist marshaller instead. + +2019-08-23 18:28:16 +0200 Mathieu Duponchelle + + * ext/theora/gsttheoradec.c: + * ext/theora/gsttheoraenc.c: + * ext/vorbis/gstvorbisdec.c: + * ext/vorbis/gstvorbisenc.c: + docstrings: port ulinks to markdown links + +2019-08-21 14:50:12 +0000 Piotr Drąg + + * po/POTFILES.in: + po: update POTFILES + +2019-04-04 17:41:13 +0900 Seungha Yang + + * docs/meson.build: + * gst-libs/gst/gl/Makefile.am: + * gst-libs/gst/gl/egl/Makefile.am: + * gst-libs/gst/gl/egl/gstglcontext_egl.c: + * gst-libs/gst/gl/egl/gstgldisplay_egl.c: + * gst-libs/gst/gl/egl/gstgldisplay_egl_device.c: + * gst-libs/gst/gl/egl/gstgldisplay_egl_device.h: + * gst-libs/gst/gl/gstgldisplay.c: + * gst-libs/gst/gl/gstgldisplay.h: + * gst-libs/gst/gl/meson.build: + gl/egl/display: Add support EGLDevice display type + Simple addition for supporting EXT_platform_device typed display. + It's a kind of special display type (part of EGL specification) + which has no window at all. + To use EGLDevice explicitly, set environment "GST_GL_WINDOW=egl-device" + See also https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_platform_device.txt + +2019-04-05 00:43:02 +0900 Seungha Yang + + * gst-libs/gst/gl/gstglwindow.c: + * gst-libs/gst/gl/gstglwindow.h: + glwindow: Introduce new vfunc for querying output surface availability + Only dummy window will return FALSE for now. + +2019-08-20 21:10:45 +0900 Seungha Yang + + * gst-libs/gst/video/video-hdr.c: + * gst-libs/gst/video/video-hdr.h: + video-hdr: Update documentation + * Fix typo + s/nunormalized/normalized/g + * Update GstVideoMasteringDisplayInfo description + Each values are not array. + * Add missing newline between arguments description and + detailed comment. + +2019-08-07 16:15:40 +0100 Philippe Normand + + * ext/gl/gltestsrc.c: + * ext/gl/gstgltestsrc.c: + * ext/gl/gstgltestsrc.h: + * gst-libs/gst/gl/Makefile.am: + * gst-libs/gst/gl/gl.h: + * gst-libs/gst/gl/gstgl_fwd.h: + * gst-libs/gst/gl/gstglbasesrc.c: + * gst-libs/gst/gl/gstglbasesrc.h: + * gst-libs/gst/gl/meson.build: + gl: New pushsrc-based glbasesrc base class + The gltestsrc element was refactored to inherit from this base class which + handles the GL context. The sub-class only needs to implement the gl_start, + gl_stop and fill_gl_memory vfuncs, along with properly advertizing the GL APIs + it supports through the supported_gl_api GstGLBaseSrc class attribute. + +2019-08-16 11:58:28 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-frame.c: + video-frame: Take TFF flag from the video info if it was set in there + The caps and thus the video info have preference. If the field order is + set in there then it applies to all frames. + This works around issues where the tff field order is only set in the + caps but not additionally in the buffer flags. + +2019-08-12 18:00:34 +0200 Mathieu Duponchelle + + * gst-libs/gst/audio/gstaudioaggregator.c: + audioaggregator: add missing Since tag + +2019-08-09 16:04:03 -0400 Xavier Claessens + + * gst-libs/gst/gl/gstglcolorconvert.c: + glcolorconvert: Fix external-oes shader + The #extention must come before 'precision highp float;'. + Closes: #650 + +2019-08-12 22:42:10 +0900 Seungha Yang + + * gst-libs/gst/video/video-hdr.h: + video-hdr: Fix document typo + Fix missing document update. GstVideoContentLightMeta was changed to + GstVideoContentLightLevel during code review. + +2019-08-11 14:16:51 +0100 Tim-Philipp Müller + + * gst-libs/gst/video/video-color.c: + video-color: keep UNKNOWN colorimetry define automatically up-to-date + Follow-up to !310 and helps with backport commits like !360 + +2019-08-08 11:43:03 +0900 Seungha Yang + + * gst-libs/gst/gl/egl/gsteglimage.c: + * gst-libs/gst/gl/gstglcolorconvert.c: + * gst-libs/gst/gl/gstglcolorconvert.h: + * gst-libs/gst/gl/gstglformat.c: + * gst-libs/gst/gl/gstglmemory.h: + gl: Add support for P016 format + All implementation for P010_10LE/BE can be reused. + +2019-08-08 01:06:57 +0900 Seungha Yang + + * gst-libs/gst/video/video-converter.c: + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-format.h: + * gst-libs/gst/video/video-info.c: + video: Add P016 LE/BE formats + Add semi-planar 4:2:0 16 bits format. + +2019-08-07 20:18:34 +0200 Mathieu Duponchelle + + * ext/pango/gsttimeoverlay.c: + timeoverlay: chain up finalize + Mistakenly forgot to amend this in for !325 + +2019-08-06 21:49:04 +0900 Seungha Yang + + * gst-libs/gst/video/video-converter.c: + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-format.h: + * gst-libs/gst/video/video-info.c: + video: Add Y444_16LE and Y444_16BE formats + Add 16 bits planar 4:4:4 YUV formats. + +2019-08-07 13:01:07 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-anc.c: + video-anc: Fix ADF detection when trying to extract data from vanc + Previously we were checking offset 1 twice, but the second check + should've been for offset 2. + +2019-07-10 14:00:56 +0200 Mathieu Duponchelle + + * ext/pango/gsttimeoverlay.c: + * ext/pango/gsttimeoverlay.h: + timeoverlay: add a property to show times as dates + In this mode, buffer timestamps are displayed as an absolute date + since a user-specifiable epoch. The format is also specifiable as + a string property, that will be passed to g_date_time_format(). + +2019-08-02 10:26:24 -0400 Aaron Boxer + + * tests/examples/playback/playback-test.c: + playback-test: plug some memory leaks + +2019-07-30 04:01:55 +1000 Jan Schmidt + + * gst-libs/gst/tag/gstexiftag.c: + exiftag: Don't output rational numbers with denominator = 0 + +2019-05-28 17:43:25 +0200 Lucas Stach + + * gst-libs/gst/gl/wayland/wayland_event_source.c: + gl/wayland: fix wayland event source burning CPU + Commit c71dd72b "gl/wayland: fix glib mainloop integration" was overeager + in removing the poll result test from the check function. This caused + dispatch to be called even if no new events are available on the + Wayland connection, which in turn would wake up the glib mainloop, + causing effectively a tight loop without ever blocking on the poll. + Fixes #603 + +2019-07-24 10:12:17 +0200 Martin Liska + + * configure.ac: + Add used attribute in order to make NEON detection working with -flto. + +2019-07-24 14:25:19 +1000 Matthew Waters + + * ext/gl/gstgluploadelement.c: + gluploadelement: don't passthrough on same caps + If we do, then multiple disjoint OpenGL contexts will not perform the + necessary download and reupload of data that is necessary to cross between + each OpenGL context sharegroup. + +2019-07-23 13:54:24 +0300 Sebastian Dröge + + * gst/typefind/gsttypefindfunctions.c: + typefindfunctions: Check for NULL return of gst_type_find_peek() instead of segfaulting in otio typefinder + See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/329#note_194943 + +2019-07-23 09:09:35 +0900 Wonchul Lee + + * gst-libs/gst/gl/gstgldisplay.c: + gldisplay: fix g-i warning + +2019-07-12 16:37:10 -0400 Thibault Saunier + + * gst/typefind/gsttypefindfunctions.c: + typefind: Add typefind functions for fcpxml, xmel and otio file formats + +2019-07-19 18:52:02 +0200 Mathieu Duponchelle + + * tests/check/elements/audiomixer.c: + * tests/check/elements/compositor.c: + aggregator tests: fix seek event seqnums + In + https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/207, + aggregator starts ignoring seek events with duplicate seqnums. We thus + need to update the seqnum of events when reusing them multiple times. + +2019-07-16 12:23:01 +0200 Guillaume Desmottes + + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-format.h: + * tests/check/libs/video.c: + video-format: add gst_video_format_info_component() + New API to find out which components are packed in a given plane. + Will prevent us from assuming a 1-1 mapping between planes and + components. + +2019-07-12 16:56:52 +0200 Mathieu Duponchelle + + * gst-libs/gst/rtp/gstrtpbasedepayload.c: + basedepayload: do not create segment in onvif mode + basedepayload generates its own segment in a pretty unconventional + manner, relying on information in the caps such as npt-start or + npt-stop, usually set by rtspsrc. + In ONVIF mode, rtspsrc will generate the correct segment and this + logic in rtpbasedepayload will not be needed, this commit allows + rtspsrc to signal that through the caps. + +2019-07-18 08:46:42 +0300 Sebastian Dröge + + * gst-libs/gst/audio/gstaudioaggregator.c: + audioaggregator: Split getcaps() function into two + One for convert pads and one for normal sink pads. + +2019-07-16 10:40:16 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: We can only convert the format if a GstVideoAggregatorConvertPad is used + Otherwise assume that we can at least support any framerate. + +2019-07-16 10:34:24 +0300 Sebastian Dröge + + * gst-libs/gst/audio/gstaudioaggregator.c: + audioaggregator: Always take first configure pad's rate and downstream caps into account when calculating allow sink caps + While we can convert between all formats apart from the rate, we + actually need to make sure that we comply with a) the rate of the first + configured pad and b) also all the allowed rates from downstream. + +2019-07-16 10:02:08 +0300 Sebastian Dröge + + * gst-libs/gst/audio/gstaudioaggregator.c: + audioaggregator: If we don't have a GstAudioAggregatorConvertPad, don't assume that we can actually convert + +2019-07-15 16:08:34 +0200 Mathieu Duponchelle + + * gst-libs/gst/audio/gstaudioaggregator.c: + audioaggregator: always use downstream's rate requirements + We were previously only fixating the rate in the getcaps + implementation when downstream was requiring a discrete value, + causing negotiation to fail when upstream was capable of rate + conversion, but not made aware that it had to occur. + Instead of fixating the rate, we can simply update our sink + template caps with whatever GValue the downstream caps are holding + as their rate field. + Allows negotiation to successfully complete with pipelines such as: + audiotestsrc ! audio/x-raw, rate=48000 ! audioresample ! audiomixer name=m ! \ + audio/x-raw, rate={800, 1000} ! autoaudiosink \ + audiotestsrc ! audio/x-raw, rate=44100 ! audioresample ! m. + +2019-07-17 19:11:12 +0530 Nirbheek Chauhan + + * docs/meson.build: + meson: Don't generate doc cache when no plugins are enabled + Fixes gst-build with -Dauto-features=disabled + +2019-07-17 02:44:12 +0900 Seungha Yang + + * gst-libs/gst/video/video-color.c: + video-color: Enhance documentation of gst_video_colorimetry_to_string() + It could return null string. So need to clarify when it will be null. + +2019-07-10 12:46:17 +0900 Seungha Yang + + * tests/check/libs/video.c: + tests: video: Add test conversion between colorimetry and ISO/IEC 23001-8 values + Test forward/backword conversion of color{matrix,transfer,primaries}. + +2019-07-10 00:16:58 +0900 Seungha Yang + + * gst-libs/gst/video/video-color.c: + * gst-libs/gst/video/video-color.h: + video-color: Add util functions for conversion from/to ISO/IEC 23001-8 + ... and also as known as ITU-T H.273. + The conversion has been handled per plugin for now. That causes + code duplication a lot also some plugins might not be updated with newly introduced + color{matrix,transfer,primaries} enum value(s). + Instead of handling it per plugin, centralized handling can remove such + code duplication and make plugins be up-to-dated. + +2019-07-09 14:28:46 +0300 Sebastian Dröge + + * gst-libs/gst/sdp/gstsdpmessage.c: + * tests/check/libs/sdp.c: + sdp: Add support for parsing the extmap attribute from caps and storing inside caps + The extmap attribute allows mapping RTP extension header IDs to + well-known RTP extension header specifications. See RFC8285 for details. + We store the extmap attribute either as string in the caps + extmap-X=extensionname + where X is the integer extension header ID, or as 3-tuple of strings + extmap-X= + where direction or extensionattributes are allowed to be the empty + string. + Both formats are allowed because usually only the extension name is + given and it's much simpler to handle in caps. + +2019-07-10 21:57:13 +0000 Thibault Saunier + + * gst/typefind/gsttypefindfunctions.c: + Revert "typefind: Hold off making suggestions too early for MPEG based formats" + This reverts commit 36319169d06f778acee2b33d728d2089d15370d6 + +2019-06-26 15:53:11 -0600 Thomas Bluemel + + * gst/typefind/gsttypefindfunctions.c: + typefind: Hold off making suggestions too early for MPEG based formats + By suggesting possible detection too early, it's possible that + the wrong format is detected. Hold off making suggestions until one + of the following conditions is met: + * Probability > GST_TYPE_FIND_LIKELY + * At least MPEG_MIN_PROBE_LENGTH bytes have been examined + * EOS, in which case the best guess wins + Fixes #628 + +2019-07-10 01:27:43 +0900 Seungha Yang + + * tests/examples/overlay/win32-videooverlay.c: + examples: win32-videooverlay: Fix C2440 build error + Follow WNDPROC define to avoid implicit type conversion. + +2019-06-25 19:15:29 -0700 Dylan McCall + + * gst-libs/gst/gl/egl/gstgldisplay_egl.c: + * gst-libs/gst/gl/gstgldisplay.c: + * gst-libs/gst/gl/gstgldisplay.h: + * gst-libs/gst/gl/wayland/gstgldisplay_wayland.c: + * gst-libs/gst/gl/x11/gstgldisplay_x11.c: + gstgldisplay: Add public foreign_display property + We use this property in gst_gl_display_egl_from_gl_display, to set + foreign_display for the new GstGLDisplayEGL instance. This fixes a + problem where gst_gl_display_egl_finalize calls EglTerminate on a + pre-existing EGL connection. + +2019-07-05 20:14:34 +0530 Sumaid Syed + + * gst-libs/gst/tag/gstid3tag.c: + * gst-libs/gst/tag/gstvorbistag.c: + * gst-libs/gst/tag/tag.h: + * gst-libs/gst/tag/tags.c: + * tests/check/libs/tag.c: + tag: Add tags for acoustid id & acoustid fingerprint + Mapping followed: https://picard.musicbrainz.org/docs/mappings/ + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/612 + +2019-05-22 14:26:42 +0530 Sumaid + + * gst-libs/gst/tag/gstid3tag.c: + * gst-libs/gst/tag/gstvorbistag.c: + * gst-libs/gst/tag/tag.h: + * gst-libs/gst/tag/tags.c: + * tests/check/libs/tag.c: + tag: Repair support for MusicBrainz IDs + Add missing release group ID and track ID + Mapping Followed: + https://picard.musicbrainz.org/docs/mappings/ + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/612 + +2019-07-06 17:02:27 +0900 Seungha Yang + + * tests/examples/overlay/meson.build: + * tests/examples/overlay/win32-videooverlay.c: + examples: Add a video overlay example for WIN32 videosink elements + User can set the target WIN32 video element via "videosink" command line + option. Default is glimagesink. + +2019-07-03 09:07:06 +0000 Marc Leeman + + * gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c: + egl: wl_egl_window is not wl_proxy + It seems that eglCreatePlatformWindowSurfaceEXT is failing (with + EGL_BAD_ALLOC) because it thinks an EGL surface has already been created + for the wl_egl_window. The reason is that the "driver_private" field of + the wl_egl_window is getting clobbered by the function + wl_proxy_set_queue(). + Since a wl_egl_window is not a wl_proxy, it shouldn't be passed to + wl_proxy_set_queue(). It just wraps a wl_surface (which is a wl_proxy). + And it looks like the queue for that surface is getting set earlier on + in the function anyway. + See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/621#note_184582 + +2019-06-30 13:10:50 +0900 Seungha Yang + + * tools/gst-play.c: + gst-play: Handle "space" key event correctly on Windows + The key name string given by GetKeyNameText() can have uppercase letter. + +2019-06-28 07:22:17 +0200 Göran Jönsson + + * gst-libs/gst/rtsp/gstrtspconnection.c: + rtspconnection: data-offset increase not set + +2019-06-27 08:04:07 +0200 Göran Jönsson + + * gst-libs/gst/rtsp/gstrtspconnection.c: + rtpsconnection: Fix number of n_vectors + Body_offset mean that so much data have been written. + Without this patch n_vectors somtimes becomes one more than it should + and then there will be an vector that have a random size causing + writev_bytes to cause a "Bad address" error. + +2019-06-26 17:05:04 +0530 Nirbheek Chauhan + + * gst-libs/gst/video/video-color.c: + video-color: Add compile-time assert for ColorimetryInfo enum + A comment is not sufficient because this will break when + cherry-picking or backporting commits. + +2019-06-26 03:39:54 -0400 Doug Nazar + + * gst-libs/gst/audio/gstaudiodecoder.c: + audiodecoder: Fix leak on failed audio gaps + If we fail to process the gap event we need to unref the event or + we end up with a leak. + +2019-06-24 09:44:29 +0000 Tim-Philipp Müller + + * gst/compositor/compositor.c: + compositor: fix compiler warning due to c99-ism + +2019-06-23 11:34:49 +0100 Philippe Normand + + * gst-libs/gst/gl/gstglupload.c: + glupload: Keep track of cached EGLImage texture format + This patch fixes the following critical warning: + CRITICAL **: 11:33:32.843: Unknown GL format 0x0 provided + It would happen during the setup of a second pipeline involving the DMABuf + uploader, typically with a v4l2src element. The warning was raised because the + uploader had a cached EGLImage already filled but the formats were not + synchronized accordingly. + +2018-11-19 17:19:33 +0100 Marco Felsch + + * gst-libs/gst/video/video-info.c: + video-info: parse field-order for all interleaved formats + The "field-order" is related for all interlace_mode modes except the + "progressive" mode. So instead of or'ing each mode we can use the + already supported GST_VIDEO_INFO_IS_INTERLACED macro. + +2019-06-13 13:07:06 +0800 Haihao Xiang + + * gst-libs/gst/gl/egl/gsteglimage.c: + * gst-libs/gst/gl/gstglcolorconvert.c: + * gst-libs/gst/gl/gstglcolorconvert.h: + * gst-libs/gst/gl/gstglformat.c: + * gst-libs/gst/gl/gstglformat.h: + * gst-libs/gst/gl/gstglmemory.h: + glimagesink: add support for P010 variants + This makes a pipeline below works: + little endian: + gst-launch-1.0 videotestsrc ! video/x-raw,format=P010_10LE ! glimagesink + big endian: + gst-launch-1.0 videotestsrc ! video/x-raw,format=P010_10BE ! glimagesink + +2019-06-18 16:14:33 +0800 Haihao Xiang + + * gst-libs/gst/gl/gstglcolorconvert.c: + glcolorconvert: rename the NV12/NV12 shader to semi planar + This shader can be used for other semi planar formats, e.g. P010_10LE + +2019-06-17 16:46:21 -0700 Song Bing + + * gst/playback/gstplaysink.c: + playsink: Set ts-offset to text sink. + Find right text sink to set the ts-offset. + +2019-06-05 09:26:08 +0800 Haihao Xiang + + * gst-libs/gst/gl/egl/gsteglimage.c: + * gst-libs/gst/gl/gstglcolorconvert.c: + * gst-libs/gst/gl/gstglcolorconvert.h: + * gst-libs/gst/gl/gstglformat.c: + * gst-libs/gst/gl/gstglformat.h: + * gst-libs/gst/gl/gstglmemory.h: + glimagesink: add support for BGR10A2_LE / RGB10A2_LE + This makes a pipeline below work: + gst-launch-1.0 videotestsrc ! video/x-raw,format={BGR10A2_LE, \ + RGB10A2_LE} ! glimagesink + +2019-06-14 14:53:56 +0800 Haihao Xiang + + * gst-libs/gst/gl/gstglformat.c: + glformat: removde dead break after return + +2019-06-17 21:57:33 -0400 Roman Sivriver + + * gst-libs/gst/video/video-anc.c: + video-and: Fix buffer overflow detected by asan + gst_meta_api_type_register() assumes that the last tags element is null, but it wasn't + ==17422==ERROR: AddressSanitizer: global-buffer-overflow on address 0x7f4e2a67c998 at pc 0x7f4e2a0c92ac bp 0x7ffcc41f80b0 sp 0x7ffcc41f80a0 + READ of size 8 at 0x7f4e2a67c998 thread T0 + #0 0x7f4e2a0c92ab in gst_meta_api_type_register ../subprojects/gstreamer/gst/gstmeta.c:94 + #1 0x7f4e2a5582c3 in gst_video_afd_meta_api_get_type ../subprojects/gst-plugins-base/gst-libs/gst/video/video-anc.c:1146 + #2 0x404c7c in invoke_get_type (/home/ubuntu/gst-build/build/tmp-introspect5gv1rovo/GstVideo-1.0+0x404c7c) + #3 0x406b5c in dump_irepository (/home/ubuntu/gst-build/build/tmp-introspect5gv1rovo/GstVideo-1.0+0x406b5c) + #4 0x407089 in main (/home/ubuntu/gst-build/build/tmp-introspect5gv1rovo/GstVideo-1.0+0x407089) + #5 0x7f4e295b4b6a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x26b6a) + #6 0x404479 in _start (/home/ubuntu/gst-build/build/tmp-introspect5gv1rovo/GstVideo-1.0+0x404479) + 0x7f4e2a67c998 is located 40 bytes to the left of global variable 'tags' defined in '../subprojects/gst-plugins-base/gst-libs/gst/video/video-anc.c:1232:25' (0x7f4e2a67c9c0) of size 24 + 0x7f4e2a67c998 is located 0 bytes to the right of global variable 'tags' defined in '../subprojects/gst-plugins-base/gst-libs/gst/video/video-anc.c:1141:25' (0x7f4e2a67c980) of size 24 + SUMMARY: AddressSanitizer: global-buffer-overflow ../subprojects/gstreamer/gst/gstmeta.c:94 in gst_meta_api_type_register + +2018-10-15 22:35:09 +0900 Seungha Yang + + * tests/check/libs/pbutils.c: + tests: pbutils: Add test parsing H265 profiles + +2018-10-15 21:16:56 +0900 Seungha Yang + + * gst-libs/gst/pbutils/codec-utils.c: + codec-utils: Add parsing H265 range extensions profiles + Add support all h265 profiles defined by ITU-T H.264 (02/2018) revision + +2019-06-15 14:33:32 +0900 Wonchul Lee + + * gst-libs/gst/app/gstappsrc.c: + appsrc: Fix typo in documentation + +2019-06-15 10:41:29 +0900 Wonchul Lee + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: Fix typo in documentation + +2017-10-10 15:45:14 +0200 Håvard Graff + + * pkgconfig/meson.build: + meson.build: use join_paths() on prefix + So that "/" are correct on Windows. + +2019-05-29 13:24:04 +0300 Adrian Negreanu + + * gst-libs/gst/gl/egl/gstglcontext_egl.c: + glcontext_egl: check if eglChooseConfig has a matching config + The specs recommends to also check the num_config parameter. + +2019-06-14 02:32:50 +0530 Nirbheek Chauhan + + * gst/compositor/compositor.c: + compositor: Copy frames as-is when possible + The blend functions for alpha formats need to do more work than just + doing a memcpy, so we can do a memcpy when we know that a blend is not + actually needed. + 1080p AYUV ! compositor background=transparent ! fakesink - 56% faster + Specifically, when we don't draw the background and the first pad we + draw completely covers the output frame, we can just copy it as-is. + The rest of the pads (if any) will get composited on top normally. + +2019-06-13 10:36:05 +0200 Stian Selnes + + * gst-libs/gst/rtp/gstrtpbasedepayload.c: + * tests/check/libs/rtpbasedepayload.c: + rtpbasedepayload: Add max-reorder property + Add max-reorder property to make the old hard coded reordering limit of + 100 configurable. It's particularly useful in some scenarios to set + max-reorder=0 to disable the behavior that the depayloader will drop + packets. + Note that although the default value is 100, the default limit has + increased with one because of the changed if-test. This was done to + allow the max-reorder value to be more intuitive. See tests. + +2019-06-13 20:30:03 +0530 Nirbheek Chauhan + + * gst/compositor/compositor.c: + compositor: Sprinkle some const in prototypes + These helper functions don't edit the rectangles passed in. + +2019-05-26 17:47:20 +0200 Nirbheek Chauhan + + * gst/compositor/compositor.c: + compositor: Skip background if transparent and obscured + If the background is transparent and obscured by a pad that may or may + not have alpha, we can still skip drawing it entirely + AYUV 1080p ! compositor background=transparent ! fakesink - 75% faster + +2019-05-26 17:30:12 +0200 Nirbheek Chauhan + + * gst/compositor/compositor.c: + compositor: Skip the background when not visible + We don't need to waste time drawing the background when one of the + pads completely covers the output and there's no alpha on the pad or + in the video format. Speedups: + I420 1080p ! compositor ! fakesink - 72% faster + I420 1080p ! compositor background=black ! fakesink - 45% faster + +2019-05-26 18:28:18 +0200 Nirbheek Chauhan + + * gst/compositor/blend.c: + compositor: Don't log per-frame under GST_INFO + +2019-05-26 17:29:23 +0200 Nirbheek Chauhan + + * gst/compositor/compositor.c: + compositor: Factor-out rectangle-obscuring check + We're going to use this for checking if one of the pads obscures the + background. + +2019-05-26 15:23:25 +0200 Nirbheek Chauhan + + * gst/compositor/compositor.c: + * gst/compositor/compositor.h: + compositor: Add some comments, remove outdated ones + +2019-05-26 15:23:06 +0200 Nirbheek Chauhan + + * gst/compositor/compositor.c: + compositor: Remove unused function argument + +2019-06-05 18:23:16 +1000 Matthew Waters + + * tests/check/pipelines/gl-launch-lines.c: + tests/gl-launch-lines: gltestsrc works on gles2/opengl3 now + There's no need to feature gate the gltestsrc pipelines anymore + +2019-06-05 18:17:35 +1000 Matthew Waters + + * ext/gl/gstglvideomixer.c: + glvideomixer: perform _get_highest_precision on the GL thread + gst_gl_shader_string_get_highest_precision needs to make an OpenGL call + so execution outside the OpenGL thread and context results in undefined + behaviour. + +2019-06-05 18:06:57 +1000 Matthew Waters + + * ext/gl/gstglmosaic.c: + * ext/gl/gstglmosaic.h: + * tests/check/pipelines/gl-launch-lines.c: + glmosaic: port to opengl3/gles2 + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/543 + +2019-06-13 15:36:56 +1000 Matthew Waters + + * gst-libs/gst/gl/gstglcontext.c: + glcontext: add a couple of preconditions of invalid usage + +2019-06-12 17:20:10 +0200 Víctor Manuel Jáquez Leal + + * gst-libs/gst/gl/gstglcontext.c: + gl: detect possible GL version prefix + Instead of checking if the requested GL API is GLES2 (because ANY can + be set) the string is matched with the GLES2 prefix, and if so, then + the string is offset. + +2018-10-16 16:56:26 +0200 Havard Graff + + * tests/check/meson.build: + meson: add rtpmeta-tests + +2019-06-12 14:32:03 +0200 Havard Graff + + * gst-libs/gst/rtp/gstrtpbasepayload.c: + rtpbasepayload: don't use GINT_TO_POINTER with GType + GType can (and will) be 64bit. GINT_TO_POINTER is not. + This will result in the api-type checked for being a different one than + it actually is... + +2019-06-12 14:31:09 +0200 Havard Graff + + * gst-libs/gst/rtp/gstrtpbasedepayload.c: + * tests/check/libs/rtpbasedepayload.c: + rtpbasedepayload: don't consider existing GstRTPSourceMeta + The meta should always be generated based on what is present in the + rtp-header. + +2019-06-12 12:32:33 +0000 Marc Leeman + + * gst-libs/gst/rtp/gstrtppayloads.c: + gstrtppayloads: add vp8/vp9/opus encoding-name + Adding these encoding names allows easy lookup of the caps based on the + encoding-name. + +2019-06-12 04:45:09 +0900 Eike Hein + + * gst-libs/gst/rtsp/gstrtspconnection.c: + rtspconnection: Start CSeq at 1 + RFC 7826 recommends (but does not require) starting at 0, + but at least one known server implementation fails to copy + request sequence numbers <1 into responses due to an + incorrect null check. + The server known to exhibit this behavior is the Parrot + Streaming Server, serving video from their UAV devices. + A fix has been submitted upstream as well: + https://github.com/Parrot-Developers/librtsp/pull/2 + The Parrot developers are known to have tested with LibVLC. + In WireShark debugging, LibVLC appears to start with a CSeq + of 2, which is likely why this bug went unnoticed. + This reverts 487595a7d6e2d, which set this to 0 citing the + RFC. The switch to 0 was thus a recent one; it's therefore + possible server implementors relied on the previous + GStreamer client behavior in their tests as well. + Fixes #624. + +2019-06-03 15:51:02 +0800 Haihua Hu + + * gst-libs/gst/gl/viv-fb/gstglwindow_viv_fb_egl.c: + viv-fb: fix build break for GST_GL_API + Need include config.h in gstglwindow_viv_fb_egl.c + +2019-06-07 22:29:10 -0400 Thibault Saunier + + * gst-libs/gst/pbutils/gstdiscoverer-types.c: + * gst-libs/gst/pbutils/gstdiscoverer.c: + discoverer: Plug some leaks in the cache loading path + +2019-06-08 02:57:37 +1000 Matthew Waters + + * tests/check/libs/gstglheaders.c: + gl/tests: fix shader creation tests part 2 + Continuation of 4fd7a2c783e96e5ebec513f8fd178ba34b2a527f + We check the availability of the high precision floats in GLSL shaders + which involves an OpenGL call and thus is required to be executed on the + OpenGL thread. + The tests were not respecting that and could fail on more strict + drivers. + Tests update for 675415bf2ea9ddc75ea5e5b6eae9ae942c19d6dc + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/590 + +2019-06-07 20:51:39 +1000 Matthew Waters + + * tests/check/libs/gstglheaders.c: + * tests/check/libs/gstglslstage.c: + gl/tests: fix shader creation tests + We check the availability of the high precision floats in GLSL shaders + which involves an OpenGL call and thus is required to be executed on the + OpenGL thread. + The tests were not respecting that and could fail on more strict + drivers. + Tests update for 675415bf2ea9ddc75ea5e5b6eae9ae942c19d6dc + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/590 + +2019-06-05 22:25:45 +0200 Mathieu Duponchelle + + * tests/check/gst-plugins-base.supp: + valgrind: suppress incorrect conditional error in orc backup code + +2019-06-05 22:20:43 +0200 Mathieu Duponchelle + + * gst-libs/gst/pbutils/gstdiscoverer.c: + discoverer: unref "next" variant when parsing from variant + +2019-06-05 22:10:47 +0200 Mathieu Duponchelle + + * tests/check/elements/audiorate.c: + valgrind: free buffer list in audiorate test + +2019-06-05 22:06:26 +0200 Mathieu Duponchelle + + * tests/check/gst-plugins-base.supp: + valgrind: suppress conditional jump or move error + valgrind gets confused with the following piece of code: + var37.i = ORC_CLAMP_SL((orc_int64)var33.i + (orc_int64)var34.i); + Where all variables are orc_int32 + +2019-06-05 13:25:34 +0100 Fernando Herrrera + + * gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c: + wayland: set the event queue also for the xdg_wm_base object + +2019-06-04 09:01:47 +0200 Niels De Graef + + * gst-libs/gst/allocators/gstdmabuf.h: + * gst-libs/gst/allocators/gstfdmemory.h: + * gst-libs/gst/app/gstappsink.h: + * gst-libs/gst/app/gstappsrc.h: + * gst-libs/gst/audio/audio-info.h: + * gst-libs/gst/audio/gstaudiobasesink.h: + * gst-libs/gst/audio/gstaudiobasesrc.h: + * gst-libs/gst/audio/gstaudiocdsrc.h: + * gst-libs/gst/audio/gstaudioclock.h: + * gst-libs/gst/audio/gstaudiodecoder.h: + * gst-libs/gst/audio/gstaudioencoder.h: + * gst-libs/gst/audio/gstaudiofilter.h: + * gst-libs/gst/audio/gstaudioringbuffer.h: + * gst-libs/gst/audio/gstaudiosink.h: + * gst-libs/gst/audio/gstaudiosrc.h: + * gst-libs/gst/gl/egl/gstglcontext_egl.h: + * gst-libs/gst/gl/gstgl_fwd.h: + * gst-libs/gst/gl/gstglframebuffer.h: + * gst-libs/gst/pbutils/encoding-profile.h: + * gst-libs/gst/pbutils/encoding-target.h: + * gst-libs/gst/pbutils/gstdiscoverer.h: + * gst-libs/gst/pbutils/install-plugins.h: + * gst-libs/gst/rtp/gstrtpbaseaudiopayload.h: + * gst-libs/gst/rtp/gstrtpbasedepayload.h: + * gst-libs/gst/rtp/gstrtpbasepayload.h: + * gst-libs/gst/rtsp/gstrtspurl.h: + * gst-libs/gst/sdp/gstmikey.h: + * gst-libs/gst/sdp/gstsdpmessage.h: + * gst-libs/gst/tag/gsttagdemux.h: + * gst-libs/gst/tag/gsttagmux.h: + * gst-libs/gst/video/colorbalancechannel.h: + * gst-libs/gst/video/gstvideodecoder.h: + * gst-libs/gst/video/gstvideoencoder.h: + * gst-libs/gst/video/gstvideofilter.h: + * gst-libs/gst/video/gstvideopool.h: + * gst-libs/gst/video/gstvideosink.h: + * gst-libs/gst/video/gstvideoutils.h: + * gst-libs/gst/video/video-info.h: + * gst-libs/gst/video/video-overlay-composition.h: + Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally + Since we started depending on GLib 2.44, we can be sure this macro is + defined (it will be a no-op on compilers that don't support it). For + plugins we should just start using `G_DECLARE_FINAL_TYPE` which means we + no longer need the macro there, but for most types in base/gst-libs we + don't want to break ABI, which means it's better to just keep it like it + is (and use the `#ifdef` instead). + +2018-08-31 18:33:43 -0300 Thibault Saunier + + * 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. + This doesn't implement device monitoring but only probing, monitoring + should be implemented in its own commit. + +2019-06-04 15:04:03 +0200 Mathieu Duponchelle + + * docs/meson.build: + docs: override rtsp library project name + .. to avoid conflicts with the rtsp plugin + +2019-06-04 14:58:45 +0200 Mathieu Duponchelle + + * docs/meson.build: + docs: override rtp library project name + .. to avoid conflicts with the rtp plugin + +2019-05-31 23:02:53 +0200 Niels De Graef + + * configure.ac: + * meson.build: + meson: Bump minimal GLib version to 2.44 + This means we can use some newer features and get rid of some boilerplate code using the G_DECLARE_* macros. + As discussed on IRC, 2.44 is old enough by now to start depending on it. + +2019-05-30 18:43:14 +0200 Mathieu Duponchelle + + * tests/check/elements/compositor.c: + compositor: remove invalid test + With https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/159, + a single flush start on an aggregator sinkpad will start the flushing + process if the aggregator isn't already flushing. + The behaviour that this test was checking for is thus no longer correct + +2019-05-28 17:04:51 +0200 Daniel Klamt + + * gst-libs/gst/video/gstvideoaffinetransformationmeta.c: + Added GI annotation for gstvideoaffinetransformationmeta apply_matrix + The problem is that Gobject Introspections does not understand the const + gfloat matrix[16] as an matrix but as an array of gfloasts but as just + one gfloat. + To fix this i added the annotation to the parameter + descriptions. + +2019-06-01 01:00:06 +0200 Mathieu Duponchelle + + * docs/meson.build: + docs: unprefix subproject paths + special case for app, renamed to applib to not conflict + with the plugin + +2019-05-30 01:12:59 +0200 Mathieu Duponchelle + + * gst-libs/gst/pbutils/encoding-target.c: + * gst/audiotestsrc/gstaudiotestsrc.c: + * gst/playback/gstdecodebin3.c: + * gst/playback/gstparsebin.c: + * gst/playback/gstplaybin3.c: + * gst/playback/gsturisourcebin.c: + * gst/rawparse/gstrawbaseparse.c: + doc: remove xml from comments + +2019-05-29 14:41:10 -0400 Thibault Saunier + + * gst/overlaycomposition/gstoverlaycomposition.c: + overlaycompositor: Show the full example instead of a stripped down version + +2019-05-29 11:14:05 +0100 Tim-Philipp Müller + + * docs/plugins/gst_plugins_cache.json: + docs: update plugin docs cache + +2019-05-13 21:11:12 -0400 Nicolas Dufresne + + * gst/overlaycomposition/meson.build: + doc: Add gstoverlaycomposition to the plugins list + +2019-05-25 19:43:33 +0200 Mathieu Duponchelle + + * docs/plugins/gst_plugins_cache.json: + Update plugin cache + +2019-05-25 17:26:52 +0200 Mathieu Duponchelle + + * ext/gl/gstglfiltershader.c: + gstglfiltershader: don't try to link to "version" in doc + +2019-05-25 16:54:39 +0200 Mathieu Duponchelle + + * ext/pango/gstclockoverlay.c: + * ext/pango/gsttimeoverlay.c: + * gst/audiomixer/gstaudiomixer.c: + * gst/gio/gstgiostreamsink.c: + * gst/playback/gstdecodebin3.c: + * gst/rawparse/gstrawaudioparse.c: + * gst/rawparse/gstrawvideoparse.c: + * gst/tcp/gstmultisocketsink.c: + doc: fix element section documentations + Element sections were not rendered anymore after the hotdoc + port, fixing this revealed a few incorrect links. + +2019-05-24 15:54:50 +0200 Sebastian Dröge + + * gst/compositor/compositororc.orc: + compositor: Replace shift and conv opcodes by convh in BGRA SOURCE operator + Potentially speeds up processing a bit. + +2019-05-24 15:53:55 +0200 Sebastian Dröge + + * gst/compositor/compositororc.orc: + compositor: Remove unneeded left shift for ARGB/AYUV SOURCE operator + The alpha value is already in the lower 8 bits from the beginning in + this case. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/610 + +2019-05-24 15:22:58 +0200 Arun Raghavan + + * gst-libs/gst/video/video-color.c: + video-color: Deal with NULL colorimetry while converting from string + This came up in the case where v4l2 sets caps with colorimetry=NULL, and + then tries to parse back the colorimetry, causing a crash in + gst_video_get_colorimetry() because of g_str_equal(). We fix this by + making sure the only caller of the function never calls it with a null + colorimetry string. + +2019-05-24 16:35:08 +0200 Arun Raghavan + + * gst-libs/gst/video/video-color.c: + video-color: Fix unknown colorimetry checking + Also drop some deadcode #defines. + +2019-05-05 21:02:46 +0900 Seungha Yang + + * tests/check/libs/video.c: + tests: video: Enable PQ and HLG transfer en/decode tests + +2019-05-05 21:02:55 +0900 Seungha Yang + + * gst-libs/gst/video/video-color.c: + * gst-libs/gst/video/video-color.h: + video-color: Add ARIB STD-B67 transfer chracteristic function + It's known also as Rec. ITU-R BT.2100-1 hybrid log-gamma (HLG) used for + both SDR and HDR rendering. + +2019-05-05 19:22:13 +0900 Seungha Yang + + * gst-libs/gst/video/video-color.c: + * gst-libs/gst/video/video-color.h: + video-color: Add SMPTE ST 2084 support and BT 2100 colorimetry + SMPTE ST 2084 transfer characteristics (a.k.a ITU-R BT.2100-1 perceptual quantization, PQ) + is used for various HDR standard. + With ST 2084, we can represent BT 2100 (Rec. 2100). BT 2100 defines + various aspect of HDR such as resolution, transfer functions, matrix, primaries + and etc. It uses BT2020 color space (primaries and matrix) with PQ or HLG + transfer functions. + +2019-05-05 19:08:55 +0900 Seungha Yang + + * gst-libs/gst/video/video-color.c: + * gst-libs/gst/video/video-color.h: + video-color: Define bt2020-10 transfer characteristics for clarity + bt707, bt2020-10, and bt2020-12 transfer characteristics are functionally + identical but have their own unique values by specification. + +2019-05-16 08:53:51 +0100 Tim-Philipp Müller + + * gst/playback/gsturidecodebin.c: + * gst/playback/gsturisourcebin.c: + uridecodebin, urisourcebin: fix buffering for ssh:// URIs + Protocols that are in the stream_uris list should always + be streams, no matter what they respond to the scheduling + query. The flag in the scheduling query is just another + way to declare something that needs buffering without the + whitelist, the absence of the flag shouldn't make us ignore + our known protocol list. + Also set is_stream always to a boolean and not a mask value. + +2019-05-20 11:14:27 +1000 Matthew Waters + + * docs/libs/gl/index.md: + * docs/libs/gl/sitemap.txt: + * docs/meson.build: + * ext/gl/gstglalpha.h: + * ext/gl/gstglcolorbalance.h: + * ext/gl/gstgldownloadelement.h: + * ext/gl/gstgloverlay.h: + * ext/gl/gstgluploadelement.h: + * ext/gl/gstglvideomixer.c: + * gst-libs/gst/gl/egl/gstegl.c: + * gst-libs/gst/gl/egl/gsteglimage.c: + * gst-libs/gst/gl/egl/gsteglimage.h: + * gst-libs/gst/gl/egl/gstglcontext_egl.h: + * gst-libs/gst/gl/egl/gstgldisplay_egl.c: + * gst-libs/gst/gl/egl/gstgldisplay_egl.h: + * gst-libs/gst/gl/egl/gstglmemoryegl.c: + * gst-libs/gst/gl/egl/gstglmemoryegl.h: + * gst-libs/gst/gl/gbm/gstgldisplay_gbm.h: + * gst-libs/gst/gl/gstglapi.c: + * gst-libs/gst/gl/gstglbasefilter.c: + * gst-libs/gst/gl/gstglbasememory.c: + * gst-libs/gst/gl/gstglbasememory.h: + * gst-libs/gst/gl/gstglbuffer.h: + * gst-libs/gst/gl/gstglbufferpool.h: + * gst-libs/gst/gl/gstglcolorconvert.h: + * gst-libs/gst/gl/gstglcontext.c: + * gst-libs/gst/gl/gstgldebug.c: + * gst-libs/gst/gl/gstgldebug.h: + * gst-libs/gst/gl/gstgldisplay.h: + * gst-libs/gst/gl/gstglfeature.c: + * gst-libs/gst/gl/gstglformat.c: + * gst-libs/gst/gl/gstglframebuffer.h: + * gst-libs/gst/gl/gstglmemory.c: + * gst-libs/gst/gl/gstglmemory.h: + * gst-libs/gst/gl/gstglmemorypbo.h: + * gst-libs/gst/gl/gstgloverlaycompositor.h: + * gst-libs/gst/gl/gstglquery.h: + * gst-libs/gst/gl/gstglrenderbuffer.h: + * gst-libs/gst/gl/gstglshader.c: + * gst-libs/gst/gl/gstglsl.c: + * gst-libs/gst/gl/gstglslstage.h: + * gst-libs/gst/gl/gstglupload.h: + * gst-libs/gst/gl/gstglviewconvert.h: + * gst-libs/gst/gl/gstglwindow.c: + * gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.h: + * gst-libs/gst/gl/viv-fb/gstglwindow_viv_fb_egl.h: + * gst-libs/gst/gl/wayland/gstgldisplay_wayland.c: + * gst-libs/gst/gl/wayland/gstgldisplay_wayland.h: + * gst-libs/gst/gl/x11/gstgldisplay_x11.c: + gl/docs: add to new docs system + +2018-02-26 14:25:40 +0100 Georg Lippitsch + + * ext/alsa/gstalsasrc.c: + alsasrc: Don't use driver timestamp if it's zero + Some alsa interfaces don't provide timestamps and thus always set the timestamp to zero. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/453 + +2019-05-17 16:35:40 +0300 Vivia Nikolaidou + + * gst/audiotestsrc/gstaudiotestsrc.c: + audiotestsrc: Max audio frequency is half the rate, not 1/4 + https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem + +2019-05-17 12:26:40 +0100 Tim-Philipp Müller + + * docs/meson.build: + docs: don't build plugins doc cache by default + https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36 + +2019-05-13 22:53:24 -0400 Thibault Saunier + + * docs/plugins/gst_plugins_cache.json: + docs: Update plugins documentation cache + Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36 + +2019-05-14 01:56:58 +0200 Mathieu Duponchelle + + * gst-libs/gst/audio/gstaudioaggregator.c: + gstaudioaggregator: expose output-buffer-duration-fraction + The code for this is mostly lifted from audiobuffersplit, it + allows use cases such as keeping the buffers output by compositor + on one branch and audiomixer on another perfectly aligned, by + requiring the compositor to output a n/d frame rate, and setting + output-buffer-duration to d/n on the audiomixer. + The old output-buffer-duration property now simply maps to its + fractional counterpart, the last set property wins. + +2019-05-14 13:34:13 +0200 Guillaume Desmottes + + * gst-libs/gst/gl/gstgloverlaycompositor.c: + gloverlaycompositor: fix crash if buffer doesn't have video meta + Fix #501 + +2019-05-12 18:33:32 +0900 Seungha Yang + + * meson.build: + meson: Don't try to find gio-unix on Windows + +2019-04-23 17:51:25 -0400 Thibault Saunier + + * gst-libs/gst/video/gstvideoutils.c: + video:doc: Remove duplicated gstvideoutils SECTION + +2018-11-11 19:03:33 -0300 Thibault Saunier + + * docs/plugins/gst_plugins_cache.json: + * ext/alsa/gstalsasink.c: + * ext/alsa/gstalsasrc.c: + Mark some properties as DOC_SHOW_DEFAULT + +2018-09-21 13:54:39 -0300 Thibault Saunier + + * ext/gl/gstglsinkbin.c: + * gst-libs/gst/audio/audio-converter.c: + * gst-libs/gst/audio/audio-converter.h: + * gst-libs/gst/gl/gstglquery.c: + * gst-libs/gst/pbutils/encoding-profile.c: + * gst-libs/gst/pbutils/encoding-target.c: + * gst-libs/gst/pbutils/gstaudiovisualizer.c: + * gst-libs/gst/rtp/gstrtpbaseaudiopayload.c: + * gst-libs/gst/tag/tags.c: + * gst-libs/gst/video/gstvideoaggregator.c: + * gst-libs/gst/video/gstvideodecoder.c: + * gst-libs/gst/video/gstvideoencoder.c: + * gst-libs/gst/video/video-converter.c: + * gst-libs/gst/video/video-converter.h: + * gst-libs/gst/video/video-info.h: + * gst-libs/gst/video/video-scaler.c: + * gst-libs/gst/video/video-scaler.h: + * gst-libs/gst/video/videooverlay.c: + * gst/playback/gstdecodebin2.c: + * gst/playback/gstdecodebin3.c: + * gst/playback/gstparsebin.c: + * gst/playback/gstplayback.c: + * gst/playback/gstplaybin2.c: + * gst/playback/gstplaybin3.c: + * gst/playback/gstplaysink.c: + * gst/playback/gsturidecodebin.c: + * gst/tcp/gstmultifdsink.c: + * gst/tcp/gstmultisocketsink.c: + doc: Fix some gtk-doc comments + +2018-10-22 08:17:24 +0200 Thibault Saunier + + * docs/gst_api_version.in: + * docs/index.md: + * docs/libs/allocators/index.md: + * docs/libs/allocators/sitemap.txt: + * docs/libs/app/index.md: + * docs/libs/app/sitemap.txt: + * docs/libs/audio/index.md: + * docs/libs/audio/sitemap.txt: + * docs/libs/ext/sitemap.txt: + * docs/libs/fft/index.md: + * docs/libs/fft/sitemap.txt: + * docs/libs/pbutils/index.md: + * docs/libs/pbutils/sitemap.txt: + * docs/libs/riff/index.md: + * docs/libs/riff/sitemap.txt: + * docs/libs/rtp/index.md: + * docs/libs/rtp/sitemap.txt: + * docs/libs/rtsp/index.md: + * docs/libs/rtsp/sitemap.txt: + * docs/libs/sdp/index.md: + * docs/libs/sdp/sitemap.txt: + * docs/libs/tag/index.md: + * docs/libs/tag/sitemap.txt: + * docs/libs/video/index.md: + * docs/libs/video/sitemap.txt: + * docs/meson.build: + * docs/plugins/all_index.md: + * docs/plugins/gst_plugins_cache.json: + * docs/plugins/index.md: + * docs/plugins/sitemap.txt: + * docs/sitemap.txt: + * docs/version.in: + * ext/alsa/meson.build: + * ext/cdparanoia/meson.build: + * ext/gl/meson.build: + * ext/libvisual/meson.build: + * ext/ogg/meson.build: + * ext/opus/meson.build: + * ext/pango/meson.build: + * ext/theora/gsttheoraenc.c: + * ext/theora/meson.build: + * ext/vorbis/meson.build: + * gst-libs/gst/pbutils/encoding-profile.c: + * gst/adder/meson.build: + * gst/app/meson.build: + * gst/audioconvert/meson.build: + * gst/audiomixer/meson.build: + * gst/audiorate/meson.build: + * gst/audioresample/meson.build: + * gst/audiotestsrc/meson.build: + * gst/compositor/meson.build: + * gst/encoding/meson.build: + * gst/gio/meson.build: + * gst/pbtypes/meson.build: + * gst/playback/meson.build: + * gst/rawparse/meson.build: + * gst/subparse/meson.build: + * gst/tcp/meson.build: + * gst/typefind/meson.build: + * gst/videoconvert/meson.build: + * gst/videorate/meson.build: + * gst/videoscale/meson.build: + * gst/videotestsrc/meson.build: + * gst/volume/meson.build: + * meson.build: + * meson_options.txt: + * sys/ximage/meson.build: + * sys/xvimage/meson.build: + doc: Port to hotdoc + +2018-09-14 09:33:35 -0300 Thibault Saunier + + * Makefile.am: + * configure.ac: + * docs/Makefile.am: + * docs/libs/.gitignore: + * docs/libs/Makefile.am: + * docs/libs/compiling.sgml: + * docs/libs/gst-plugins-base-libs-docs.sgml: + * docs/libs/gst-plugins-base-libs-overrides.txt: + * docs/libs/gst-plugins-base-libs-sections.txt: + * docs/libs/gst-plugins-base-libs.types: + * docs/libs/meson.build: + * docs/meson.build: + * docs/plugins/.gitignore: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-base-plugins-docs.sgml: + * docs/plugins/gst-plugins-base-plugins-overrides.txt: + * docs/plugins/gst-plugins-base-plugins-sections.txt: + * docs/plugins/gst-plugins-base-plugins.args: + * docs/plugins/gst-plugins-base-plugins.hierarchy: + * docs/plugins/gst-plugins-base-plugins.interfaces: + * docs/plugins/gst-plugins-base-plugins.prerequisites: + * docs/plugins/gst-plugins-base-plugins.signals: + * docs/plugins/gst-plugins-base-plugins.types: + * 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-ivorbisdec.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: + * docs/plugins/scanobj-build.stamp: + * docs/version.entities.in: + doc: Remove gtk-doc support + +2018-10-22 11:44:37 +0200 Thibault Saunier + + * gst-libs/gst/allocators/meson.build: + * gst-libs/gst/app/meson.build: + * gst-libs/gst/audio/meson.build: + * gst-libs/gst/pbutils/meson.build: + * gst-libs/gst/rtp/meson.build: + * gst-libs/gst/rtsp/meson.build: + * gst-libs/gst/sdp/meson.build: + * gst-libs/gst/tag/meson.build: + * gst-libs/gst/video/meson.build: + meson: Add variables for gir files + And flatten list of sources for dependencies + +2018-10-22 11:37:44 +0200 Thibault Saunier + + * gst-libs/gst/video/gstvideoutils.c: + * gst-libs/gst/video/video-info.c: + * gst-libs/gst/video/video-info.h: + * gst/playback/gstplayback.c: + docs: Add some missing sections documentation + +2018-10-22 11:37:41 +0200 Thibault Saunier + + * gst-libs/gst/pbutils/encoding-profile.c: + * gst-libs/gst/pbutils/encoding-target.c: + docs: Enhance GstEncodingProfile and GstEncodingTarget doc + +2019-05-07 18:36:01 +1000 Matthew Waters + + * gst-libs/gst/gl/gstglshaderstrings.c: + glshader: fix default external-oes shaders + In glsl, #extension directives need to before other non-preprocesser + directives. We were placing the precision qualifier before that. Fix + by moving the #extension to the first line in the shader. + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/601 + +2019-05-06 13:23:22 +0200 Antonio Ospite + + * tests/check/elements/subparse.c: + test: add subparse test for SRT subtitles with no newline at the end + Add a test to verify that SRT subtitles work even if the last chunk does + not have an empty line after it. + +2019-05-06 12:48:49 +0200 Antonio Ospite + + * gst/subparse/gstsubparse.c: + * tests/check/elements/subparse.c: + subparse: fix pushing WebVTT cue when last is not an empty line + If the last WebVTT cue does not have an empty line after it, or if it + does not end with a newline at all, it does not get pushed out and it + won't be displayed. + gst_sub_parse_sink_event() already handles the issue for other subtitle + formats, enable handling it for GST_SUB_PARSE_FORMAT_VTT too. + While at it also add a test for this case. + +2019-05-04 23:48:27 +0900 Seungha Yang + + * gst-libs/gst/video/video-converter.c: + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-format.h: + * gst-libs/gst/video/video-info.c: + video: Add RGB10A2_LE pixel format + Packed 10 bits per each R, G and B channel with MSB 2bits alpha channel. + This format is mapped to Windows' DXGI_FORMAT_R10G10B10A2_UNORM format which is + required for 10bits HDR rendering. + Note that this RGB10A2_LE format is R - B channel swapped version of BGR10A2_LE + +2019-05-03 14:31:03 -0400 Xavier Claessens + + * meson_options.txt: + Missing "android" choice in gl_winsys + +2019-05-01 17:22:46 -0400 Thibault Saunier + + * gst-libs/gst/video/Makefile.am: + * gst-libs/gst/video/meson.build: + video: Generate GTypes for videotimecode enums + +2019-05-01 17:22:24 -0400 Thibault Saunier + + * gst-libs/gst/video/gstvideotimecode.c: + videotimecode: Mark latest_daily_jame as allow-none in init\() + +2019-05-01 11:25:31 -0500 A. Wilcox + + * tests/check/libs/video.c: + video test: Keep BE test inline with LE test + +2019-04-30 17:21:38 -0400 Aaron Boxer + + * gst-libs/gst/video/video-anc.c: + * gst-libs/gst/video/video-anc.h: + video-anc: add AFD/Bar support + +2019-05-01 15:44:44 -0400 Aaron Boxer + + * gst-libs/gst/video/video-frame.h: + video-frame: update docs + mention closed caption caps as valid caps for video buffer flags + +2019-04-12 12:09:31 +0900 Seungha Yang + + * gst/typefind/gsttypefindfunctions.c: + typefindfunctions: Add support HEIF file format finding + A HEIF compatiable file (i.e., mif1 brand) needs special concern + since 'moov' atom is not mandatory for the file although HEIF is + a variant of ISOBMFF + See http://standards.iso.org/ittf/PubliclyAvailableStandards/c066067_ISO_IEC_23008-12_2017.zip + +2019-05-02 14:24:27 +0900 Seungha Yang + + * gst-libs/gst/video/gstvideoencoder.c: + videoencoder: Forward upstream HDR information to downstream + ... if subclass didn't update values. Note that the mastering-display-info + and content-light-level might be updated by user defined value (e.g., encoding option). + +2019-04-27 22:29:25 +0900 Seungha Yang + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: Forward upstream HDR information to downstream + The HDR related information is not part of GstVideoInfo but should be passed + to downstream. + +2019-02-18 19:54:35 +0900 Seungha Yang + + * tests/check/libs/video.c: + tests: video: Add test for video-hdr + +2019-02-18 13:20:33 +0900 Seungha Yang + + video: Add new APIs for HDR information representation + Introduce HDR signalling methods + * GstVideoMasteringDisplayInfo: Representing display color volume info. + Defined by SMPTE ST 2086 + * GstVideoContentLightLevel: Representing content light level specified in + CEA-861.3, Appendix A. + Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/400 + +2019-04-29 11:25:02 +0200 Robert Rosengren + + * ext/alsa/gstalsasrc.c: + alsasrc: driver timestamps only to be considered if system clock + The system clock check when considering to use driver timestamp + should not include sub-classes of system clock (such as the net clocks). + +2018-06-08 11:03:03 +0200 Danny Smith + + * ext/alsa/gstalsasrc.c: + * ext/alsa/gstalsasrc.h: + alsasrc: added option for chosing timestamps + Added an option for chosing if driver or pipeline timestamps shall be + used. + +2019-04-26 09:44:07 +0300 Sebastian Dröge + + * gst-libs/gst/tag/gstid3tag.c: + id3tag: Correctly validate the year from v1 tags before passing to GstDateTime + By using strtoul(), invalid values will get mapped to MAXULONG and we + would have to check errno. They won't get mapped to 0. + To solve this, use the signed g_ascii_strtoll(). This will map errors to + 0 or G_MAXINT64 or G_MININT64, and the valid range for GstDateTime is > + 0 and <= 9999 so we can directly check for this here. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/384 + +2019-04-24 10:41:24 +0200 Niels De Graef + + * 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: + gl/wayland: Don't prefix wl_shell struct field + As part of commit 808e7127, we prefixed the `GstWlWindow`'s `shell` + field with wl_, to differentiate it from the other types of shells a + Wayland compositor might support. However, this is apparently a struct + that we expose to our users, so changing it means we have an API break. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/592 + +2019-04-23 17:10:47 +0300 Sebastian Dröge + + * gst-libs/gst/gl/egl/gsteglimage.c: + eglimage: Add compatibility define for DRM_FORMAT_NV24 + +2019-04-23 15:05:43 +0300 Sebastian Dröge + + * gst-libs/gst/audio/audio-channels.c: + * gst-libs/gst/audio/gstaudiodecoder.h: + * gst-libs/gst/audio/gstaudioencoder.h: + * gst-libs/gst/audio/gstaudioringbuffer.h: + * gst-libs/gst/pbutils/codec-utils.c: + * gst-libs/gst/pbutils/encoding-profile.c: + * gst-libs/gst/rtsp/gstrtspconnection.c: + * gst-libs/gst/rtsp/gstrtspconnection.h: + * gst-libs/gst/rtsp/gstrtspdefs.c: + * gst-libs/gst/rtsp/gstrtspdefs.h: + * gst-libs/gst/sdp/gstmikey.h: + * gst-libs/gst/video/gstvideodecoder.h: + * gst-libs/gst/video/gstvideoencoder.c: + * gst-libs/gst/video/gstvideoencoder.h: + * gst-libs/gst/video/navigation.h: + * gst-libs/gst/video/video-format.h: + * gst-libs/gst/video/video-info.h: + * gst-libs/gst/video/video-resampler.h: + * gst-libs/gst/video/videooverlay.c: + libs: Fix various Since markers + +2019-04-23 14:52:28 +0300 Sebastian Dröge + + * gst-libs/gst/audio/gstaudioaggregator.h: + audioaggregator: Add Since: 1.14 markers to all public structs + +2019-04-23 14:42:17 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-anc.h: + video-anc: Add Since: 1.16 marker + +2019-04-23 14:42:03 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideoaggregator.h: + videoaggregator: Add Since: 1.16 markers to all public structs + +2019-04-23 14:31:45 +0300 Sebastian Dröge + + * gst-libs/gst/gl/gstglformat.c: + * gst-libs/gst/gl/gstglshaderstrings.c: + * gst-libs/gst/gl/gstglsl.c: + * gst-libs/gst/gl/gstglwindow.c: + gl: Add various missing Since: 1.16 markers + And add some missing function documentation. + +2019-04-22 18:33:20 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-anc.h: + video-anc: Add DID16 value for SMPTE 2016-3 AFD/Bar data + +2019-04-22 17:06:09 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-anc.c: + * tests/check/libs/videoanc.c: + video-anc: Handle SD formats correctly + VANC is stored linearly in SD formats instead of separating the Y and YV + components from each other and having first all Y and then all UV + values. + +2019-03-27 12:30:00 +0100 Kristofer Bjorkstrom + + * gst-libs/gst/rtsp/gstrtspconnection.c: + * gst-libs/gst/rtsp/gstrtspconnection.h: + * tests/check/libs/rtspconnection.c: + rtspconnection: add Content-Length limit + Add the possible to limit the Content-Length + Define an appropriate request size limit and reject requests exceeding + the limit (413 Request Entity Too Large) + +2019-04-19 10:24:36 +0100 Tim-Philipp Müller + + * README: + * RELEASE: + * configure.ac: + * 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: + * meson.build: + Back to development + === release 1.16.0 === 2019-04-19 00:19:55 +0100 Tim-Philipp Müller diff --git a/NEWS b/NEWS index 816a3aae85..a4e7232a19 100644 --- a/NEWS +++ b/NEWS @@ -1,14 +1,30 @@ -GSTREAMER 1.16 RELEASE NOTES +GSTREAMER 1.18 RELEASE NOTES -GStreamer 1.16.0 was originally released on 19 April 2019. +THESE RELEASE NOTES ARE A PLACEHOLDER, PLEASE BEAR WITH US WHILE WE +FINISH WRITING UP THE REAL THING. -See https://gstreamer.freedesktop.org/releases/1.16/ for the latest +GStreamer 1.18.0 has not yet been released. It is scheduled for release +in summer 2020 now. + +1.17.x is the unstable development series that is currently being +developed in the git master branch and which will eventually result in +1.18, and 1.17.1 is the current development release in that series. + +The schedule for the 1.18 development cycle is yet to be confirmed, but +it is expected that feature freeze will be in June/July 2020, followed +by several 1.17 pre-releases and then a new 1.18 stable release in +July/August 2020. + +1.18 will be backwards-compatible to the stable 1.16, 1.14, 1.12, 1.10, +1.8, 1.6, 1.4, 1.2 and 1.0 release series. + +See https://gstreamer.freedesktop.org/releases/1.18/ for the latest version of this document. -_Last updated: Friday 19 April 2019, 00:00 UTC (log)_ +_Last updated: Thursday 18 June 2020, 16:00 UTC (log)_ Introduction @@ -23,1146 +39,133 @@ fixes and other improvements. Highlights -- GStreamer WebRTC stack gained support for data channels for - peer-to-peer communication based on SCTP, BUNDLE support, as well as - support for multiple TURN servers. - -- AV1 video codec support for Matroska and QuickTime/MP4 containers - and more configuration options and supported input formats for the - AOMedia AV1 encoder - -- Support for Closed Captions and other Ancillary Data in video - -- Support for planar (non-interleaved) raw audio - -- GstVideoAggregator, compositor and OpenGL mixer elements are now in - -base - -- New alternate fields interlace mode where each buffer carries a - single field - -- WebM and Matroska ContentEncryption support in the Matroska demuxer - -- new WebKit WPE-based web browser source element - -- Video4Linux: HEVC encoding and decoding, JPEG encoding, and improved - dmabuf import/export - -- Hardware-accelerated Nvidia video decoder gained support for VP8/VP9 - decoding, whilst the encoder gained support for H.265/HEVC encoding. - -- Many improvements to the Intel Media SDK based hardware-accelerated - video decoder and encoder plugin (msdk): dmabuf import/export for - zero-copy integration with other components; VP9 decoding; 10-bit - HEVC encoding; video post-processing (vpp) support including - deinterlacing; and the video decoder now handles dynamic resolution - changes. - -- The ASS/SSA subtitle overlay renderer can now handle multiple - subtitles that overlap in time and will show them on screen - simultaneously - -- The Meson build is now feature-complete (*) and it is now the - recommended build system on all platforms. The Autotools build is - scheduled to be removed in the next cycle. - -- The GStreamer Rust bindings and Rust plugins module are now - officially part of upstream GStreamer. - -- The GStreamer Editing Services gained a gesdemux element that allows - directly playing back serialized edit list with playbin or - (uri)decodebin - -- Many performance improvements +- FIXME Major new features and changes Noteworthy new API -- GstAggregator has a new "min-upstream-latency" property that forces - a minimum aggregate latency for the input branches of an aggregator. - This is useful for dynamic pipelines where branches with a higher - latency might be added later after the pipeline is already up and - running and where a change in the latency would be disruptive. This - only applies to the case where at least one of the input branches is - live though, it won’t force the aggregator into live mode in the - absence of any live inputs. - -- GstBaseSink gained a "processing-deadline" property and - setter/getter API to configure a processing deadline for live - pipelines. The processing deadline is the acceptable amount of time - to process the media in a live pipeline before it reaches the sink. - This is on top of the systemic latency that is normally reported by - the latency query. This defaults to 20ms and should make pipelines - such as v4l2src ! xvimagesink not claim that all frames are late in - the QoS events. Ideally, this should replace the "max-lateness" - property for most applications. - -- RTCP Extended Reports (XR) parsing according to RFC 3611: - Loss/Duplicate RLE, Packet Receipt Times, Receiver Reference Time, - Delay since the last Receiver (DLRR), Statistics Summary, and VoIP - Metrics reports. This only provides the ability to parse such - packets, generation of XR packets is not supported yet and XR - packets are not automatically parsed by rtpbin / rtpsession but must - be actively handled by the application. - -- a new mode for interlaced video was added where each buffer carries - a single field of interlaced video, with buffer flags indicating - whether the field is the top field or bottom field. Top and bottom - fields are expected to alternate in this mode. Caps for this - interlace mode must also carry a format:Interlaced caps feature to - ensure backwards compatibility. - -- The video library has gained support for three new raw pixel - formats: - - - Y410: packed 4:4:4 YUV, 10 bits per channel - - Y210: packed 4:2:2 YUV, 10 bits per channel - - NV12_10LE40: fully-packed 10-bit variant of NV12_10LE32, - i.e. without the padding bits - -- GstRTPSourceMeta is a new meta that can be used to transport - information about the origin of depayloaded or decoded RTP buffers, - e.g. when mixing audio from multiple sources into a single stream. A - new "source-info" property on the RTP depayloader base class - determines whether depayloaders should put this meta on outgoing - buffers. Similarly, the same property on RTP payloaders determines - whether they should use the information from this meta to construct - the CSRCs list on outgoing RTP buffers. - -- gst_sdp_message_from_text() is a convenience constructor to parse - SDPs from a string which is particularly useful for language - bindings. - -Support for Planar (Non-Interleaved) Raw Audio - -Raw audio samples are usually passed around in interleaved form in -GStreamer, which means that if there are multiple audio channels the -samples for each channel are interleaved in memory, e.g. -|LEFT|RIGHT|LEFT|RIGHT|LEFT|RIGHT| for stereo audio. A non-interleaved -or planar arrangement in memory would look like -|LEFT|LEFT|LEFT|RIGHT|RIGHT|RIGHT| instead, possibly with -|LEFT|LEFT|LEFT| and |RIGHT|RIGHT|RIGHT| residing in separate memory -chunks or separated by some padding. - -GStreamer has always had signalling for non-interleaved audio since -version 1.0, but it was never actually properly implemented in any -elements. audioconvert would advertise support for it, but wasn’t -actually able to handle it correctly. - -With this release we now have full support for non-interleaved audio as -well, which means more efficient integration with external APIs that -handle audio this way, but also more efficient processing of certain -operations like interleaving multiple 1-channel streams into a -multi-channel stream which can be done without memory copies now. - -New API to support this has been added to the GStreamer Audio support -library: There is now a new GstAudioMeta which describes how data is -laid out inside the buffer, and buffers with non-interleaved audio must -always carry this meta. To access the non-interleaved audio samples you -must map such buffers with gst_audio_buffer_map() which works much like -gst_buffer_map() or gst_video_frame_map() in that it will populate a -little GstAudioBuffer helper structure passed to it with the number of -samples, the number of planes and pointers to the start of each plane in -memory. This function can also be used to map interleaved audio buffers -in which case there will be only one plane of interleaved samples. - -Of course support for this has also been implemented in the various -audio helper and conversion APIs, base classes, and in elements such as -audioconvert, audioresample, audiotestsrc, audiorate. - -Support for Closed Captions and Other Ancillary Data in Video - -The video support library has gained support for detecting and -extracting Ancillary Data from videos as per the SMPTE S291M -specification, including: - -- a VBI (Vertical Blanking Interval) parser that can detect and - extract Ancillary Data from Vertical Blanking Interval lines of - component signals. This is currently supported for videos in v210 - and UYVY format. - -- a new GstMeta for closed captions: GstVideoCaptionMeta. This - supports the two types of closed captions, CEA-608 and CEA-708, - along with the four different ways they can be transported (other - systems are a superset of those). - -- a VBI (Vertical Blanking Interval) encoder for writing ancillary - data to the Vertical Blanking Interval lines of component signals. - -The new closedcaption plugin in gst-plugins-bad then makes use of all -this new infrastructure and provides the following elements: - -- cccombiner: a closed caption combiner that takes a closed captions - stream and another stream and adds the closed captions as - GstVideoCaptionMeta to the buffers of the other stream. - -- ccextractor: a closed caption extractor which will take - GstVideoCaptionMeta from input buffers and output them as a separate - closed captions stream. - -- ccconverter: a closed caption converter that can convert between - different formats - -- line21encoder, line21decoder: inject/extract line21 closed captions - to/from SD video streams - -- cc708overlay: decodes CEA 608/708 captions and overlays them on - video - -Additionally, the following elements have also gained Closed Caption -support: - -- qtdemux and qtmux support CEA 608/708 Closed Caption tracks - -- mpegvideoparse, h264parse extracts Closed Captions from MPEG-2/H.264 - video streams - -- avviddec, avvidenc, x264enc got support for extracting/injecting - Closed Captions - -- decklinkvideosink can output closed captions and decklinkvideosrc - can extract closed captions - -- playbin and playbin3 learned how to autoplug CEA 608/708 CC overlay - elements - -- the externally maintained ajavideosrc element for AJA capture cards - has support for extracting closed captions - -The rsclosedcaption plugin in the Rust plugins collection includes a -MacCaption (MCC) file parser and encoder. +- FIXME New Elements -- overlaycomposition: New element that allows applications to draw - GstVideoOverlayCompositions on a stream. The element will emit the - "draw" signal for each video buffer, and the application then - generates an overlay for that frame (or not). This is much more - performant than e.g. cairooverlay for many use cases, e.g. because - pixel format conversions can be avoided or the blitting of the - overlay can be delegated to downstream elements (such as - gloverlaycompositor). It’s particularly useful for cases where only - a small section of the video frame should be drawn on. - -- gloverlaycompositor: New OpenGL-based compositor element that - flattens any overlays from GstVideoOverlayCompositionMetas into the - video stream. This element is also always part of glimagesink. - -- glalpha: New element that adds an alpha channel to a video stream. - The values of the alpha channel can either be set to a constant or - can be dynamically calculated via chroma keying. It is similar to - the existing alpha element but based on OpenGL. Calculations are - done in floating point so results may not be identical to the output - of the existing alpha element. - -- rtpfunnel funnels together RTP streams into a single session. Use - cases include multiplexing and bundle. webrtcbin uses it to - implement BUNDLE support. - -- testsrcbin is a source element that provides an audio and/or video - stream and also announces them using the recently-introduced - GstStream API. This is useful for testing elements such as playbin3 - or uridecodebin3 etc. - -- New closed caption elements: cccombiner, ccextractor, ccconverter, - line21encoder, line21decoder and cc708overlay (see above) - -- wpesrc: new source element acting as a Web Browser based on WebKit - WPE - -- Two new OpenCV-based elements: cameracalibrate and cameraundistort - that can communicate to figure out distortion correction parameters - for a camera and correct for the distortion. - -- New sctp plugin based on usrsctp with sctpenc and sctpdec elements. - These elements are used inside webrtcbin for implementing data - channels. +- FIXME New element features and additions -- playbin3, playbin and playsink have gained a new "text-offset" - property to adjust the positioning of the selected subtitle stream - vis-a-vis the audio and video streams. This uses subtitleoverlay’s - new "subtitle-ts-offset" property. GstPlayer has gained matching API - for this, namely gst_player_get_text_video_offset(). - -- playbin3 buffering improvements: in network playback scenarios there - may be multiple inputs to decodebin3, and buffering will be done - before decodebin3 using queue2 or downloadbuffer elements inside - urisourcebin. Since this is before any parsers or demuxers there may - not be any bitrate information available for the various streams, so - it was difficult to configure the buffering there smartly within - global constraints. This was improved now: The queue2 elements - inside urisourcebin will now use the new bitrate query to figure out - a bitrate estimate for the stream if no bitrate was provided by - upstream, and urisourcebin will use the bitrates of the individual - queues to distribute the globally-set "buffer-size" budget in bytes - to the various queues. urisourcebin also gained "low-watermark" and - "high-watermark" properties which will be proxied to the internal - queues, as well as a read-only "statistics" property which allows - querying of the minimum/maximum/average byte and time levels of the - queues inside the urisourcebin in question. - -- splitmuxsink has gained a couple of new features: - - - new "async-finalize" mode: This mode is useful for muxers or - outputs that can take a long time to finalize a file. Instead of - blocking the whole upstream pipeline while the muxer is doing - its stuff, we can unlink it and spawn a new muxer + sink - combination to continue running normally. This requires us to - receive the muxer and sink (if needed) as factories via the new - "muxer-factory" and "sink-factory" properties, optionally - accompanied by their respective properties structures (set via - the new "muxer-properties" and "sink-properties" properties). - There are also new "muxer-added" and "sink-added" signals in - case custom code has to be called for them to configure them. - - - "split-at-running-time" action signal: When called by the user, - this action signal ends the current file (and starts a new one) - as soon as the given running time is reached. If called multiple - times, running times are queued up and processed in the order - they were given. - - - "split-after" action signal to finish outputting the current GOP - to the current file and then start a new file as soon as the GOP - is finished and a new GOP is opened (unlike the existing - "split-now" which immediately finishes the current file and - writes the current GOP into the next newly-started file). - - - "reset-muxer" property: when unset, the muxer is reset using - flush events instead of setting its state to NULL and back. This - means the muxer can keep state across resets, e.g. mpegtsmux - will keep the continuity counter continuous across segments as - required by hlssink2. - -- qtdemux gained PIFF track encryption box support in addition to the - already-existing PIFF sample encryption support, and also allows - applications to select which encryption system to use via a - "drm-preferred-decryption-system-id" context in case there are - multiple options. - -- qtmux: the "start-gap-threshold" property determines now whether an - edit list will be created to account for small gaps or offsets at - the beginning of a stream in case the start timestamps of tracks - don’t line up perfectly. Previously the threshold was hard-coded to - 1% of the (video) frame duration, now it is 0 by default (so edit - list will be created even for small differences), but fully - configurable. - -- rtpjitterbuffer has improved end-of-stream handling - -- rtpmp4vpay will be prefered over rtpmp4gpay for MPEG-4 video in - autoplugging scenarios now - -- rtspsrc now allows applications to send RTSP SET_PARAMETER and - GET_PARAMETER requests using action signals. - -- rtspsrc has a small (100ms) configurable teardown delay by default - to try and make sure an RTSP TEARDOWN request gets sent out when the - source element shuts down. This will block the downward PAUSED to - READY state change for a short time, but can be disabled where it’s - a problem. Some servers only allow a limited number of concurrent - clients, so if no proper TEARDOWN is sent new clients may have - problems connecting to the server for a while. - -- souphttpsrc behaves better with low bitrate streams now. Before it - would increase the read block size too quickly which could lead to - it not reading any data from the socket for a very long time with - low bitrate streams that are output live downstream. This could lead - to servers kicking off the client. - -- filesink: do internal buffering to avoid performance regression with - small writes since we bypass libc buffering by using writev() - instead of fwrite() - -- identity: add "eos-after" property and fix "error-after" property - when the element is reused - -- input-selector: lets context queries pass through, so that - e.g. upstream OpenGL elements can use contexts and displays - advertised by downstream elements - -- queue2: avoid ping-pong between 0% and 100% buffering messages if - upstream is pushing buffers larger than one of its limits, plus - performance optimisations - -- opusdec: new "phase-inversion" property to control phase inversion. - When enabled, this will slightly increase stereo quality, but - produces a stream that when downmixed to mono will suffer audio - distortions. - -- The x265enc HEVC encoder also exposes a "key-int-max" property to - configure the maximum allowed GOP size now. - -- decklinkvideosink has seen stability improvements for long-running - pipelines (potential crash due to overflow of leaked clock refcount) - and clock-slaving improvements when performing flushing seeks - (causing stalls in the output timeline), pausing and/or buffering. - -- srtpdec, srtpenc: add support for MKIs which allow multiple keys to - be used with a single SRTP stream - -- srtpdec, srtpenc: add support for AES-GCM and also add support for - it in gst-rtsp-server and rtspsrc. - -- The srt Secure Reliable Transport plugin has integrated server and - client elements srt{client,server}{src,sink} into one (srtsrc and - srtsink), since SRT connection mode can be changed by uri - parameters. - -- h264parse and h265parse will handle SEI recovery point messages and - mark recovery points as keyframes as well (in addition to IDR - frames) - -- webrtcbin: "add-turn-server" action signal to pass multiple ICE - relays (TURN servers). - -- The removesilence element has received various new features and - properties, such as a "threshold" property, detecting silence only - after minimum silence time/buffers, a "silent" property to control - bus message notifications as well as a "squash" property. - -- AOMedia AV1 decoder gained support for 10/12bit decoding whilst the - AV1 encoder supports more image formats and subsamplings now and - acquired support for rate control and profile related configuration. - -- The Fraunhofer fdkaac plugin can now be built against the 2.0.0 - version API and has improved multichannel support - -- kmssink now supports unpadded 24-bit RGB and can configure mode - setting from video info, which enables display of multi-planar - formats such as I420 or NV12 with modesetting. It has also gained a - number of new properties: The "restore-crtc" property does what it - says on the tin and is enabled by default. "plane-properties" and - "connector-properties" can be used to pass custom properties to the - DRM. - -- waylandsink has a "fullscreen" property now and supports the - XDG-Shell protocol. - -- decklinkvideosink, decklinkvideosrc support selecting between - half/full duplex - -- The vulkan plugin gained support for macOS and iOS via MoltenVK in - addition to the existing support for X11 and Wayland - -- imagefreeze has a new num-buffers property to limit the number of - buffers that are produced and to send an EOS event afterwards - -- webrtcbin has a new, introspectable get-transceiver signal in - addition to the old get-transceivers signal that couldn’t be used - from bindings - -- Support for per-element latency information was added to the latency - tracer +- FIXME Plugin and library moves -- The stereo element was moved from -bad into the existing audiofx - plugin in -good. If you get duplicate type registration warnings - when upgrading, check that you don’t have a stale stereoplugin lying - about somewhere. - -GstVideoAggregator, compositor, and OpenGL mixer elements moved from -bad to -base - -GstVideoAggregator is a new base class for raw video mixers and muxers -and is based on GstAggregator. It provides defined-latency mixing of raw -video inputs and ensures that the pipeline won’t stall even if one of -the input streams stops producing data. - -As part of the move to stabilise the API there were some last-minute API -changes and clean-ups, but those should mostly affect internal elements. -Most notably, the "ignore-eos" pad property was renamed to -"repeat-after-eos" and the conversion code was moved to a -GstVideoAggregatorConvertPad subclass to avoid code duplication, make -things less awkward for subclasses like the OpenGL-based video mixer, -and make the API more consistent with the audio aggregator API. - -It is used by the compositor element, which is a replacement for -‘videomixer’ which did not handle live inputs very well. compositor -should behave much better in that respect and generally behave as one -would expected in most scenarios. - -The compositor element has gained support for per-pad blending mode -operators (SOURCE, OVER, ADD) which determines what operator to use for -blending this pad over the previous ones. This can be used to implement -crossfading and the available operators can be extended in the future as -needed. - -A number of OpenGL-based video mixer elements (glvideomixer, glmixerbin, -glvideomixerelement, glstereomix, glmosaic) which are built on top of -GstVideoAggregator have also been moved from -bad to -base now. These -elements have been merged into the existing OpenGL plugin, so if you get -duplicate type registration warnings when upgrading, check that you -don’t have a stale openglmixers plugin lying about somewhere. +- FIXME Plugin removals The following plugins have been removed from gst-plugins-bad: -- The experimental daala plugin has been removed, since it’s not so - useful now that all effort is focused on AV1 instead, and it had to - be enabled explicitly with --enable-experimental anyway. - -- The spc plugin has been removed. It has been replaced by the gme - plugin. - -- The acmmp3dec and acmenc plugins for Windows have been removed. ACM - is an ancient legacy API and there was no point in keeping the - plugins around for a licensed MP3 decoder now that the MP3 patents - have expired and we have a decoder in -good. We also didn’t ship - these in our cerbero-built Windows packages, so it’s unlikely that - they’ll be missed. +- FIXME Miscellaneous API additions -- GstBitwriter: new generic bit writer API to complement the existing - bit reader - -- gst_buffer_new_wrapped_bytes() creates a wrap buffer from a GBytes - -- gst_caps_set_features_simple() sets a caps feature on all the - structures of a GstCaps - -- New GST_QUERY_BITRATE query: This allows determining from downstream - what the expected bitrate of a stream may be which is useful in - queue2 for setting time based limits when upstream does not provide - timing information. tsdemux, qtdemux and matroskademux have basic - support for this query on their sink pads. - -- elements: there is a new “Hardware” class specifier. Elements - interacting with hardware devices should specify this classifier in - their element factory class metadata. This is useful to advertise as - one might need to put such elements into READY state to test if the - hardware is present in the system for example. - -- protection: Add a new definition for unspecified system protection, - GST_PROTECTION_UNSPECIFIED_SYSTEM_ID - -- take functions for various mini objects that didn’t have them yet: - gst_query_take(), gst_message_take(), gst_tag_list_take(), - gst_buffer_list_take(). Unlike the various _replace() functions - _take() does not increase the reference count but takes ownership of - the mini object passed. - -- clear functions for various mini object types and GstObject which - unrefs the object or mini object (if non-NULL) and sets the variable - pointed to to NULL: gst_clear_structure(), gst_clear_tag_list(), - gst_clear_query(), gst_clear_message(), gst_clear_event(), - gst_clear_caps(), gst_clear_buffer_list(), gst_clear_buffer(), - gst_clear_mini_object(), gst_clear_object() - -- miniobject: new API gst_mini_object_add_parent() and - gst_mini_object_remove_parent() to set parent pointers on mini - objects to ensure correct writability: Every container of - miniobjects now needs to store itself as parent in the child object, - and remove itself again later. A mini object is then only writable - if there is at most one parent, that parent is writable itself, and - the reference count of the mini object is 1. GstBuffer (for - memories), GstBufferList (for buffers), GstSample (for caps, buffer, - bufferlist), and GstVideoOverlayComposition were updated - accordingly. Without this it was possible to have e.g. a buffer list - with a refcount of 2 used in two places at once that both modify the - same buffer with refcount 1 at the same time wrongly thinking it is - writable even though it’s really not. - -- poll: add API to watch for POLLPRI and stop treating POLLPRI as a - read. This is useful to wait for video4linux events which are - signalled via POLLPRI. - -- sample: new API to update the contents of a GstSample and make it - writable: gst_sample_set_buffer(), gst_sample_set_caps(), - gst_sample_set_segment(), gst_sample_set_info(), plus - gst_sample_is_writable() and gst_sample_make_writable(). This makes - it possible to reuse a sample object and avoid unnecessary memory - allocations, for example in appsink. - -- ClockIDs now keep a weak reference to underlying clock to avoid - crashes in basesink in corner cases where a clock goes away while - the ClockID is still in use, plus some new API - (gst_clock_id_get_clock(), gst_clock_id_uses_clock()) to check the - clock a ClockID is linked to. - -- The GstCheck unit test library gained a - fail_unless_equals_clocktime() convenience macro as well as some new - GstHarness API for for proposing meta APIs from the allocation - query: gst_harness_add_propose_allocation_meta(). ASSERT_CRITICAL() - checks in unit tests are now skipped if GStreamer was compiled with - GST_DISABLE_GLIB_CHECKS. - -- gst_audio_buffer_truncate() convenience function to truncate a raw - audio buffer - -- GstDiscoverer has support for caching the results of discovery in - the default cache directory. This can be enabled with the use-cache - property and is disabled by default. - -- GstMeta that are attached to GstBuffers are now always stored in the - order in which they were added. - -- Additional support for signalling ONVIF specific features were - added: the SEEK event can store a trickmode-interval now and support - for the Rate-Control and Frames RTSP headers was added to the RTSP - library. +- FIXME Miscellaneous performance and memory optimisations As always there have been many performance and memory usage improvements -across all components and modules. Some of them (such as dmabuf -import/export) have already been mentioned elsewhere so won’t be -repeated here. +across all components and modules. Some of them have already been +mentioned elsewhere so won’t be repeated here. The following list is only a small snapshot of some of the more interesting optimisations that haven’t been mentioned in other contexts yet: -- The GstVideoEncoder and GstVideoDecoder base classes now release the - STREAM_LOCK when pushing out buffers, which means (multi-threaded) - encoders and decoders can now receive and continue to process input - buffers whilst waiting for downstream elements in the pipeline to - process the buffer that was pushed out. This increases throughput - and reduces processing latency, also and especially for - hardware-accelerated encoder/decoder elements. - -- GstQueueArray has seen a few API additions - (gst_queue_array_peek_nth(), gst_queue_array_set_clear_func(), - gst_queue_array_clear()) so that it can be used in other places like - GstAdapter instead of a GList, which reduces allocations and - improves performance. - -- appsink now reuses the sample object in pull_sample() if possible - -- rtpsession only starts the RTCP thread when it’s actually needed now - -- udpsrc uses a buffer pool now and the GstUdpSrc object structure was - optimised for better cache performance +- FIXME GstPlayer -- API was added to fine-tune the synchronisation offset between - subtitles and video +- FIXME Miscellaneous changes -- As a result of moving to newer FFmpeg APIs, encoder and decoder - elements exposed by the GStreamer FFmpeg wrapper plugin (gst-libav) - may have seen possibly incompatible changes to property names and/or - types, and not all properties exposed might be functional. We are - still reviewing the new properties and aim to minimise breaking - changes at least for the most commonly-used properties, so please - report any issues you run into! +- FIXME OpenGL integration -- The OpenGL mixer elements have been moved from -bad to - gst-plugins-base (see above) - -- The Mesa GBM backend now supports headless mode - -- gloverlaycompositor: New OpenGL-based compositor element that - flattens any overlays from GstVideoOverlayCompositionMetas into the - video stream. - -- glalpha: New element that adds an alpha channel to a video stream. - The values of the alpha channel can either be set to a constant or - can be dynamically calculated via chroma keying. It is similar to - the existing alpha element but based on OpenGL. Calculations are - done in floating point so results may not be identical to the output - of the existing alpha element. - -- glupload: Implement direct dmabuf uploader, the idea being that some - GPUs (like the Vivante series) can actually perform the YUV->RGB - conversion internally, so no custom conversion shaders are needed. - To make use of this feature, we need an additional uploader that can - import DMABUF FDs and also directly pass the pixel format, relying - on the GPU to do the conversion. - -- The OpenGL library no longer restores the OpenGL viewport. This is a - performance optimization to not require performing multiple - expensive glGet*() function calls per frame. This affects any - application or plugin use of the following functions and objects: - - glcolorconvert library object (not the element) - - glviewconvert library object (not the element) - - gst_gl_framebuffer_draw_to_texture() - - custom GstGLWindow implementations +- FIXME Tracing framework and debugging improvements -- There is now a GDB PRETTY PRINTER FOR VARIOUS GSTREAMER TYPES: For - GstObject pointers the type and name is added, e.g. - 0x5555557e4110 [GstDecodeBin|decodebin0]. For GstMiniObject pointers - the object type is added, e.g. 0x7fffe001fc50 [GstBuffer]. For - GstClockTime and GstClockTimeDiff the time is also printed in human - readable form, e.g. 150116219955 [+0:02:30.116219955]. - -- GDB EXTENSION WITH TWO CUSTOM GDB COMMANDS gst-dot AND gst-print: - - - gst-dot creates dot files that a very close to what - GST_DEBUG_BIN_TO_DOT_FILE() produces, but object properties and - buffer contents such as codec-data in caps are not available. - - - gst-print produces high-level information about a GStreamer - object. This is currently limited to pads for GstElements and - events for the pads. The output may look like this: - -- gst_structure_to_string() now serialises the actual value of - pointers when serialising GstStructures instead of claiming they’re - NULL. This makes debug logging in various places less confusing, - because it’s clear now that structure fields actually hold valid - objects. Such object pointer values will never be deserialised - however. +- FIXME Tools -- gst-inspect-1.0 has coloured output now and will automatically use a - pager if the output does not fit on a page. This only works in a - UNIX environment and if the output is not piped, and on Windows 10 - build 16257 or newer. If you don’t like the colours you can disable - them by setting the GST_INSPECT_NO_COLORS=1 environment variable or - passing the --no-color command line option. +- FIXME GStreamer RTSP server -- Improved backlog handling when using TCP interleaved for data - transport. Before there was a fixed maximum size for backlog - messages, which was prone to deadlocks and made it difficult to - control memory usage with the watch backlog. The RTSP server now - limits queued TCP data messages to one per stream, moving queuing of - the data into the pipeline and leaving the RTSP connection - responsive to RTSP messages in both directions, preventing all those - problems. - -- Initial ULP Forward Error Correction support in rtspclientsink and - for RECORD mode in the server. - -- API to explicitly enable retransmission requests (RTX) - -- Lots of multicast-related fixes - -- rtsp-auth: Add support for parsing .htdigest files +- FIXME GStreamer VAAPI -- Support Wayland’s display for context sharing, so the application - can pass its own wl_display in order to be used for the VAAPI - display creation. - -- A lot of work to support new Intel hardware using media-driver as VA - backend. - -- For non-x86 devices, VAAPI display can instantiate, through DRM, - with no PCI bus. This enables the usage of libva-v4l2-request - driver. - -- Added support for XDG-shell protocol as wl_shell replacement which - is currently deprecated. This change add as dependency - wayland-protocol. - -- GstVaapiFilter, GstVaapiWindow, and GstVaapiDecoder classes now - inherit from GstObject, gaining all the GStreamer’s instrumentation - support. - -- The metadata now specifies the plugin as Hardware class. - -- H264 decoder is more stable with problematic streams. - -- In H265 decoder added support for profiles main-422-10 (P010_10LE), - main-444 (AYUV) and main-444-10 (Y410) - -- JPEG decoder handles dynamic resolution changes. - -- More specification adherence in H264 and H265 encoders. +- FIXME GStreamer OMX -- Add support of NV16 format to video encoders input. - -- Video decoders now handle the ALLOCATION query to tell upstream - about the number of buffers they require. Video encoders will also - use this query to adjust their number of allocated buffers - preventing starvation when using dynamic buffer mode. - -- The OMX_PERFORMANCE debug category has been renamed to OMX_API_TRACE - and can now be used to track a widder variety of interactions - between OMX and GStreamer. - -- Video encoders will now detect frame rate only changes and will - inform OMX about it rather than doing a full format reset. - -- Various Zynq UltraScale+ specific improvements: - - Video encoders are now able to import dmabuf from upstream. - - Support for HEVC range extension profiles and more AVC profiles. - - We can now request video encoders to generate an IDR using the - force key unit event. +- FIXME GStreamer Editing Services and NLE -- Added a gesdemux element, it is an auto pluggable element that - allows decoding edit list like files supported by GES - -- Added gessrc which wraps a GESTimeline as a standard source element - (implementing the ges protocol handler) - -- Added basic support for videorate::rate property potentially - allowing changing playback speed - -- Layer priority is now fully automatic and they should be moved with - the new ges_timeline_move_layer method, ges_layer_set_priority is - now deprecated. - -- Added a ges_timeline_element_get_layer_priority so we can simply get - all information about GESTimelineElement position in the timeline - -- GESVideoSource now auto orientates the images if it is defined in a - meta (overridable). - -- Added some PyGObject overrides to make the API more pythonic - -- The threading model has been made more explicit with safe guard to - make sure not thread safe APIs are not used from the wrong threads. - It is also now possible to properly handle in what thread the API - should be used. - -- Optimized GESClip and GESTrackElement creation - -- Added a way to compile out the old, unused and deprecated - GESPitiviFormatter - -- Re implemented the timeline editing API making it faster and making - the code much more maintainable - -- Simplified usage of nlecomposition outside GES by removing quirks in - it API usage and removing the need to treat it specially from an - application perspective. - -- ges-launch-1.0: - - - Added support to add titles to the timeline - - Enhance the help auto generating it from the code - -- Deprecate ges_timeline_load_from_uri as loading the timeline should - be done through a project now - -- MANY leaks have been plugged and the unit testsuite is now “leak - free” +- FIXME GStreamer validate -- Added an action type to verify the checksum of the sink last-sample - -- Added an include keyword to validate scenarios - -- Added the notion of variable in scenarios, with the set-vars keyword - -- Started adding support for “performance” like tests by allowing to - define the number of dropped buffers or the minimum buffer frequency - on a specific pad - -- Added a validateflow plugin which allows defining the data flow to - be seen on a particular pad and verifying that following runs match - the expectations - -- Added support for appsrc based test definition so we can instrument - the data pushed into the pipeline from scenarios - -- Added a mockdecryptor allowing adding tests with on encrypted files, - the element will potentially be instrumented with a validate - scenario - -- gst-validate-launcher: - - - Cleaned up output - - - Changed the default for “muting” tests as user doesn’t expect - hundreds of windows to show up when running the testsuite - - - Fixed the outputted xunit files to be compatible with GitLab - - - Added support to run tests on media files in push mode (using - pushfile://) - - - Added support for running inside gst-build - - - Added support for running ssim tests on rendered files - - - Added a way to simply define tests on pipelines through a simple - .json file - - - Added a python app to easily run python testsuite reusing all - the launcher features - - - Added flatpak knowledge so we can print backtrace even when - running from within flatpak - - - Added a way to automatically generated “known issues” - suppressions lines - - - Added a way to rerun tests to check if they are flaky and added - a way to tolerate tests known to be flaky - - - Add a way to output html log files +- FIXME GStreamer Python Bindings -- add binding for gst_pad_set_caps() - -- pygobject dependency requirement was bumped to >= 3.8 - -- new audiotestsrc, audioplot, and mixer plugin examples, and a - dynamic pipeline example +- FIXME GStreamer C# Bindings -- bindings for the GstWebRTC library +- FIXME GStreamer Rust Bindings -The GStreamer Rust bindings are now officially part of the GStreamer -project and are also maintained in the GStreamer GitLab. - -The releases will generally not be synchronized with the releases of -other GStreamer parts due to dependencies on other projects. - -Also unlike the other GStreamer libraries, the bindings will not commit -to full API stability but instead will follow the approach that is -generally taken by Rust projects, e.g.: - -1) 0.12.X will be completely API compatible with all other 0.12.Y - versions. -2) 0.12.X+1 will contain bugfixes and compatible new feature additions. -3) 0.13.0 will _not_ be backwards compatible with 0.12.X but projects - will be able to stay at 0.12.X without any problems as long as they - don’t need newer features. - -The current stable release is 0.12.2 and the next release series will be -0.13, probably around March 2019. - -At this point the bindings cover most of GStreamer core (except for most -notably GstAllocator and GstMemory), and most parts of the app, audio, -base, check, editing-services, gl, net. pbutils, player, rtsp, -rtsp-server, sdp, video and webrtc libraries. - -Also included is support for creating subclasses of the following types -and writing GStreamer plugins: - -- gst::Element -- gst::Bin and gst::Pipeline -- gst::URIHandler and gst::ChildProxy -- gst::Pad, gst::GhostPad -- gst_base::Aggregator and gst_base::AggregatorPad -- gst_base::BaseSrc and gst_base::BaseSink -- gst_base::BaseTransform - -Changes to 0.12.X since 0.12.0 - -Fixed - -- PTP clock constructor actually creates a PTP instead of NTP clock - -Added - -- Bindings for GStreamer Editing Services -- Bindings for GStreamer Check testing library -- Bindings for the encoding profile API (encodebin) - -- VideoFrame, VideoInfo, AudioInfo, StructureRef implements Send and - Sync now -- VideoFrame has a function to get the raw FFI pointer -- From impls from the Error/Success enums to the combined enums like - FlowReturn -- Bin-to-dot file functions were added to the Bin trait -- gst_base::Adapter implements SendUnique now -- More complete bindings for the gst_video::VideoOverlay interface, - especially - gst_video::is_video_overlay_prepare_window_handle_message() - -Changed - -- All references were updated from GitHub to freedesktop.org GitLab -- Fix various links in the README.md -- Link to the correct location for the documentation -- Remove GitLab badge as that only works with gitlab.com currently - -Changes in git master for 0.13 - -Fixed - -- gst::tag::Album is the album tag now instead of artist sortname - -Added - -- Subclassing infrastructure was moved directly into the bindings, - making the gst-plugin crate deprecated. This involves many API - changes but generally cleans up code and makes it more flexible. - Take a look at the gst-plugins-rs crate for various examples. - -- Bindings for CapsFeatures and Meta -- Bindings for - ParentBufferMeta,VideoMetaandVideoOverlayCompositionMeta` -- Bindings for VideoOverlayComposition and VideoOverlayRectangle -- Bindings for VideoTimeCode - -- UniqueFlowCombiner and UniqueAdapter wrappers that make use of the - Rust compile-time mutability checks and expose more API in a safe - way, and as a side-effect implement Sync and Send now - -- More complete bindings for Allocation Query -- pbutils functions for codec descriptions -- TagList::iter() for iterating over all tags while getting a single - value per tag. The old ::iter_tag_list() function was renamed to - ::iter_generic() and still provides access to each value for a tag -- Bus::iter() and Bus::iter_timed() iterators around the corresponding - ::pop\*() functions - -- serde serialization of Value can also handle Buffer now - -- Extensive comments to all examples with explanations -- Transmuxing example showing how to use typefind, multiqueue and - dynamic pads -- basic-tutorial-12 was ported and added - -Changed - -- Rust 1.31 is the minimum supported Rust version now -- Update to latest gir code generator and glib bindings - -- Functions returning e.g. gst::FlowReturn or other “combined” enums - were changed to return split enums like - Result to allow usage of the - standard Rust error handling. - -- MiniObject subclasses are now newtype wrappers around the underlying - GstRc wrapper. This does not change the API in any breaking - way for the current usages, but allows MiniObjects to also be - implemented in other crates and makes sure rustdoc places the - documentation in the right places. - -- BinExt extension trait was renamed to GstBinExt to prevent conflicts - with gtk::Bin if both are imported - -- Buffer::from_slice() can’t possible return None - -- Various clippy warnings +- FIXME GStreamer Rust Plugins -Like the GStreamer Rust bindings, the Rust plugins are now officially -part of the GStreamer project and are also maintained in the GStreamer -GitLab. - -In the 0.3.x versions this contained infrastructure for writing -GStreamer plugins in Rust, and a set of plugins. - -In git master that infrastructure was moved to the GLib and GStreamer -bindings directly, together with many other improvements that were made -possible by this, so the gst-plugins-rs repository only contains -GStreamer elements now. - -Elements included are: - -- Tutorials plugin: identity, rgb2gray and sinesrc with extensive - comments - -- rsaudioecho, a port of the audiofx element - -- rsfilesrc, rsfilesink - -- rsflvdemux, a FLV demuxer. Not feature-equivalent with flvdemux yet - -- threadshare plugin: ts-appsrc, ts-proxysrc/sink, ts-queue, ts-udpsrc - and ts-tcpclientsrc elements that use a fixed number of threads and - share them between instances. For more background about these - elements see Sebastian’s talk “When adding more threads adds more - problems - Thread-sharing between elements in GStreamer” at the - GStreamer Conference 2017. - -- rshttpsrc, a HTTP source around the hyper/reqwest Rust libraries. - Not feature-equivalent with souphttpsrc yet. - -- togglerecord, an element that allows to start/stop recording at any - time and keeps all audio/video streams in sync. - -- mccparse and mccenc, parsers and encoders for the MCC closed caption - file format. - -Changes to 0.3.X since 0.3.0 - -- All references were updated from GitHub to freedesktop.org GitLab -- Fix various links in the README.md -- Link to the correct location for the documentation - -Changes in git master for 0.4 - -- togglerecord: Switch to parking_lot crate for mutexes/condition - variables for lower overhead -- Merge threadshare plugin here -- New closedcaption plugin with mccparse and mccenc elements -- New identity element for the tutorials plugin - -- Register plugins statically in tests instead of relying on the - plugin loader to find the shared library in a specific place - -- Update to the latest API changes in the GLib and GStreamer bindings -- Update to the latest versions of all crates +- FIXME Build and Dependencies -- The MESON BUILD SYSTEM BUILD IS NOW FEATURE-COMPLETE (*) and it is - now the recommended build system on all platforms and also used by - Cerbero to build GStreamer on all platforms. The Autotools build is - scheduled to be removed in the next cycle. Developers who currently - use gst-uninstalled should move to gst-build. The build option - naming has been cleaned up and made consistent and there are now - feature options to enable/disable plugins and various other features - on a case-by-case basis. (*) with the exception of plugin docs which - will be handled differently in future +- The Autotools build system has finally been removed in favour of the + Meson build system. Developers who currently use gst-uninstalled + should move to gst-build. -- Symbol export in libraries is now controlled via explicit exports - using symbol visibility or export defines where supported, to ensure - consistency across all platforms. This also allows libraries to have - exports that vary based on detected platform features and configure - options as is the case with the GStreamer OpenGL integration library - for example. A few symbols that had been exported by accident in - earlier versions may no longer be exported. These symbols will not - have had declarations in any public header files then though and - would not have been usable. +- API and plugin documentation are no longer built with gtk_doc. The + gtk_doc documentation has been removed in favour of a new unified + documentation module built with hotdoc. The intention is to + distribute the generated documentation in form of tarballs alongside + releases. -- The GStreamer FFmpeg wrapper plugin (gst-libav) now depends on - FFmpeg 4.x and uses the new FFmpeg 4.x API and stopped relying on - ancient API that was removed with the FFmpeg 4.x release. This means - that it is no longer possible to build this module against an older - system-provided FFmpeg 3.x version. Use the internal FFmpeg 4.x copy - instead if you build using autotools, or use gst-libav 1.14.x - instead which targets the FFmpeg 3.x API and _should_ work fine in - combination with a newer GStreamer. It’s difficult for us to support - both old and new FFmpeg APIs at the same time, apologies for any - inconvenience caused. - -- Hardware-accelerated Nvidia video encoder/decoder plugins nvdec and - nvenc can be built against CUDA Toolkit versions 9 and 10.0 now. The - dynlink interface has been dropped since it’s deprecated in 10.0. - -- The (optional) OpenCV requirement has been bumped to >= 3.0.0 and - the plugin can also be built against OpenCV 4.x now. - -- New sctp plugin based on usrsctp (for WebRTC data channels) +- FIXME Cerbero @@ -1172,221 +175,66 @@ Windows, Android, iOS and macOS. Cerbero has seen a number of improvements: -- Cerbero has been ported to Python 3 and requires Python 3.5 or newer - now - -- Source tarballs are now protected by checksums in the recipes to - guard against download errors and malicious takeover of projects or - websites. In addition, downloads are only allowed via secure - transports now and plain HTTP, FTP and git:// transports are not - allowed anymore. - -- There is now a new fetch-bootstrap command which downloads sources - required for bootstrapping, with an optional --build-tools-only - argument to match the bootstrap --build-tools-only command. - -- The bootstrap, build, package and bundle-source commands gained a - new --offline switch that ensures that only sources from the cache - are used and never downloaded via the network. This is useful in - combination with the fetch and fetch-bootstrap commands that acquire - sources ahead of time before any build steps are executed. This - allows more control over the sources used and when sources are - updated, and is particularly useful for build environments that - don’t have network access. - -- bootstrap --assume-yes will automatically say ‘yes’ to any - interactive prompts during the bootstrap stage, such as those from - apt-get or yum. - -- bootstrap --system-only will only bootstrap the system without build - tools. - -- Manifest support: The build manifest can be used in continuous - integration (CI) systems to fixate the Git revision of certain - projects so that all builds of a pipeline are on the same reference. - This is used in GStreamer’s gitlab CI for example. It can also be - used in order to re-produce a specific build. To set a manifest, you - can set manifest = 'my_manifest.xml' in your configuration file, or - use the --manifest command line option. The command line option will - take precendence over anything specific in the configuration file. - -- The new build-deps command can be used to build only the - dependencies of a recipe, without the recipe itself. - -- new --list-variants command to list available variants - -- variants can now be set on the command line via the -v option as a - comma-separated list. This overrides any variants set in any - configuration files. - -- new qt5, intelmsdk and nvidia variants for enabling Qt5 and hardware - codec support. See the Enabling Optional Features with Variants - section in the Cerbero documentation for more details how to enable - and use these variants. - -- A new -t / --timestamp command line switch makes commands print - timestamps +- FIXME Platform-specific changes and improvements Android -- toolchain: update compiler to clang and NDKr18. NDK r18 removed the - armv5 target and only has Android platforms that target at least - armv7 so the armv5 target is not useful anymore. - -- The way that GIO modules are named has changed due to upstream GLib - natively adding support for loading static GIO modules. This means - that any GStreamer application using gnutls for SSL/TLS on the - Android or iOS platforms (or any other setup using static libraries) - will fail to link looking for the g_io_module_gnutls_load_static() - function. The new function name is now - g_io_gnutls_load(gpointer data). data can be NULL for a static - library. Look at this commit for the necessary change in the - examples. - -- various build issues on Android have been fixed. +- FIXME macOS and iOS -- various build issues on iOS have been fixed. - -- the minimum required iOS version is now 9.0. The difference in - adoption between 8.0 and 9.0 is 0.1% and the bump to 9.0 fixes some - build issues. - -- The way that GIO modules are named has changed due to upstream GLib - natively adding support for loading static GIO modules. This means - that any GStreamer application using gnutls for SSL/TLS on the - Android or iOS platforms (or any other setup using static libraries) - will fail to link looking for the g_io_module_gnutls_load_static() - function. The new function name is now - g_io_gnutls_load(gpointer data). data can be NULL for a static - library. Look at this commit for the necessary change in the - examples. +- FIXME Windows -- The webrtcdsp element is shipped again as part of the Windows binary - packages, the build system issue has been resolved. +- toolchain upgrade -- ‘Inconsistent DLL linkage’ warnings when building with MSVC have - been fixed - -- Hardware-accelerated Nvidia video encoder/decoder plugins nvdec and - nvenc build on Windows now, also with MSVC and using Meson. - -- The ksvideosrc camera capture plugin supports 16-bit grayscale video - now - -- The wasapisrc audio capture element implements loopback recording - from another output device or sink - -- wasapisink recover from low buffer levels in shared mode and some - exclusive mode fixes - -- dshowsrc now implements the GstDeviceMonitor interface +- FIXME Contributors -Aaron Boxer, Aleix Conchillo Flaqué, Alessandro Decina, Alexandru Băluț, -Alex Ashley, Alexey Chernov, Alicia Boya García, Amit Pandya, Andoni -Morales Alastruey, Andreas Frisch, Andre McCurdy, Andy Green, Anthony -Violo, Antoine Jacoutot, Antonio Ospite, Arun Raghavan, Aurelien Jarno, -Aurélien Zanelli, ayaka, Bananahemic, Bastian Köcher, Branko Subasic, -Brendan Shanks, Carlos Rafael Giani, Charlie Turner, Christoph Reiter, -Corentin Noël, Daeseok Youn, Damian Vicino, Dan Kegel, Daniel Drake, -Daniel Klamt, Danilo Spinella, Dardo D Kleiner, David Ing, David -Svensson Fors, Devarsh Thakkar, Dimitrios Katsaros, Edward Hervey, -Emilio Pozuelo Monfort, Enrique Ocaña González, Erlend Eriksen, Ezequiel -Garcia, Fabien Dessenne, Fabrizio Gennari, Florent Thiéry, Francisco -Velazquez, Freyr666, Garima Gaur, Gary Bisson, George Kiagiadakis, Georg -Lippitsch, Georg Ottinger, Geunsik Lim, Göran Jönsson, Guillaume -Desmottes, H1Gdev, Haihao Xiang, Haihua Hu, Harshad Khedkar, Havard -Graff, He Junyan, Hoonhee Lee, Hosang Lee, Hyunjun Ko, Ilya Smelykh, -Ingo Randolf, Iñigo Huguet, Jakub Adam, James Stevenson, Jan Alexander -Steffens, Jan Schmidt, Jerome Laheurte, Jimmy Ohn, Joakim Johansson, -Jochen Henneberg, Johan Bjäreholt, John-Mark Bell, John Bassett, John -Nikolaides, Jonathan Karlsson, Jonny Lamb, Jordan Petridis, Josep Torra, -Joshua M. Doe, Jos van Egmond, Juan Navarro, Julian Bouzas, Jun Xie, -Junyan He, Justin Kim, Kai Kang, Kim Tae Soo, Kirill Marinushkin, Kyrylo -Polezhaiev, Lars Petter Endresen, Linus Svensson, Louis-Francis -Ratté-Boulianne, Lucas Stach, Luis de Bethencourt, Luz Paz, Lyon Wang, -Maciej Wolny, Marc-André Lureau, Marc Leeman, Marco Trevisan (Treviño), -Marcos Kintschner, Marian Mihailescu, Marinus Schraal, Mark Nauwelaerts, -Marouen Ghodhbane, Martin Kelly, Matej Knopp, Mathieu Duponchelle, -Matteo Valdina, Matthew Waters, Matthias Fend, memeka, Michael Drake, -Michael Gruner, Michael Olbrich, Michael Tretter, Miguel Paris, Mike -Wey, Mikhail Fludkov, Naveen Cherukuri, Nicola Murino, Nicolas Dufresne, -Niels De Graef, Nirbheek Chauhan, Norbert Wesp, Ognyan Tonchev, Olivier -Crête, Omar Akkila, Pat DeSantis, Patricia Muscalu, Patrick Radizi, -Patrik Nilsson, Paul Kocialkowski, Per Forlin, Peter Körner, Peter -Seiderer, Petr Kulhavy, Philippe Normand, Philippe Renon, Philipp Zabel, -Pierre Labastie, Piotr Drąg, Roland Jon, Roman Sivriver, Roman Shpuntov, -Rosen Penev, Russel Winder, Sam Gigliotti, Santiago Carot-Nemesio, -Sean-Der, Sebastian Dröge, Seungha Yang, Shi Yan, Sjoerd Simons, Snir -Sheriber, Song Bing, Soon, Thean Siew, Sreerenj Balachandran, Stefan -Ringel, Stephane Cerveau, Stian Selnes, Suhas Nayak, Takeshi Sato, -Thiago Santos, Thibault Saunier, Thomas Bluemel, Tianhao Liu, -Tim-Philipp Müller, Tobias Ronge, Tomasz Andrzejak, Tomislav Tustonić, -U. Artie Eoff, Ulf Olsson, Varunkumar Allagadapa, Víctor Guzmán, Víctor -Manuel Jáquez Leal, Vincenzo Bono, Vineeth T M, Vivia Nikolaidou, Wang -Fei, wangzq, Whoopie, Wim Taymans, Wind Yuan, Wonchul Lee, Xabier -Rodriguez Calvar, Xavier Claessens, Haihao Xiang, Yacine Bandou, -Yeongjin Jeong, Yuji Kuwabara, Zeeshan Ali, +- FIXME … and many others who have contributed bug reports, translations, sent suggestions or helped testing. -Stable 1.16 branch +Stable 1.18 branch -After the 1.16.0 release there will be several 1.16.x bug-fix releases +After the 1.18.0 release there will be several 1.18.x bug-fix releases which will contain bug fixes which have been deemed suitable for a stable branch, but no new features or intrusive changes will be added to -a bug-fix release usually. The 1.16.x bug-fix releases will be made from -the git 1.16 branch, which is a stable branch. +a bug-fix release usually. The 1.18.x bug-fix releases will be made from +the git 1.18 branch, which will be a stable branch. -1.16.0 +1.18.0 -1.16.0 was released on 19 April 2019. +1.18.0 has not been released yet. Known Issues -- possibly breaking/incompatible changes to properties of wrapped - FFmpeg decoders and encoders (see above). - -- The way that GIO modules are named has changed due to upstream GLib - natively adding support for loading static GIO modules. This means - that any GStreamer application using gnutls for SSL/TLS on the - Android or iOS platforms (or any other setup using static libraries) - will fail to link looking for the g_io_module_gnutls_load_static() - function. The new function name is now - g_io_gnutls_load(gpointer data). See Android/iOS sections above for - further details. +- FIXME -Schedule for 1.18 +Schedule for 1.20 -Our next major feature release will be 1.18, and 1.17 will be the -unstable development version leading up to the stable 1.18 release. The -development of 1.17/1.18 will happen in the git master branch. +Our next major feature release will be 1.20, and 1.19 will be the +unstable development version leading up to the stable 1.20 release. The +development of 1.19/1.20 will happen in the git master branch. -The plan for the 1.18 development cycle is yet to be confirmed, but it -is possible that the next cycle will be a short one in which case -feature freeze would be perhaps around August 2019 with a new 1.18 -stable release in September. +The plan for the 1.20 development cycle is yet to be confirmed. -1.18 will be backwards-compatible to the stable 1.16, 1.14, 1.12, 1.10, -1.8, 1.6, 1.4, 1.2 and 1.0 release series. +1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12, +1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series. ------------------------------------------------------------------------ _These release notes have been prepared by Tim-Philipp Müller with_ -_contributions from Sebastian Dröge, Guillaume Desmottes, Matthew -Waters, _ _Thibault Saunier, and Víctor Manuel Jáquez Leal._ +_contributions from … (FIXME)_ _License: CC BY-SA 4.0_ diff --git a/RELEASE b/RELEASE index 585afd89ab..3d9f73a1ef 100644 --- a/RELEASE +++ b/RELEASE @@ -1,18 +1,15 @@ -This is GStreamer gst-plugins-base 1.17.0.1. +This is GStreamer gst-plugins-base 1.17.1. -The GStreamer team is thrilled to announce a new major feature release in the -stable 1.0 API series of your favourite cross-platform multimedia framework! +GStreamer 1.17 is the development branch leading up to the next major +stable version which will be 1.18. -As always, this release is again packed with new features, bug fixes and -other improvements. - -The 1.16 release series adds new features on top of the 1.14 series and is +The 1.17 development series adds new features on top of the 1.16 series and is part of the API and ABI-stable 1.x release series of the GStreamer multimedia framework. Full release notes will one day be found at: - https://gstreamer.freedesktop.org/releases/1.16/ + https://gstreamer.freedesktop.org/releases/1.18/ Binaries for Android, iOS, Mac OS X and Windows will usually be provided shortly after the release. @@ -60,7 +57,7 @@ You can find source releases of gstreamer in the download directory: https://gstreamer.freedesktop.org/src/gstreamer/ The git repository and details how to clone it can be found at -https://cgit.freedesktop.org/gstreamer/gstreamer/ +https://gitlab.freedesktop.org/gstreamer/ ==== Homepage ==== diff --git a/docs/plugins/gst_plugins_cache.json b/docs/plugins/gst_plugins_cache.json index 6664d2dd9c..b991083d6b 100644 --- a/docs/plugins/gst_plugins_cache.json +++ b/docs/plugins/gst_plugins_cache.json @@ -48,7 +48,7 @@ "filename": "gstadder", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -693,7 +693,7 @@ "filename": "gstalsa", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -1351,7 +1351,7 @@ "filename": "gstapp", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -1439,7 +1439,7 @@ "filename": "gstaudioconvert", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -2039,7 +2039,7 @@ } } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -2173,7 +2173,7 @@ "filename": "gstaudiorate", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -2361,7 +2361,7 @@ ] } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -2692,7 +2692,7 @@ ] } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -2947,7 +2947,7 @@ ] } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -3278,7 +3278,7 @@ } } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -3487,7 +3487,7 @@ ] } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -4115,18 +4115,467 @@ "filename": "gstgio", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" }, "libvisual": { "description": "libvisual visualization plugins", - "elements": {}, + "elements": { + "libvisual_bumpscope": { + "author": "Benjamin Otte ", + "description": "Bumpscope visual plugin", + "hierarchy": [ + "GstVisualbumpscope", + "GstVisual", + "GstAudioVisualizer", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Visualization", + "long-name": "libvisual Bumpscope plugin plugin v.0.0.1", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n channels: { (int)1, (int)2 }\n rate: { (int)8000, (int)11250, (int)22500, (int)32000, (int)44100, (int)48000, (int)96000 }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { BGRx, BGR, RGB16 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "shade-amount": { + "blurb": "Shading color to use (big-endian ARGB)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "657930", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "shader": { + "blurb": "Shader function to apply on each frame", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "fade (1)", + "mutable": "null", + "readable": true, + "type": "GstAudioVisualizerShader", + "writable": true + } + }, + "rank": "none" + }, + "libvisual_corona": { + "author": "Benjamin Otte ", + "description": "Libvisual corona plugin", + "hierarchy": [ + "GstVisualcorona", + "GstVisual", + "GstAudioVisualizer", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Visualization", + "long-name": "libvisual libvisual corona plugin plugin v.0.1", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n channels: { (int)1, (int)2 }\n rate: { (int)8000, (int)11250, (int)22500, (int)32000, (int)44100, (int)48000, (int)96000 }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { BGRx, BGR, RGB16 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "shade-amount": { + "blurb": "Shading color to use (big-endian ARGB)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "657930", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "shader": { + "blurb": "Shader function to apply on each frame", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "fade (1)", + "mutable": "null", + "readable": true, + "type": "GstAudioVisualizerShader", + "writable": true + } + }, + "rank": "none" + }, + "libvisual_infinite": { + "author": "Benjamin Otte ", + "description": "Infinite visual plugin", + "hierarchy": [ + "GstVisualinfinite", + "GstVisual", + "GstAudioVisualizer", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Visualization", + "long-name": "libvisual infinite plugin plugin v.0.1", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n channels: { (int)1, (int)2 }\n rate: { (int)8000, (int)11250, (int)22500, (int)32000, (int)44100, (int)48000, (int)96000 }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { BGRx, BGR, RGB16 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "shade-amount": { + "blurb": "Shading color to use (big-endian ARGB)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "657930", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "shader": { + "blurb": "Shader function to apply on each frame", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "fade (1)", + "mutable": "null", + "readable": true, + "type": "GstAudioVisualizerShader", + "writable": true + } + }, + "rank": "none" + }, + "libvisual_jakdaw": { + "author": "Benjamin Otte ", + "description": "jakdaw visual plugin", + "hierarchy": [ + "GstVisualjakdaw", + "GstVisual", + "GstAudioVisualizer", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Visualization", + "long-name": "libvisual Jakdaw plugin plugin v.0.0.1", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n channels: { (int)1, (int)2 }\n rate: { (int)8000, (int)11250, (int)22500, (int)32000, (int)44100, (int)48000, (int)96000 }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { BGRx, BGR, RGB16 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "shade-amount": { + "blurb": "Shading color to use (big-endian ARGB)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "657930", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "shader": { + "blurb": "Shader function to apply on each frame", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "fade (1)", + "mutable": "null", + "readable": true, + "type": "GstAudioVisualizerShader", + "writable": true + } + }, + "rank": "none" + }, + "libvisual_jess": { + "author": "Benjamin Otte ", + "description": "Jess visual plugin", + "hierarchy": [ + "GstVisualjess", + "GstVisual", + "GstAudioVisualizer", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Visualization", + "long-name": "libvisual jess plugin plugin v.0.1", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n channels: { (int)1, (int)2 }\n rate: { (int)8000, (int)11250, (int)22500, (int)32000, (int)44100, (int)48000, (int)96000 }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { BGRx, BGR, RGB16 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "shade-amount": { + "blurb": "Shading color to use (big-endian ARGB)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "657930", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "shader": { + "blurb": "Shader function to apply on each frame", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "fade (1)", + "mutable": "null", + "readable": true, + "type": "GstAudioVisualizerShader", + "writable": true + } + }, + "rank": "none" + }, + "libvisual_lv_analyzer": { + "author": "Benjamin Otte ", + "description": "Libvisual analyzer plugin", + "hierarchy": [ + "GstVisuallv_analyzer", + "GstVisual", + "GstAudioVisualizer", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Visualization", + "long-name": "libvisual libvisual analyzer plugin v.1.0", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n channels: { (int)1, (int)2 }\n rate: { (int)8000, (int)11250, (int)22500, (int)32000, (int)44100, (int)48000, (int)96000 }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { BGRx, BGR, RGB16 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "shade-amount": { + "blurb": "Shading color to use (big-endian ARGB)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "657930", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "shader": { + "blurb": "Shader function to apply on each frame", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "fade (1)", + "mutable": "null", + "readable": true, + "type": "GstAudioVisualizerShader", + "writable": true + } + }, + "rank": "none" + }, + "libvisual_lv_scope": { + "author": "Benjamin Otte ", + "description": "Libvisual scope plugin", + "hierarchy": [ + "GstVisuallv_scope", + "GstVisual", + "GstAudioVisualizer", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Visualization", + "long-name": "libvisual libvisual scope plugin v.0.1", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n channels: { (int)1, (int)2 }\n rate: { (int)8000, (int)11250, (int)22500, (int)32000, (int)44100, (int)48000, (int)96000 }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { BGRx, BGR, RGB16 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "shade-amount": { + "blurb": "Shading color to use (big-endian ARGB)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "657930", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "shader": { + "blurb": "Shader function to apply on each frame", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "fade (1)", + "mutable": "null", + "readable": true, + "type": "GstAudioVisualizerShader", + "writable": true + } + }, + "rank": "none" + }, + "libvisual_oinksie": { + "author": "Benjamin Otte ", + "description": "Libvisual Oinksie visual plugin", + "hierarchy": [ + "GstVisualoinksie", + "GstVisual", + "GstAudioVisualizer", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Visualization", + "long-name": "libvisual oinksie plugin plugin v.0.1", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n channels: { (int)1, (int)2 }\n rate: { (int)8000, (int)11250, (int)22500, (int)32000, (int)44100, (int)48000, (int)96000 }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { BGRx, BGR, RGB16 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "shade-amount": { + "blurb": "Shading color to use (big-endian ARGB)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "657930", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "shader": { + "blurb": "Shader function to apply on each frame", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": true, + "default": "fade (1)", + "mutable": "null", + "readable": true, + "type": "GstAudioVisualizerShader", + "writable": true + } + }, + "rank": "none" + } + }, "filename": "gstlibvisual", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -4500,7 +4949,7 @@ "filename": "gstogg", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -10477,7 +10926,7 @@ } } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -10928,7 +11377,7 @@ ] } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -10994,7 +11443,7 @@ "filename": "gstoverlaycomposition", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -12658,7 +13107,7 @@ ] } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -12669,7 +13118,7 @@ "filename": "gstpbtypes", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -15972,7 +16421,7 @@ ] } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -16440,7 +16889,7 @@ ] } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -16532,7 +16981,7 @@ "filename": "gstsubparse", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -19042,7 +19491,7 @@ ] } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -19090,44 +19539,56 @@ }, "visualize-bit-usage": { "blurb": "Sets the bitstream breakdown visualization mode. Values influence the width of the bit usage bars to show", + "conditionally-available": false, "construct": false, "construct-only": false, + "controllable": false, "default": "0", "max": "255", "min": "0", + "mutable": "null", "readable": true, "type": "gint", "writable": true }, "visualize-macroblock-modes": { "blurb": "Show macroblock mode selection overlaid on image. Value gives a mask for macroblock (MB) modes to show", + "conditionally-available": false, "construct": false, "construct-only": false, + "controllable": false, "default": "0", "max": "65535", "min": "0", + "mutable": "null", "readable": true, "type": "gint", "writable": true }, "visualize-motion-vectors": { "blurb": "Show motion vector selection overlaid on image. Value gives a mask for motion vector (MV) modes to show", + "conditionally-available": false, "construct": false, "construct-only": false, + "controllable": false, "default": "0", "max": "65535", "min": "0", + "mutable": "null", "readable": true, "type": "gint", "writable": true }, "visualize-quantization-modes": { "blurb": "Show adaptive quantization mode selection overlaid on image. Value gives a mask for quantization (QI) modes to show", + "conditionally-available": false, "construct": false, "construct-only": false, + "controllable": false, "default": "0", "max": "65535", "min": "0", + "mutable": "null", "readable": true, "type": "gint", "writable": true @@ -19412,7 +19873,7 @@ ] } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -19423,7 +19884,7 @@ "filename": "gsttypefindfunctions", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -19603,7 +20064,7 @@ "filename": "gstvideoconvert", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -19818,7 +20279,7 @@ "filename": "gstvideorate", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -20032,7 +20493,7 @@ ] } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -20576,7 +21037,7 @@ ] } }, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -20659,7 +21120,7 @@ "filename": "gstvolume", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -20959,7 +21420,7 @@ "filename": "gstvorbis", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -21281,7 +21742,7 @@ "filename": "gstximagesink", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" @@ -21745,7 +22206,7 @@ "filename": "gstxvimagesink", "license": "LGPL", "other-types": {}, - "package": "GStreamer Base Plug-ins git", + "package": "GStreamer Base Plug-ins", "source": "gst-plugins-base", "tracers": {}, "url": "Unknown package origin" diff --git a/gst-plugins-base.doap b/gst-plugins-base.doap index 156625d063..d3e8efc946 100644 --- a/gst-plugins-base.doap +++ b/gst-plugins-base.doap @@ -20,7 +20,7 @@ libraries and base classes useful for writing elements. A wide range of video and audio decoders, encoders, and filters are included. - + C @@ -34,6 +34,16 @@ A wide range of video and audio decoders, encoders, and filters are included. + + + 1.17.1 + master + + 2020-06-19 + + + + 1.16.0 diff --git a/meson.build b/meson.build index 63a14b8709..a66e030190 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gst-plugins-base', 'c', - version : '1.17.0.1', + version : '1.17.1', meson_version : '>= 0.48', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ])