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: Release 1.17.1 --- ChangeLog | 5692 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 5692 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index dbbae2ae7..31d1f6495 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 -- cgit v1.2.1