X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=subprojects%2Fgst-plugins-base%2FChangeLog;h=912667c86fedd20a44d42c8ab917c7acbda8f1d7;hb=98d2f958a92a1949227ea92294657d2dca678eff;hp=889ea4b67a28c00ee23b52c8e7d6bb3b3f08547e;hpb=d0c25d3184af4767edeea966ebdaf0ec153de736;p=platform%2Fupstream%2Fgstreamer.git diff --git a/subprojects/gst-plugins-base/ChangeLog b/subprojects/gst-plugins-base/ChangeLog index 889ea4b..912667c 100644 --- a/subprojects/gst-plugins-base/ChangeLog +++ b/subprojects/gst-plugins-base/ChangeLog @@ -1,3 +1,4522 @@ +2022-11-07 20:31:25 +0200 Sebastian Dröge + + * gst-libs/gst/pbutils/gstdiscoverer-types.c: + discoverer: Annotate `DiscovererInfo::get_audio_streams()` and others with the concrete stream info type + Part-of: + +2022-11-05 07:34:27 +0100 Edward Hervey + + * gst/subparse/gstsubparse.c: + subparse: Fix non-closed tag handling. + Unclear what the goal was, but we could end up reading way past the next_tag. + Instead just move everything from after the end tag ('>') to the next_tag. + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53040 + Part-of: + +2022-10-31 16:06:45 +0100 Edward Hervey + + * gst/playback/gstparsebin.c: + parsebin: Fix leak + Release the reference on the collection which was given to us when extracting it + from the event/message. + Part-of: + +2022-10-13 22:15:58 +0530 Sanchayan Maity + + * gst/playback/gstplaybin3.c: + playbin3: Fix missing pad unref + GST_TRACERS="leaks" GST_DEBUG="GST_TRACER:7,leaks:6" gst-play-1.0 --use-playbin3 test.mkv + When running a pipeline like above, leaks are observed. + 0:00:56.882419132 240637 0x5562c528ccc0 TRACE GST_TRACER :0:: object-alive, type-name=(string)GstConcatPad, address=(gpointer)0x7efd7c0d20a0, description=(string)<'':sink_0>, ref-count=(uint)1, trace=(string); + 0:00:56.882429131 240637 0x5562c528ccc0 TRACE GST_TRACER :0:: object-alive, type-name=(string)GstConcatPad, address=(gpointer)0x7efd7c0d2be0, description=(string)<'':sink_0>, ref-count=(uint)1, trace=(string); + 0:00:56.882437056 240637 0x5562c528ccc0 TRACE GST_TRACER :0:: object-alive, type-name=(string)GstConcatPad, address=(gpointer)0x7efd7c0d3720, description=(string)<'':sink_0>, ref-count=(uint)1, trace=(string); + gst_element_release_request_pad does not unref the pad. It needs to + be followed by gst_object_unref. Doing that fixes the above leaks. + Use g_ptr_array_new_with_free_func with gst_object_unref as the free + function to unref the pad after release. + Part-of: + +2022-10-26 13:42:59 +1100 Matthew Waters + + * gst-libs/gst/pbutils/codec-utils.c: + pbutils: add correct mime mapping for vp9 + Based on https://www.webmproject.org/vp9/mp4/#codecs-parameter-string + Part-of: + +2022-10-27 15:13:36 +0300 Sebastian Dröge + + * gst-libs/gst/app/gstappsrc.c: + * gst-libs/gst/audio/gstaudiodecoder.c: + * gst-libs/gst/audio/gstaudioencoder.c: + * gst-libs/gst/video/gstvideoencoder.c: + core/base: Only post latency messages if the latency values have actually changed + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1525 + Part-of: + +2022-10-27 07:21:19 +0200 Edward Hervey + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: Only post latency message if it changed + Posting latency messages causes a full and potentially expensive latency + recalculation of the pipeline. While subclasses should check whether the latency + really changed or not before calling this function, we ensure that we do not + post such messages if it didn't change. + Part-of: + +2022-10-26 10:25:43 +0200 Daniels Umanovskis + + * sys/ximage/ximagesink.c: + * sys/xvimage/xvcontext.c: + ximagesink, xvimagesink: set the _NET_WM_PID atom on the window + This makes it easier for X11 window management to work with windows created by these sinks + Part-of: + +2022-10-25 09:39:07 +0300 Sebastian Dröge + + * gst-libs/gst/gl/gstgldisplay.c: + * gst-libs/gst/gl/gstglshader.c: + * gst-libs/gst/pbutils/gstdiscoverer.c: + * gst-libs/gst/rtsp/gstrtspconnection.c: + * gst-libs/gst/rtsp/gstrtspmessage.c: + * gst-libs/gst/sdp/gstmikey.c: + Fix various warnings from gobject-introspection + Part-of: + +2022-10-21 21:50:01 +0530 Nirbheek Chauhan + + * gst-libs/gst/gl/cocoa/gstgl_cocoa_private.h: + * gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m: + * gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m: + gl/vulkan: Fix static linking on macOS + duplicate symbol '__invoke_on_main' in: + /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstvulkan-1.0.a(cocoa_gstvkwindow_cocoa.m.o) + /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstgl-1.0.a(cocoa_gstglwindow_cocoa.m.o) + ld: 1 duplicate symbol for architecture x86_64 + clang: error: linker command failed with exit code 1 (use -v to see invocation) + Also make the same change in iOS for consistency. + Continuation of https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1132 + Part-of: + +2022-10-04 05:39:51 +0100 Matthew Waters + + * gst-libs/gst/gl/meson.build: + build/gl: fix automatic dispmanx detection for rpi4 + rpi4 doesn't contain dispmanx but still contains bcm_host.pc which + confuses the configure detection. Add an explicit check for + EGL_DISPMANX_WINDOW_T to ensure that we only build with dispmanx when + the types are available. + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/893 + Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/952 + Part-of: + +2022-10-19 22:08:17 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglcontextconfig.c: + docs/glcontextconfig: rename title to not be GstGLContext + Can be confusing havint two pages that both have GstGLContext as the + title. + Part-of: + +2022-07-06 21:45:24 +0300 Jordan Petridis + + * ext/cdparanoia/meson.build: + cdparanoia: Ignore compiler warning coming from the cdparanoia header + When trying to build the plugin, GCC starts complaining about issues + with one of the cdparanoia headers and it block us from being able + to build the plugin with Werror. + The current warning in the header look like this: + ``` + [1/2] Compiling C object subprojects/gst-plugins-base/ext/cdparanoia/libgstcdparanoia.so.p/gstcdparanoiasrc.c.o + In file included from ../subprojects/gst-plugins-base/ext/cdparanoia/gstcdparanoiasrc.h:37, + from ../subprojects/gst-plugins-base/ext/cdparanoia/gstcdparanoiasrc.c:31: + /usr/include/cdda/cdda_interface.h:164:3: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] + 164 | "Success", + | ^~~~~~~~~ + ... + /usr/include/cdda/cdda_interface.h:163:14: warning: ‘strerror_tr’ defined but not used [-Wunused-variable] + 163 | static char *strerror_tr[]={ + | ^~~~~~~~~~~ + [2/2] Linking target subprojects/gst-plugins-base/ext/cdparanoia/libgstcdparanoia.so + ``` + Last release of cdparanoia was in 2008, so our best bet for the + time is to ignore the warnings. + Part-of: + +2022-10-17 14:43:42 +0300 Sebastian Dröge + + * gst-libs/gst/sdp/gstmikey.c: + * gst-libs/gst/sdp/gstsdpmessage.c: + sdp: Add/fix various annotations + Part-of: + +2022-10-17 14:51:03 +0300 Sebastian Dröge + + * gst-libs/gst/tag/gstid3tag.c: + * gst-libs/gst/tag/gstvorbistag.c: + * gst-libs/gst/tag/gstxmptag.c: + * gst-libs/gst/tag/id3v2.c: + * gst-libs/gst/tag/lang.c: + * gst-libs/gst/tag/licenses.c: + * gst-libs/gst/tag/tags.c: + tag: Add/fix various annotations + Part-of: + +2022-10-17 11:31:05 +0300 Sebastian Dröge + + * gst-libs/gst/allocators/gstdmabuf.c: + * gst-libs/gst/allocators/gstfdmemory.c: + allocators: Add/fix various annotations + Part-of: + +2022-10-15 12:16:01 +0300 Sebastian Dröge + + * gst-libs/gst/gl/cocoa/gstgldisplay_cocoa.m: + * gst-libs/gst/gl/egl/gsteglimage.c: + * gst-libs/gst/gl/egl/gstgldisplay_egl.c: + * gst-libs/gst/gl/egl/gstgldisplay_egl_device.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/gstglformat.c: + * gst-libs/gst/gl/gstglshader.c: + * gst-libs/gst/gl/gstglsl.c: + * gst-libs/gst/gl/gstglviewconvert.c: + * gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.c: + * gst-libs/gst/gl/wayland/gstgldisplay_wayland.c: + * gst-libs/gst/gl/x11/gstgldisplay_x11.c: + gl: Add/fix various annotations + And fix a memory leaks in gst_gl_display_egl_new() error cases. + Part-of: + +2022-10-15 00:19:53 +0300 Sebastian Dröge + + * gst-libs/gst/pbutils/codec-utils.c: + * gst-libs/gst/pbutils/descriptions.c: + * gst-libs/gst/pbutils/encoding-profile.c: + * gst-libs/gst/pbutils/encoding-target.c: + * gst-libs/gst/pbutils/gstdiscoverer-types.c: + * gst-libs/gst/pbutils/gstdiscoverer.c: + * gst-libs/gst/pbutils/missing-plugins.c: + pbutils: Add/fix various annotations + Part-of: + +2022-10-15 00:00:03 +0300 Sebastian Dröge + + * gst-libs/gst/rtp/gstrtcpbuffer.c: + * gst-libs/gst/rtp/gstrtpbasedepayload.c: + * gst-libs/gst/rtp/gstrtpbasepayload.c: + * gst-libs/gst/rtp/gstrtpbuffer.c: + * gst-libs/gst/rtp/gstrtphdrext.c: + * gst-libs/gst/rtp/gstrtpmeta.c: + * gst-libs/gst/rtp/gstrtppayloads.c: + rtp: Add/fix various annotations + Part-of: + +2022-10-14 23:52:40 +0300 Sebastian Dröge + + * gst-libs/gst/rtsp/gstrtspconnection.c: + * gst-libs/gst/rtsp/gstrtspdefs.c: + * gst-libs/gst/rtsp/gstrtspmessage.c: + * gst-libs/gst/rtsp/gstrtsptransport.c: + * gst-libs/gst/rtsp/gstrtspurl.c: + rtsp: Add/fix various annotations + Also initialize out parameters so that they don't have an undefined + value in case of errors. + Part-of: + +2022-10-14 22:08:07 +0300 Sebastian Dröge + + * gst-libs/gst/app/gstappsink.c: + * gst-libs/gst/app/gstappsrc.c: + app: Add/fix various annotations + Part-of: + +2022-10-14 22:04:00 +0300 Sebastian Dröge + + * gst-libs/gst/audio/audio-channel-mixer.c: + * gst-libs/gst/audio/audio-converter.c: + * gst-libs/gst/audio/audio-info.c: + * gst-libs/gst/audio/audio-resampler.c: + * gst-libs/gst/audio/audio.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: + audio: Add/fix various annotations + Part-of: + +2022-10-14 21:59:43 +0300 Sebastian Dröge + + * gst-libs/gst/video/gstvideodecoder.c: + * gst-libs/gst/video/gstvideoencoder.c: + * gst-libs/gst/video/gstvideometa.c: + * gst-libs/gst/video/gstvideotimecode.c: + * gst-libs/gst/video/video-anc.c: + * gst-libs/gst/video/video-anc.h: + * gst-libs/gst/video/video-converter.c: + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-info.c: + * gst-libs/gst/video/video-multiview.c: + * gst-libs/gst/video/video-overlay-composition.c: + * gst-libs/gst/video/video-sei.h: + video: Add/fix various annotations + Part-of: + +2022-10-17 13:01:53 +0200 Edward Hervey + + * gst/playback/gsturisourcebin.c: + urisourcebin: Fix usage of raw and non-raw source provider + The computation in analyze_source was wrong, and would state that the element + has "all raw source pads" if it had at least one. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1029 + Part-of: + +2022-10-17 18:38:43 +0300 Sebastian Dröge + + * gst-libs/gst/rtp/gstrtpbuffer.c: + * tests/check/libs/rtp.c: + rtpbuffer: Initialize extended timestamp to the first wraparound period + This allows correct handling of wrapping around backwards during the + first wraparound period and avoids the infamous "Cannot unwrap, any + wrapping took place yet" error message. + It allows makes sure that for actual timestamp jumps a valid value is + returned instead of 0, which then allows the caller to handle it + properly. Not having this can have the caller see the same timestamp (0) + for a very long time, which for example can cause rtpjitterbuffer to + output the same timestamp for a very long time. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1500 + Part-of: + +2022-10-14 16:12:45 +0200 Edward Hervey + + * tools/gst-play.c: + gst-play: Don't leak the stream collection + We are given a reference to the collection when parsing it from the + message. Just store it (instead of referencing it again). + Part-of: + +2022-10-13 11:21:42 -0400 Julian Bouzas + + * docs/plugins/gst_plugins_cache.json: + * gst-libs/gst/riff/riff-media.c: + riff: Mark jpeg as parsed + This is needed so that autoplugging works with avidemux and JPEG decoders that + need parsed sink caps (eg rockchip 'mppjpegdec' decoder). It also works fine + with 'jpegdec' decoder regardless. + Part-of: + +2022-10-07 11:46:29 -0300 Thibault Saunier + + * gst/videorate/gstvideorate.c: + videorate: Do not close segment when getting a same segment twice + Part-of: + +2022-09-14 16:39:48 -0300 Thibault Saunier + + * gst/videorate/gstvideorate.c: + * gst/videorate/gstvideorate.h: + * tests/validate/meson.build: + * tests/validate/videorate/fill_segment_after_caps_changed_before_eos.validatetest: + * tests/validate/videorate/fill_segment_after_caps_changed_before_eos/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/fill_segment_after_caps_changed_before_eos/flow-expectations/log-videorate-src-expected: + videorate: Handle closing segment on EOS right after caps event + The scenario is what we try in the tests: + - we have a segment with .stop set + - some frame(s) flow + - we get a CAPS event + - we get an EOS (before getting buffers after the CAPS event) + in that case, without that patch, the segment is not properly closed + which is not correct. In this patch we keep track of previous caps until + a new buffer arrives, this way in that situation we set previous caps + again, and close the segment with the previous buffer. + Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1352 + in this specific case + Part-of: + +2022-08-22 16:33:23 -0400 Nicolas Dufresne + + * gst-libs/gst/gl/egl/gsteglimage.c: + opengl: Fix usage of eglCreate/DestroyImage + The implementation was inconsistent between create and destroy. EGLImage + creation and destruction is requires for EGL 1.5 and up, while + otherwise the KHR version is only available if EGL_KHR_image_base + feature is set. Not doing these check may lead to getting a function + pointer to a stub, which is notably the case when using apitrace. + Fixes #1389 + Part-of: + +2022-10-06 16:23:56 +0200 Aleksandr Slobodeniuk + + * gst/playback/gstdecodebin3.c: + decodebin3: allow to call "dispose" multiple times + https://docs.gtk.org/gobject/concepts.html#reference-counts-and-cycles + Part-of: + +2022-10-06 13:03:26 +0200 Aleksandr Slobodeniuk + + * gst/playback/gstdecodebin3.c: + decodebin3: fix mutex leaks + Part-of: + +2022-10-03 15:20:53 -0300 Thibault Saunier + + * gst/playback/gstdecodebin3-parse.c: + decodebin3: Do not try to plug a decoder on raw formats + Part-of: + +2022-10-06 00:00:59 +0900 Seungha Yang + + * gst-libs/gst/video/gstvideosink.c: + videosink: Don't return unknown end-time from get_times() + ... in case of reverse playback. Otherwise basesink will not + wait for clock + Part-of: + +2021-07-02 16:22:04 +0800 Haihao Xiang + + * gst-libs/gst/gl/egl/gsteglimage.c: + eglimage: fix Y412_LE DMABuf import support + This fixed the error below: + GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp ! + "video/x-raw(memory:DMABuf),format=Y412_LE" ! glimagesink + 0:00:00.063737691 576978 0x557c11266920 ERROR gleglimage + gsteglimage.c:577:_drm_rgba_fourcc_from_info: Unsupported format for + DMABuf. + Part-of: + +2021-07-02 16:01:19 +0800 Haihao Xiang + + * gst-libs/gst/gl/egl/gsteglimage.c: + eglimage: add Y410 DMABuf import support + This fixed the error below: + GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp ! \ + "video/x-raw(memory:DMABuf),format=Y410" ! glimagesink + 0:00:00.040553883 576732 0x55be9b35f920 ERROR gleglimage + gsteglimage.c:577:_drm_rgba_fourcc_from_info: Unsupported format for + DMABuf. + Part-of: + +2021-07-02 20:31:22 +0800 Haihao Xiang + + * gst-libs/gst/gl/egl/gsteglimage.c: + eglimage: add Y212_LE / Y212_BE DMABuf import support + This fixed the error below: + GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp \ + ! "video/x-raw(memory:DMABuf),format=Y212_LE" ! glimagesink + 0:00:00.148086281 575148 0x562a6d36d920 ERROR gleglimage + gsteglimage.c:555:_drm_rgba_fourcc_from_info: Unsupported format for + DMABuf. + Part-of: + +2021-07-02 15:37:19 +0800 Haihao Xiang + + * gst-libs/gst/gl/egl/gsteglimage.c: + eglimage: add Y210 DMABuf import support + This fixed the error below: + GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp ! \ + "video/x-raw(memory:DMABuf),format=Y210" ! glimagesink + 0:00:00.039881627 571365 0x56245eba6920 ERROR gleglimage + gsteglimage.c:549:_drm_rgba_fourcc_from_info: Unsupported format for + DMABuf + Part-of: + +2022-10-04 03:57:31 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + +=== release 1.21.1 === + +2022-10-04 01:14:01 +0100 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * gst-plugins-base.doap: + * meson.build: + Release 1.21.1 + +2022-10-04 01:13:59 +0100 Tim-Philipp Müller + + * ChangeLog: + Update ChangeLogs for 1.21.1 + +2022-10-01 02:33:49 +1000 Jan Schmidt + + * gst/playback/gstplaysink.c: + * gst/playback/gstplaysinkaudioconvert.c: + * gst/playback/gstplaysinkaudioconvert.h: + playsink: Hold a reference to the soft volume element + Always hold a reference to the soft volume element + provided by the playsinkaudioconvert bin helper, the + same as when volume is provided by a sink element, + or the soft volume element gets unreffed too soon. + Part-of: + +2022-10-01 04:51:21 +1000 Jan Schmidt + + * sys/xvimage/xvimageallocator.c: + xvimagesink: Don't leak XvShmImage + If allocating an XvShmImage generates an X error, but + still returns some allocated memory, make sure to free it + so it doesn't leak. + Part-of: + +2022-10-01 04:49:16 +1000 Jan Schmidt + + * sys/xvimage/xvcontext.c: + xvimagesink: Zero initialize mask array + Clear the stack array before setting bits to pass to + XISelectEvents(). Fixes spurious crash from an X error: + X Error of failed request: BadValue (integer parameter out of range for operation) + Part-of: + +2022-10-01 04:47:31 +1000 Jan Schmidt + + * sys/xvimage/xvcontext.c: + xvimagesink: Don't leak temporary + Use a stack variable instead of a temporarily + malloced variable that wasn't being freed + properly. Fixes a small leak of a GstXvTouchDevice + Part-of: + +2022-10-01 04:41:06 +1000 Jan Schmidt + + * gst/playback/gstdecodebin3.c: + decodebin3: Make sure event is writable before modifying + Make sure we're operating on a private copy of an event when + modifying it. + Part-of: + +2022-10-01 04:40:09 +1000 Jan Schmidt + + * gst/playback/gsturisourcebin.c: + urisourcebin: Make sure event is writable before modifying. + Make sure we're operating on a private copy of an event before + modifying it. + Part-of: + +2022-10-01 04:37:05 +1000 Jan Schmidt + + * gst/playback/gstdecodebin3.c: + decodebin3: Don't lose a ref on EOS event + Make sure not to give away the ref on the final EOS + event for which the probe handler is returning GST_PAD_PROBE_REMOVE + when pushing the event manually. + Part-of: + +2022-09-30 00:10:25 +0100 Tim-Philipp Müller + + * gst-libs/gst/pbutils/descriptions.c: + * tests/check/libs/pbutils.c: + pbutils: descriptions: add meta/x-klv + Part-of: + +2022-09-30 00:07:07 +0100 Tim-Philipp Müller + + * gst-libs/gst/pbutils/descriptions.c: + * tests/check/libs/pbutils.c: + pbutils: descriptions: fix gst_pb_utils_get_caps_description_flags() + And add a little unit test. + Part-of: + +2022-09-29 09:39:15 +0100 James Cowgill + + * gst-libs/gst/tag/gstxmptag.c: + xmptag: Call gst_tag_register_musicbrainz_tags during init + We need to call this to register the MusixBrainz tags before we use + them in an XMP schema. + Fixes this critical when attempting to run jpegparse on a JPEG + containing MusicBrainz XMP tags: + GStreamer-CRITICAL **: 20:41:07.885: gst_tag_get_type: assertion 'info != NULL' failed + Part-of: + +2022-09-29 14:36:38 +0300 Sebastian Dröge + + * tests/interactive/test-effect-switch.c: + test-effect-switch: Fix some memory leaks and make effect element ownership clearer + Part-of: + +2018-03-28 17:54:15 +0200 Philipp Zabel + + * gst-libs/gst/audio/gstaudiodecoder.c: + * gst-libs/gst/audio/gstaudioencoder.c: + * gst-libs/gst/video/gstvideodecoder.c: + * gst-libs/gst/video/gstvideoencoder.c: + buffer: drop parent meta in deep copy/foreach_metadata + The purpose of a deep buffer copy is to be able to release the source + buffer and all its dependencies. Attaching the parent buffer meta to + the newly created deep copy needlessly keeps holding a reference to the + parent buffer. + The issue this solves is the fact you need to allocate more + buffers, as you have free buffers being held for no reason. In the good + cases it will use more memory, in the bad case it will stall your + pipeline (since codecs often need a minimum number of buffers to + actually work). + Fixes #283 + Part-of: + +2022-09-27 13:41:37 +0200 Edward Hervey + + * gst/playback/gstdecodebin3.c: + decodebin3: Fix memory issues with active selection list + This had a couple of issues: + * The backing strings (from GstStream) could disappear + * The actual list wasn't properly reset/freed when decodebin3 was re-used + Part-of: + +2022-09-21 19:19:45 +0530 Nirbheek Chauhan + + * meson.build: + meson: Use implicit builtin dirs in pkgconfig generation + Starting with Meson 0.62, meson automatically populates the variables + list in the pkgconfig file if you reference builtin directories in the + pkgconfig file (whether via a custom pkgconfig variable or elsewhere). + We need this, because ${prefix}/libexec is a hard-coded value which is + incorrect on, for example, Debian. + Bump requirement to 0.62, and remove version compares that retained + support for older Meson versions. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245 + Part-of: + +2022-09-06 17:25:50 -0400 Thibault Saunier + + * docs/plugins/gst_plugins_cache.json: + * gst/videorate/gstvideorate.c: + * gst/videorate/gstvideorate.h: + * tests/validate/meson.build: + * tests/validate/videorate/duplicate_on_eos.validatetest: + * tests/validate/videorate/duplicate_on_eos/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/duplicate_on_eos/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/duplicate_on_eos_disbaled.validatetest: + * tests/validate/videorate/duplicate_on_eos_disbaled/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/duplicate_on_eos_disbaled/flow-expectations/log-videorate-src-expected: + * tests/validate/videorate/duplicate_on_eos_half_sec.validatetest: + * tests/validate/videorate/duplicate_on_eos_half_sec/flow-expectations/log-videorate-sink-expected: + * tests/validate/videorate/duplicate_on_eos_half_sec/flow-expectations/log-videorate-src-expected: + videorate: Add a `max-closing-segment-duplication-duration` property + This allows users to let videorate fully fill the segments when received + EOS or on new segment, removing an arbitrary limit of 25 duplicates which + might not be what the user wants (for example on low FPS stream in GES, + that sometimes leaded to broken behavior) + Part-of: + +2022-09-12 09:46:43 -0400 Xavier Claessens + + * tools/meson.build: + meson: Set install_tag on some targets + Trying to follow recommendation from Meson documentation: + https://mesonbuild.com/Installing.html#installation-tags + Move tools into 'bin' or 'bin-devel' categories to keep only libs and + plugins in the default 'runtime' category. This simplifies distribution + of GStreamer application skipping parts that are not needed, similarly + to what Cerbero does by hardcoding huge list of files. + Part-of: + +2022-09-19 08:54:15 +0200 Edward Hervey + + * gst-libs/gst/video/video-converter.c: + video-converter: Fix doc + Argument names weren't correct + Part-of: + +2022-09-09 16:57:18 -0400 Thibault Saunier + + * gst/playback/gstdecodebin2.c: + decodebin2: Do not fail if one of the decoders isn't able to output the requested format + when expose-all=False + When trying to find an decoder in that case, we loop over the different + decoder factories, and check that it outputs a format that matches the + requested one (through the :caps property), but if we find a decoder + that do match but later on some other don't we end up failing + autopluging. This patch ensures that we still plug the decoder that can + work. + Part-of: + +2022-08-29 10:20:55 -0400 Thibault Saunier + + * gst-libs/gst/gl/meson.build: + gl:meson: Minor typo fix + Part-of: + +2022-08-29 10:17:45 -0400 Thibault Saunier + + * docs/meson.build: + doc: Do not build plugins to build the doc + It is not actually necessary + Part-of: + +2022-09-07 10:36:09 -0400 Thibault Saunier + + * docs/plugins/gst_plugins_cache.json: + * gst-libs/gst/pbutils/gstdiscoverer.c: + * gst/playback/gsturidecodebin.c: + discoverer: Fix discovering source that expose raw audio/video + Exposes a "uridecodebin:post-stream-topology" property as the discoverer + needs to have topology information about all streams so we need + `uridecodebin` to always plug decodebins for that case. + Part-of: + +2022-09-07 17:11:08 -0400 Thibault Saunier + + * gst/playback/gsturidecodebin.c: + uridecodebin: Fix some property documentation syntax + Part-of: + +2022-09-07 10:39:21 -0400 Thibault Saunier + + * gst/playback/gsturidecodebin.c: + * tests/validate/meson.build: + * tests/validate/uridecodebin/expose_raw_pad_caps.validatetest: + uridecodebin: Ensure that pads caps are set before exposing them + We are supposed to guarantee that pads that are exposed have the caps + set, but for sources that have pad with "all raw caps" templates, we end + up exposing pads that don't have caps set yet, which can break code (in + GES for example). + To avoid that we let uridecodebin plug a `decodebin` after such pads and + let decodebin to handle that for us. In the end the only thing that + decodebin does in those cases is to wait for pads to be ready and expose + them, after that `uridecodebin` will expose those pads. + Part-of: + +2021-03-24 14:20:18 -0500 Zebediah Figura + + * meson.build: + meson: Build with -Wl,-z,nodelete to prevent unloading of dynamic libraries and plugins + GLib made the unfortunate decision to prevent libgobject from ever being + unloaded, which means that now any library which registers a static type + can't ever be unloaded either (and any library that depends on those, + ad nauseam). + Part-of: + +2022-07-06 04:18:37 +0900 Seungha Yang + + * gst-libs/gst/video/video-format.c: + video-format: Workaround MSVC build error + ../gst-libs/gst/video/video-format.c(6779): error C2219: syntax error: + type qualifier must be after '*' + Part-of: + +2022-09-07 16:35:38 +1000 Matthew Waters + + * gst/subparse/mpl2parse.c: + subparse: fix crash when parsing invalid timestamps in mpl2 + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49245 + Part-of: + +2022-09-01 15:11:31 -0400 Thibault Saunier + + * 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/meson.build: + * ext/vorbis/meson.build: + * 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/overlaycomposition/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/videoconvertscale/meson.build: + * gst/videorate/meson.build: + * gst/videotestsrc/meson.build: + * gst/volume/meson.build: + * meson.build: + * sys/ximage/meson.build: + * sys/xvimage/meson.build: + meson: Call pkgconfig.generate in the loop where we declare plugins dependencies + Removing some copy pasted code + Part-of: + +2022-09-01 11:51:48 -0400 Thibault Saunier + + * docs/meson.build: + * gst-libs/gst/allocators/meson.build: + * gst-libs/gst/app/meson.build: + * gst-libs/gst/audio/meson.build: + * gst-libs/gst/fft/meson.build: + * gst-libs/gst/gl/meson.build: + * gst-libs/gst/pbutils/meson.build: + * gst-libs/gst/riff/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.build: + meson: Namespace the plugins_doc_dep/libraries variables + Part-of: + +2022-08-31 18:44:14 -0400 Thibault Saunier + + * meson.build: + meson: Rename plugins list and make them "dependency" objects + Part-of: + +2022-08-31 14:50:38 +0000 Ádám Balázs + + * gst/audioconvert/gstaudioconvert.c: + gstaudioconvert: doc: Fix mix-matrix example + mix-matrix should contain float elements, modify the example to do so + Part-of: + +2022-08-30 14:29:41 +0200 Rafael Caricio + + * gst-libs/gst/pbutils/gstaudiovisualizer.c: + audiovisualizer: fix buffer mapping to not increase refcount + Part-of: + +2022-08-23 19:12:17 +0300 Sebastian Dröge + + * sys/ximage/ximagesink.c: + * sys/xvimage/xvimagesink.c: + x(v)imagesink: Don't create invalid GstNavigationModifierType by simply passing through X11 event states + Part-of: + +2022-07-22 13:41:17 +0200 Mathieu Duponchelle + + * docs/plugins/gst_plugins_cache.json: + * gst/playback/gstrawcaps.h: + playback: add onvif metadata caps to raw caps + + remove encoding from x-onvif-metadata caps output by qtdemux + Part-of: + +2022-08-23 16:02:31 +0200 Mathieu Duponchelle + + * gst/videoconvertscale/gstvideoconvertscale.c: + videoconvert: fix passthrough on equivalent transfer + When the input info and output info are equal, except for the + transfer functions that are *not* equivalent, we need to set up + a converter as we won't be passthrough. + Fixes an assertion in that case. + Part-of: + +2022-08-17 12:53:02 +0200 Guillaume Desmottes + + * gst-libs/gst/video/video-converter.c: + * gst-libs/gst/video/video-converter.h: + * tests/check/libs/video.c: + base: video-converter: add accessors for input and output formats + Part-of: + +2022-08-05 20:52:19 +0900 Seungha Yang + + * docs/plugins/gst_plugins_cache.json: + * gst/videoconvertscale/gstvideoconvert.c: + * gst/videoconvertscale/gstvideoconvertscale.c: + * gst/videoconvertscale/gstvideoconvertscale.h: + * gst/videoconvertscale/gstvideoscale.c: + videoconvert,videoscale: Do conversion in videoconvert and scaling in videoscale + Keep behaving the same as before videoconvertscale port + Part-of: + +2022-08-05 20:16:00 +0900 Seungha Yang + + * docs/plugins/gst_plugins_cache.json: + * gst/videoconvertscale/gstvideoconvert.c: + * gst/videoconvertscale/gstvideoconvertscale.c: + * gst/videoconvertscale/gstvideoconvertscale.h: + * gst/videoconvertscale/gstvideoscale.c: + * tests/validate/convertscale/convert_disable_scale.validatetest: + * tests/validate/convertscale/convert_disable_scale/flow-expectations/log-converter-src-expected: + * tests/validate/convertscale/scale_disable_convert.validatetest: + * tests/validate/convertscale/scale_disable_convert/flow-expectations/log-scaler-src-expected: + * tests/validate/meson.build: + Revert "videoconvertscale: Add properties to disable scaling/converting in videoconvert/videoscale" + This reverts commit cd7a91cef1c6a2e24d440126b7f2ab543fb205c5. + Reverting properties, scaling in videoconvert and converting in + videoscale will be disabled by the other commit + Part-of: + +2022-08-12 22:42:28 -0700 Khem Raj + + * gst/subparse/gstssaparse.c: + ssaparse: include required system headers for isspace() and sscanf() functions + Newer compilers ( clang 15 ) have turned stricter and errors out instead + of warning on implicit function declations + Fixes + gstssaparse.c:297:12: error: call to undeclared library function 'isspace' with type 'int (int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] + while (isspace(*t)) + Part-of: + +2022-08-12 13:16:50 +0300 Sebastian Dröge + + * gst-libs/gst/rtsp/gstrtspurl.c: + * tests/check/libs/rtsp.c: + rtspurl: Use gst_uri_join_strings() in gst_rtsp_url_get_request_uri_with_control() instead of a hand-crafted, wrong version + For example the query string of the base must not be taken over to the + request URL unless there is no control path, and control paths can be + absolute and must not be considered relative if they start with a /. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/971 + Part-of: + +2022-08-12 13:15:46 +0300 Sebastian Dröge + + * tests/check/libs/rtsp.c: + rtspurl: Use fail_unless_equals_string() in tests + Part-of: + +2022-07-27 22:34:42 +1000 Jan Schmidt + + * ext/pango/gstbasetextoverlay.c: + * ext/pango/gstbasetextoverlay.h: + basetextoverlay: Don't miscalculate text running times + When a new segment event arrives, it immediately updates + the current stored segment, which was used for calculating + the running time of the current text buffer for every + passing video frame. This means a segment that arrives + after the text buffer might get used to (mis)calculate + the running times subsequently. + Instead, calculate and store the right running time + using the current segment when storing the buffer. Later + the stored segment can get freely updated. + This fixes the case where pieces of video and text streams + are seamlessly concatenated and fed through the text overlay. + Previously, it could lead to the current text buffer suddenly + have a massive running time and blocking all further input. + Part-of: + +2022-08-09 18:06:41 +0100 Tim-Philipp Müller + + * docs/plugins/gst_plugins_cache.json: + * ext/opus/gstopusenc.c: + opusenc: improve inband-fec property documentation + Part-of: + +2022-06-30 16:14:27 +0300 Jordan Petridis + + * ext/alsa/gstalsaplugin.c: + gstalsaplugin: return the result of the element registration + Previously there were branches that would return FALSE, however + it looks like we forgot to return the new result variable. + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/900 + Part-of: + +2022-01-22 02:35:36 +0100 Mathieu Duponchelle + + * gst/encoding/gstsmartencoder.c: + smartencoder: fix detection of avc1 + While avc1 is the FourCC, avc is the name used in caps + Part-of: + +2022-01-22 02:29:54 +0100 Mathieu Duponchelle + + * gst/playback/gstdecodebin2.c: + decodebin2: don't reverse stream topology order + This can be important for instance when a container holds multiple + tracks with the same media type, with no indication (eg tags) of + which track is the default one. + In that case, players usually pick the first track by default. + This is especially useful when using smart editing with GES, as + it will result in the same ordering as the input file that was + used as a template. + For reference, this yields the same order as ffprobe. + Part-of: + +2022-01-21 01:02:52 +0100 Mathieu Duponchelle + + * gst/encoding/gstsmartencoder.c: + gstsmartencoder: don't make calculations for invalid DTS + Instead, as the current code relies on having a valid DTS (for lining + up passed through and re-encoded segments), simply compute a DTS + from the PTS if the DTS was invalid. + Part-of: + +2022-01-21 00:57:16 +0100 Mathieu Duponchelle + + * gst-libs/gst/pbutils/encoding-profile.c: + encoding-profile: don't order profiles by stream ID .. + when creating a profile from a discoverer info. + There is no justification for the existing code, and talking with + Thibault he cannot remember why the sort was in place. + On the other hand, this allows GES users to not have to implement + a callback for the select-tracks-for-object callback when using + it to trim a single clip, which the output profile was built from: + track elements will be placed in the appropriate track by default, + that is the one that will be connected to the matching profile. + For multi-clip timelines, the situation doesn't change, users will + still have to implement a callback and do the leg work of placing + track elements (if any) in a matching track (if any). + Part-of: + +2022-01-21 00:49:33 +0100 Mathieu Duponchelle + + * gst-libs/gst/pbutils/encoding-profile.c: + encoding-profile: ignore more output caps fields + chroma-format, bit-depth-chroma, bit-depth-luma are all informative + fields set by the H265 and H265 parser upon receiving an SPS. + They shouldn't be constrained downstream of the parser, instead + if a user wants those to ultimately match certain values they + should do so by constraining a profile. + In this case however, we also always remove the profile constraint + in order to let encoders pick a suitable one as a function of the + raw input video format and their own capabilities. + Part-of: + +2022-08-01 17:25:56 +0200 Edward Hervey + + * gst/playback/gstparsebin.c: + parsebin: Avoid crash with unknown streams + With the new addition of handling unknown sream types we *could* end up with a + chain which doesn't have a current_pad (it's an intermediary one) + Fixes #1287 + Part-of: + +2022-05-25 18:40:30 +0530 Nirbheek Chauhan + + * gst-libs/gst/rtsp/gstrtspconnection.c: + rtsp+rtmp: Forward warning added to tls-validation-flags to our users + With the 2.72 release, glib-networking developers have decided that + TLS certificate validation cannot be implemented correctly by them, so + they've deprecated it. + In a nutshell: a cert can have several validation errors, but there + are no guarantees that the TLS backend will return all those errors, + and things are made even more complicated by the fact that the list of + errors might refer to certs that are added for backwards-compat and + won't actually be used by the TLS library. + Our best option is to ignore the deprecation and pass the warning onto + users so they can make an appropriate security decision regarding + this. + We can't deprecate the tls-validation-flags property because it is + very useful when connecting to RTSP cameras that will never get + updates to fix certificate errors. + Relevant upstream merge requests / issues: + https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214 + https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179 + https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193 + Part-of: + +2022-07-13 22:37:26 +0900 Seungha Yang + + * docs/plugins/gst_plugins_cache.json: + compositor: Update plugins cache + Part-of: + +2022-01-18 21:21:23 +0900 Seungha Yang + + * gst/compositor/compositor.c: + compositor: Warn when inputs are SDR/HDR mixed + Let user know that the result of mixed SDR/HDR is not guaranteed + to be a good visual quality. + Part-of: + +2021-11-24 20:21:52 +0900 Seungha Yang + + * gst/compositor/blend.c: + * gst/compositor/blend.h: + * gst/compositor/compositor.c: + * gst/compositor/compositor.h: + compositor: Add support for all formats + For formats which we don't have fast-path implementation, compositor + will convert it to common unpack formats (AYUV, ARGB, AYUV64 and ARGB64) + then blending will happen using the intermediate formats. + Finally blended image will be converted back to the selected output format + if required. + Part-of: + +2021-11-20 00:41:52 +0900 Seungha Yang + + * gst/compositor/blend.c: + * gst/compositor/blend.h: + * gst/compositor/compositor.c: + compositor: Add support for Y444 high bitdepth formats + Part-of: + +2021-11-19 16:32:38 +0900 Seungha Yang + + * gst/compositor/blend.c: + * gst/compositor/blend.h: + * gst/compositor/compositor.c: + * gst/compositor/compositororc-dist.c: + * gst/compositor/compositororc-dist.h: + * gst/compositor/compositororc.orc: + compositor: Add support for I420/I422 high bitdepth formats + Implementation for {I420,I422}_{10,12}_{LE,BE} formats + Part-of: + +2021-11-19 21:46:43 +0900 Seungha Yang + + * gst/compositor/blend.c: + * gst/compositor/compositor.c: + * gst/compositor/compositor.h: + compositor: Calculate background color only once + ... instead of do that per fill_color() call in case of RGB format. + Moreover, respect selected GstVideoColorRange + Part-of: + +2022-07-27 15:42:44 +1000 Matthew Waters + + * gst-libs/gst/rtsp/gstrtspconnection.c: + rtspconnection: protect cancellable by a mutex + It is entirely possible for the cancellable to be cancelled (and freed) + in gst_rtsp_connection_flush() while there may be an ongoing read/write + operation. + Nothing prevents gst_rtsp_connection_flush() from waiting for the + outstanding read/writes. + This could lead to a crash like (where cancellable has been freed + within gst_rtsp_connection_flush()): + #0 0x00007ffff4351096 in g_output_stream_writev (stream=stream@entry=0x7fff30002950, vectors=vectors@entry=0x7ffe2c6afa80, n_vectors=n_vectors@entry=3, bytes_written=bytes_written@entry=0x7ffe2c6af950, cancellable=cancellable@entry=0x7fff300288a0, error=error@entry=0x7ffe2c6af958) at ../subprojects/glib/gio/goutputstream.c:377 + #1 0x00007ffff44b2c38 in writev_bytes (stream=0x7fff30002950, vectors=vectors@entry=0x7ffe2c6afa80, n_vectors=n_vectors@entry=3, bytes_written=bytes_written@entry=0x7ffe2c6afb90, block=block@entry=1, cancellable=0x7fff300288a0) at ../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c:1320 + #2 0x00007ffff44b583e in gst_rtsp_connection_send_messages_usec (conn=0x7fff30001370, messages=messages@entry=0x7ffe2c6afcc0, n_messages=n_messages@entry=1, timeout=timeout@entry=3000000) at ../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c:2056 + #3 0x00007ffff44d2669 in gst_rtsp_client_sink_connection_send_messages (sink=0x7fffac0192c0, timeout=3000000, n_messages=1, messages=0x7ffe2c6afcc0, conninfo=0x7fffac019610) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:1929 + #4 gst_rtsp_client_sink_try_send (sink=sink@entry=0x7fffac0192c0, conninfo=conninfo@entry=0x7fffac019610, requests=requests@entry=0x7ffe2c6afcc0, n_requests=n_requests@entry=1, response=response@entry=0x0, code=code@entry=0x0) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:2845 + #5 0x00007ffff44d3077 in do_send_data (buffer=0x7fff38075c60, channel=, context=0x7fffac042640) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:3896 + #6 0x00007ffff4281cc6 in gst_rtsp_stream_transport_send_rtp (trans=trans@entry=0x7fff20061f80, buffer=) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.c:632 + #7 0x00007ffff4278e9b in push_data (stream=0x7fff40019bf0, is_rtp=, buffer_list=0x0, buffer=, trans=0x7fff20061f80) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2586 + #8 check_transport_backlog (stream=0x7fff40019bf0, trans=0x7fff20061f80) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2645 + #9 0x00007ffff42793b3 in send_tcp_message (idx=, stream=0x7fff40019bf0) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2741 + #10 send_func (stream=0x7fff40019bf0) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2776 + #11 0x00007ffff7d59fad in g_thread_proxy (data=0x7fffbc062920) at ../subprojects/glib/glib/gthread.c:827 + #12 0x00007ffff7a8ce2d in start_thread () from /lib64/libc.so.6 + #13 0x00007ffff7b12620 in clone3 () from /lib64/libc.so.6 + Fix by adding a cancellable lock and returning an extra reference used + across all read/write operations. gst_rtsp_connection_flush() can free + the in-use cancellable and it will no longer affect any in progress + read/write. + Part-of: + +2022-07-22 13:13:42 +0100 Tim-Philipp Müller + + * gst/audiomixer/gstaudiointerleave.c: + audiointerleave: fix property docs + Part-of: + +2022-07-23 02:49:20 +1000 Jan Schmidt + + * gst-libs/gst/video/video-chroma.c: + video: Fix scaling in 4x horizontal co-sited chroma + 4x downscaling of chroma with co-sited chroma has never worked + it seems. + Fixes incorrect videotestsrc output and videoconvert conversions + to Y41B, YUV9, YVU9 and IYU9 with co-sited chroma. + e.g. + gst-launch-1.0 videotestsrc ! video/x-raw,format=Y41B,width=1280,height=720 ! \ + videoconvert ! autovideosink + Part-of: + +2022-07-02 06:08:57 +0900 Seungha Yang + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: Don't force upstream alpha format + "video/x-raw,format=RGBA ! some-video-filter ! video/x-raw,format=NV12" + is a very common case and therefore such erroring at baseclass + does not seem to be a desired behavior. + Part-of: + +2022-07-17 00:30:10 +0900 Seungha Yang + + * gst-libs/gst/video/video-converter.c: + video-converter: Use primaries compare function + Avoid conversion if both color primaries are functionally equal + Part-of: + +2022-07-16 23:36:22 +0900 Seungha Yang + + * gst-libs/gst/video/video-color.c: + * gst-libs/gst/video/video-color.h: + * tests/check/libs/video.c: + video-color: Add primaries and colorimetry compare functions + SMPTE 170M and 240M use the same RGB and white point coordinates + and therefore both primaries can be considered functionally + equivalent. + Also, some transfer functions have different name but equal + gamma functions. Adding another colorimetry compare function + to deal with thoes cases at once + Part-of: + +2022-07-12 14:47:20 +1000 Matthew Waters + + * ext/gl/gstglimagesink.c: + glimagesink: only allow setting the GL display/context if it is a valid value + Otherwise, when setting the external application context, then the + display may be cleared and then not used and the asharing mechanism does + not work anymore. + Part-of: + +2022-07-07 23:40:22 +1000 Jan Schmidt + + * gst-libs/gst/gl/gstglupload.c: + glupload: Add raw caps to sink pad when needed. + When checking if the current upload method can support + the requested caps filter in _transform_caps(), + make sure the sink pad reports raw caps. + Fixes #1311 + Part-of: + +2022-07-07 23:54:44 +1000 Jan Schmidt + + * gst-libs/gst/gl/gstglupload.c: + gstglupload: Remove raw caps from individual methods + Raw memory upload should always be the least preferred input + caps, only added by the raw memory uploader as the last thing + in the caps. + Caps negotiation should still choose raw data when it needs to, + and other upload methods that can accept raw data buffers will still do so. + Part-of: + +2022-07-11 20:12:30 +0200 Mathieu Duponchelle + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: always convert when user provides converter-config + The `converter-config` property may be used to perform cropping, + conversion should always be performed when the user set the property + to a non-NULL value. + Part-of: + +2022-07-08 20:49:21 +0200 Andoni Morales Alastruey + + * gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m: + glwindow_cocoa: fix a leak of the GstNSView + This leak is also causing a leak of the GstGLCAOpenGLLayer + which leaks the GstGLWrappedContext and the GstGLDisplay + Part-of: + +2022-07-08 20:38:51 +0200 Andoni Morales Alastruey + + * gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m: + gl: Fix leak of the whole CGL context + This was leaking the CGL context and several resources + allocated in the context, around 70MB for a 1080p clip + Part-of: + +2022-06-14 12:22:22 +0200 Marc Leeman + + * gst-libs/gst/video/video-format.c: + base: lookup RGB format without alpha + librfb requests a colour space for depth 32 and bpp 32 with alpha set to + 0x0, treat this the same as depth 24 with bpp 32. + Part-of: + +2022-07-04 17:27:50 +1000 Matthew Waters + + * gst/videoconvertscale/gstvideoconvertscale.c: + videoconvertscale: ensure writable caps when fixating format + gst_video_convert_scale_get_fixed_format() receives 'othercaps' from + basetransforms' fixate_caps() vmethod which explicitly mentions that + '`othercaps` may not be writable'. + The gst_caps_intersect() call just before may or may not produce new + caps. Particularly in cases like EMPTY or ANY caps on either of the + inputs, only a ref is taken and returned to the caller. + As a result, gst_video_convert_scale_fixate_format() may have attempted + to modify a non-writable caps structure. + Fix by adding a gst_caps_make_writable(). + Part-of: + +2022-06-30 00:39:50 +0100 Tim-Philipp Müller + + * gst/subparse/samiparse.c: + samiparse: clean up some GString usage + There's no need to re-assign the return value of + g_string_append_*() functions and such to the variable + holding the GString. These return values are just for + convenience so function calls can be chained. The actual + GString pointer won't change, it's not a GList after all. + Part-of: + +2022-06-30 00:31:24 +0100 Tim-Philipp Müller + + * gst/subparse/samiparse.c: + samiparse: micro-optimise entity handling + Avoid relocations and hard-code entity string length + in the struct, since we basically get it for free here. + Part-of: + +2022-06-30 00:13:19 +0100 Tim-Philipp Müller + + * gst/subparse/samiparse.c: + * tests/check/elements/subparse.c: + samiparse: fix handling of self-closing tags + We would check the wrong string (rest of line rather than element) + for the / suffix of self-closing tags, which is not only wrong but + also has atrocious performance with certain strings like the garbled + nonsense clusterfuzz feeds us, which might cause discoverer to time + out when processing garbled SAMI files. + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47461 + Part-of: + +2022-07-01 23:57:08 +1000 Jan Schmidt + + * gst-libs/gst/gl/gstglupload.c: + Revert "glupload: Fix caps query with no filter" + This reverts commit 6f9ae5d7580763b5d18badb76f2166ff0012886a. + The _transform_caps() function can't tell the difference + between the caller wanting to know the output caps + for the current method, or all possible output caps. If + it includes caps for all possible methods, glupload can + end up negotiating and sending the wrong output caps + downstream. + Partially reverts !2687 + Fixes #1310 + Part-of: + +2022-06-28 09:38:34 +0300 Sebastian Dröge + + * ext/gl/gstglvideomixer.c: + glvideomixer: Only consider property changes a geometry change if there as an actual change + Part-of: + +2022-06-27 21:28:07 +0300 Sebastian Dröge + + * docs/plugins/gst_plugins_cache.json: + * ext/gl/gstglvideomixer.c: + glvideomixer: Add crop-{left,right,top,bottom} pad properties for cropping inputs + Part-of: + +2022-06-30 09:02:00 +0300 Sebastian Dröge + + * gst-libs/gst/sdp/gstsdpmessage.c: + sdpmessage: Don't set SDP medias from caps without media/payload/clock-rate fields + Previously it would've silently failed reading the payload/clock-rate + and instead would've used some random value that happened to be on the + stack. + Part-of: + +2022-06-30 12:50:17 +1000 Jan Schmidt + + * gst-libs/gst/gl/gstglupload.c: + glupload: Fix caps query with no filter + If no filter caps are provided with a caps query, always + generate a full set of all caps from all upload methods, + not just the configured one. This is needed to handle + renegotiation when dealing with raw sysmem caps - as the upload + method might accept raw sysmem caps, but only the raw data + uploader adds those to the caps query. + Part-of: + +2022-06-30 12:46:31 +1000 Jan Schmidt + + * gst-libs/gst/gl/gstglupload.c: + Revert "glupload: allow system memory for dmabuf in transform_caps" + This reverts commit f3292dc1561a8d62812c3f1a2bb3de5c5bb6a807. + Only the raw data uploader should add sysmem caps to the + actual caps query, because we want them to be at the + lowest priority. If upstream does select to send raw + caps, then the correct upload method will still + be chosen because the accept_caps implementation + will accept them + Part-of: + +2022-06-30 18:41:01 +1000 Jan Schmidt + + * gst-libs/gst/gl/gstglupload.c: + gl: Don't use the full transform_caps() method for reconfiguration check + When checking if we need to reconfigure when uploading, check + specifically the output caps of the current method will + result in compatible/incompatible caps, not the full set + of output caps from all upload methods. + Part-of: + +2022-06-30 08:42:43 +0300 Sebastian Dröge + + * gst-libs/gst/video/video.h: + video: Include new video-sei.h in video.h + Part-of: + +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * meson.build: + coding style: allow declarations after statement + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ + and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 + Part-of: + +2022-06-16 10:19:17 +0000 James Hilliard + + * tests/validate/videorate/change_rate_reverse_playback.validatetest: + * tests/validate/videorate/change_rate_while_playing.validatetest: + videorate: remove property-value quotes + Fixes warnings like: + Received a structure string that contains '="0.5"'. Reading as a gdouble value, rather than a string value. This is undesired behaviour, and with GStreamer 1.22 onward, this will be interpreted as a string value instead because it is wrapped in '"' quotes. If you want to guarantee this value is read as a string, before this change, use '=(string)"0.5"' instead. If you want to read in a gdouble value, leave its value unquoted. + Part-of: + +2022-06-25 19:50:10 +0100 Tim-Philipp Müller + + * tests/check/meson.build: + tests: skip unit tests for dependency-less elements that have been disabled + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136 + Part-of: + +2022-05-13 12:57:06 -0400 Xavier Claessens + + * gst-libs/gst/video/video-frame.c: + * gst-libs/gst/video/video-frame.h: + * tests/check/libs/video.c: + GstVideoFrame: Add g_auto() support + Part-of: + +2022-06-08 19:18:48 +0300 Vivia Nikolaidou + + * gst-libs/gst/video/video.c: + * gst-libs/gst/video/video.h: + avviddec, video.c, h265parse: Workaround for broken field-based interlaced encoders + Some encoders (e.g. Makito) have H265 field-based interlacing, but then + also specify an 1:2 pixel aspect ratio. That makes it kind-of work with + decoders that don't properly support field-based decoding, but makes us + end up with the wrong aspect ratio if we implement everything properly. + As a workaround, detect 1:2 pixel aspect ratio for field-based + interlacing, and check if making that 1:1 would make the new display + aspect ratio common. In that case, we override it with 1:1. + Part-of: + +2022-06-12 05:35:27 -0600 James Hilliard + + * gst/playback/gstdecodebin3-parse.c: + * gst/playback/gstdecodebin3.c: + decodebin3: fix EOS event sequence + See docs: + https://gstreamer.freedesktop.org/documentation/additional/design/seqnums.html?gi-language=c#seqnums-sequence-numbers + Per docs: + When a sink element receives an EOS event and creates a new EOS + message to post, it should copy the seqnum from the event to the + message because the EOS message is a consequence of the EOS event + being received. + Part-of: + +2022-04-06 12:56:30 +0100 Tim-Philipp Müller + + * gst-libs/gst/rtsp/gstrtspconnection.c: + * gst-libs/gst/video/gstvideodecoder.c: + * gst-libs/gst/video/gstvideoencoder.c: + * meson.build: + * tests/check/elements/audioresample.c: + Bump GLib requirement to >= 2.62 + Can't require 2.64 yet because of + https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323 + Part-of: + +2022-05-16 19:29:10 +0200 Andoni Morales Alastruey + + * gst-libs/gst/video/meson.build: + video: add new video-sei.h header to the list of video_headers + Part-of: + +2022-02-27 18:41:12 +0000 Andoni Morales Alastruey + + * gst-libs/gst/video/video-sei.c: + * gst-libs/gst/video/video-sei.h: + Fix documentation + Part-of: + +2022-02-17 15:55:19 +1100 Brad Hards + + * gst-libs/gst/video/video-sei.c: + * gst-libs/gst/video/video-sei.h: + h264parse: add unit test for Precision Time Stamp in SEI messages + Part-of: + +2022-02-17 15:55:19 +1100 Brad Hards + + * gst-libs/gst/video/video-sei.c: + h264parse: fix copying of data and UUID + Part-of: + +2021-12-19 19:14:05 +0100 Andoni Morales Alastruey + + * gst-libs/gst/video/meson.build: + * gst-libs/gst/video/video-sei.c: + * gst-libs/gst/video/video-sei.h: + h264parse: add support Precision Time Stamp in SEI messages + Expose User Data Unregistered as a new Meta and add + API to parse Precision Time Stamp (ST 0604). + Fixes #927 + Part-of: + +2022-05-27 14:18:30 -0400 Nicolas Dufresne + + * gst-libs/gst/video/video-info.c: + video: Fix NV12_16L32 size calculation + The subsampling of the second plane was not taken into account, resulting in a + 16bit per pixel buffers instead of 12. + Part-of: + +2022-05-25 02:10:30 +0900 Seungha Yang + + * gst/playback/gstplaybin3.c: + playbin3: Configure combiner on pad-added if needed + When collection is updated, decodebin3 exposes pad first and then + streams-selected message is posted. + The condition can cause a situation where playbin3 links non-existing + combiner/playsink pads (since streams-selected is not posted yet) with + new decodebin output pad. This commit will re-check selected/active + streams condition on pad-added and reconfigure output if needed. + Part-of: + +2022-05-23 21:24:40 -0400 Eli Schwartz + + * gst-libs/gst/tag/meson.build: + meson: use better zlib dependency fallback + zlib is required, and if it isn't found it is checked several ways and + then forced via subproject(). This code was added in commit + b93e37592a3ccc0eaece1c8fef2d362b1e5fe685, to account for systems where + zlib doesn't have pkg-config files installed. + But Meson already does dependency fallback, and also, since 0.54.0, does + the in-between checks for find_library('z') and has_header('zlib.h') via + the "system" type dependency. Simplify dependency lookup by marking it + as required, which also makes sure that the console log doesn't + confusingly list "not found". + Part-of: + +2022-05-19 12:17:59 +0300 Sebastian Dröge + + * gst-libs/gst/pbutils/descriptions.c: + * gst-libs/gst/pbutils/descriptions.h: + pbutils: Add GST_PBUTILS_CAPS_DESCRIPTION_FLAG_METADATA and ONVIF XML Timed MetaData + Part-of: + +2022-05-15 16:53:12 +0000 Thibault Saunier + + * gst-libs/gst/rtp/gstrtcpbuffer.c: + * gst-libs/gst/rtp/gstrtcpbuffer.h: + * tests/check/libs/rtp.c: + rtcpbuffer: Allow padding on first reduced size packets + It is valid to have the padding set to 1 on the first packet and it + happens very often from TWCC packets coming from libwebrtc. This means + that we were totally ignoring many TWCC packets. + Fix test that checked that a first packet with padding was not valid and + instead test a single twcc packet with padding to check precisely what + this patch was about. + Part-of: + +2022-05-13 13:31:55 +0200 Alicia Boya García + + * gst-libs/gst/app/gstappsink.c: + * tests/check/elements/appsink.c: + appsink: Fix race condition on caps handling + Background: + Whenever a caps event is received by appsink, the caps are stored in the + same internal queue as buffers. Only when enough buffers have been + popped from the queue to reach the caps, `priv->sample` gets its caps + updated to match, so that they are correct for the following buffers. + Note that as far as upstream elements are concerned, the caps of appsink + are updated immediately when the CAPS event is sent. Samples pulled from + appsink retain the old caps until a later buffer -- one that was sent by + upstream elements after the new caps -- is pulled. + The race condition: + When a flush is received, appsink clears the entire internal queue. The + caps of `priv->sample` are not updated as part of this process, and + instead remain as those of the sample that was last pulled by the user. + This leaves open a race condition where: + 1. Upstream sends a new caps event, and possibly some buffers for the + new caps. + 2. Upstream sends a flush (possibly from a different thread). + 3. Upstream sends a new buffer for the new caps. Since as far as + upstream is concerned, appsink caps are the new caps already, no new + CAPS event is sent. + 4. The appsink user pulls a sample, having not pulled before enough + samples to reach the buffers sent in step 1. + Bug: the pulled sample has the old caps instead of the new caps. + Fixing the race condition: + To avoid this problem, when a buffer is received after a flush, + `priv->sample`'s caps should be updated with the current caps before the + buffer is added to the internal queue. + Interestingly, before this patch, appsink already had code for this, in + gst_app_sink_render_common(): + /* queue holding caps event might have been FLUSHed, + * but caps state still present in pad caps */ + if (G_UNLIKELY (!priv->last_caps && + gst_pad_has_current_caps (GST_BASE_SINK_PAD (psink)))) { + priv->last_caps = gst_pad_get_current_caps (GST_BASE_SINK_PAD (psink)); + gst_sample_set_caps (priv->sample, priv->last_caps); + GST_DEBUG_OBJECT (appsink, "activating pad caps %" GST_PTR_FORMAT, + priv->last_caps); + } + This code assumes `priv->last_caps` is reset when a flush is received, + which makes sense, but unfortunately, there was no code in the flush + code path resetting it. + This patch adds such code, therefore fixing the race condition. A unit + test demonstrating the bug and testing its behavior with the fix has + also been added. + Part-of: + +2022-05-16 12:34:36 -0400 U. Artie Eoff + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: unref temporary caps + The "possible_caps" needs unref after finished using to + avoid memory leak. + Part-of: + +2022-05-05 02:54:37 +0900 Seungha Yang + + * tools/gst-play.c: + tools: gst-play: Print position even if duration is unknown + Gives better visual feedback regarding position information + although duration is unknown, live streams for example. + Part-of: + +2022-05-09 16:21:55 +1000 Matthew Waters + + * gst-libs/gst/gl/gstglcontext.c: + * gst-libs/gst/gl/gstglcontext_private.h: + * gst-libs/gst/gl/gstglcontextquirks.c: + * gst-libs/gst/gl/meson.build: + gl/context: disable timer queries for ARM Mali-G52 + Performing a timer query with a default framebuffer that is incomplete + (from using a surfaceless context) will produce GL errors. Disable the + timer query on this platform to avoid the errors. + Part-of: + +2022-05-07 04:43:49 +0900 Seungha Yang + + * tools/gst-device-monitor.c: + tools: device-monitor: Print string property as-is without serialize + gst_value_serialize() does more than what's needed to printf-ing + especially when given GValue is already string. Just print string + value as-is without gst_value_serialize() to avoid unreadable + string print, especially for multi-bytes character encoding cases. + Part-of: + +2022-05-06 09:10:09 +0200 Edward Hervey + + * gst/playback/gstplaybin3.c: + * gst/playback/gstplaysink.c: + * gst/playback/gstplaysink.h: + playbin3: Cleanup and refactor combiner sourcecombine + * Remove fields no longer used, or that can be replaced by smaller code + * Rename "channels" to a more meaningful "input pads" + * Directly handle/use combiner pads in the combiners instead of on the playbin3 + main structure + Remove the corresponding combiner sinkpad whenever a uridecodebin3 source pad + goes away + * If used, store the corresponding combiner sink pad in the SourcePad helper + structure + Part-of: + +2022-05-03 16:25:19 +0200 Edward Hervey + + * gst/playback/gstparsebin.c: + parsebin: Don't modify inexistant GstStream + When handling exposing un-handled streams, we can only replace the GstStream for + those we are creating ourselves (i.e. the fallback collection). + Fixes assertions when the demuxer creates those streams + Part-of: + +2022-05-03 16:08:39 +0200 Edward Hervey + + * gst/playback/gstdecodebin3.c: + playbin3: Don't use unknown types for default selection + When creating a fallback default selection from a collection, don't attempt to + use unknown stream types + Part-of: + +2022-05-03 13:37:31 +0300 Sebastian Dröge + + * gst/audioconvert/gstaudioconvert.c: + audioconvert: If no channel-mask can be fixated then use a NONE channel layout + Otherwise this is generating caps without a channel-mask, which is + invalid for >1 channels and will always fail negotiation. + Part-of: + +2022-05-02 14:36:03 -0400 Nicolas Dufresne + + * docs/plugins/gst_plugins_cache.json: + doc: Update cache for NV12_4L4 and NV12_16LE32 gl support + Part-of: + +2022-04-14 15:02:11 -0400 Nicolas Dufresne + + * 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: + opengl: Add NV12_4L4 conversion support + This format is produced notably by Hantro G1/G2 HW. Using a shader instead of + the Hantro embedded converter helps reduce drastrictly the memory usage at a + relatively small GPU overhead. + Part-of: + +2022-04-12 14:18:59 -0400 Nicolas Dufresne + + * 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: + opengl: Add NV12_16L32S conversion support + This adds a first detiling shader with initial support for + NV12_16L32S as produced by Mediatek decoders. + Part-of: + +2022-04-13 14:54:40 -0400 Nicolas Dufresne + + * gst-libs/gst/gl/gstglsl.c: + glsl: Enable GLSL 1.30 if we have OpenGL 3.0/3.1 + As implemented, we only support OpenGL 3 API from version 3.2. Though, there + is no issue enabling GLSL 1.30 even if we are going to restrict our API usage + to 2. This allows using texelFetch() on OpenGL 3.0 and 3.1 drivers. + Part-of: + +2022-04-12 12:24:03 -0400 Nicolas Dufresne + + * gst-libs/gst/gl/egl/gsteglimage.c: + * gst-libs/gst/gl/gstglmemory.c: + * gst-libs/gst/gl/gstglutils.c: + opengl: Add low level support for tiled formats + This adds support for tiled format in stride and plane size + code. + Part-of: + +2022-04-12 12:16:23 -0400 Nicolas Dufresne + + * gst-libs/gst/video/video-frame.c: + video: Port video frame to the new tile size helper + This is now moved to the library, so it can be used in multiple + places. + Part-of: + +2022-04-12 12:14:03 -0400 Nicolas Dufresne + + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-format.h: + video: Add a helper to get the tile size information + Since the addition of tiling format with subsampled tile size + (NV12_16L32S), getting the tile width/height shifts and tile + size have become more complex. Add a helper to extract and + scale this information for the selected plane and format. + Part-of: + +2022-04-12 12:18:06 -0400 Nicolas Dufresne + + * gst-libs/gst/gl/egl/gsteglimage.c: + eglimage: Add missing NV21/61 support + Caps would allow that, but selecting this format would lead to + an "no reached" assertion in the code. + Part-of: + +2022-04-27 10:18:39 +0100 Philippe Normand + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: release stream lock after handling gap events + The stream lock is taken before handling gap events but was not released in all + possible runtime situations. This issue was introduced in: + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1274 + Part-of: + +2022-04-28 15:32:27 +1000 Matthew Waters + + * gst/subparse/samiparse.c: + subparse: don't deref a potentially NULL variable + If the html SAMI data is malformed, then retrieving the attribute name + may fail. We then cannot retrieve the attribute value. + Fixes: https://oss-fuzz.com/testcase-detail/4700130671984640 + Part-of: + +2022-04-27 09:22:40 +0200 Edward Hervey + + * gst/playback/gstparsebin.c: + * tools/gst-play.c: + parsebin: Expose streams of unknown type + This actually respects the existing `expose-all-streams` property by exposing + them and having them present in the stream collection (as streams of type + unknown). + Fixes #1179 + Part-of: + +2022-04-27 08:23:59 +0200 Edward Hervey + + * gst/playback/gstplaybin2.c: + playbin2: Remove dead code + blacklisted_mimes has been empty for ages. Remove the code "using" it. + Part-of: + +2022-04-21 02:04:57 +0200 Mathieu Duponchelle + + * docs/plugins/gst_plugins_cache.json: + * ext/pango/gsttimeoverlay.c: + * ext/pango/gsttimeoverlay.h: + timeoverlay: add support for reference timestamp time mode + + update date-time mode to actually use the timestamp that + was selected with the time-mode property + Co-authored-by: Sebastian Dröge + Part-of: + +2022-04-27 02:08:00 +0200 Mathieu Duponchelle + + * gst-libs/gst/rtp/gstrtpbasepayload.c: + rtpbasepayload: always store input buffer meta before negotiation + The decision to store the input buffer depends on whether extensions + are to be added to the output buffer, I assume as an optimization. + This creates an issue for subclasses that call negotiate(), where + header_exts is actually populated, from their handle_buffer() + implementation: at chain time, no header extension has been negotiated + yet, which means that we don't add extensions to the first batch of + buffers that comes out. + Keep track of whether negotiate has been called (this is different + from the negotiated field) and always store the input buffer until + then. This fixes the issue while largely preserving the optimization. + Part-of: + +2022-04-24 23:19:00 +0800 He Junyan + + * gst/videoconvertscale/gstvideoconvertscale.c: + videoscale: Fix the src video info error in transfer_colorimetry_from_input() + Pipeline such as: + gst-launch-1.0 -vf videotestsrc ! video/x-raw,format=NV12,colorimetry=\(string\)bt709 \ + ! videoscale ! video/x-raw,format=I420 ! fakesink + Always trigger a error: + ERROR video-info video-info.c:556:gst_video_info_from_caps: no width property given + Because it is called before the fixate_size(), the src caps' resolution + may be absent or not fixed. That causes that the src video info can not + be created correctly and we can not inherit the colorimetry and chroma-site + from the input caps. + Part-of: + +2022-04-26 10:58:08 +0200 Guillaume Desmottes + + * gst/videorate/gstvideorate.c: + videorate: fix assertion when pushing last and only buffer without duration + Fixing this pipeline: + gst-launch-1.0 filesrc location=sample.png ! pngdec ! videorate ! fakesink + - videorate receives a single buffer with pts = 0, duration = invalid; + - then it receives eos triggering this buffer to be pushed downstream; + - the pushing code was assuming that a duration was set, which is + impossible as we received a single buffer and no output framerate was + set either. So the best we can do is to push the buffer without + duration. + Fix #1177 + Part-of: + +2022-04-26 09:29:39 +0200 Edward Hervey + + * ext/ogg/gstoggstream.c: + oggdemux: Protect against invalid framerates + This check wasn't done for all mappings. + Part-of: + +2022-03-07 08:46:57 -0500 Xavier Claessens + + * gst-libs/gst/gl/meson.build: + Meson: Fix deprecation warnings + Part-of: + +2022-04-21 11:41:43 +0300 Sebastian Dröge + + * gst/videorate/gstvideorate.c: + Revert "videorate: Update the base time on segment updates" + This reverts commit 75b4809ebc23814009bebc70c775ab44d85decf2. + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186 + Part-of: + +2022-04-21 11:41:36 +0300 Sebastian Dröge + + * tests/check/elements/videorate.c: + Revert "videorate: Add test for segment update" + This reverts commit a76f38b2c7ddbed546bb058c32ebcf8a553c003f. + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186 + Part-of: + +2022-04-21 11:41:25 +0300 Sebastian Dröge + + * gst/videorate/gstvideorate.c: + * tests/check/elements/videorate.c: + Revert "videorate: Only "close" the segment if it is discontinous" + This reverts commit 6f7922b4dbba5ed780e7b0988669a81848a9e333. + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186 + Part-of: + +2022-04-21 11:41:15 +0300 Sebastian Dröge + + * gst/videorate/gstvideorate.c: + Revert "videorate: Drop incoming buffers that are outside of the segment" + This reverts commit 24fd80344dbc059b72e13d813ca82f414a9d6cce. + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186 + Part-of: + +2022-04-21 11:40:47 +0300 Sebastian Dröge + + * tests/check/elements/videorate.c: + Revert "videorate: Add unit test for closing a segment and opening a separate one" + This reverts commit 98f2a84a289ed4d4cfac9bc5c73182a56eefa99c. + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186 + Part-of: + +2020-11-26 18:18:52 +0100 Mathieu Duponchelle + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: keep old buffer when processing a MISSING_DATA gap + GAP events flagged with MISSING_DATA are transformed into GAP buffers + flagged with CORRUPTED. + In these cases, it is preferable to simply keep rendering the previous + buffer (if there was one) instead of flashing the pad in and out of + view. + Part-of: + +2020-11-26 18:16:10 +0100 Mathieu Duponchelle + + * gst/compositor/compositor.c: + compositor: fix prepare_frame obscuring check + A pad without a buffer or with a GAP buffer cannot obscure a + pad below it. Ignore those when considering whether a pad should + be drawn. + Part-of: + +2020-11-26 15:57:10 +0100 Mathieu Duponchelle + + * gst/compositor/compositor.c: + compositor: a pad without a frame can't obscure the background + Skip those when considering whether the background should be + drawn + Part-of: + +2022-04-20 16:25:49 -0500 Olivier Crête + + * tests/check/elements/videoscale.c: + videoscale: Add test to ensure that non-scaled metas are kept + Just make sure that we're not breaking non-scaled metas + Part-of: + +2022-02-02 15:28:15 +0000 James Cowgill + + * tests/check/elements/videoscale.c: + videoscale: Add test for transform_meta function + Part-of: + +2022-02-02 15:28:21 +0000 James Cowgill + + * gst/videoconvertscale/gstvideoconvertscale.c: + videoscale: Don't copy scaled metas + Returning TRUE from the `transform_meta` function tells + GstBaseTransform to copy the meta into the new buffer. If videoscale + has already transformed a meta by scaling it, it should always return + FALSE to avoid duplicating the meta. + Part-of: + +2022-04-01 15:16:20 +0530 Nirbheek Chauhan + + * sys/ximage/ximagesink.c: + * sys/xvimage/xvimagesink.c: + x11: Fix unused variable warnings + These are emitted when XInput 2 is not available. + ``` + ../subprojects/gst-plugins-base/sys/ximage/ximagesink.c: In function ‘gst_x_image_sink_handle_xevents’: + ../subprojects/gst-plugins-base/sys/ximage/ximagesink.c:696:29: warning: unused variable ‘state’ [-Wunused-variable] + 696 | GstNavigationModifierType state = GST_NAVIGATION_MODIFIER_NONE; + | ^~~~~ + ../subprojects/gst-plugins-base/sys/ximage/ximagesink.c:694:35: warning: unused variable ‘touch_frame_open’ [-Wunused-variable] + 694 | gboolean pointer_moved = FALSE, touch_frame_open = FALSE; + | ^~~~~~~~~~~~~~~~ + ../subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c: In function ‘gst_xv_image_sink_handle_xevents’: + ../subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c:427:35: warning: unused variable ‘touch_frame_open’ [-Wunused-variable] + 427 | gboolean pointer_moved = FALSE, touch_frame_open = FALSE; + | ^~~~~~~~~~~~~~~~ + ../subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c:426:29: warning: unused variable ‘state’ [-Wunused-variable] + 426 | GstNavigationModifierType state = GST_NAVIGATION_MODIFIER_NONE; + | ^~~~~ + ``` + Part-of: + +2022-04-21 10:21:37 -0400 Thibault Saunier + + * tests/validate/convertscale/convert_disable_scale.validatetest: + * tests/validate/convertscale/convert_disable_scale/flow-expectations/log-converter-src-expected: + * tests/validate/convertscale/scale_disable_convert.validatetest: + * tests/validate/convertscale/scale_disable_convert/flow-expectations/log-scaler-src-expected: + tests: convertscale: Do not log EOS events in validateflow + We already checked that we are getting an EOS before going back to ready + and adding the EOS at the end of the .validateflow is racy as the ERROR + message might reach the bus before it is logged. + Part-of: + +2022-04-14 09:48:14 -0400 Thibault Saunier + + * docs/plugins/gst_plugins_cache.json: + * gst/videoconvertscale/gstvideoconvert.c: + * gst/videoconvertscale/gstvideoconvertscale.c: + * gst/videoconvertscale/gstvideoconvertscale.h: + * gst/videoconvertscale/gstvideoscale.c: + * tests/validate/convertscale/convert_disable_scale.validatetest: + * tests/validate/convertscale/convert_disable_scale/flow-expectations/log-converter-src-expected: + * tests/validate/convertscale/scale_disable_convert.validatetest: + * tests/validate/convertscale/scale_disable_convert/flow-expectations/log-scaler-src-expected: + * tests/validate/meson.build: + videoconvertscale: Add properties to disable scaling/converting in videoconvert/videoscale + Part-of: + +2021-05-21 18:55:25 -0400 Thibault Saunier + + * gst/videoconvertscale/gstvideoconvert.c: + * gst/videoconvertscale/gstvideoconvertscale.c: + * gst/videoconvertscale/gstvideoconvertscale.h: + * gst/videoconvertscale/gstvideoscale.c: + videoconvertscale: Don't claim we can support any kind of memory + Since d0133a2d11566ff4c0cded7af8dfdff0046e0e8b "videoconvert: Allow + passthrough for ANY caps features" videoconvert will always claim that + it supports any kind of memory which is true in very specific case (when + it is running in passthrough mode). To get elements that autoplug + converters depending on the caps running in the pipeline (like + autovideoconvert), we need to have converters no lie about what they can + do when queried `accept_caps` or `query_caps`. + This still accepts any caps feature as before but it introduces + a restriction in the way we handle memory capsfeatures. + We keep previous behaviour in videoconvert and videoscale. + Part-of: + +2020-04-17 15:23:03 -0400 Thibault Saunier + + * docs/plugins/gst_plugins_cache.json: + * gst/meson.build: + * gst/videoconvert/gstvideoconvert.c: + * gst/videoconvert/meson.build: + * gst/videoconvertscale/README: + * gst/videoconvertscale/gstvideoconvert.c: + * gst/videoconvertscale/gstvideoconvert.h: + * gst/videoconvertscale/gstvideoconvertscale.c: + * gst/videoconvertscale/gstvideoconvertscale.h: + * gst/videoconvertscale/gstvideoconvertscaleplugin.c: + * gst/videoconvertscale/gstvideoscale.c: + * gst/videoconvertscale/gstvideoscale.h: + * gst/videoconvertscale/meson.build: + * gst/videoscale/README: + * gst/videoscale/meson.build: + * meson_options.txt: + Introduce the videocolorscale element + Now that videoconvert and videoscale's are both based on + GstVideoConverter and are using the exact same code, it makes much more + sense to have one element doing the two operation, and it can be + more efficient in some cases (one single path for both operations). + This removes the `videoscale` and `videoconvert` plugins but keeps the element + but makes them also do both operations (adding some APIs to each element). + There is a small change in API for the `videoscale:dither` property which + was previously a totally unused boolean, it is now an enum and is used. + Part-of: + +2022-04-07 19:36:25 +0300 Sebastian Dröge + + * gst-libs/gst/sdp/gstsdpmessage.c: + sdp: Parse the RFC5576 Source-specific media SDP attributes into caps + The format of the caps fields is + ssrc-(SSRC_VALUE)-(ATTRIBUTE_NAME)=(ATTRIBUTE_VALUE) + . + Parsing of the attributes from the caps into the SDP is not implemented + as this depends not only a single stream's caps but on the whole rtpbin + configuration. + Part-of: + +2022-04-18 18:53:45 +0900 Camilo Celis Guzman + + * ext/gl/gstglmixerbin.c: + gstglmixerbin: minor refactor of _find_element_pad_template + As suggested by @slomo, make the loop more readable and prevent returning + a garbage value to the caller from the previous implementation. + Part-of: + +2022-03-25 10:18:34 -0400 Xavier Claessens + + * meson.build: + Always define ENABLE_NLS + GLib guarantees libintl API is always available, provided by + proxy-libintl as last resort. GLib itself unconditionally define + ENABLE_NLS. + Part-of: + +2022-03-25 10:20:24 -0400 Xavier Claessens + + * gst-libs/gst/gettext.h: + * gst-libs/gst/gst-i18n-app.h: + * gst-libs/gst/gst-i18n-plugin.h: + Delete unused i18n headers + Part-of: + +2022-03-25 09:59:23 -0400 Xavier Claessens + + * ext/alsa/gstalsaelement.c: + * ext/alsa/gstalsaplugin.c: + * ext/alsa/gstalsasink.c: + * ext/alsa/gstalsasrc.c: + * ext/cdparanoia/gstcdparanoiasrc.c: + * ext/gl/gstgltestsrc.c: + * ext/ogg/gstoggdemux.c: + * gst-libs/gst/audio/gstaudiobasesrc.c: + * gst-libs/gst/audio/gstaudiocdsrc.c: + * gst-libs/gst/gl/gstglbasesrc.c: + * gst-libs/gst/pbutils/descriptions.c: + * gst-libs/gst/pbutils/missing-plugins.c: + * gst-libs/gst/pbutils/pbutils.c: + * gst-libs/gst/tag/gsttagdemux.c: + * gst-libs/gst/tag/lang.c: + * gst-libs/gst/tag/tags.c: + * gst/encoding/gstencodebasebin.c: + * gst/encoding/gstencodingelements.c: + * gst/playback/gstdecodebin2.c: + * gst/playback/gstparsebin.c: + * gst/playback/gstplaybackelement.c: + * gst/playback/gstplaybackplugin.c: + * gst/playback/gstplaybin2.c: + * gst/playback/gstplaybin3.c: + * gst/playback/gstplaysink.c: + * gst/playback/gstplaysinkaudioconvert.c: + * gst/playback/gstplaysinkconvertbin.c: + * gst/playback/gstplaysinkvideoconvert.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: + * gst/tcp/gstsocketsrc.c: + * gst/tcp/gsttcpclientsink.c: + * gst/tcp/gsttcpclientsrc.c: + * gst/tcp/gsttcpserversink.c: + * gst/tcp/gsttcpserversrc.c: + * tools/gst-device-monitor.c: + * tools/gst-play.c: + Replace gst-i18n-*.h with gi18n-lib.h + GLib guarantees libintl is always present, using proxy-libintl as + last resort. There is no need to mock gettex API any more. + This fix static build on Windows because G_INTL_STATIC_COMPILATION must + be defined before including libintl.h, and glib does it for us as part + as including glib.h. + Part-of: + +2022-03-25 11:21:03 -0400 Xavier Claessens + + * tools/gst-play.c: + gst-play: Do not split translatable string + Concatenating N_() strings does not work with gi18n.h macro, was working + only with GStreamer's redefinition. + Part-of: + +2021-12-08 11:48:08 +0000 Thibault Saunier + + * gst-libs/gst/gl/meson.build: + cuda: Factor out a public GstCUDA library + So applications and elements implemented outside GStreamer can reuse + our infrastructure + Part-of: + +2022-04-19 11:05:05 -0400 Nicolas Dufresne + + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-frame.c: + video: Fix possible overrun when iterating comp[] array + Fix 2 iterations that can overrun the array if the number of component is + equal to the size of the array. + Part-of: + +2022-04-19 10:53:15 -0400 Nicolas Dufresne + + * gst-libs/gst/video/video-frame.c: + Revert "video-frame: avoid possible out of bound memory access" + This reverts commit c4255f08f787ff6a41504b538fa4c2e911d40ec7. + Part-of: + +2022-04-18 15:44:47 +0530 Nirbheek Chauhan + + * gst-libs/gst/sdp/meson.build: + meson: Add -Wl,-rpath,${libdir} on macOS + We made the gstreamer installation prefix relocatable by picking up + plugins relative to the location of libgstreamer-1.0.dylib, similar to + how it's done for Windows: + https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1627 + This had a lot of side-effects: + https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1051 + https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/363 + https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/371 + https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/362 + A partial fix for the cerbero side of these was: + https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/807 + However, this relied on the consumers knowing that they need to add + `LC_RPATH` entries to the libdir of the prefix. This is done + automatically by build systems like Meson, but not by others, such as + Autotools, CMake, Cargo, XCode, etc. For those, we need to add the + RPATH entries to the gstreamer-1.0.pc file. + This also has the side-effect of fixing the loading of gstreamer rust + plugins on macOS: + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1159 + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1149 + Part-of: + +2022-04-18 18:14:44 +0900 Camilo Celis Guzman + + * gst-libs/gst/video/video-frame.c: + video-frame: avoid possible out of bound memory access + Although the components' initialization code would fill in -1 to all + unset components, make the code a bit more defensive and check for an + index bound first. + Part-of: + +2021-11-12 20:13:10 +0100 Ruben Gonzalez + + * docs/plugins/gst_plugins_cache.json: + gst_plugin_load_file: force plugin reload if diff filename + If a file includes a new version of a plugin that exits in the + registry, the output of gst-inspect is incorrect. The output has the + correct version but incorrect filename, and element description. + This seems to have also fixed some documentation issues. + Part-of: + +2021-05-25 14:41:51 +0200 Guillaume Desmottes + + * gst/playback/gstdecodebin3.c: + decodebin3: fix collection leak + get_merged_collection() returns an owned stream collection and was + leaked in the else block. + Fix leak when running: + GST_TRACERS=leaks GST_DEBUG="GST_TRACER:7,leaks:6" gst-play-1.0 --use-playbin3 test.mkv + Part-of: + +2022-04-15 14:03:08 +0900 hoonhee.lee + + * gst/playback/gstplaybin3.c: + playbin3: fix missing lock when unknown stream type in pad-removed cb + Part-of: + +2022-04-14 15:21:48 +0200 Edward Hervey + + * gst/playback/gstdecodebin3.c: + decodebin3: Don't duplicate stream selections + Make sure that the requested stream selection isn't identical to the current + one. If that's the case, just carry on as usual. + This avoids multiple `streams-selected` posting ... when the selection didn't + change. + Part-of: + +2022-04-14 18:44:48 +0100 Tim-Philipp Müller + + * gst-libs/gst/app/gstappsrc.c: + appsrc: fix annotations + Part-of: + +2022-04-15 19:55:34 +0300 Sebastian Dröge + + * gst-libs/gst/rtp/gstrtpbasepayload.c: + rtpbasepayload: Don't write header extensions if there's no corresponding input buffer for the packet + The GstRTPHeaderExtension API requires the input buffer to exist. + This can happen if the output packet is generated e.g. from a caps or + tags event like in the case for rtpgstpay. + Part-of: + +2022-04-14 20:10:46 +1000 Brad Hards + + * tests/interactive/audio-trickplay.c: + * tests/interactive/benchmark-appsink.c: + * tests/interactive/benchmark-appsrc.c: + * tests/interactive/benchmark-video-conversion.c: + * tests/interactive/input-selector-test.c: + * tests/interactive/meson.build: + * tests/interactive/output-selector-test.c: + * tests/interactive/playback/decodetest.c: + * tests/interactive/playback/test.c: + * tests/interactive/playback/test2.c: + * tests/interactive/playback/test3.c: + * tests/interactive/playback/test4.c: + * tests/interactive/playback/test5.c: + * tests/interactive/playback/test6.c: + * tests/interactive/playback/test7.c: + * tests/interactive/playbin-text.c: + * tests/interactive/position-formats.c: + * tests/interactive/stress-playbin.c: + * tests/interactive/stress-videooverlay.c: + * tests/interactive/test-box.c: + * tests/interactive/test-colorkey.c: + * tests/interactive/test-effect-switch.c: + * tests/interactive/test-header-compile: + * tests/interactive/test-overlay-blending.c: + * tests/interactive/test-resample.c: + * tests/interactive/test-reverseplay.c: + * tests/interactive/test-scale.c: + * tests/interactive/test-textoverlay.c: + * tests/interactive/test-videooverlay.c: + * tests/meson.build: + tests: rename 'icles' subdir to be more descriptive + Part-of: + +2022-04-12 01:35:43 +0900 Seungha Yang + + * tools/meson.build: + meson: gst-play: Restore Windows high-resolution timer support + Fix regression of the commit 2952a73f4083487f33ae83407bef5245d2f8fef2 + Part-of: + +2022-04-12 01:01:23 +0900 Seungha Yang + + * tools/gst-play.c: + * tools/meson.build: + win32: Enable high-resolution timer for MinGW build + timeapi.h is missing in our MinGW toolchain. Include mmsystem.h + header instead, which defines struct and APIs in case of our MinGW + toolchain. Note that in case of native Windows10 SDK (MSVC build), + mmsystem.h will include timeapi.h + Part-of: + +2022-04-12 15:23:08 +0300 Sebastian Dröge + + * gst-libs/gst/rtp/gstrtpbasepayload.c: + Fix `transfer` gobject-introspection annotation typos + Part-of: + +2022-04-10 10:55:02 +1000 Matthew Waters + + * gst/subparse/gstsubparseelement.c: + subparse: don't try to index string with -1 + If the len of the string turns out to be 0, str[len - 1] resolved to + str[-1] which is not a good idea. + Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46543 + Part-of: + +2022-04-08 11:10:49 +1000 Matthew Waters + + * ext/ogg/gstoggstream.c: + * ext/ogg/vorbis_parse.c: + * ext/ogg/vorbis_parse.h: + ogg: fix possible buffer overrun + If an ogg stream does not match our expectations of how the end of a + buffer may be structured, it was possible to read memory past the end of + the buffer parsed by libogg. Include a bounds check for this case and + stop parsing. + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3930 + Part-of: + +2022-04-08 01:52:32 +0200 Mathieu Duponchelle + + * gst-libs/gst/rtp/gstrtpbasepayload.c: + rtpbasepayload: fix transfer annotation for push and push_list + Part-of: + +2022-04-07 10:08:37 +0900 hoonhee.lee + + * gst-libs/gst/riff/riff-media.c: + riff-media: fix memory leak after usage for g_strjoin + This leak is observed with valgrind. + Part-of: + +2022-04-06 18:08:46 +0200 Bastian Krause + + * ext/gl/gstgltransformation.c: + * ext/gl/gstgltransformation.h: + gltransformation: let graphene alloc its structures memory aligned + With NEON instructions enabled, graphene expects the memory passed to it + 16-byte-aligned. Otherwise unaligned memory access faults occur causing + SIGBUS signals. + graphene has alloc functions for its structures that take care of this, + so use them. + See also: https://github.com/ebassi/graphene/issues/215#issuecomment-794744829 + Suggested-by: Sebastian Dröge + Signed-off-by: Bastian Krause + Part-of: + +2022-04-04 10:46:24 +0530 Nirbheek Chauhan + + * gst-libs/gst/app/gstappsrc.c: + appsrc: Clarify buffer ref semantics in signals + The documentation could be read to mean that the caller continuous to + 'own' the buffer, and that there is some other mechanism to find out + when to unref it. + Clarify that "not taking ownership" here means "taking a reference", + and specify that you can unref it at any time after calling the + function. + Part-of: + +2021-01-21 16:01:38 +0800 Zhao Zhili + + * tests/examples/gl/gtk/gstgtk.c: + * tests/examples/playback/playback-test.c: + examples: fix build on macOS with gtk+-quartz-3.0 + gdk_quartz_window_get_nsview is not declared in the header file now: + error: implicit declaration of function 'gdk_quartz_window_get_nsview' + is invalid in C99 [-Werror,-Wimplicit-function-declaration] + fixes #979 + Part-of: + +2022-04-01 21:47:59 +0800 Haihua Hu + + * ext/gl/gstglelement.c: + * sys/ximage/ximage.c: + * sys/xvimage/xvimage.c: + * tests/check/elements/glfilter.c: + * tests/check/elements/glimagesink.c: + * tests/check/elements/glmixer.c: + * tests/check/elements/glstereo.c: + * tools/gst-play.c: + ximagesink/xvimagesink: use GST_XINITTHREADS to ensure call to XInitThreads + Part-of: + +2022-03-30 11:06:02 -0400 Xavier Claessens + + * meson.build: + Use gmodule-no-export-2.0 + We don't need `-Wl,--export-dynamic`, that's used only for executables + that needs to export an API to be used by plugins they load. + Part-of: + +2022-03-25 15:00:20 -0400 Xavier Claessens + + * ext/alsa/meson.build: + * ext/cdparanoia/meson.build: + * ext/libvisual/meson.build: + * ext/ogg/meson.build: + * ext/opus/meson.build: + * ext/pango/meson.build: + * ext/theora/meson.build: + * ext/vorbis/meson.build: + * gst-libs/gst/sdp/meson.build: + * gst/tcp/meson.build: + * gst/videoscale/meson.build: + * gst/videotestsrc/meson.build: + * gst/volume/meson.build: + * meson.build: + * sys/ximage/meson.build: + * sys/xvimage/meson.build: + * tests/check/meson.build: + * tests/examples/app/meson.build: + * tests/examples/audio/meson.build: + * tests/examples/decodebin_next/meson.build: + * tests/examples/dynamic/meson.build: + * tests/examples/encoding/meson.build: + * tests/examples/fft/meson.build: + * tests/examples/gio/meson.build: + * tests/examples/overlay/meson.build: + * tests/examples/playback/meson.build: + * tests/examples/playrec/meson.build: + * tests/examples/seek/meson.build: + * tests/examples/snapshot/meson.build: + * tools/meson.build: + Remove glib and gobject dependencies everywhere + They are part of gst_dep already and we have to make sure to always have + gst_dep. The order in dependencies matters, because it is also the order + in which Meson will set -I args. We want gstreamer's config.h to take + precedence over glib's private config.h when it's a subproject. + While at it, remove useless fallback args for gmodule/gio dependencies, + only gstreamer core needs it. + Part-of: + +2022-03-31 12:47:06 +0200 Xabier Rodriguez Calvar + + * gst-libs/gst/gl/gstglcolorconvert.c: + glcolorconvert: should copy metadatas from the incoming buffer + Part-of: + +2022-04-01 10:25:23 +0300 Sebastian Dröge + + * gst/playback/gstplaybin2.c: + * gst/playback/gstplaybin3.c: + playbin/playbin3: Allow setting a NULL URI + The URI is already initialized to NULL at the beginning and GstPlayer + was assuming that it is possible to set to NULL at a later time too. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1124 + Part-of: + +2022-03-31 23:41:41 +0200 Thibault Saunier + + * gst-libs/gst/video/navigation.c: + * gst-libs/gst/video/navigation.h: + navigation: Rename parse_state to parse_modifier_state + `parse_state` sounds a bit weird and `parse_modifier_state` is clearer. + Part-of: + +2022-03-29 17:51:13 +0200 Stéphane Cerveau + + * gst-libs/gst/gl/meson.build: + * tests/check/libs/gstglmatrix.c: + * tests/check/meson.build: + base:gl: add x11 deps to gstglx11_dep + On MacOS with homebrew the xlib-xcb.h is in + own cellar /opt/homebrew/Cellar/libx11/1.7.3.1/include + Need to add the windowing dependencies to gl tests + Part-of: + +2020-03-30 15:16:29 -0400 Xavier Claessens + + * tests/examples/overlay/meson.build: + overlay: Fix qt support detection + On Ubuntu moc-qt5 command is called moc. This requires Meson 0.54.0 for + the new has_tools() method. + Part-of: + +2022-03-29 22:16:14 +0900 Seungha Yang + + * tools/gst-play-kb.c: + gst-play: Improve Win32 keyboard input handling + The console HANDLE will be keep signalled state unless application + reads console input buffer immediately. So we should read and flush + console input buffer from the thread where the event is signalled, + instead of GMain context thread. + Part-of: + +2021-09-11 12:17:56 -0300 Thibault Saunier + + * meson.build: + * tools/meson.build: + tools: Add support for building gstreamer tools against gst-full + Part-of: + +2022-03-28 18:43:27 +0200 Enrique Ocaña González + + * gst/playback/gstplaysink.c: + playsink: improve GL context sharing + Configure playsink tried element with the bus of the main pipeline. + That tried element can be a gl video sink, which would benefit from being + able to propagate context messages to the main pipeline and have other + internal pipeline elements configured with it. Having different elements + configured with the same GL context allows them to share buffers with + video/x-raw(memory:GLMemory) caps and achieving zero-copy. + Thanks to Alicia Boya García for her work co-debugging + the issue and contributing to find a solution. + Part-of: + +2021-06-09 11:25:36 +0200 Edward Hervey + + * gst/playback/gsturisourcebin.c: + urisourcebin: When streams-aware, remove pads immediately + For the same reason we add them immediately + Part-of: + +2021-06-08 14:31:10 +0200 Edward Hervey + + * gst/playback/gsturisourcebin.c: + urisourcebin: Don't wait for pads content when streams-aware + If the adaptive demux is streams-aware it can add/remove pads at any point in + time without the need for no-more-pads or data blocking + Part-of: + +2021-05-29 07:31:15 +0200 Edward Hervey + + * gst/playback/gsturisourcebin.c: + urisourcebin: Don't do buffering if source already does + Sources that can internally handle buffering shouldn't have yet-another + buffering element after it. This can be simply detected by checking if it can + answer a TIME BUFFERING query just after creation. + If that is the case, we can expose the element source pads directly + Part-of: + +2021-05-28 07:49:10 +0200 Edward Hervey + + * gst/playback/gstdecodebin3.c: + decodebin3: Handle upstream selection + Detect if upstream handles stream-selection, and if so bypass all stream + selection handling (streams are forwarded as-is). + Part-of: + +2022-03-28 12:13:12 +0200 Edward Hervey + + * gst-libs/gst/pbutils/descriptions.c: + pbutils: Fix wmv screen detection + strncmp vs !strncmp :) + Part-of: + +2022-03-28 10:10:45 +0300 Sebastian Dröge + + * docs/plugins/gst_plugins_cache.json: + * gst-libs/gst/video/video-format.h: + video-format: Move NV12_8L128 into the correct position in GST_VIDEO_FORMATS_ALL + Part-of: + +2022-03-16 10:31:56 +0000 Corentin Damman + + * gst/rawparse/gstrawvideoparse.c: + rawvideoparse: set format from caps in gst_raw_video_parse_set_config_from_caps + Part-of: + +2022-03-27 16:35:14 +1100 Matthew Waters + + * ext/gl/gstglmixerbin.c: + glmixerbin: slightly better pad/element creation + Use the return value from gst_element_link_pads() and gst_bin_add() + Fixes: + ../ext/gl/gstglmixerbin.c:305:12: error: variable 'res' set but not used [-Werror,-Wunused-but-set-variable] + gboolean res = TRUE; + ^ + Part-of: + +2022-03-25 13:00:13 +0100 Stéphane Cerveau + + * gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m: + gl: cocoa: fix warnings of unused variables + Part-of: + +2022-03-18 16:59:32 +0000 Thibault Saunier + + * ext/gl/gstglimagesink.c: + * gst-libs/gst/video/navigation.c: + * gst-libs/gst/video/navigation.h: + * sys/ximage/ximagesink.c: + * sys/xvimage/xvimagesink.c: + * tests/check/libs/navigation.c: + * tests/examples/playback/playback-test.c: + navigation: Add support for key Modifiers in all relevant events + Part-of: + +2022-03-24 13:01:52 +0100 Vivienne Watermeier + + * gst-libs/gst/video/navigation.c: + * gst-libs/gst/video/navigation.h: + navigation: Add missing annotation to send_event_simple + Adds the missing "transfer full" annotation for the event argument. + Part-of: + +2022-03-22 21:13:31 +0100 Vivienne Watermeier + + * sys/xvimage/meson.build: + * sys/xvimage/xvcontext.c: + * sys/xvimage/xvcontext.h: + * sys/xvimage/xvimagesink.c: + xvimagesink: Add touch event support + Send touch events for XI_TouchBegin, XI_TouchEnd, and XI_TouchUpdate + events, grouping events with identical timestamps into one TOUCH_FRAME. + Part-of: + +2022-02-03 15:01:46 +0100 Vivienne Watermeier + + * meson_options.txt: + * sys/meson.build: + * sys/ximage/meson.build: + * sys/ximage/ximagesink.c: + * sys/ximage/ximagesink.h: + ximagesink: Add touch event support + Send touch events for XI_TouchBegin, XI_TouchEnd, and XI_TouchUpdate + events, grouping events with identical timestamps into one TOUCH_FRAME. + Part-of: + +2022-01-31 20:25:23 +0100 Vivienne Watermeier + + * gst-libs/gst/video/navigation.c: + * gst-libs/gst/video/navigation.h: + navigation: Add API for touchscreen events + Add 5 new navigation event types for touchscreen events, with the same + naming and meaning as in libinput - touch-down, touch-motion, touch-up, + touch-frame and touch-cancel - as well as constructors and parse + functions for them. + Part-of: + +2022-02-14 16:08:23 +0100 Vivienne Watermeier + + * ext/gl/gstglimagesink.c: + * ext/gl/gstglsinkbin.c: + * ext/gl/gstgltransformation.c: + * gst/playback/gstplaybin2.c: + * gst/playback/gstplaybin3.c: + * gst/playback/gstplaysink.c: + * gst/videoscale/gstvideoscale.c: + * sys/ximage/ximagesink.c: + * sys/xvimage/xvimagesink.c: + * tests/check/libs/navigation.c: + * tests/examples/playback/playback-test.c: + all: Use new navigation interface and API + Use and implement the new navigation interface in all relevant sink elements, + and use API functions everywhere instead of directy accessing the event structure. + Part-of: + +2022-02-14 14:22:29 +0100 Vivienne Watermeier + + * gst-libs/gst/video/navigation.c: + * gst-libs/gst/video/navigation.h: + navigation: Add coordinate helper functions + Add a function to get x/y coordinates from suitable navigation events, + and one to create a copy with given coordinate values. + For e.g. translating event coordinates, this avoids having to either + switch on the event type to select the right parse function, or + having to rely on implementation details of the underlying event + structure. + Part-of: + +2022-02-14 14:06:12 +0100 Vivienne Watermeier + + * gst-libs/gst/video/navigation.c: + * gst-libs/gst/video/navigation.h: + * tests/check/libs/struct_aarch64.h: + * tests/check/libs/struct_arm.h: + * tests/check/libs/struct_i386.h: + * tests/check/libs/struct_i386_osx.h: + * tests/check/libs/struct_ppc32.h: + * tests/check/libs/struct_ppc64.h: + * tests/check/libs/struct_x86_64.h: + navigation: Improve interface to avoid exposing implementation details + This deprecates the current send_event interface, and the wrapper + functions based on it, replacing it with a send_event_simple interface and + wrapper function. Together with the new event constructors, this avoids + implementations having to directly access the underlying structure. + Part-of: + +2022-03-18 16:34:38 -0400 Nicolas Dufresne + + * docs/plugins/gst_plugins_cache.json: + doc: Update cache after NV12_8L128 addition + Part-of: + +2021-08-12 11:00:11 +0800 Ming Qian + + * 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: + * tests/check/elements/videoscale.c: + * tests/check/libs/video.c: + video: Add support for linear 8x128 NV12 tiles and 10bit BE tiles + This adds linear 8x128 NV12 based tiles and NV12 10bit big endian tiles. + These formats are used by i.MX 8QXP/8QM VPU and exposed in V4L2. + Part-of: + +2022-03-18 13:42:27 +0530 Nirbheek Chauhan + + * meson.build: + meson: Bump all meson requirements to 0.60 + Lots of new warnings ever since + https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934 + Part-of: + +2022-03-18 20:43:24 +1100 Matthew Waters + + * gst-libs/gst/pbutils/gstdiscoverer-types.c: + discoverer: chain up to parent finalize methods in all our types + Fixes a memory leak: + Direct leak of 32 byte(s) in 1 object(s) allocated from: + #0 0x5ac5cd in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:129:3 + #1 0x1007007 in g_malloc /work/glib-2.72.0/_builddir/../glib/gmem.c:125:13 + #2 0xf82e82 in g_data_set_internal /work/glib-2.72.0/_builddir/../glib/gdataset.c:464:8 + #3 0xf833f7 in g_datalist_id_set_data_full /work/glib-2.72.0/_builddir/../glib/gdataset.c:670:3 + #4 0xef81be in g_object_notify_queue_freeze /work/glib-2.72.0/_builddir/../gobject/gobject.c:295:7 + #5 0xef79c6 in g_object_unref /work/glib-2.72.0/_builddir/../gobject/gobject.c:3632:16 + #6 0x5e58bf in LLVMFuzzerTestOneInput /src/gstreamer/ci/fuzzing/gst-discoverer.c:132:5 + #7 0x4dd1a2 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15 + #8 0x4dc98a in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3 + #9 0x4de6c4 in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:809:5 + #10 0x4dea29 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:857:3 + #11 0x4ce4a0 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6 + #12 0x4f6f52 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10 + #13 0x7f1c709980b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2) + Part-of: + +2022-01-17 16:10:37 +0100 Vivienne Watermeier + + * ext/gl/gstglvideomixer.c: + * tests/check/libs/gstglvideomixerelement.c: + * tests/check/meson.build: + glvideomixerelement: send translated navigation events to the relevant sink pads + Part-of: + +2022-01-05 19:33:06 +0100 Vivienne Watermeier + + * gst/compositor/compositor.c: + * tests/check/elements/compositor.c: + compositor: send translated navigation events to the relevant sink pads + Fixes #888 + Part-of: + +2022-03-15 13:59:16 +0100 Corentin Noël + + * gst-libs/gst/audio/gstaudiodecoder.h: + * gst-libs/gst/audio/gstaudioringbuffer.c: + * gst-libs/gst/audio/gstaudiosink.h: + * gst-libs/gst/audio/gstaudiosrc.h: + * gst-libs/gst/video/gstvideoaggregator.h: + * gst-libs/gst/video/video-chroma.c: + * gst-libs/gst/video/video-scaler.c: + gst-plugins-base: Fix several annotations + Add annotations for virtual methods when possible. + Part-of: + +2021-12-16 18:41:38 +0000 Tim-Philipp Müller + + * docs/plugins/gst_plugins_cache.json: + * ext/opus/gstopusenc.c: + opusenc: change default bitrate-type from cbr to constrained-vbr + Which is the default in libopus itself as well, with a comment + that constrained-vbr is considered "safer for real-time use". + Unclear why CBR was the default in the first place. + Part-of: + +2022-03-15 12:57:49 +0530 Nirbheek Chauhan + + * gst-libs/gst/rtp/gstrtpbuffer.c: + rtpbuffer: The out args for rtp extension data are optional + The code checks that these are != NULL before dereferencing them. + Part-of: + +2022-03-10 10:25:53 +0100 Bastien Nocera + + * gst-libs/gst/video/convertframe.c: + * meson.build: + convertframe: Add support for GL-memory backend GstFrame input + Add "gldownload" early in the pipeline so that GL-memory backed raw + frames can be downloaded and processed on the CPU. + Closes: #1073 + Part-of: + +2022-03-11 18:08:14 -0500 Xavier Claessens + + * gst-libs/gst/gl/meson.build: + Meson: Set install_tag on some files + Meson tries to guess the tag (runtime, devel, etc) for every installed + file, but it cannot guess them all. There is a list at the end of + meson-log.txt of files we need to tag manually. + See https://mesonbuild.com/Installing.html#installation-tags. + Part-of: + +2022-03-02 03:45:48 +1100 Jan Schmidt + + * gst/playback/gstplaybin3.c: + playbin3: Remove stale code + Remove now-unused get_stream_type_for_event() function. + Part-of: + +2022-01-21 16:23:38 +0100 Edward Hervey + + * gst/playback/gstdecodebin3.c: + decodebin3: Reset parsebin when new caps arrive + Check if parsebin can handle the new caps, and if not reset it so that it can + reconfigure itself for the new stream format. + Part-of: + +2022-03-09 10:15:08 +0100 Edward Hervey + + * gst/playback/gstdecodebin3.c: + decodebin3: Convert checks to assertions + "decodebin.input" is never resetted and should always be present, therefore make + it an assertion check + Part-of: + +2022-01-21 14:52:07 +0100 Edward Hervey + + * gst/playback/gstparsebin.c: + parsebin: Implement ACCEPT_CAPS handling + The default query handler would go through typefind, which by default accepts + any CAPS. But once configured, parsebin can't reconfigure itself, it should + therefore pass through the ACCEPT_CAPS query to the first element after + typefind (if any). + Part-of: + +2022-01-18 05:48:08 +1100 Jan Schmidt + + * gst/playback/gstplaybin3.c: + playbin3: Hold playbin lock on pad-added + Take the playbin lock when accessing the combiner + to add a new pad to link to. Fixes races against + streams-selected messages triggering reconfiguration. + Part-of: + +2022-01-18 02:52:47 +1100 Jan Schmidt + + * gst/playback/gstplaybin3.c: + playbin3: Reconfigure on streams-selected message. + Don't reconfigure outputs when the select-streams + event is sent from the app, as the selection may + not take effect for some time. Instead, wait + for the pipeline to confirm the new set of + selected streams when it sends the message. + Part-of: + +2021-11-11 03:20:23 +1100 Jan Schmidt + + * gst/playback/gstplaysink.c: + playsink: Fix reconfiguration after removing text_sink + If we previously had subtitles coming in, the video + may be chained through a text overlay block. Before, + the code would end up trying to link pads that were + already linked and video would not get reconnected + properly. + To fix that, make sure that the candidate + pads are actually unlinked first. If a textoverlay + is present and no longer needed, it will be cleaned + up later in the reconfiguration sequence. + Part-of: + +2021-08-06 19:27:02 +1000 Jan Schmidt + + * gst/playback/gstplaysink.c: + playsink: Complete reconfiguration on pad release. + Requesting a new pad can start a reconfiguration cycle, where + playsink will block all input pads and wait for data on them + before doing internal reconfiguration. If a pad is released, + that reconfiguration might never trigger because it's now waiting + for a pad that doesn't exist any more. + In that case, complete the reconfiguration on pad release. + Part-of: + +2022-03-08 09:46:33 +0100 Edward Hervey + + * gst-libs/gst/pbutils/codec-utils.c: + * gst-libs/gst/pbutils/codec-utils.h: + * tests/check/libs/pbutils.c: + pbutils: Add function to parse RFC 6381 codecs field + This is the opposite of `gst_codec_utils_caps_get_mime_codec()`, which allows + elements to get the `GstCaps` + Part-of: + +2022-03-09 16:02:06 +0530 Nirbheek Chauhan + + * gst-libs/gst/rtp/gstrtpbasepayload.c: + * tests/check/libs/rtpbasepayload.c: + rtpbasepayload: Remove dead twcc code + This feature was removed in 7a53fbad68d702ca4905f7da223f4d2884548edc, + but this code was left behind. + Part-of: + +2021-12-14 16:14:56 +0100 Edward Hervey + + * gst/subparse/gstsubparse.c: + subparse: Handle GAP events before buffers + Make sure we did initial negotiation and segment pushing if we get GAP events + before buffers. + Part-of: + +2021-11-17 15:30:38 +0100 Edward Hervey + + * gst-libs/gst/tag/gsttagdemux.c: + tagdemux: Properly propagate sequence numbers + If we received a time segment from upstream, we need to make sure we propagate + it downstream with the same sequence number. + Part-of: + +2022-03-02 03:43:00 +1100 Jan Schmidt + + * gst/playback/gstplaybin3.c: + playbin3: Add lock to protect buffering messages + Fix a small race where a group can receive stream-start + and post a pending buffering message just as another + thread posts a different buffering message, causing them + to be received by the application out of order. In the + worst case, this leads the application receiving a + stale 99% buffering message and going back to buffering + right after the 100% buffering message. + Part-of: + +2022-03-02 12:15:19 +0800 Hou Qi + + * gst/encoding/gstencodebasebin.c: + encodebasebin: Use GST_DEBUG instead of GST_ERROR when skipping muxer + _get_muxer() skips the muxers that do not satisfy the requirement and select + the desired one. It should not print error log, so use debug log instead. + Part-of: + +2022-03-04 22:21:13 +0900 Seungha Yang + + * gst-libs/gst/gl/gstgldisplay.c: + gldisplay: Reorder GST_GL_WINDOW check for egl-device + "egl-device" should be checked before the "egl", otherwise unexpected egl will be picked + Part-of: + +2022-02-24 01:41:34 +1100 Jan Schmidt + + * tools/gst-play.c: + gst-play: Allow switching to previous tracks + Implement case sensitive key-press handling, + and make 'V', 'A', 'S' switch to the previous + video, audio, or subtitle track. The lower-case + keypress cycles to the next track, as before + Part-of: + +2021-09-01 14:02:29 +1000 Matthew Waters + + * gst-libs/gst/sdp/gstsdpmessage.c: + * tests/check/libs/sdp.c: + sdp: support multiple rid parameters + As specified formally in RFC8851 + Each rid description is placed in its own caps field in the structure. + This is very similar to the already existing extmap-$id sdp<->caps + transformations that already exists. + The mapping is as follows: + a=rid:0 direction ';'-separated params + where direction is either 'send' or 'recv' + gets put into a caps structure like so: + rid-0=(string)<"direction","param1","param2",etc> + If there are no rid parameters then the caps structure is generated to + only contain the direction as a single string like: + rid-0=(string)direction + Part-of: + +2022-03-02 00:52:22 +1100 Jan Schmidt + + * gst/playback/gsturidecodebin3.c: + uridecodebin3: Remove dead variables + Leftover junk from original port + Part-of: + +2022-02-21 10:49:15 +0100 Sebastian Fricke + + * gst-libs/gst/tag/licenses.c: + Remove the uninstalled term + Remove the symbolic link `gst-uninstalled` which points to `gst-env`. + The `uninstalled` is the old name and the project should stick to a + single name for the procedure. + Remove the term from all the files, exceptions are variables from + dependencies like `uninstalled_variables` from pkgconfig and + `meson-uninstalled`. + Adjust mentions of the script in the documentation and README. + Part-of: + +2022-02-23 11:10:11 +0100 Sebastian Fricke + + * README.md: + Maintain build instructions at a single location + Do not maintain similar build instructions within each gst-plugins-* + subproject and the subproject/gstreamer subproject. Use the build + instructions from the mono-repository and link to them via hyperlink. + Part-of: + +2021-12-10 15:51:51 +0100 Célestin Marot + + * gst-libs/gst/video/video-info.c: + video-info: encoded format can have RGB color-matrix (Fixes #1435) + Part-of: + +2022-02-27 13:19:49 +0200 Sebastian Dröge + + * gst-libs/gst/video/video-format.c: + video-format-info: Use correct parameter name in gst_video_format_info_extrapolate_stride() docs + ../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.c:7570: Warning: GstVideo: gst_video_format_info_extrapolate_stride: unknown parameter 'info' in documentation comment, should be 'finfo' + Part-of: + +2022-02-16 18:49:52 +0200 Sebastian Dröge + + * docs/plugins/gst_plugins_cache.json: + * gst-libs/gst/audio/audio-converter.c: + * gst-libs/gst/audio/audio-converter.h: + * gst/audioconvert/gstaudioconvert.c: + * gst/audioconvert/gstaudioconvert.h: + audioconvert: Add dithering-threshold property + By default, no dithering is applied if the target bit depth is above 20 + bits. This new property allows to apply dithering nonetheless in these + cases. + Part-of: + +2022-02-16 13:28:52 +0200 Sebastian Dröge + + * gst-libs/gst/audio/audio-quantize.c: + audio-quantize: Switch dither PRNG from LCG to xorshift + While this is slightly more expensive (~48% slower per random number) it + does not cause any measurable difference when running through a complete + audio conversion pipeline. + On the other hand its random numbers are of much higher quality and on + spectrograms for 32 bit to 24 bit conversion the difference is clearly + visible. + Part-of: + +2022-01-22 01:30:57 +1100 Jan Schmidt + + * tools/gst-play.c: + gst-play: Fix trick-mode handling. + The instant-rate value in the TrickMode enum is a + flag, but the other values are not. Move instant-rate + to the end of the enum and give it a value large enough + for it to be used without modifying the trick-mode + setting. + Part-of: + +2022-02-24 10:09:50 +0200 Sebastian Dröge + + * tests/check/elements/appsrc.c: + appsrc: Store strong references to the expected buffers in the tests + Otherwise the buffers might already be freed as they were only owned by + the GstSample / appsrc and potentially don't survive until the pad + probe, as observed in some CI runs of the tests. + Part-of: + +2022-02-22 15:08:48 +0100 Jan Alexander Steffens (heftig) + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: Correct use of start_time/end_time + When 29713c5d changed most uses of `start_time` and `end_time` to + `start_running_time` and `end_running_time`, it missed two. + Fixes: 29713c5d40a1d7d1f21dada68f55f7a97f0b7025 + Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1038 + Part-of: + +2022-02-22 10:54:23 +0200 Sebastian Dröge + + * gst-libs/gst/rtp/gstrtpbasepayload.c: + rtpbasepayload: Copy all buffer metadata instead of just GstMetas for the input meta buffer + This gives RTP header extensions some more metadata to work from. + Part-of: + +2022-02-21 14:23:27 +0200 Sebastian Dröge + + * gst-libs/gst/gl/egl/gstglmemoryegl.c: + * gst-libs/gst/gl/egl/gstglmemoryegl.h: + * gst-libs/gst/gl/gstglbasememory.c: + * gst-libs/gst/gl/gstglbasememory.h: + * gst-libs/gst/gl/gstglbuffer.c: + * gst-libs/gst/gl/gstglbuffer.h: + * gst-libs/gst/gl/gstglmemory.c: + * gst-libs/gst/gl/gstglmemory.h: + * gst-libs/gst/gl/gstglmemorypbo.c: + * gst-libs/gst/gl/gstglmemorypbo.h: + * gst-libs/gst/gl/gstglrenderbuffer.c: + * gst-libs/gst/gl/gstglrenderbuffer.h: + gl: Mark GL memory GType functions as deprecated + They can't be used in any useful way. The type of every GstMemory is + always GST_TYPE_MEMORY and the subtyping relationship has to be + implemented on top of that via the associated allocator and mem_type + string. + Part-of: + +2022-02-21 15:12:04 +0200 Sebastian Dröge + + * gst-libs/gst/gl/gstgldisplay.c: + * gst-libs/gst/gl/gstglshaderstrings.c: + gl: Add `#ifndef GST_REMOVE_DEPRECATED` for existing deprecated API + Part-of: + +2022-02-21 15:08:44 +0200 Sebastian Dröge + + * gst-libs/gst/gl/gstgldisplay.c: + gl: Add versioned `Deprecated` marker to gst_gl_display_find_window + Part-of: + +2022-02-21 15:05:55 +0200 Sebastian Dröge + + * gst-libs/gst/gl/gstgldisplay.h: + * gst-libs/gst/gl/gstglshaderstrings.h: + gl: Replace existing G_DEPRECATED_FOR usage with GST_GL_DEPRECATED_FOR + Part-of: + +2022-02-21 15:02:02 +0200 Sebastian Dröge + + * gst-libs/gst/gl/gl-prelude.h: + gl: Add GST_GL_DEPRECATED + Part-of: + +2022-02-20 14:05:05 +0100 Sebastian Groß + + * gst-libs/gst/pbutils/gstaudiovisualizer.c: + audiovisualizer: shader: Fix dframe out of bound write + shader_fade_and_move_horiz_out writes a complete stride at the end of its + dframe data + This led to SIGSEGV since the stride reached into sframe->map[0]->memory + which could not be umpapped later on. + This is due to `d` is increased twice. Once at the end of the upper loop + and at the start of the lower loop. + The corresponding dframe stride is therefore skipped. + Rewind `d` and start at the correct position. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1702 + Part-of: + +2022-02-20 15:20:07 -0500 Nicolas Dufresne + + * docs/plugins/gst_plugins_cache.json: + doc: Add NV12_16L32S into the cache + Autogenerated by CI + Part-of: + +2022-02-18 15:25:17 -0500 Nicolas Dufresne + + * tests/check/libs/video.c: + tests: video: Add a unit test for stride extrapolation + This is a minimal unit test the show that the stride extrapolation can work + with all pixel format we support. This minimal verify that the extrapolation + match the stride we set into GstVideoInfo with 320x240 for all the pixel + format we support. The tiles formats are skipped, since their stride is + set as two 16bit integers, and we also skip over palette planes. + Part-of: + +2022-01-25 14:04:13 -0500 Nicolas Dufresne + + * gst-libs/gst/video/video-format.c: + * gst-libs/gst/video/video-format.h: + video: Add an helper to extrapolate strides + Many of the legacy APIs, specifically in the Linux Kernel, have a + single stride for the pictures. In this context, it is common + to extrapolate the other strides based on the selected pixel + format. Such function have been copy pasted from video4linux2 + plugin into wayland, kms and v4l2codecs plugins. + This patch implements a generalized from of that function and + make it available to everyone through the video library. + Part-of: + +2021-12-02 21:46:59 -0500 Nicolas Dufresne + + * 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-frame.c: + * gst-libs/gst/video/video-info.c: + * gst-libs/gst/video/video-tile.h: + * tests/check/elements/videoscale.c: + * tests/check/libs/video.c: + video: Add NV12_16L32S aka Mediatek MM21 support + Unlike other simple tiled formats, the Mediatek HW use different tile size + per-plane. The tile size is scaled according to the subsampling. Effectively, + using the name 16L32S to represent linearly layout tiles of size 16x32 bytes + in the Y plane, and 16x16 in the UV plane. In order to make this specificity + discoverable, a new SUBTILES flags have been added. + Part-of: + +2022-02-19 01:58:20 +0900 Seungha Yang + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: Use floor() to calculate current position + ... instead of round(). Depending on framerate, calculated position + may not be clearly represented by using uint64, 30000/1001 for example. + Then the result of round() can be sliglhtly larger (1ns) than + buffer timestamp. And that will cause unnecessary frame delay. + Part-of: + +2021-10-28 17:09:34 -0400 Nicolas Dufresne + + * gst-libs/gst/audio/gstaudioencoder.c: + base: audioencoder: Keep serialize event behind buffers + If a serialized event arrives behind a buffer, it should not be send before + it. This fixes the pending event handling so that only early pending events, + the one that arrrived or was generated while the adapter was empty get send + before pushing buffer. All other events are not pushed after. + This issue lead the latency tracer to think our audio encoder did not have any + latency. This was testing with opusenc in a live pipeline. + Part-of: + +2022-02-06 22:54:42 +0900 Seungha Yang + + * gst-libs/gst/pbutils/missing-plugins.c: + gstinfo,ptpclock,libcheck: Use GetCurrentProcessId() instead of getpid() on Windows + getpid() shouldn't be used in case of UWP. Use GetCurrentProcessId() + instead which provides exactly the same functionality and can be + used with UWP as well. + Part-of: + +2021-10-01 20:27:28 +0900 Seungha Yang + + * gst-libs/gst/gl/winrt/gstglwindow_winrt_egl.cpp: + * meson.build: + * tests/examples/seek/instant-rate-change.c: + meson: Do hard build error for some MSVC warnings + Handle various MSVC warnings as errors for development version. + Part-of: + +2022-02-08 23:30:00 +0900 Seungha Yang + + * tests/examples/seek/instant-rate-change.c: + Remove some trailing white spaces + Part-of: + +2022-01-07 20:02:46 +0900 Seungha Yang + + * gst-libs/gst/video/gstvideoaggregator.c: + * tests/check/elements/compositor.c: + videoaggregator: Fix for unhandled negative rate + Nagative rates have been considered only in + gst_video_aggregator_advance_on_timeout(). Update other places + to fix broken reverse playback. + Part-of: + +2021-08-25 20:18:20 +0900 Seungha Yang + + * gst/typefind/gsttypefindfunctions.c: + * tests/check/gst/typefindfunctions.c: + typefindfunctions: Fix WebVTT format detection + If WebVTT file consists of "WebVTT" header without body, + the file size can be smaller than 10 bytes. + Part-of: + +2022-01-31 13:01:10 +0100 Vivienne Watermeier + + * gst-libs/gst/video/navigation.c: + * gst-libs/gst/video/navigation.h: + navigation: add more constructors for navigation events + Part-of: + +2022-02-07 09:30:58 +0100 David Svensson Fors + + * gst-libs/gst/pbutils/codec-utils.c: + codec-utils: Avoid out-of-bounds error + For artificial input (in unit tests), all six bytes of + constraint_indicator_flags in hevc_caps_get_mime_codec() can be + zero. Add a guard against an out-of-bounds error that occurred in that + case. Change variables to signed int so comparison with -1 works. + Part-of: + +2020-07-17 14:37:14 +1000 Jan Schmidt + + * gst/videotestsrc/gstvideotestsrc.c: + * gst/videotestsrc/gstvideotestsrc.h: + videotestsrc: Don't re-render every frame when it's not needed. + When the pattern being rendered by videotestsrc doesn't have motion, + cache a rendered buffer and output it repeatedly with updated + metadata. + Based on a patch by Edward Hervey + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/10 + Part-of: + +2021-12-22 18:46:44 +0000 Thibault Saunier + + * gst-libs/gst/video/navigation.h: + navigation: Fix Since marker for mouse scroll + Part-of: + +2022-02-03 01:04:40 +0900 Seungha Yang + + * gst-libs/gst/video/video-color.c: + video-color: Fix for missing clipping in PQ EOTF function + * Add missing clipping in EOTF + * Use pre-calculated values + * Update variable names to specification's defined ones + Part-of: + +2022-02-04 11:15:47 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + +=== release 1.20.0 === + +2022-02-03 19:53:25 +0000 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * README: + * RELEASE: + * gst-plugins-base.doap: + * meson.build: + Release 1.20.0 + +2022-02-03 19:53:18 +0000 Tim-Philipp Müller + + * ChangeLog: + Update ChangeLogs for 1.20.0 + +2022-02-03 18:18:03 +0000 Tim-Philipp Müller + + * gst-libs/gst/video/meson.build: + * gst-libs/gst/video/video.c: + * gst-libs/gst/video/video.h: + video: fix up GstVideoOrientationMethod type registration + ... in order to make older g-i happy (~1.60) which doesn't like + freeform descriptions in the value_name field. Which in turn + then makes hotdoc happy instead of erroring out when we bump + the symbol index version. + We usually only (ab)use the name field for description strings + for private plugin enums, not for public API visible to bindings. + This lets glib-mkenum generate the _get_type() function for the + enum again, which in turn will generate the expected value names + to match the enums. + We might be able to add this back later once we can upgrade the + g-i version requirement (and the documentation job image). + This reverts most of commit b0aab48cdcf0a454d14aeb4d907209d8ee3f1add + +2021-11-21 17:52:48 -0500 Jeremy Cline + + * gst-libs/gst/tag/gsttagdemux.c: + tagdemux: Fix crash when presented with malformed files + There's a race condition in gsttagdemux.c between typefinding and the + end-of-stream event. If TYPE_FIND_MAX_SIZE is exceeded, + demux->priv->collect is set to NULL and an error is returned. However, + the end-of-stream event causes one last attempt at typefinding to occur. + This leads to gst_tag_demux_trim_buffer() being called with the NULL + demux->priv->collect buffer which it attempts to dereference, resulting + in a segfault. + The malicious MP3 can be created by: + printf "\x49\x44\x33\x04\x00\x00\x00\x00\x00\x00%s", \ + "$(dd if=/dev/urandom bs=1K count=200)" > malicious.mp3 + This creates a valid ID3 header which gets us as far as typefinding. The + crash can then be reproduced with the following pipeline: + gst-launch-1.0 -e filesrc location=malicious.mp3 ! queue ! decodebin ! audioconvert ! vorbisenc ! oggmux ! filesink location=malicious.ogg + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/967 + Part-of: + +2022-02-01 05:07:04 +0530 Nirbheek Chauhan + + * docs/meson.build: + docs: Add objc and objcpp files to hotdoc gst_c_sources + Hotdoc should be able to extract and parse comments out of these. Just + need to be careful to only add the glob in directories that actually + contain *.m (objc) and *.mm (objcpp) files. + Also fix some doc comments and remove redundant ones. + Part-of: + +=== release 1.19.90 === + +2022-01-28 14:28:35 +0000 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * gst-plugins-base.doap: + * meson.build: + Release 1.19.90 + +2022-01-28 14:28:28 +0000 Tim-Philipp Müller + + * ChangeLog: + Update ChangeLogs for 1.19.90 + +2022-01-27 14:22:26 +0200 Sebastian Dröge + + * gst-libs/gst/rtp/gstrtphdrext.c: + rtphdrext: Return non-floating references from `gst_rtp_header_extension_create_from_uri()` + The header extension objects are never getting a parent object and using + floating references only complicates usage, especially via dynamic API + like signals. + Part-of: + +2022-01-27 14:26:26 +0200 Sebastian Dröge + + * gst-libs/gst/rtp/gstrtphdrext.c: + rtphdrext: Use `set_metadata()` instead of `set_static_metadata()` + The latter needs a static string. + Part-of: + +2022-01-26 00:02:49 +0100 Mathieu Duponchelle + + * gst-libs/gst/audio/audio-info.c: + * gst-libs/gst/audio/audio-info.h: + * gst-libs/gst/video/video-info.c: + * gst-libs/gst/video/video-info.h: + VideoInfo, AudioInfo: fix usage with python bindings + * Expose an actual constructor from caps + * Error out in overrides for code that was using the "manual + allocation" pattern which only worked by chance. Direct + the script writer to the new_from_caps constructor instead. + Fixes https://gitlab.freedesktop.org/gstreamer/gst-python/-/issues/47 + Part-of: + +2022-01-27 01:38:12 +0000 Tim-Philipp Müller + + * po/de.po: + * po/fr.po: + * po/ro.po: + gst-plugins-base: update translations + Part-of: + +2022-01-24 12:26:25 +0200 Vivia Nikolaidou + + * gst-libs/gst/audio/gstaudioaggregator.c: + audioaggregator: Return NOT_NEGOTIATED when the configuration is invalid + Otherwise we just end up outputting garbage. + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/957 + Part-of: + +2022-01-26 11:12:34 +0530 Nirbheek Chauhan + + * gst-libs/gst/video/gstvideoaggregator.h: + videoaggregator: Remove extra semicolon in macro usage + This is usually necessary to allow gst-indent to treat it as + a statement, but we do not run gst-indent on headers and we do not + have extra semicolons in other places that this macro is used in the + header. Fixes warnings when using the header: + ``` + In file included from gstreamer/subprojects/gst-plugins-base/gst-libs/gst/video/video.h:185, + from XYZ:9001: + gstreamer/subprojects/gst-plugins-base/gst-libs/gst/video/gstvideoaggregator.h:206:78: warning: ISO C does not allow extra ‘;’ outside of a function [-Wpedantic] + 206 | G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstVideoAggregatorConvertPad, gst_object_unref); + | ^ + gstreamer/subprojects/gst-plugins-base/gst-libs/gst/video/gstvideoaggregator.h:214:181: warning: ISO C does not allow extra ‘;’ outside of a function [-Wpedantic] + 214 | G_DECLARE_DERIVABLE_TYPE (GstVideoAggregatorParallelConvertPad, gst_video_aggregator_parallel_convert_pad, GST, VIDEO_AGGREGATOR_PARALLEL_CONVERT_PAD, GstVideoAggregatorConvertPad); + | ^ + ``` + Part-of: + +2022-01-24 12:57:10 +0200 Vivia Nikolaidou + + * gst/audiotestsrc/gstaudiotestsrc.c: + audiotestsrc: Produce a default channel mask if possible + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/957 + Part-of: + +2021-12-10 20:09:42 +0900 Seungha Yang + + * gst-libs/gst/video/video-converter.c: + video-converter: Fix for broken gamma remap with high bitdepth YUV output + Scale down the matrix before calculating RGB -> YUV matrix + otherwise offset values will be wrong + Fixing pipeline + videotestsrc ! video/x-raw,format=ARGB ! videoconvert gamma-mode=remap ! \ + video/x-raw,format=P010_10LE,colorimetry="bt2020" + Part-of: + +2022-01-23 13:38:37 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: Fix property description for new properties + Part-of: + +2022-01-19 02:42:35 +0100 Mathieu Duponchelle + + * gst/playback/gstdecodebin2.c: + decodebin2: raise multiqueue max-size-bytes + The earlier size of 2 MB was set back in 2009, it doesn't + seem unreasonable to raise it to 8 MB these days. The use + case at hand is matroskademux containing both a video stream + with a very low amount of compression but no decoding latency, + and a H265 stream. + Part-of: + +2021-12-27 03:35:29 +0900 Seungha Yang + + * gst-libs/gst/video/gstvideodecoder.c: + Revert "videodecoder: Forward hdr-format info downstream" + This reverts commit 9b852181d8a1fa2fb1bf3ba898c6ffa04eea3fd4. + It's leftover commit which should've been reverted as a part of + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1148 + Part-of: + +2022-01-20 03:17:58 +0900 Seungha Yang + + * tools/gst-play.c: + * tools/meson.build: + tools: gst-play: Enable Windows high-resolution clock + Apply https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/817 + to gst-play as well, especially for better high-framerate + (60fps or higher) video support, because + 15ms default clock precision (actual value is system dependent) + is not sufficient for such scenario. + Part-of: + +2022-01-15 19:03:33 +0100 Tomasz Andrzejak + + * gst-libs/gst/sdp/gstsdpmessage.c: + * tests/check/libs/sdp.c: + Add FEC SDP message test + Part-of: + +2022-01-15 17:02:52 +0100 Tomasz Andrzejak + + * gst-libs/gst/sdp/gstsdpmessage.c: + sdpmessage: fix mapping single char fmtp params + Part-of: + +2022-01-19 11:05:26 +0200 Sebastian Dröge + + * gst-libs/gst/pbutils/codec-utils.c: + codec-utils: Mark various string return values as `nullable` + Part-of: + +2022-01-18 23:17:49 +0000 Tim-Philipp Müller + + * gst-libs/gst/rtp/gstrtphdrext.h: + rtphdrext: increase GstRTPHeaderExtensionClass padding to LARGE + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/748#note_1223253 + Part-of: + +2022-01-15 10:06:23 +0000 Philippe Normand + + * gst-libs/gst/pbutils/codec-utils.c: + * gst-libs/gst/pbutils/encoding-profile.c: + * gst-libs/gst/pbutils/encoding-target.c: + * gst-libs/gst/pbutils/install-plugins.c: + * gst-libs/gst/pbutils/missing-plugins.c: + * gst-libs/gst/pbutils/pbutils.c: + pbutils: Define one debug category per module + Follow-up of https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1505 + Part-of: + +2022-01-07 18:25:00 +0900 Seungha Yang + + * gst/compositor/compositor.c: + compositor: Always draw if all input buffers are GAP + Otherwise output buffers will contain random scene + (previously rendered or arbitrary initial values) since we don't + draw onto output buffer at all. + Part-of: + +2022-01-06 22:10:18 +0900 Seungha Yang + + * gst-libs/gst/video/gstvideoaggregator.c: + videoaggregator: Don't pass GAP buffer to prepare_frame_start() + Likewise we do check the same condition in prepare_frames_finish(), + ignore GAP buffer (zero size with GST_BUFFER_FLAG_GAP flag) without + any further processing. + Part-of: + +2022-01-13 23:00:41 +0900 Seungha Yang + + * gst/playback/gsturidecodebin.c: + uridecodebin: Fix critical warnings + Don't pass non-GstObject object to there. + Part-of: + +2022-01-09 09:39:32 +0000 Philippe Normand + + * gst-libs/gst/pbutils/codec-utils.c: + pbutils: Simplify h264_caps_structure_get_profile_flags_level a bit + Refactoring, removing one level of indentation from the function. + Part-of: + +2022-01-08 14:57:00 +0000 Philippe Normand + + * gst-libs/gst/pbutils/codec-utils.c: + * tests/check/libs/pbutils.c: + pbutils: H.265 support for gst_codec_utils_caps_get_mime_codec() + The codec_data caps payload is parsed and a MIME codec string is generated + according to the ISO/IEC 14496-15 specification. + Part-of: + +2022-01-08 14:56:06 +0000 Philippe Normand + + * gst-libs/gst/pbutils/codec-utils.c: + * gst-libs/gst/pbutils/encoding-profile.c: + * gst-libs/gst/pbutils/encoding-target.c: + * gst-libs/gst/pbutils/pbutils.c: + * tests/check/libs/pbutils.c: + * tests/check/libs/profile.c: + pbutils: Add a pbutils debug category + Part-of: + +2022-01-07 14:17:46 +0200 Jordan Petridis + + gstglutils: introspection annotations fixups + * gst_gl_ensure_element_data: specify the type for the element arg + * gst_gl_handle_set_context: correctly annotate the display and + gl_ctx as just (out) instead of (inout) + Part-of: + +2022-01-09 14:07:12 +0200 Sebastian Dröge + + * gst-libs/gst/pbutils/codec-utils.c: + codec-utils: Use nullable annotation instead of allow-none for various Opus functions + Part-of: + +2022-01-09 14:05:48 +0200 Sebastian Dröge + + * gst-libs/gst/pbutils/codec-utils.c: + codec-utils: Annotate out parameters for Opus functions as (optional) + Part-of: + +2022-01-09 14:05:11 +0200 Sebastian Dröge + + * gst-libs/gst/pbutils/codec-utils.c: + codec-utils: Add missing annotations to gst_codec_utils_h264_get_profile_flags_level() + And fix some minor typos. + Part-of: + +2022-01-05 02:07:59 +0530 Nirbheek Chauhan + + * docs/meson.build: + * meson.build: + meson: Add explicit check: kwarg to all run_command() calls + This is required since Meson 0.61.0, and causes a warning to be + emitted otherwise: + https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c + https://github.com/mesonbuild/meson/issues/9300 + This exposed a bunch of places where we had broken run_command() + calls, unnecessary run_command() calls, and places where check: true + should be used. + Part-of: + +2021-12-20 21:43:25 +0530 Nirbheek Chauhan + + * gst-libs/gst/audio/gstaudioaggregator.c: + * gst/audioresample/gstaudioresample.c: + audio: Add logging that was useful in figuring out the last commit + Part-of: + +2021-12-20 21:37:18 +0530 Nirbheek Chauhan + + * gst-libs/gst/audio/audio-converter.c: + * gst-libs/gst/audio/audio-resampler.c: + audio-converter: Fix resampling when there's nothing to output + Sometimes we can't output anything because we don't have enough + incoming frames. In that case, the resampler was trying to call + do_quantize() and do_resample() in a loop forever because there would + never be samples to output (so chain->samples would always be NULL). + Fix this by not calling chain->make_func() in a loop -- seems + completely unnecessary since calling it over and over won't change + anything if the make_func() can't output samples. + Also add some checks for the input and / or output being NULL when + doing conversion or quantization. This will happen when we have + nothing to output. + We can't bail early, because we need resampler->samples_avail to be + updated in gst_audio_resampler_resample(), so we must call that and + no-op everything along the way. + Part-of: + +2021-12-16 16:43:37 +0100 Mark Nauwelaerts + + * gst/playback/gsturidecodebin.c: + uridecodebin: use non-floating object as signal argument + ... as was the case with source-setup signal until change of order + in commit 52bca104e447309898ca8904b3914211ec7d4114 + Part-of: + +2021-12-13 16:19:44 +0900 Seungha Yang + + * gst-libs/gst/video/video-info.c: + video-info: Don't assume colorimetry of UHD resolution as BT.2020 + BT.2020 color primaries are designed to cover much wider range of + CIE chromaticity than BT.709, and also it's used for both SDR and HDR + contents. So, the incorrect assumption (i.e., BT.709 as a BT.2020) + is risky and resulting image color tends to be visually very wrong. + Unless there's obvious clue, don't consider color space of high resolution + video stream as BT.2020 + Part-of: + +2021-12-03 01:45:49 +0000 Thibault Saunier + + * gst-libs/gst/meson.build: + * gst-libs/gst/sdp/gstsdpmessage.c: + * gst-libs/gst/sdp/meson.build: + * tests/check/libs/sdp.c: + sdp: Handle level-asymmetry-allowed for H264 streams + The ["level-asymmetry-allowed"] field states that the peer wants the + profile specified in the "profile-level-id" fields but doesn't care + about the level. To express this in GStreamer caps term, we add a + "profile" field in the caps, which reuses the usual "profile" semantics + for H.264 streams and, and remove "profile-level-id" and + "level-asymmetry-allowed" fields. + ["level-asymmetry-allowed"]: https://www.iana.org/assignments/media-types/video/H264 + Part-of: + +2021-11-19 00:09:03 +0100 Thomas Klausner + + * gst/tcp/gstmultifdsink.c: + tcp: fix build on Solaris + Add missing header. + From Claes Nästén via http://gnats.netbsd.org/56509 + Part-of: + +2021-11-16 13:14:25 +0100 Víctor Manuel Jáquez Leal + + * gst/playback/gsturidecodebin3.c: + uridecodebin3: Nullify current item after all play items are freed. + There's a potential race condition with this sort of pipelines on + certain systems (depends on the processing load): + GST_DEBUG_DUMP_DOT_DIR=/tmp \ + gst-launch-1.0 uridecodebin3 uri=file://stream.mp4 ! glupload ! \ + glimagesink --gst-debug=*:4 + Right after the pipeline passes from PAUSED to READY, bin_to_dot_file + dumps uridecodebin3 properties, but current uri and suburi might be + already freed, causing a potential use-after-freed. + This patch makes NULL the current item right after all the play items + are freed. + Part-of: + +2021-11-12 18:26:58 +0530 Nirbheek Chauhan + + * gst-libs/gst/audio/audio-resampler.c: + audio-resampler: Fix segfault when we can't output any frames + Sometimes the resampler has enough space to store all the incoming + samples without outputting anything. When this happens, + gst_audio_resampler_get_out_frames() returns 0. + In that case, the resampler should consume samples and just return. + Otherwise, we get a segfault when gst_audio_resampler_resample() tries + to resample into a NULL 'out' pointer. + Part-of: + +2021-11-11 19:11:25 +0000 Tim-Philipp Müller + + * gst-libs/gst/pbutils/gstpluginsbaseversion.c: + * gst-libs/gst/pbutils/install-plugins.c: + * gst-libs/gst/video/video-frame.c: + * gst-libs/gst/video/videooverlay.c: + docs: fix unnecessary ampersand, < and > escaping in code blocks + Part-of: + +2021-11-09 12:10:50 +0000 Jiri Uncovsky + + * gst-libs/gst/gl/egl/gstglcontext_egl.c: + glcontext/egl: add missing unref + Part-of: + +2021-11-09 12:01:13 +0100 Guillaume Desmottes + + * gst-libs/gst/app/gstappsrc.c: + appsrc: log when segment changes + We were logging when it does not change but not when it does, which is + confusing when reading logs. + Part-of: + +2021-11-03 18:44:03 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + +=== release 1.19.3 === + +2021-11-03 15:43:36 +0000 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * gst-plugins-base.doap: + * meson.build: + Release 1.19.3 + +2021-11-03 15:43:32 +0000 Tim-Philipp Müller + + * ChangeLog: + Update ChangeLogs for 1.19.3 + +2021-11-01 15:48:58 -0400 Matthias Clasen + + * gst-libs/gst/gl/egl/gstglcontext_egl.c: + egl: handle configless contexts + With EGL_KHR_no_config_context, EGL contexts may just not + have an EGLConfig to give you. Deal with it. + Fixes: #858 + Part-of: + +2021-10-30 01:55:38 +0900 Seungha Yang + + * tests/examples/overlay/win32-videooverlay-playbin.c: + examples: win32-videooverlay-playbin: Add a repeat option + ... in order to test pipeline/element reuse cases. + Part-of: + +2021-10-30 16:22:39 +0300 Sebastian Dröge + + * docs/plugins/gst_plugins_cache.json: + * gst-libs/gst/video/video-format.h: + video: Fix order of new video formats + Part-of: + +2021-10-30 15:50:30 +0300 Sebastian Dröge + + * gst-libs/gst/gl/gstglutils.c: + * gst-libs/gst/video/video.c: + base: Fix some annotations + Part-of: + +2021-10-30 00:34:35 +0100 Tim-Philipp Müller + + * tests/examples/playback/playback-test.c: + * tests/examples/seek/jsseek.c: + Use g_pattern_spec_match() instead of g_pattern_match() which is deprecated since glib 2.70 + Fixes compiler warnings with glib 2.70 + Part-of: + +2021-10-23 00:44:57 +0200 Piotrek Brzeziński + + * docs/plugins/gst_plugins_cache.json: + * 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: + * gst-libs/gst/video/video-scaler.c: + video-format: Add support for ARGB64 LE/BE and similar variants + Co-authored-by: Sebastian Dröge + Part-of: + +2021-10-25 11:37:45 +0100 Tim-Philipp Müller + + * meson.build: + meson: require matching GStreamer dep versions for unstable development releases + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/929 + Part-of: + +2021-10-27 22:49:44 +1100 Jan Schmidt + + * gst/playback/gstdecodebin3-parse.c: + decodebin3: Only unblock for GAP events and buffers. + An alternate fix for + https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1239 + and https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1236 + that makes it clear the intent is to only unblock on a GAP event, and + not any others. + Part-of: + +2021-10-26 15:12:16 +0200 Guillaume Desmottes + + * gst/playback/gstparsebin.c: + parsebin: fix critical when sorting pads + If the pad does not have a current caps, get_pad() returns the query + caps which can be ANY. In such case the caps does not have any structure + resulting in a critical warning when calling gst_caps_get_structure(). + Part-of: + +2021-10-23 16:06:54 +0300 Sebastian Dröge + + * gst/typefind/gsttypefindfunctions.c: + typefindfunctions: Use memcmp() instead of a strange macro around strncmp() + Part-of: + +2021-10-23 14:31:59 +0300 Sebastian Dröge + + * gst/typefind/gsttypefindfunctions.c: + typefindfunctions: Add various CMAF brands to the MP4 typefinder + Part-of: + +2021-10-23 14:30:02 +0300 Sebastian Dröge + + * gst/typefind/gsttypefindfunctions.c: + typefindfunctions: Refactor ftyp brands checking + Store known brands in arrays and add a helper function to check them. + Also add all the `iso3` to `isob` ISO brands and the `hlsf` ISO + fragmented brand. + Part-of: + +2021-10-23 14:28:35 +0300 Sebastian Dröge + + * gst/typefind/gsttypefindfunctions.c: + typefindfunctions: Add various other boxes to the list of known top-level MP4 boxes + styp, udta, sidx, ssix, prft, mfra, pdin and meta are in the ISOBMFF + spec and emsg in the CMAF spec. + Part-of: + +2021-10-25 01:01:56 +0100 Tim-Philipp Müller + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/el.po: + * po/en_GB.po: + * po/eo.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/fur.po: + * po/gl.po: + * po/hr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/lt.po: + * po/lv.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ro.po: + * po/ru.po: + * po/sk.po: + * po/sl.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + gst-plugins-base: update translations + Fixes #656 + Part-of: + +2021-10-22 17:54:55 +1100 Matthew Waters + + * gst-libs/gst/gl/meson.build: + gl/egl: install required egl.h header + Fixes build against using the gir. + Part-of: + +2021-10-20 11:56:32 +0200 Guillaume Desmottes + + * gst/playback/gststreamsynchronizer.c: + streamsynchronizer: set running time offset on events + It's cleaner and more generic than overriding the qos events. + Part-of: + +2021-10-18 15:47:00 +0100 Tim-Philipp Müller + + * tests/check/meson.build: + * tests/validate/meson.build: + meson: update for meson.build_root() and .build_source() deprecation + -> use meson.project_build_root() or .global_build_root() instead. + Part-of: + +2021-10-18 00:40:14 +0100 Tim-Philipp Müller + + * docs/meson.build: + * ext/libvisual/meson.build: + * gst-libs/gst/gl/meson.build: + * gst-libs/gst/tag/meson.build: + * meson.build: + * tests/meson.build: + meson: update for dep.get_pkgconfig_variable() deprecation + ... in favour of dep.get_variable('foo', ..) which in some + cases allows for further cleanups in future since we can + extract variables from pkg-config dependencies as well as + internal dependencies using this mechanism. + Part-of: + +2021-10-18 00:03:47 +0100 Tim-Philipp Müller + + * meson.build: + meson: clean up conditional paths after version bump + Part-of: + +2021-02-09 19:56:49 -0300 Thibault Saunier + + * gst-libs/gst/pbutils/gstdiscoverer-types.c: + * gst-libs/gst/pbutils/gstdiscoverer.c: + * gst-libs/gst/pbutils/gstdiscoverer.h: + * gst-libs/gst/pbutils/pbutils-private.h: + * tools/gst-discoverer.c: + discoverer: Set number to stream infos + The idea is that we can reference to streams using this unique number, + within the context of that discoverer info. That number should always + be usable to reference the streams for a specific stream. + Part-of: + +2021-10-20 09:37:40 +0200 Edward Hervey + + * gst-libs/gst/pbutils/gstdiscoverer.c: + discoverer: Don't ref NULL taglist + Fixes warning introduced in 064f7bbbfac9610fd391c45091e35391b80e1212 + Part-of: + +2021-10-19 10:07:55 -0400 Xavier Claessens + + * gst-libs/gst/audio/meson.build: + Revert "audio: Merge simd libs into the main one" + This reverts commit 4d3a200358439e6c76c5dd1be2daae0cceb0e44a. + Part-of: + +2021-10-19 17:07:37 +0300 Sebastian Dröge + + * gst-libs/gst/video/video-overlay-composition.c: + video-overlay-composition: Fix constructor guard to actually allow NULL as parameter + And don't use a NULL rectangle later. + Part-of: + +2021-10-19 19:46:48 +1100 Matthew Waters + + * gst-libs/gst/gl/eagl/gstglcontext_eagl.m: + * gst-libs/gst/gl/gstgldisplay.c: + gl/eagl: fix eagl display creation + The GstGLDisplayType of the display was win32 instead of the required eagl. + Part-of: + +2021-08-31 16:21:09 +1000 Matthew Waters + + * gst-libs/gst/rtp/gstrtpbasepayload.c: + * tests/check/libs/rtpbasepayload.c: + * tests/check/libs/rtpdummyhdrextimpl.c: + tests/rtp/payload: add test for shrinking extension data + Part-of: + +2021-08-24 21:26:54 +1000 Matthew Waters + + * gst-libs/gst/rtp/gstrtpbuffer.c: + * tests/check/libs/rtp.c: + rtp: also support shrinking the extension data + Currently the extension data length specified in the RTP header would + say it was shorter then the data serialised to a packet. When + combining the resulting buffer, the underlying memory would still + contain the extra (now 0-filled) padding data. + This would mean that parsing the resulting RTP packet would potentially + start with a number of 0-filled bytes which many RTP formats are not + expecting. + Such usage is found by e.g. RTP header extension when allocating the + maximum buffer (which may be larger than the written size) and shrinking + to the required size the data once all the rtp header extension data has + been written. + Part-of: + +2021-10-17 13:14:38 +0100 Tim-Philipp Müller + + * ext/vorbis/gstvorbisdec.c: + vorbisdec: don't emit g_warning() on malformed input data + Part-of: + +2021-10-17 13:12:11 +0100 Tim-Philipp Müller + + * ext/theora/gsttheoradec.c: + theoradec: don't emit g_warning() on malformed input stream + Part-of: + +2021-10-17 13:04:14 +0100 Tim-Philipp Müller + + * gst/subparse/gstsubparse.c: + subparse: don't use g_warning() for malformed input + Part-of: + +2021-10-17 11:39:57 +0100 Tim-Philipp Müller + + * tools/meson.build: + tools: Define G_LOG_DOMAIN for various tools as well + Part-of: + +2021-10-01 15:30:27 +0100 Tim-Philipp Müller + + * gst-libs/gst/allocators/meson.build: + * gst-libs/gst/app/meson.build: + * gst-libs/gst/audio/meson.build: + * gst-libs/gst/fft/meson.build: + * gst-libs/gst/gl/meson.build: + * gst-libs/gst/pbutils/meson.build: + * gst-libs/gst/riff/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: + gst-plugins-base: define G_LOG_DOMAIN for all libraries + Fixes #634 + Part-of: + +2021-08-15 01:36:14 +0200 Mathieu Duponchelle + + * docs/plugins/gst_plugins_cache.json: + * gst-libs/gst/audio/gstaudioaggregator.c: + * gst-libs/gst/video/gstvideoaggregator.c: + * gst/compositor/compositor.c: + audio/video aggregator: make use of new aggregator inactive pad API + Part-of: + +2021-10-10 17:07:33 +0100 Philippe Normand + + * gst-libs/gst/pbutils/gstdiscoverer-types.c: + * gst-libs/gst/pbutils/gstdiscoverer.c: + * gst-libs/gst/pbutils/gstdiscoverer.h: + * gst-libs/gst/pbutils/pbutils-private.h: + * tools/gst-discoverer.c: + discoverer: Advertise container-specific tags with a new API + Since commit a55dafe341ac7398e7c37c30d8b760228296da92, stream-scoped tags no + longer appeared as top-level tags, introducing a behaviour regression, specially + for MP3 files. + The `gst_discoverer_info_get_tags()` API now returns all tags detected for the + given media, as documented. + A new API is introduced to get container-specific tags, + `gst_discoverer_container_info_get_tags()`. The discoverer tool was adapted to + use it. `gst_discoverer_info_get_tags()` is now deprecated in favor of + `gst_discoverer_container_info_get_tags()` and + `gst_discoverer_stream_info_get_tags()`. + Fixes #759 + Part-of: + +2021-10-14 18:38:26 +0100 Tim-Philipp Müller + + * meson.build: + meson: bump meson requirement to >= 0.59 + For monorepo build and ugly/bad, for advanced feature + option API like get_option('xyz').required(..) which + we use in combination with the 'gpl' option. + For rest of modules for consistency (people will likely + use newer features based on the top-level requirement). + Part-of: + +2021-10-14 23:02:36 -0300 Thibault Saunier + + * gst/encoding/gstsmartencoder.c: + smartencoder: Force reencoding of vp9 for profiles can't support + If the input file is in a profile we won't be able to output (1 or 3 in BGR + format), simply reencode everything for now. + Once we add support for that case we can remove that code + Part-of: + +2021-10-14 22:55:35 -0300 Thibault Saunier + + * gst-libs/gst/pbutils/encoding-profile.c: + encoding-profile: ignore more fields when creating for discover info + Part-of: + +2021-10-14 22:29:19 -0300 Thibault Saunier + + * gst/encoding/gstsmartencoder.c: + smartencoder: Always plug a vp9parse when encoding vp9 + This way we know that all relevant fields about video format are + added and we avoid renegotiation issues. + Part-of: + +2021-10-05 10:46:26 -0300 Thibault Saunier + + * gst/encoding/gstsmartencoder.c: + smartencoder: Fix renegotiating when reencoding parts of the stream with vpx + In the encoded streams we might not have all the information about the + raw video stream, but when reencoding they end up being specified, even + if those are default values. + As vp8 decoders always output frames in some YUV color space we can + ensure that when upstream doesn't specify any value in its caps we + use the default one which is what we end up doing when decoding/reencoding + anyway, so this way downstream (matroskamux in that case) doesn't need + to be able to renegotiate (which it doesn't). + Part-of: + +2021-10-16 09:29:28 -0300 Thibault Saunier + + * ext/ogg/meson.build: + * ext/vorbis/meson.build: + meson: Mark newly fdkaac/ogg/vorbis as allow fallback + This way when the dep is `auto` we will fallback if the system + dependency is not available. + And use https to get libvorbis + Part-of: + +2021-10-15 22:07:39 -0300 Thibault Saunier + + * gst-libs/gst/gl/meson.build: + meson: Fix warning building GstGLEGL + We forgot to add the `GstGL` gir as a dependency which was properly + done for GstGLWayland and GstGLX11. + And document why we use a list for `all_libraries` + Part-of: + +2021-10-12 15:52:48 -0300 Thibault Saunier + + * docs/meson.build: + meson: Streamline the way we detect when to build documentation + Part-of: + +2020-06-27 00:39:00 -0400 Thibault Saunier + + * docs/meson.build: + * gst-libs/gst/allocators/meson.build: + * gst-libs/gst/app/meson.build: + * gst-libs/gst/audio/meson.build: + * gst-libs/gst/fft/meson.build: + * gst-libs/gst/gl/meson.build: + * gst-libs/gst/pbutils/meson.build: + * gst-libs/gst/riff/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.build: + meson: List libraries and their corresponding gir definition + Introduces a `libraries` variable that contains all libraries in a + list with the following format: + ``` meson + libraries = [ + [pkg_name, { + 'lib': library_object + 'gir': [ {full gir definition in a dict } ] + ], + .... + ] + ``` + It therefore refactors the way we build the gir so that we can reuse the + same information to build them against 'gstreamer-full' in gst-build + when linking statically + Part-of: + +2020-06-27 00:37:39 -0400 Thibault Saunier + + * gst-libs/gst/allocators/meson.build: + * gst-libs/gst/app/meson.build: + * gst-libs/gst/audio/meson.build: + * gst-libs/gst/gl/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.build: + meson: Mark files as files() + Making it more robust and future proof + And fix issues that it creates + Part-of: + +2021-10-13 21:28:58 +0200 Piotrek Brzeziński + + * gst-libs/gst/video/video-converter.c: + video-converter: Fix v210->I420 last line conversion + Last line would not be converted correctly if height was an odd number. + Fixed by accounting for data type (8bit vs. 16bit) differences between + respective packing and unpacking functions. + Part-of: + +2021-10-13 16:53:41 +0200 Piotrek Brzeziński + + * gst-libs/gst/video/video-format.c: + video-format: Clean up v210 packing code + Part-of: + +2021-10-13 17:25:41 +0200 Piotrek Brzeziński + + * gst-libs/gst/video/video-converter.c: + video-converter: Add fast paths from I420/YV12, UYVY, Y42B and YUY2 to v210 + Part-of: + +2021-10-14 17:48:59 +1100 Matthew Waters + + * gst-libs/gst/gl/gstglupload.c: + gl/dmabuf: add some debug logging about why things may fail to be uploaded + Part-of: + +2021-09-24 15:02:27 +1000 Matthew Waters + + * gst/playback/gstplaybin2.c: + * gst/playback/gstplaybin3.c: + playbin2/3: autoplug/caps: don't expand caps to ANY + Retrieving the pad template caps from a ghost pad returns ANY which when + merged with any other caps will return ANY. ANY is not very specific + and may cause suboptimal code paths in e.g. decoders that assume the + lowest common denominator when presented with ANY caps. + Fixes negotiating dma-buf with vaapidecodebin between glupload in the + video sink element. + Part-of: + +2021-08-02 17:46:37 +0900 Seungha Yang + + * tests/examples/playback/playback-test.c: + examples: playback-test: Fix for UI resize scenario on Windows + Application needs to notify videosink element of video widget resize + via gst_video_overlay_set_render_rectangle() since WM_SIZE event + wouldn't be notified. + Part-of: + +2020-04-15 23:41:52 -0400 Olivier Crête + + * gst-libs/gst/audio/meson.build: + audio: Merge simd libs into the main one + Actually extract the .o objects from the convience libraries and put + them into the main one. Without this, they will just be referenced by + the .pc file, but it will be unusable because they are not installed. + Part-of: + +2017-08-29 17:21:05 -0400 Olivier Crête + + * ext/gl/gstglimagesink.c: + * ext/gl/gstgltransformation.c: + * ext/gl/gstglutils.c: + * ext/gl/gstglutils.h: + * ext/gl/gstglvideomixer.c: + * gst-libs/gst/gl/gstglutils.c: + * gst-libs/gst/gl/gstglutils.h: + * gst-libs/gst/gl/gstglutils_private.h: + glutils: Export affine transformation functions for gtkglsink + Also remove duplicated copy of those functions from the gl plugin + With contributions from Bastien Nocera + Part-of: + +2021-05-04 15:55:15 -0400 Olivier Crête + + * ext/gl/gstglvideoflip.c: + * ext/gl/gstglvideoflip.h: + glvideoflip: Replace GstVideoFlipMethod -> GstVideoOrientationMethod + It's the same enum, just drop the renamed copy. But keep the registered + GEnum as it is part of the API. + Part-of: + +2021-05-04 15:51:36 -0400 Olivier Crête + + * ext/gl/gstglvideoflip.c: + glvideoflip: Use the API to parse the image orientation + This will reduce the code duplication a little. + Part-of: + +2021-05-04 15:51:13 -0400 Olivier Crête + + * ext/gl/gstglimagesink.c: + glimagesink: Use the API to parse the image orientation + This will reduce the code duplication a little. + Part-of: + +2021-05-04 15:50:59 -0400 Olivier Crête + + * gst-libs/gst/video/video.c: + * gst-libs/gst/video/video.h: + video: Add API to parse the image orientation from a GstTagList + Part-of: + +2021-05-04 15:39:29 -0400 Olivier Crête + + * ext/gl/gstglimagesink.c: + * ext/gl/gstglimagesink.h: + glimagesink: Replace GstGLRotateMethod with GstVideoOrientationMethod + It's the same enum, just drop the renamed copy. But keep the registered + GEnum as it is part of the API. + Part-of: + +2021-05-04 15:28:25 -0400 Olivier Crête + + * gst-libs/gst/video/meson.build: + * gst-libs/gst/video/video.c: + * gst-libs/gst/video/video.h: + video: Put nicer documentation in GstVideoOrientationMethod + Part-of: + +2021-09-26 18:05:31 +0100 Tim-Philipp Müller + + * tools/gst-play.c: + gst-play: pick up minus and plus also from navigation events + Makes it easier to test playback rate changes with the video + window being in focus. + Part-of: + +2021-10-09 05:39:38 +1100 Jan Schmidt + + * gst/playback/gsturidecodebin3.c: + * gst/playback/gsturisourcebin.c: + uridecodebin3/urisourcebin: Reusability fixes + Improvements to uridecodebin3 and urisourcebin so that they are + reusable across a PAUSED->READY->PAUSED transition. + Disconnect and release decodebin3 request pads when urisourcebin + removes src pads. + In urisourcebin, make sure to remove src pads that are exposed + directly (raw pads and static typefind srcpads) when + cleaning up. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/768 + Part-of: + +2021-10-10 01:24:44 +1100 Jan Schmidt + + * gst/playback/gstplaybin3.c: + playbin3: Always register 'playbin3' element. + If the USE_PLAYBIN3=1 env var is set, we want to replace + playbin with playbin3, but separate to that, we always + want to register the 'playbin3' element so that applications + which explicitly use playbin3 work regardless of the env var. + This fixes `USE_PLAYBIN3=1 gst-validate-launcher`, for example. + Part-of: + +2021-10-05 05:43:13 +1100 Jan Schmidt + + * gst/playback/gstplaybin3.c: + playbin3: Avoid group deactivation deadlock. + Change locking around group deactivation to avoid deadlocks + when shutting down exactly as a buffering message arrives. + The PLAYBIN3_LOCK now protects the active field of the + source group. Everything else is still protected by the + source-group-lock. + Also properly protect group switching operations with + the PLAYBIN3_LOCK everywhere. + Part-of: + +2021-09-15 16:49:16 +0200 Ludvig Rappe + + * gst-libs/gst/pbutils/codec-utils.c: + * tests/check/libs/pbutils.c: + pbutils: Remove sample entry code "raw" + Part-of: + +2021-09-16 15:18:24 +0200 Stéphane Cerveau + + * gst/typefind/gsttypefindfunctions.c: + typefindfunctions: differentiate h265 from h264 + in some cases, the algo gives the same probability + to h264 and h265 for h26x stream resulting in a h265 + stream detected as a h264. + if sps/pps/vps detected, increase the probabilty. + Part-of: + +2021-09-26 01:55:39 +0100 Tim-Philipp Müller + + * gst-libs/gst/video/video-format.h: + video: make GST_VIDEO_FORMAT_INFO_IS_*() macros booleans + Spotted by Stirling Westrup. + Fixes #726 + Part-of: + +2021-09-26 01:52:12 +0100 Tim-Philipp Müller + + * gst-libs/gst/audio/audio-info.h: + audio: make GST_AUDIO_INFO_IS_UNPOSITIONED return a boolean + Luckily this worked right since the flag we check is the + only flag and its vale is 1, but feels more correct to + actually check for non-zeroness. + Spotted by Stirling Westrup. + Part-of: + +2021-09-27 16:11:33 -0400 Olivier Crête + + * gst-libs/gst/rtp/gstrtphdrext.c: + * gst-libs/gst/rtp/gstrtphdrext.h: + rtphdrext: Give "inherited" direction in set_attributes + Part-of: + +2021-09-27 10:19:51 -0400 Olivier Crête + + * gst-libs/gst/rtp/gstrtphdrext.c: + rtphdrext: Use NULL-safe case insensitive comparison + Part-of: + +2021-09-27 10:01:02 -0400 Olivier Crête + + * gst-libs/gst/rtp/gstrtphdrext.c: + rtphdrext: Print warnings when trying to parse caps + Part-of: + +2021-09-24 13:38:39 -0400 Olivier Crête + + * gst-libs/gst/rtp/gstrtphdrext.c: + * gst-libs/gst/rtp/gstrtphdrext.h: + * tests/check/libs/rtpdummyhdrextimpl.c: + rtphdrext: Pass just the attributes to the subclass + Since the base class now does the parsing, there is no need + to reproduce that code in all the subclasses, just pass the attributes + which are the only relevant bit anyway. + Also, only store the direction if the subclass accepted the caps + Part-of: + +2021-09-24 13:19:22 -0400 Olivier Crête + + * tests/check/libs/rtphdrext.c: + rtphdrext: Use fail_unless_equals_string() to make tests easier to debug + Part-of: + +2021-09-24 13:02:13 -0400 Olivier Crête + + * tests/check/libs/rtpdummyhdrextimpl.c: + * tests/check/libs/rtphdrext.c: + rtphdrext test: Use helper function for caps + Also, let the base class parse the direction for us. + Part-of: + +2021-09-24 12:51:01 -0400 Olivier Crête + + * gst-libs/gst/rtp/gstrtphdrext.c: + * gst-libs/gst/rtp/gstrtphdrext.h: + rtphdrext: Add helper function to set fields in caps + Part-of: + +2021-09-23 16:37:45 -0400 Olivier Crête + + * gst-libs/gst/rtp/gstrtphdrext.c: + rtphdrext: Parse direction from the caps + Part-of: + +2021-09-23 16:33:32 -0400 Olivier Crête + + * gst-libs/gst/rtp/gstrtphdrext.c: + rtphdrext: Set the direction in the caps from the property + Part-of: + +2021-09-23 16:24:04 -0400 Olivier Crête + + * gst-libs/gst/rtp/gstrtphdrext.c: + * gst-libs/gst/rtp/gstrtphdrext.h: + rtphdrext: Store the direction in the base class + Store the direction associated wit the RTP header extension in the + base class so it can use it. + Part-of: + +2021-09-23 16:01:40 -0400 Olivier Crête + + * gst-libs/gst/rtp/gstrtphdrext.c: + * gst-libs/gst/rtp/gstrtphdrext.h: + rtphdrext: Set caps without attributes as the default + Most subclasses just use the simple function, so just let the base class + do it. It makes less code in subclasses. + Part-of: + +2021-09-23 15:36:00 -0400 Olivier Crête + + * gst-libs/gst/rtp/gstrtphdrext.c: + * gst-libs/gst/rtp/gstrtphdrext.h: + rtphdrext: Put simple caps generation as the base class default + Instead of having a helper function that gets called by almost every + subclass, just let the base class set the caps fields automatically. + Part-of: + +2021-09-28 10:11:15 +1000 Brad Hards + + * README: + * RELEASE: + doc: update IRC links to OFTC + Part-of: + +2021-09-27 00:53:34 +0200 Havard Graff + + * gst-libs/gst/video/gstvideodecoder.c: + videodecoder: request sync-points regularly on error + If we are not receiving a sync-point for a very long time, we need to + keep asking for them. The request-sync-point logic keeps track of how + many keyunitrequests we are allowed to send, but that would not matter + if we don't keep asking. + Part-of: + +2021-09-26 01:07:02 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + === release 1.19.2 === 2021-09-23 01:33:08 +0100 Tim-Philipp Müller