Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gstreamer-plugins-ugly for openSUSE:Factory checked in at 2021-09-20 23:31:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-ugly (Old) and /work/SRC/openSUSE:Factory/.gstreamer-plugins-ugly.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-ugly" Mon Sep 20 23:31:59 2021 rev:66 rq:919126 version:1.18.5 Changes: -------- --- /work/SRC/openSUSE:Factory/gstreamer-plugins-ugly/gstreamer-plugins-ugly.changes 2021-04-10 15:27:22.822378672 +0200 +++ /work/SRC/openSUSE:Factory/.gstreamer-plugins-ugly.new.1899/gstreamer-plugins-ugly.changes 2021-09-20 23:32:19.491112178 +0200 @@ -1,0 +2,8 @@ +Wed Sep 15 09:46:40 UTC 2021 - Bj??rn Lie <bjorn....@gmail.com> + +- Update to version 1.18.5: + + asfdemux/realmedia: Drop duplicate seek events + + Don't use volatile to mean atomic (fixes compiler warnings with + gcc 11) + +------------------------------------------------------------------- Old: ---- gst-plugins-ugly-1.18.4.tar.xz New: ---- gst-plugins-ugly-1.18.5.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gstreamer-plugins-ugly.spec ++++++ --- /var/tmp/diff_new_pack.D4oy7A/_old 2021-09-20 23:32:20.195113047 +0200 +++ /var/tmp/diff_new_pack.D4oy7A/_new 2021-09-20 23:32:20.195113047 +0200 @@ -26,7 +26,7 @@ %define gstreamer_req_version %(echo %{version} | sed -e "s/+.*//") Name: gstreamer-plugins-ugly -Version: 1.18.4 +Version: 1.18.5 Release: 0 Summary: GStreamer Streaming-Media Framework Plug-Ins License: LGPL-2.1-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.D4oy7A/_old 2021-09-20 23:32:20.219113077 +0200 +++ /var/tmp/diff_new_pack.D4oy7A/_new 2021-09-20 23:32:20.223113082 +0200 @@ -9,7 +9,7 @@ <!-- <param name="changesgenerate">enable</param> --> - <param name="revision">1.18.4</param> + <param name="revision">1.18.5</param> <param name="scm">git</param> </service> <service name="recompress" mode="disabled"> ++++++ gst-plugins-ugly-1.18.4.tar.xz -> gst-plugins-ugly-1.18.5.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-ugly-1.18.4/.gitignore new/gst-plugins-ugly-1.18.5/.gitignore --- old/gst-plugins-ugly-1.18.4/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/gst-plugins-ugly-1.18.5/.gitignore 2021-09-08 21:03:08.000000000 +0200 @@ -0,0 +1,15 @@ +*~ +*.bak + +Build +*.user +*.suo +*.ipch +*.sdf +*.opensdf +*.DS_Store + +# Meson +/build +/_build +/subprojects diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-ugly-1.18.4/ChangeLog new/gst-plugins-ugly-1.18.5/ChangeLog --- old/gst-plugins-ugly-1.18.4/ChangeLog 2021-03-15 18:48:48.000000000 +0100 +++ new/gst-plugins-ugly-1.18.5/ChangeLog 2021-09-08 21:03:08.000000000 +0200 @@ -1,3 +1,44 @@ +=== release 1.18.5 === + +2021-09-08 20:03:08 +0100 Tim-Philipp M??ller <t...@centricular.com> + + * ChangeLog: + * NEWS: + * RELEASE: + * gst-plugins-ugly.doap: + * meson.build: + Release 1.18.5 + +2021-04-20 18:48:38 -0400 Doug Nazar <naz...@nazar.ca> + + * gst/realmedia/rmdemux.c: + * gst/realmedia/rmdemux.h: + realmedia: Drop duplicate seek events. + Also use seek seqnum for flush & segment events/messages. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/82> + +2021-04-20 18:47:31 -0400 Doug Nazar <naz...@nazar.ca> + + * gst/asfdemux/gstasfdemux.c: + asfdemux: Drop duplicate seek events. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/82> + +2021-03-19 15:16:06 +1100 Matthew Waters <matt...@centricular.com> + + * ext/x264/gstencoderbitrateprofilemanager.c: + gst: don't use volatile to mean atomic + volatile is not sufficient to provide atomic guarantees and real atomics + should be used instead. GCC 11 has started warning about using volatile + with atomic operations. + https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719 + Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/80> + +2021-03-15 19:49:08 +0000 Tim-Philipp M??ller <t...@centricular.com> + + * meson.build: + Back to development + === release 1.18.4 === 2021-03-15 17:48:47 +0000 Tim-Philipp M??ller <t...@centricular.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-ugly-1.18.4/NEWS new/gst-plugins-ugly-1.18.5/NEWS --- old/gst-plugins-ugly-1.18.4/NEWS 2021-03-15 18:48:48.000000000 +0100 +++ new/gst-plugins-ugly-1.18.5/NEWS 2021-09-08 21:03:08.000000000 +0200 @@ -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.4 and was released -on 15 March 2021. +The latest bug-fix release in the 1.18 series is 1.18.5 and was released +on 8 September 2021. See https://gstreamer.freedesktop.org/releases/1.18/ for the latest version of this document. -Last updated: Monday 15 March 2021, 13:00 UTC (log) +Last updated: Wednesday 8 September 2021, 11:00 UTC (log) Introduction @@ -2102,7 +2102,10 @@ Known Issues -- None in particular +- GStreamer 1.18 versions <= 1.18.4 would fail to build on Linux with + Meson 0.58 due to an issue with the include directories. Either + apply the patch or build with an older Meson version (<= 0.57) until + there is a GStreamer 1.18.5 release that includes the fix. Contributors @@ -2879,6 +2882,307 @@ - List of Merge Requests applied in 1.18.4 - List of Issues fixed in 1.18.4 +1.18.5 + +The fifth 1.18 bug-fix release (1.18.5) was released on 8 September +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.5 + +- basesink: fix reverse frame stepping +- downloadbuffer/sparsefile: several fixes for win32 +- systemclock: Update monotonic reference time when re-scheduling, + fixes high CPU usage with gnome-music when pausing playback +- audioaggregator: fix glitches when resyncing on discont +- compositor: Fix NV12 blend operation +- rtspconnection: Add IPv6 support for tunneled mode +- avidemux: fix playback of some H.264-in-AVI streams +- jpegdec: Fix crash when interlaced field height is not DCT block + size aligned +- qmlglsink: Keep old buffers around a bit longer if they were bound + by QML +- qml: qtitem: don???t potentially leak a large number of buffers +- rtpjpegpay: fix image corruption when compiled with MSVC on Windows +- rtspsrc: seeking improvements +- rtpjitterbuffer: Avoid generation of invalid timestamps +- rtspsrc: Fix behaviour of select-streams, new-manager, + request-rtcp-key and before-send signals with GLib >= 2.62 +- multiudpsink: Fix broken SO_SNDBUF get/set on Windows +- openh264enc: fix broken sps/pps header generation and some minor + leaks +- mpeg2enc: fix interlace-mode detection and unbound memory usage if + encoder can???t keep up +- mfvideosrc: Fix for negative MF stride and for negotiation when + interlace-mode is specified +- tsdemux: fix seek-with-stop regression and decoding errors after + seeking with dvdlpcmdec +- rtsp-server: seek handling improvements +- gst-libav: fix build (and other issues) with ffmpeg 4.4 +- cerbero: spandsp: Fix build error with Visual Studio 2019 +- win32 packages: Fix hang in GLib when G_SLICE environment variable + is set + +gstreamer + +- aggregator: Release the SRC lock while querying latency +- aggregator: Release pads??? peeked buffer when removing the pad or + finalizing it +- basesink: Don???t swap rstart/rstop when stepping +- basesrc: Print segments with GST_SEGMENT_FORMAT and not + GST_PTR_FORMAT +- childproxy: init value in gst_child_proxy_get_property() if needed +- clocksync: Fix providing system clock by default +- concat: Properly propagate seqnum of segment events +- concat: adjust running time offsets on downstream events +- concat: fix locking in SEGMENT event handler +- downloadbuffer/sparsefile: several fixes for win32 +- element: NULL the lists of contexts in dispose() +- multiqueue: Use running time of gap events for wakeups. +- multiqueue: Ensure peer pad exists when iterating internal links +- pad: Keep IDLE probe hook alive during immediate callback +- pad: Ensure last flow return is set on sink pads in push mode +- pad: Don???t spam the debug log at INFO level when default-chaining a + buffer list +- pad: clear probes holding mutex +- parse-launch: Fix a critical when using the : operator. +- parse-launch: Don???t do delayed property setting for top-level + properties. +- plugin: load plugins with unknown license strings +- ptpclock: Don???t leak the GList +- queue2: Refuse all serialized queries when posting buffering + messages +- systemclock: Update monotonic reference time when re-scheduling +- High CPU usage in 1.18 (but not master) when pausing playback in + gnome-music +- Don???t use volatile to mean atomic (fixes compiler warnings with + gcc 11) + +gst-plugins-base + +- appsrc: Don???t leak buffer list while wrongly unreffing buffer on + EOS/flushing +- audioaggregator: Don???t overwrite already written samples +- audioaggregator: Resync on the next buffer when dropping a buffer on + discont resyncing +- audiobasesink: Fix of double lock release +- audioaggregator: Don???t overwrite already written samples +- audiobasesrc: Fix divide by zero assertion +- clockoverlay: Fix broken string formatting by strftime() on Windows +- compositor: Fix NV12 blend operation +- giosrc: Don???t leak scheme string in gst_gio_src_query() +- giobasesink: Handle incomplete writes in gst_gio_base_sink_render() +- gl/wayland: Use consistent wl_display when creating work queue for + proxy wrapper +- gl: Fix build when Meson >= 0.58.0rc1 +- gl/wayland: provide a dummy global_remove function +- playbin2: fix base_time selection when flush seeking live (such as + with RTSP) +- rtspconnection: Add IPv6 support for tunneled mode +- rtspconnection: Consistently translate GIOError to GstRTSPResult + (for rtspsrc) +- rawbaseparse: check destination format correctly +- uridecodebin: Don???t force floating reference for future reusable + decodebin +- parsebin: Put stream flags in GstStream +- splitmuxsink: always use factory property when set +- video-converter: Set up matrix tables only once. +- videoscale: Performance degradation from 1.16.2 -> 1.18.4 +- videotestsrc: Fix a leak when computing alpha caps +- audio/video-converter: Plug some minor leaks +- audio,video-format: Make generate_raw_formats idempotent for + assertions +- Don???t use volatile to mean atomic (fixes compiler warnings with + gcc 11) +- Fix build issue on MinGW64 + +gst-plugins-good + +- avidemux: Also detect 0x000001 as H264 byte-stream start code in + codec_data +- deinterlace: Plug a method subobject leak +- deinterlace: Drop field-order field if outputting progressive +- jpegdec: Fix crash when interlaced field height is not DCT block + size aligned +- qmlglsink: Keep old buffers around a bit longer if they were bound + by QML +- qml: qtitem: don???t potentially leak a large number of buffers +- qtdemux: Force stream-start push when re-using EOS???d streams +- qtmux: for Apple ProRes, allow overriding pixel bit depth, e.g.??when + exporting an opaque image, yet with alpha. +- qtmux: Make sure to write 64-bit STCO table when needed. +- rtpjpegpay: fix image corruption when compiled with MSVC on Windows +- rtpptdemux: Remove pads also in PAUSED->READY +- rtph265depay: update codec_data in caps regardless of format +- rtspsrc: Do not overwrite the known duration after a seek +- rtspsrc: De-dup seek event seqnums to avoid multiple seeks +- rtspsrc: Fix race saving seek event seqnum +- rtspsrc: Using multicast UDP has no relation to seekability, also + add some logging +- rtpjitterbuffer: Fix parsing of the mediaclk:direct= field +- rtpjitterbuffer: Avoid generation of invalid timestamps +- rtpjitterbuffer: Check srcresult before waiting on the condition + variable too +- rtpjitterbuffer: More logging when calculating rfc7273 timestamps +- rtspsrc: Fix more signals +- rtspsrc: Fix accumulation of before-send signal return values +- souphttpsrc: Always use the content decoder but set + `Accept-Encoding:??? +- udpsrc: Plug leaks of saddr in error cases +- multiudpsink: Fix broken SO_SNDBUF get/set on Windows +- v4l2object: Add interlace-mode back to caps for camera +- v4l2object: Use default colorimetry if that in caps is unknown +- V4l2object: Avoid colorimetry mismatch for streams with invalid + colorimetry +- v4l2object: Add support for hdr10 stream playback +- wavparse: adtl/note/labl chunk parsing fixes +- Don???t use volatile to mean atomic (fixes compiler warnings with + gcc 11) +- 1.18.4: build fails with glib 2.67.6 and gcc-11: argument 2 of + ???__atomic_load??? must not be a pointer to a ???volatile??? type + +gst-plugins-bad + +- audiolatency: Use live mode audiotestsrc +- audiolatency: Handle audio buffers with invalid duration +- ccconverter: fix framerate caps negotiation from non-cdp to cdp +- dashdemux: Properly initalize GError, remove duplicate logging call +- dashdemux: Log protection events on corresponding pad +- dashdemux: fix dash_mpdparser_check_mpd_client_set_methods unit test +- h264parse,h265parse: Push parameter set NAL units again per + segment-done +- h265parse: Fix a typo in get_compatible_profile_caps() +- h265parse: don???t invalidate the last PPS when parsing a new SPS +- h264parse: improve PPS handling +- h2645parser: Catch overflows in AVC/HEVC NAL unit length + calculations +- interlace: Don???t set field-order field for progressive caps, fixes + negotiation issues +- interlace: Fix too small buffer size error +- jpegparse: Don???t generate timestamp for 0/1 framerates +- opencv: fix build error on macOS +- openexr: Fix build with OpenEXR 3 +- openh264enc: fix broken sps/pps header generation and some minor + leaks +- mpeg2enc: fix interlace-mode detection on input video +- mpeg2enc: Only allow 1 pending frame for encoding (fixes unbound + memory usage in case encoder can???t keep up with input) +- mfvideoenc: Don???t pass 0/1 framerate to MFT +- mfvideosrc: Fix for negative MF stride +- mfvideosrc: Fix negotiation when interlace-mode is specified +- mxfvanc: Handle empty ANC essence +- rtmp2src: workaround a GLib race when destroying a + GMainContext/GSource +- rtpsrc: Plug leak of rtcp_send_addr and fix setting URI back to NULL +- rtpsink: Return proper pad from _request_new_pad() +- rist: Plug leak of rtcp_send_addr +- rtmp2: Use correct size of write macro for param2. +- rtmp2/connection: Separate inner from outer cancelling +- tsmux: When selecting random PIDs, name the pads according to those + PIDs +- tsmux: Recheck existing pad PIDs when requesting a new pad with a + random pid +- tsdemux: fix seek with stop regression +- tsdemux: Clear all streams when rewinding, fixes the case where the + demuxer sends out partial invalid data downstream after a seek which + causes some decoders (such as dvdlpmdec) to error out +- v4l2slh264dec: Fix slice header bit size calculation +- videoparseutils: Fix for wrong CEA708 minimum size check +- waylandsink: Fix for missing initial configure +- wpe: Make threaded view singleton creation thread safe +- x265: Fix a deadlock when failing to create the x265enc +- Don???t use volatile to mean atomic (fixes compiler warnings with + gcc 11) + +gst-plugins-ugly + +- asfdemux/realmedia: Drop duplicate seek events +- Don???t use volatile to mean atomic (fixes compiler warnings with + gcc 11) + +gst-libav + +- avmux: Blacklist ttml subtitles (fixes crash with ffmpeg >= 4.4) +- avmux: fix segfault when a plugin???s long_name is NULL +- avviddec: Fix size of linesize parameter +- avviddec: Take into account coded_height for pool +- avdemux: fix build with FFmpeg 4.4 + +gst-rtsp-server + +- rtsp-media: Ensure the bus watch is removed during unprepare +- rtsp-media: Add one more case to seek avoidance +- rtsp-media: Improve skipping trickmode seek +- Fix a few memory leaks + +gstreamer-vaapi + +- plugins: Demote rank of vaapipostproc and vaapioverlay to match + other filters +- Don???t use volatile to mean atomic (fixes compiler warnings with + gcc 11) + +gst-editing-services + +- xml-formatter: Fix allocation size of buffer +- framepositioner: Fix runtime warning +- Don???t use volatile to mean atomic (fixes compiler warnings with + gcc 11) + +gst-devtools + +- scenario: Fix EOS handling in seek_forward.scenario +- validate-utils: Only modify structure fields that really need + updates +- Don???t use volatile to mean atomic (fixes compiler warnings with + gcc 11) + +gst-integration-testsuites + +- validate: Update interlace_deinterlace_alternate to remove + field-order from expected caps + +gst-build + +- git-update: Make fetching of external repos non-fatal on the CI +- gst-env: Windows: Fix looking for cmd_or_ps.ps1 in the wrong + directory +- Pin gst-plugins-rs subproject to 0.7 branch + +Cerbero build tool and packaging changes in 1.18.5 + +- cerbero: Add a dotted progress bar for urllib downloads +- libunwind: make sure all pkgconfig files get included in the devel + package +- openssl.recipe: Bump to 1.1.1k +- glib: Fix hang on Windows when G_SLICE env is configured +- utils: Support latest Debian release names +- enums: generate fedora version strings automatically +- Rework cmake build system +- spandsp: Fix build error with Visual Studio 2019 + +Contributors to 1.18.5 + +Alba Mendez, Andoni Morales Alastruey, Antonio Rojas, Bart??omiej +Kurzeja, Binh Truong, Daniel Knobe, Doug Nazar, Edward Hervey, He +Junyan, Hou Qi, Jan Alexander Steffens (heftig), Jan Schmidt, Marijn +Suijten, Mathieu Duponchelle, Matthew Waters, Michael Olbrich, Miguel +Paris, Nicholas Jackson, Nicolas Dufresne, Nirbheek Chauhan, Olivier +Cr??te, Per F??rlin, Philippe Normand, Robin Burchell, Ruslan Khamidullin, +Scott Moreau, Sebastian Dr??ge, Sergei Kovalev, Seungha Yang, St??phane +Cerveau, Steve McDaniel, Thibault Saunier, Tim-Philipp M??ller, V??ctor +Manuel J??quez Leal, Xavier Claessens, Youngsoo Lee, + +??? 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.5 + +- List of Merge Requests applied in 1.18.5 +- List of Issues fixed in 1.18.5 + Schedule for 1.20 Our next major feature release will be 1.20, and 1.19 will be the @@ -2886,9 +3190,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 April -2021, with the first 1.20 stable release hopefully around April/May -2021. +is now expected that feature freeze will take place some time in +September/October 2021, with the first 1.20 stable release hopefully +towards the end of October 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' old/gst-plugins-ugly-1.18.4/RELEASE new/gst-plugins-ugly-1.18.5/RELEASE --- old/gst-plugins-ugly-1.18.4/RELEASE 2021-03-15 18:48:48.000000000 +0100 +++ new/gst-plugins-ugly-1.18.5/RELEASE 2021-09-08 21:03:08.000000000 +0200 @@ -1,4 +1,4 @@ -This is GStreamer gst-plugins-ugly 1.18.4. +This is GStreamer gst-plugins-ugly 1.18.5. 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' old/gst-plugins-ugly-1.18.4/ext/x264/gstencoderbitrateprofilemanager.c new/gst-plugins-ugly-1.18.5/ext/x264/gstencoderbitrateprofilemanager.c --- old/gst-plugins-ugly-1.18.4/ext/x264/gstencoderbitrateprofilemanager.c 2021-03-15 18:48:48.000000000 +0100 +++ new/gst-plugins-ugly-1.18.5/ext/x264/gstencoderbitrateprofilemanager.c 2021-09-08 21:03:08.000000000 +0200 @@ -205,7 +205,7 @@ { GstEncoderBitrateProfileManager *self = g_new0 (GstEncoderBitrateProfileManager, 1); - static volatile gsize _init = 0; + static gsize _init = 0; if (g_once_init_enter (&_init)) { GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "encoderbitratemanager", 0, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-ugly-1.18.4/gst/asfdemux/gstasfdemux.c new/gst-plugins-ugly-1.18.5/gst/asfdemux/gstasfdemux.c --- old/gst-plugins-ugly-1.18.4/gst/asfdemux/gstasfdemux.c 2021-03-15 18:48:48.000000000 +0100 +++ new/gst-plugins-ugly-1.18.5/gst/asfdemux/gstasfdemux.c 2021-09-08 21:03:08.000000000 +0200 @@ -47,6 +47,9 @@ #include "asfheaders.h" #include "asfpacket.h" +GST_DEBUG_CATEGORY (asfdemux_dbg); +#define GST_CAT_DEFAULT asfdemux_dbg + static GstStaticPadTemplate gst_asf_demux_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, @@ -77,8 +80,6 @@ (flow == ASF_FLOW_NEED_MORE_DATA) ? \ "need-more-data" : gst_flow_get_name (flow) -GST_DEBUG_CATEGORY (asfdemux_dbg); - static void gst_asf_demux_finalize (GObject * object); static GstStateChangeReturn gst_asf_demux_change_state (GstElement * element, GstStateChange transition); @@ -850,12 +851,21 @@ { GstASFDemux *demux; gboolean ret; + guint32 seqnum; demux = GST_ASF_DEMUX (parent); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_SEEK: GST_LOG_OBJECT (pad, "seek event"); + seqnum = gst_event_get_seqnum (event); + if (demux->segment_seqnum == seqnum) { + GST_LOG_OBJECT (pad, + "Drop duplicated SEEK event seqnum %" G_GUINT32_FORMAT, seqnum); + gst_event_unref (event); + ret = TRUE; + break; + } ret = gst_asf_demux_handle_seek_event (demux, event); gst_event_unref (event); break; @@ -1785,7 +1795,6 @@ demux->taglist = NULL; demux->need_newsegment = FALSE; - demux->segment_seqnum = 0; demux->segment_running = TRUE; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-ugly-1.18.4/gst/realmedia/rmdemux.c new/gst-plugins-ugly-1.18.5/gst/realmedia/rmdemux.c --- old/gst-plugins-ugly-1.18.4/gst/realmedia/rmdemux.c 2021-03-15 18:48:48.000000000 +0100 +++ new/gst-plugins-ugly-1.18.5/gst/realmedia/rmdemux.c 2021-09-08 21:03:08.000000000 +0200 @@ -268,6 +268,7 @@ rmdemux->have_group_id = FALSE; rmdemux->group_id = G_MAXUINT; rmdemux->flowcombiner = gst_flow_combiner_new (); + rmdemux->seek_seqnum = GST_SEQNUM_INVALID; gst_rm_utils_run_tests (); } @@ -302,8 +303,18 @@ case GST_EVENT_SEEK: { gboolean running; + guint32 seqnum; GST_LOG_OBJECT (rmdemux, "Event on src: SEEK"); + + seqnum = gst_event_get_seqnum (event); + if (seqnum == rmdemux->seek_seqnum) { + GST_LOG_OBJECT (pad, + "Drop duplicated SEEK event seqnum %" G_GUINT32_FORMAT, seqnum); + gst_event_unref (event); + break; + } + /* can't seek if we are not seekable, FIXME could pass the * seek query upstream after converting it to bytes using * the average bitrate of the stream. */ @@ -479,10 +490,13 @@ GstSeekType cur_type, stop_type; gint64 cur, stop; gboolean update; + guint32 seqnum = GST_SEQNUM_INVALID; + GstEvent *fl_event; if (event) { GST_DEBUG_OBJECT (rmdemux, "seek with event"); + seqnum = gst_event_get_seqnum (event); gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, &stop_type, &stop); @@ -511,8 +525,15 @@ /* first step is to unlock the streaming thread if it is * blocked in a chain call, we do this by starting the flush. */ if (flush) { - gst_pad_push_event (rmdemux->sinkpad, gst_event_new_flush_start ()); - gst_rmdemux_send_event (rmdemux, gst_event_new_flush_start ()); + fl_event = gst_event_new_flush_start (); + if (seqnum != GST_SEQNUM_INVALID) + gst_event_set_seqnum (fl_event, seqnum); + gst_pad_push_event (rmdemux->sinkpad, fl_event); + + fl_event = gst_event_new_flush_start (); + if (seqnum != GST_SEQNUM_INVALID) + gst_event_set_seqnum (fl_event, seqnum); + gst_rmdemux_send_event (rmdemux, fl_event); } else { gst_pad_pause_task (rmdemux->sinkpad); } @@ -532,6 +553,8 @@ ret = FALSE; goto done; } + + rmdemux->seek_seqnum = seqnum; } GST_DEBUG_OBJECT (rmdemux, "segment positions set to %" GST_TIME_FORMAT "-%" @@ -540,7 +563,10 @@ /* we need to stop flushing on the sinkpad as we're going to use it * next. We can do this as we have the STREAM lock now. */ - gst_pad_push_event (rmdemux->sinkpad, gst_event_new_flush_stop (TRUE)); + fl_event = gst_event_new_flush_stop (TRUE); + if (seqnum != GST_SEQNUM_INVALID) + gst_event_set_seqnum (fl_event, seqnum); + gst_pad_push_event (rmdemux->sinkpad, fl_event); GST_LOG_OBJECT (rmdemux, "Pushed FLUSH_STOP event"); @@ -578,17 +604,24 @@ /* Reset the demuxer state */ rmdemux->state = RMDEMUX_STATE_DATA_PACKET; - if (flush) - gst_rmdemux_send_event (rmdemux, gst_event_new_flush_stop (TRUE)); + if (flush) { + fl_event = gst_event_new_flush_stop (TRUE); + if (seqnum != GST_SEQNUM_INVALID) + gst_event_set_seqnum (fl_event, seqnum); + gst_rmdemux_send_event (rmdemux, fl_event); + } /* must send newsegment event from streaming thread, so just set flag */ rmdemux->need_newsegment = TRUE; /* notify start of new segment */ if (rmdemux->segment.flags & GST_SEEK_FLAG_SEGMENT) { - gst_element_post_message (GST_ELEMENT_CAST (rmdemux), + GstMessage *msg = gst_message_new_segment_start (GST_OBJECT_CAST (rmdemux), - GST_FORMAT_TIME, rmdemux->segment.position)); + GST_FORMAT_TIME, rmdemux->segment.position); + if (seqnum != GST_SEQNUM_INVALID) + gst_message_set_seqnum (msg, seqnum); + gst_element_post_message (GST_ELEMENT_CAST (rmdemux), msg); } /* restart our task since it might have been stopped when we did the @@ -731,6 +764,8 @@ rmdemux->have_group_id = FALSE; rmdemux->group_id = G_MAXUINT; + + rmdemux->seek_seqnum = GST_SEQNUM_INVALID; } static GstStateChangeReturn diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-ugly-1.18.4/gst/realmedia/rmdemux.h new/gst-plugins-ugly-1.18.5/gst/realmedia/rmdemux.h --- old/gst-plugins-ugly-1.18.4/gst/realmedia/rmdemux.h 2021-03-15 18:48:48.000000000 +0100 +++ new/gst-plugins-ugly-1.18.5/gst/realmedia/rmdemux.h 2021-09-08 21:03:08.000000000 +0200 @@ -103,6 +103,7 @@ guint offset; gboolean seekable; + guint32 seek_seqnum; GstRMDemuxState state; GstRMDemuxLoopState loop_state; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-ugly-1.18.4/gst-plugins-ugly.doap new/gst-plugins-ugly-1.18.5/gst-plugins-ugly.doap --- old/gst-plugins-ugly-1.18.4/gst-plugins-ugly.doap 2021-03-15 18:48:48.000000000 +0100 +++ new/gst-plugins-ugly-1.18.5/gst-plugins-ugly.doap 2021-09-08 21:03:08.000000000 +0200 @@ -35,6 +35,16 @@ <release> <Version> + <revision>1.18.5</revision> + <branch>1.18</branch> + <name></name> + <created>2021-09-08</created> + <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.18.5.tar.xz" /> + </Version> + </release> + + <release> + <Version> <revision>1.18.4</revision> <branch>1.18</branch> <name></name> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-ugly-1.18.4/meson.build new/gst-plugins-ugly-1.18.5/meson.build --- old/gst-plugins-ugly-1.18.4/meson.build 2021-03-15 18:48:48.000000000 +0100 +++ new/gst-plugins-ugly-1.18.5/meson.build 2021-09-08 21:03:08.000000000 +0200 @@ -1,5 +1,5 @@ project('gst-plugins-ugly', 'c', - version : '1.18.4', + version : '1.18.5', meson_version : '>= 0.48', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ])