Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gstreamer for openSUSE:Factory checked in at 2021-04-10 15:26:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gstreamer (Old) and /work/SRC/openSUSE:Factory/.gstreamer.new.2401 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer" Sat Apr 10 15:26:25 2021 rev:73 rq:880361 version:1.18.4 Changes: -------- --- /work/SRC/openSUSE:Factory/gstreamer/gstreamer.changes 2021-01-20 18:24:46.899368953 +0100 +++ /work/SRC/openSUSE:Factory/.gstreamer.new.2401/gstreamer.changes 2021-04-10 15:27:02.854355182 +0200 @@ -1,0 +2,74 @@ +Fri Mar 19 20:51:25 UTC 2021 - Dirk M??ller <dmuel...@suse.com> + +- update to 1.18.4: + important security fixes for ID3 tag reading, matroska and realmedia + parsing, and gst-libav audio decoding + + Details: + * audiomixer, audioaggregator: input buffer handling fixes + * decodebin3: improve stream-selection message handling + * uridecodebin3: make ???caps??? property work + * wavenc: fix writing of INFO chunks in some cases + * v4l2: bt601 colorimetry, allow encoder resolution changes, fix + decoder frame rate negotiation + * decklinkvideosink: fix auto format detection, and fixes for 29.97fps + framerate output + * mpeg-2 video handling fixes when seeking + * avviddec: fix bufferpool negotiation and possible memory corruption + when changing resolution + * various stability, performance and reliability improvements + * memory leak fixes + * build fixes: rpicamsrc, qt overlay example, d3d11videosink on UWP + * info: Don???t leak log function user_data if the debug system is + compiled out + * task: Use SetThreadDescription() Win32 API for setting thread names, + which preserves thread names in dump files. + * buffer, memory: Mark info in map functions as caller-allocates and + pass allocation params as const pointers where possible + * clock: define AUTO_CLEANUP_FREE_FUNC for GstClockID + * tag: id3v2: fix frame size check and potential invalid reads + * audio: Fix gst_audio_buffer_truncate() meta handling for + non-interleaved audio + * audioresample: respect buffer layout when draining + * audioaggregator: fix input_buffer ownership + * decodebin3: change stream selection message owner, so that the app + sends the stream-selection event to the right element + * rtspconnection: correct data_size when tunneled mode + * uridecodebin3: make caps property work + * video-converter: Don???t upsample invalid lines + * videodecoder: Fix racy critical when pool negotiation occurs during + flush + * video: Convert gst_video_info_to_caps() to take self as const ptr + * examples: added qt core dependency for qt overlay example + * matroskademux: header parsing fixes + * rpicamsrc: depend on posix threads and vchiq_arm to fix build on + raspios again + * wavenc: Fixed INFO chunk corruption, caused by odd sized data not + being padded + * wavpackdec: Add floating point format support to fix distortions in + some cases + * v4l2: recognize V4L2 bt601 colorimetry again + * v4l2videoenc: support resolution change stream encode + * v4l2h265codec: fix HEVC profile string issue + * v4l2object: Need keep same transfer as input caps + * v4l2videodec: Fix vp8 and vp9 streams can???t play on board with + vendor bsp + * v4l2videodec: fix src side frame rate negotiation + * avwait: Don???t post messages with the mutex locked + * d3d11h264dec: Reconfigure decoder object on DPB size change and keep + track of actually configured DPB size + * dashsink: fix double unref of sinkpad caps + * decklinkvideosink: Use correct numerator for 29.97fps + * decklinkvideosink: fix auto format detection + * decklinksrc: Use a more accurate capture time + * d3d11videosink: Fix build error on UWP + * interlace: negotiation and buffer leak fixes + * mpegvideoparse: do not clip, so decoder receives data from keyframe + even if it???s before the segment start + * mpegtsparse: Fix switched DTS/PTS when set-timestamps=false + * nvh264sldec: Reopen decoder object if larger DPB size is required + * sdpsrc: fix double free if sdp is provided as string via the + property + * vulkan: Fix elements long name. + +------------------------------------------------------------------- Old: ---- _service gstreamer-1.18.3.tar.xz New: ---- gstreamer-1.18.4.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gstreamer.spec ++++++ --- /var/tmp/diff_new_pack.n2yRHV/_old 2021-04-10 15:27:03.766356255 +0200 +++ /var/tmp/diff_new_pack.n2yRHV/_new 2021-04-10 15:27:03.770356260 +0200 @@ -19,15 +19,13 @@ %define gst_branch 1.0 Name: gstreamer -Version: 1.18.3 +Version: 1.18.4 Release: 0 Summary: Streaming-Media Framework Runtime License: LGPL-2.1-or-later Group: Productivity/Multimedia/Other URL: https://gstreamer.freedesktop.org -# Disable tarball source url, use _service -#Source0: %%{url}/src/gstreamer/%%{name}-%%{version}.tar.xz -Source0: %{name}-%{version}.tar.xz +Source0: https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-%{version}.tar.xz Source1: gstreamer.macros Source2: gstreamer.prov Source99: baselibs.conf ++++++ gstreamer-1.18.3.tar.xz -> gstreamer-1.18.4.tar.xz ++++++ ++++ 2204 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/.gitlab-ci.yml new/gstreamer-1.18.4/.gitlab-ci.yml --- old/gstreamer-1.18.3/.gitlab-ci.yml 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/.gitlab-ci.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -include: "https://gitlab.freedesktop.org/gstreamer/gst-ci/raw/1.18/gitlab/ci_template.yml" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/ChangeLog new/gstreamer-1.18.4/ChangeLog --- old/gstreamer-1.18.3/ChangeLog 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/ChangeLog 2021-03-15 18:47:26.353436200 +0100 @@ -1,3 +1,65 @@ +=== release 1.18.4 === + +2021-03-15 17:47:24 +0000 Tim-Philipp M??ller <t...@centricular.com> + + * ChangeLog: + * NEWS: + * RELEASE: + * gstreamer.doap: + * meson.build: + Release 1.18.4 + +2021-03-11 15:41:16 +0100 Guillaume Desmottes <guillaume.desmot...@collabora.com> + + * gst/gstclock.h: + clock: define AUTO_CLEANUP_FREE_FUNC for GstClockID + GstClockID is secretly a gpointer so we can't use g_autoptr(), + instead user can do: + g_auto (GstClockID) clock_id = 0; + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/770> + +2021-01-31 12:12:09 +0200 Sebastian Dr??ge <sebast...@centricular.com> + + * gst/gstinfo.c: + info: Don't leak log function user_data if the debug system is compiled out + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/743> + +2021-01-15 01:16:34 +0900 Seungha Yang <seun...@centricular.com> + + * gst/gsttask.c: + task: Use SetThreadDescription Win32 API for setting thread name + Since Windows 10 1607, we can make use of SetThreadDescription() API + for setting thread name. Unlike previously used exception based + method, this API will preserve configured thread name on dump file. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/741> + +2021-01-14 10:18:51 +0100 Marijn Suijten <marijn...@gmail.com> + + * gst/gstmemory.c: + gstmemory: Mark memory_map @info as `caller-allocates` + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/740> + +2021-01-14 10:20:41 +0100 Marijn Suijten <marijn...@gmail.com> + + * gst/gstbuffer.c: + gstbuffer: Mark buffer_map* @info as `caller-allocates` + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/740> + +2021-01-07 09:53:41 +0100 Marijn Suijten <marijn...@gmail.com> + + * libs/gst/base/gstaggregator.c: + * libs/gst/base/gstbasesrc.c: + * libs/gst/base/gstbasetransform.c: + gst,base: Take GstAllocationParams parameter by const ptr + This parameter is only informational and should not be modified. Enforce + this at compile-time and to get the right signature in G-IR. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/740> + +2021-01-14 02:16:45 +0000 Tim-Philipp M??ller <t...@centricular.com> + + * meson.build: + Back to development + === release 1.18.3 === 2021-01-13 21:05:12 +0000 Tim-Philipp M??ller <t...@centricular.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/NEWS new/gstreamer-1.18.4/NEWS --- old/gstreamer-1.18.3/NEWS 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/NEWS 2021-03-15 18:47:26.357436000 +0100 @@ -2,13 +2,13 @@ GStreamer 1.18.0 was originally released on 8 September 2020. -The latest bug-fix release in the 1.18 series is 1.18.3 and was released -on 13 January 2021. +The latest bug-fix release in the 1.18 series is 1.18.4 and was released +on 15 March 2021. See https://gstreamer.freedesktop.org/releases/1.18/ for the latest version of this document. -Last updated: Wednesday 13 January 2021, 20:00 UTC (log) +Last updated: Monday 15 March 2021, 13:00 UTC (log) Introduction @@ -2717,6 +2717,168 @@ - List of Merge Requests applied in 1.18.3 - List of Issues fixed in 1.18.3 +1.18.4 + +The fourth 1.18 bug-fix release (1.18.4) was released on 15 March 2021. + +This release only contains bugfixes and security fixes and it should be +safe to update from 1.18.x. + +Highlighted bugfixes in 1.18.4 + +- important security fixes for ID3 tag reading, matroska and realmedia + parsing, and gst-libav audio decoding +- audiomixer, audioaggregator: input buffer handling fixes +- decodebin3: improve stream-selection message handling +- uridecodebin3: make ???caps??? property work +- wavenc: fix writing of INFO chunks in some cases +- v4l2: bt601 colorimetry, allow encoder resolution changes, fix + decoder frame rate negotiation +- decklinkvideosink: fix auto format detection, and fixes for 29.97fps + framerate output +- mpeg-2 video handling fixes when seeking +- avviddec: fix bufferpool negotiation and possible memory corruption + when changing resolution +- various stability, performance and reliability improvements +- memory leak fixes +- build fixes: rpicamsrc, qt overlay example, d3d11videosink on UWP + +gstreamer + +- info: Don???t leak log function user_data if the debug system is + compiled out +- task: Use SetThreadDescription() Win32 API for setting thread names, + which preserves thread names in dump files. +- buffer, memory: Mark info in map functions as caller-allocates and + pass allocation params as const pointers where possible +- clock: define AUTO_CLEANUP_FREE_FUNC for GstClockID + +gst-plugins-base + +- tag: id3v2: fix frame size check and potential invalid reads +- audio: Fix gst_audio_buffer_truncate() meta handling for + non-interleaved audio +- audioresample: respect buffer layout when draining +- audioaggregator: fix input_buffer ownership +- decodebin3: change stream selection message owner, so that the app + sends the stream-selection event to the right element +- rtspconnection: correct data_size when tunneled mode +- uridecodebin3: make caps property work +- video-converter: Don???t upsample invalid lines +- videodecoder: Fix racy critical when pool negotiation occurs during + flush +- video: Convert gst_video_info_to_caps() to take self as const ptr +- examples: added qt core dependency for qt overlay example + +gst-plugins-good + +- matroskademux: header parsing fixes +- rpicamsrc: depend on posix threads and vchiq_arm to fix build on + raspios again +- wavenc: Fixed INFO chunk corruption, caused by odd sized data not + being padded +- wavpackdec: Add floating point format support to fix distortions in + some cases +- v4l2: recognize V4L2 bt601 colorimetry again +- v4l2videoenc: support resolution change stream encode +- v4l2h265codec: fix HEVC profile string issue +- v4l2object: Need keep same transfer as input caps +- v4l2videodec: Fix vp8 and vp9 streams can???t play on board with + vendor bsp +- v4l2videodec: fix src side frame rate negotiation + +gst-plugins-bad + +- avwait: Don???t post messages with the mutex locked +- d3d11h264dec: Reconfigure decoder object on DPB size change and keep + track of actually configured DPB size +- dashsink: fix double unref of sinkpad caps +- decklinkvideosink: Use correct numerator for 29.97fps +- decklinkvideosink: fix auto format detection +- decklinksrc: Use a more accurate capture time +- d3d11videosink: Fix build error on UWP +- interlace: negotiation and buffer leak fixes +- mpegvideoparse: do not clip, so decoder receives data from keyframe + even if it???s before the segment start +- mpegtsparse: Fix switched DTS/PTS when set-timestamps=false +- nvh264sldec: Reopen decoder object if larger DPB size is required +- sdpsrc: fix double free if sdp is provided as string via the + property +- vulkan: Fix elements long name. + +gst-plugins-ugly + +- rmdemux: Make sure we have enough data available when parsing + audio/video packets + +gst-libav + +- avviddec: take the maximum of the height/coded_height +- viddec: don???t configure an incorrect buffer pool when receiving a + gap event +- audiodec: fix stack overflow in gst_ffmpeg_channel_layout_to_gst() + +gst-rtsp-server + +- rtspclientsink: fix deadlock on shutdown if no data has been + received yet +- rtspclientsink: fix leaks in unit tests +- rtsp-stream: avoid deadlock in send_func +- rtsp-client: cleanup transports during TEARDOWN + +gstreamer-vaapi + +- h264 encoder: append encoder exposure to aud +- postproc: Fix a problem of propose_allocation when passthrough +- glx: Iterate over FBConfig and select 8 bit color size + +gstreamer-sharp + +- no changes + +gst-omx + +- no changes + +gst-python + +- no changes + +gst-editing-services + +- group: Use proper group constructor + +gst-integration-testsuites + +- no changes + +gst-build + +- no changes + +Cerbero build tool and packaging changes in 1.18.4 + +- macOS: more BigSur fixes +- glib: Backport patch to set thread names on Windows 10 + +Contributors to 1.18.4 + +Alicia Boya Garc??a, Ashley Brighthope, Bing Song, Branko Subasic, Edward +Hervey, Guillaume Desmottes, Haihua Hu, He Junyan, Hou Qi, Jan Alexander +Steffens (heftig), Jeongki Kim, Jordan Petridis, Knobe, Kristofer +Bj??rkstr??m, Marijn Suijten, Matthew Waters, Paul Goulpi??, Philipp Zabel, +Rafa?? Dzi??giel, Sebastian Dr??ge, Seungha Yang, Staz M, St??phane Cerveau, +Thibault Saunier, Tim-Philipp M??ller, V??ctor Manuel J??quez Leal, Vivia +Nikolaidou, Vladimir Menshakov, + +??? and many others who have contributed bug reports, translations, sent +suggestions or helped testing. Thank you all! + +List of merge requests and issues fixed in 1.18.4 + +- List of Merge Requests applied in 1.18.4 +- List of Issues fixed in 1.18.4 + Schedule for 1.20 Our next major feature release will be 1.20, and 1.19 will be the @@ -2724,9 +2886,9 @@ development of 1.19/1.20 will happen in the git master branch. The plan for the 1.20 development cycle is yet to be confirmed, but it -is now expected that feature freeze will take place some time in -January/February 2021, with the first 1.20 stable release hopefully -around February/March 2021. +is now expected that feature freeze will take place some time in April +2021, with the first 1.20 stable release hopefully around April/May +2021. 1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/RELEASE new/gstreamer-1.18.4/RELEASE --- old/gstreamer-1.18.3/RELEASE 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/RELEASE 2021-03-15 18:47:26.357436000 +0100 @@ -1,4 +1,4 @@ -This is GStreamer core 1.18.3. +This is GStreamer core 1.18.4. The GStreamer team is thrilled to announce a new major feature release of your favourite cross-platform multimedia framework! diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/gst/gstbuffer.c new/gstreamer-1.18.4/gst/gstbuffer.c --- old/gstreamer-1.18.3/gst/gstbuffer.c 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/gst/gstbuffer.c 2021-03-15 18:47:26.373435000 +0100 @@ -1757,7 +1757,7 @@ /** * gst_buffer_map: * @buffer: a #GstBuffer. - * @info: (out): info about the mapping + * @info: (out caller-allocates): info about the mapping * @flags: flags for the mapping * * This function fills @info with the #GstMapInfo of all merged memory @@ -1787,7 +1787,7 @@ * @buffer: a #GstBuffer. * @idx: an index * @length: a length - * @info: (out): info about the mapping + * @info: (out caller-allocates): info about the mapping * @flags: flags for the mapping * * This function fills @info with the #GstMapInfo of @length merged memory blocks diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/gst/gstclock.h new/gstreamer-1.18.4/gst/gstclock.h --- old/gstreamer-1.18.3/gst/gstclock.h 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/gst/gstclock.h 2021-03-15 18:47:26.377434700 +0100 @@ -642,6 +642,7 @@ GstClockTime interval); G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstClock, gst_object_unref) +G_DEFINE_AUTO_CLEANUP_FREE_FUNC(GstClockID, gst_clock_id_unref, 0) G_END_DECLS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/gst/gstinfo.c new/gstreamer-1.18.4/gst/gstinfo.c --- old/gstreamer-1.18.3/gst/gstinfo.c 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/gst/gstinfo.c 2021-03-15 18:47:26.381434400 +0100 @@ -2359,6 +2359,8 @@ gst_debug_add_log_function (GstLogFunction func, gpointer user_data, GDestroyNotify notify) { + if (notify) + notify (user_data); } guint diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/gst/gstmemory.c new/gstreamer-1.18.4/gst/gstmemory.c --- old/gstreamer-1.18.3/gst/gstmemory.c 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/gst/gstmemory.c 2021-03-15 18:47:26.381434400 +0100 @@ -220,7 +220,7 @@ /** * gst_memory_make_mapped: * @mem: (transfer full): a #GstMemory - * @info: (out): pointer for info + * @info: (out caller-allocates): pointer for info * @flags: mapping flags * * Create a #GstMemory object that is mapped with @flags. If @mem is mappable @@ -270,7 +270,7 @@ /** * gst_memory_map: * @mem: a #GstMemory - * @info: (out): pointer for info + * @info: (out caller-allocates): pointer for info * @flags: mapping flags * * Fill @info with the pointer and sizes of the memory in @mem that can be diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/gst/gsttask.c new/gstreamer-1.18.4/gst/gsttask.c --- old/gstreamer-1.18.3/gst/gsttask.c 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/gst/gsttask.c 2021-03-15 18:47:26.389433900 +0100 @@ -112,6 +112,11 @@ #define WIN32_LEAN_AND_MEAN #include <windows.h> +typedef HRESULT (WINAPI * pSetThreadDescription) (HANDLE hThread, + PCWSTR lpThreadDescription); +static pSetThreadDescription SetThreadDescriptionFunc = NULL; +HMODULE kernel32_module = NULL; + struct _THREADNAME_INFO { DWORD dwType; // must be 0x1000 @@ -121,7 +126,7 @@ }; typedef struct _THREADNAME_INFO THREADNAME_INFO; -void +static void SetThreadName (DWORD dwThreadID, LPCSTR szThreadName) { THREADNAME_INFO info; @@ -137,6 +142,57 @@ __except (EXCEPTION_CONTINUE_EXECUTION) { } } + +static gboolean +gst_task_win32_load_library (void) +{ + /* FIXME: Add support for UWP app */ +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + static volatile gsize _init_once = 0; + if (g_once_init_enter (&_init_once)) { + kernel32_module = LoadLibraryW (L"kernel32.dll"); + if (kernel32_module) { + SetThreadDescriptionFunc = + (pSetThreadDescription) GetProcAddress (kernel32_module, + "SetThreadDescription"); + if (!SetThreadDescriptionFunc) + FreeLibrary (kernel32_module); + } + g_once_init_leave (&_init_once, 1); + } +#endif + + return ! !SetThreadDescriptionFunc; +} + +static gboolean +gst_task_win32_set_thread_desc (const gchar * name) +{ + HRESULT hr; + wchar_t *namew; + + if (!gst_task_win32_load_library () || !name) + return FALSE; + + namew = g_utf8_to_utf16 (name, -1, NULL, NULL, NULL); + if (!namew) + return FALSE; + + hr = SetThreadDescriptionFunc (GetCurrentThread (), namew); + + g_free (namew); + return SUCCEEDED (hr); +} + +static void +gst_task_win32_set_thread_name (const gchar * name) +{ + /* Prefer SetThreadDescription over exception based way if available, + * since thread description set by SetThreadDescription will be preserved + * in dump file */ + if (!gst_task_win32_set_thread_desc (name)) + SetThreadName ((DWORD) - 1, name); +} #endif static void gst_task_finalize (GObject * object); @@ -265,7 +321,7 @@ /* set the thread name to something easily identifiable */ GST_DEBUG_OBJECT (task, "Setting thread name to '%s'", name); - SetThreadName (-1, name); + gst_task_win32_set_thread_name (name); #endif } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/gstreamer.doap new/gstreamer-1.18.4/gstreamer.doap --- old/gstreamer-1.18.3/gstreamer.doap 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/gstreamer.doap 2021-03-15 18:47:26.397433500 +0100 @@ -40,6 +40,16 @@ <release> <Version> + <revision>1.18.4</revision> + <branch>1.18</branch> + <name></name> + <created>2021-03-15</created> + <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.18.4.tar.xz" /> + </Version> + </release> + + <release> + <Version> <revision>1.18.3</revision> <branch>1.18</branch> <name></name> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/libs/gst/base/gstaggregator.c new/gstreamer-1.18.4/libs/gst/base/gstaggregator.c --- old/gstreamer-1.18.3/libs/gst/base/gstaggregator.c 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/libs/gst/base/gstaggregator.c 2021-03-15 18:47:26.397433500 +0100 @@ -1066,7 +1066,7 @@ static gboolean gst_aggregator_set_allocation (GstAggregator * self, GstBufferPool * pool, GstAllocator * allocator, - GstAllocationParams * params, GstQuery * query) + const GstAllocationParams * params, GstQuery * query) { GstAllocator *oldalloc; GstBufferPool *oldpool; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/libs/gst/base/gstbasesrc.c new/gstreamer-1.18.4/libs/gst/base/gstbasesrc.c --- old/gstreamer-1.18.3/libs/gst/base/gstbasesrc.c 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/libs/gst/base/gstbasesrc.c 2021-03-15 18:47:26.401433200 +0100 @@ -3133,7 +3133,7 @@ static gboolean gst_base_src_set_allocation (GstBaseSrc * basesrc, GstBufferPool * pool, - GstAllocator * allocator, GstAllocationParams * params) + GstAllocator * allocator, const GstAllocationParams * params) { GstAllocator *oldalloc; GstBufferPool *oldpool; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/libs/gst/base/gstbasetransform.c new/gstreamer-1.18.4/libs/gst/base/gstbasetransform.c --- old/gstreamer-1.18.3/libs/gst/base/gstbasetransform.c 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/libs/gst/base/gstbasetransform.c 2021-03-15 18:47:26.401433200 +0100 @@ -746,7 +746,7 @@ static gboolean gst_base_transform_set_allocation (GstBaseTransform * trans, GstBufferPool * pool, GstAllocator * allocator, - GstAllocationParams * params, GstQuery * query) + const GstAllocationParams * params, GstQuery * query) { GstAllocator *oldalloc; GstBufferPool *oldpool; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gstreamer-1.18.3/meson.build new/gstreamer-1.18.4/meson.build --- old/gstreamer-1.18.3/meson.build 2021-01-13 22:05:14.000000000 +0100 +++ new/gstreamer-1.18.4/meson.build 2021-03-15 18:47:26.413432400 +0100 @@ -1,5 +1,5 @@ project('gstreamer', 'c', - version : '1.18.3', + version : '1.18.4', meson_version : '>= 0.48', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ])