Projects
Essentials
gstreamer-plugins-bad-codecs
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 40
View file
gstreamer-plugins-bad-codecs.changes
Changed
@@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Fri Oct 17 07:25:00 UTC 2025 - Bjørn Lie <zaitor@opensuse.org> + +- Update to version 1.26.7 + +------------------------------------------------------------------- Tue Sep 23 07:14:47 UTC 2025 - Bjørn Lie <zaitor@opensuse.org> - Update to version 1.26.6
View file
gstreamer-plugins-bad-codecs.spec
Changed
@@ -7,7 +7,7 @@ %define _version 1.26.0 Name: gstreamer-plugins-bad-codecs -Version: 1.26.6 +Version: 1.26.7 Release: 0 Summary: Codecs/plugins for gstreamer-plugins-bad License: LGPL-2.1-or-later
View file
_service
Changed
@@ -2,7 +2,7 @@ <service name="download_url"> <param name="host">gstreamer.freedesktop.org</param> <param name="protocol">https</param> - <param name="path">/src/gst-plugins-bad/gst-plugins-bad-1.26.6.tar.xz</param> + <param name="path">/src/gst-plugins-bad/gst-plugins-bad-1.26.7.tar.xz</param> </service> <service name="set_version" mode="buildtime"/> </services>
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/ChangeLog -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/ChangeLog
Changed
@@ -1,3 +1,150 @@ +=== release 1.26.7 === + +2025-10-14 18:25:43 +0100 Tim-Philipp Müller <tim@centricular.com> + + * NEWS: + * RELEASE: + * gst-plugins-bad.doap: + * meson.build: + Release 1.26.7 + +2025-10-09 08:09:33 +0200 Branko Subasic <branko.subasic@axis.com> + + * gst/mpegtsmux/gstbasetsmux.c: + mpegtsmux: Properly check if pads are EOS in find_best_pad + In find_best_pad(), when checking if a pad is EOS we use the macro + GST_PAD_IS_EOS. But the aggregator pads will not propagate EOS received + on it's sinkpads until it has received EOS on all of them. Instead the + EOS event is put in the queue, which means that GST_PAD_IS_EOS will + return FALSE. + This makes find_best_pad() fail to find a best pad when all but one sink + pad has received EOS, and have no data left in their queues, and the + last one has data. The problem is solved by modifying find_best_pad() to + use gst_aggregator_pad_is_eos() instead. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9821> + +2025-10-08 14:05:07 +0200 Branko Subasic <branko.subasic@axis.com> + + * ext/closedcaption/gstcea608mux.c: + cea608mux: Properly check if pads are EOS in find_best_pad + In find_best_pad(), when checking if a pad is EOS we use the macro + GST_PAD_IS_EOS. But the aggregator pads will not propagate EOS received + on it's sinkpads until it has received EOS on all of them. Instead the + EOS event is put in the queue, which means that GST_PAD_IS_EOS will + return FALSE. + This makes find_best_pad() fail to find a best pad when all but one sink + pad has received EOS, and have no data left in their queues, and the + last one has data. The problem is solved by modifying find_best_pad() to + use gst_aggregator_pad_is_eos() instead. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9821> + +2025-10-07 12:25:07 +0100 Philippe Normand <philn@igalia.com> + + * gst-libs/gst/webrtc/nice/nice.c: + webrtc: nice: Fix a use-after-free and a mem leak + `new_candidate` was freed too early and `new_addr` wasn't freed in case of early + return from the on_candidate_resolved function. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9816> + +2025-09-26 16:58:38 +0900 Seungha Yang <seungha@centricular.com> + + * gst-libs/gst/cuda/gstcudanvrtc.cpp: + cuda: Fix runtime kernel compile with CUDA 13.0 + Instead of hardcoded value, checks compute compatibility at runtime + Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4655 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9769> + +2025-09-22 12:00:32 +0300 Sebastian Dröge <sebastian@centricular.com> + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Directly forward Opus AUs without `opus_control_header` + ffmpeg does the same, assuming that it's raw Opus data. + ZLMediaKit is producing MPEG-TS like this and probably nobody ever noticed + because ffmpeg allows for this, so let's work around their bugs and handle it + the same way as ffmpeg. + See https://github.com/ZLMediaKit/ZLMediaKit/issues/4461 + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4645 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9765> + +2025-09-25 22:42:12 -0400 Doug Nazar <nazard@nazar.ca> + + * ext/lv2/gstlv2utils.c: + * ext/teletextdec/gstteletextdec.c: + * gst/rist/gstristsink.c: + * gst/rist/gstristsrc.c: + * sys/decklink/gstdecklinkvideosink.cpp: + * sys/uvcgadget/gstuvcsink.c: + gst: Fix a few small leaks + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9761> + +2025-09-24 19:37:00 +0900 Seungha Yang <seungha@centricular.com> + + * sys/d3d12/gstd3d12convert.cpp: + d3d12convert: Fix crop meta support + When in/output caps are identical, even if downstream didn't propose + pool, always respond to support crop meta + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9743> + +2025-09-23 09:06:09 +0300 Sebastian Dröge <sebastian@centricular.com> + + * gst/mpegtsmux/gstbasetsmux.c: + tsmux: Write a full Opus channel configuration if no matching Vorbis one is found + Instead of simply failing negotiation despite the stream being supported. + Without this the following pipeline will fail: + audiotestsrc is-live=true ! audio/x-raw,channels=8 ! opusenc ! mpegtsmux ! fakesink + opusenc selects the Vorbis channel layout family but a channel-mapping that is + not one of the ones supported by the short MPEG-TS Opus channel configurations. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9733> + +2025-09-22 10:09:48 +0800 Cheah, Vincent Beng Keat <vincent.beng.keat.cheah@intel.com> + + * sys/va/gstvacompositor.c: + vacompositor: Correct scale-method properties + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9726> + +2025-09-08 17:50:32 -0400 Doug Nazar <nazard@nazar.ca> + + * ext/closedcaption/gstcea608mux.c: + * gst/audiomixmatrix/gstaudiomixmatrix.c: + * gst/debugutils/gsttestsrcbin.c: + gst: Don't use g_assert() around production code + If G_DISABLE_ASSERT is defined the code will not be compiled. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9721> + +2025-09-16 19:00:47 +0530 Nirbheek Chauhan <nirbheek@centricular.com> + + * ext/isac/meson.build: + isac: Suppress warning about -Wno-virtual-dtor on Fedora + The absl pkgconfig files on Fedora contain -Wnon-virtual-dtor in + Cflags: even though pc files should not contain -W flags. Worse, our + plugin is written in C but that's a C++ argument so GCC emits + a warning about that. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9715> + +2025-09-16 16:38:22 -0700 Xavier Claessens <xclaessens@netflix.com> + + * gst/unixfd/gstunixfd.c: + * tests/check/elements/unixfd.c: + unixfd: Fix case of buffer with big payload + In the case a buffer has big meta serialization, for example if it + contains a GstBuffer, the payload cannot be sent/received in a single + call. + Idealy we should serialize metas into a memfd in that case, instead of + writing the data on the socket. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9706> + +2025-09-16 15:24:22 +0900 Seungha Yang <seungha@centricular.com> + + * sys/d3d12/gstd3d12deinterlace.cpp: + d3d12deinterlace: Fix passthrough handling + Don't try to convert buffer when passthrough is enabled + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9696> + +2025-09-14 13:19:28 +0100 Tim-Philipp Müller <tim@centricular.com> + + * meson.build: + Back to development after 1.26.6 + === release 1.26.6 === 2025-09-14 13:13:58 +0100 Tim-Philipp Müller <tim@centricular.com>
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/NEWS -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/NEWS
Changed
@@ -2,11 +2,11 @@ GStreamer 1.26.0 was originally released on 11 March 2025. -The latest bug-fix release in the stable 1.26 series is 1.26.6 and was released on 14 September 2025. +The latest bug-fix release in the stable 1.26 series is 1.26.7 and was released on 14 October 2025. See https://gstreamer.freedesktop.org/releases/1.26/ for the latest version of this document. -Last updated: Sunday 14 September 2025, 12:00 UTC (log) +Last updated: Tuesday 14 October 2025, 16:30 UTC (log) ## Introduction @@ -2599,6 +2599,173 @@ - List of Merge Requests applied in 1.26.6 - List of Issues fixed in 1.26.6 +1.26.7 + +The seventh 1.26 bug-fix release (1.26.7) was released on 14 October 2025. + +This release only contains bugfixes including some important playback fixes, and it should be safe to update from 1.26.x. + +Highlighted bugfixes in 1.26.7 + +- cea608overlay: improve handling of non-system memory +- cuda: Fix runtime kernel compile with CUDA 13.0 +- d3d12: Fix crop meta support in converter and passthrough handling in deinterlacer +- fallbacksrc: source handling improvements; no-more-pads signal for streams-unaware parents +- inter: add properties to fine tune the inner elements +- qtdemux: surround sound channel layout handling fixes and performance improvements for GoPro videos +- rtp: Add linear audio (L8, L16, L24) RTP payloaders / depayloaders +- rtspsrc: Send RTSP keepalives in TCP/interleaved modes +- rtpamrpay2: frame quality indicator flag related fixes +- rtpbasepay2: reuse last PTS when possible, to work around problems with NVIDIA Jetson AV1 encoder +- mpegtsmux, tsdemux: Opus audio handling fixes +- threadshare: latency related improvements and many other fixes +- matroskamux, tsmux, flvmux, cea608mux: Best pad determination fixes at EOS +- unixfd: support buffers with a big payload +- videorate unknown buffer duration assertion failure with variable framerates +- editing services: Make GESTimeline respect SELECT_ELEMENT_TRACK signal discard decision; memory leak fixes +- gobject-introspection annotation fixes +- cerbero: Update meson to 1.9.0 to enable Xcode 26 compatibility +- Various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements + +gstreamer + +- controller: Fix get_all() return type annotation +- gst-launch: Do not assume error messages have a src element +- multiqueue: Fix object reference handling in signal callbacks +- netclientclock: Fix memory leak in error paths + +gst-plugins-base + +- discoverer: Mark gst_discoverer_stream_info_list_free() as transfer full +- qt: Fix building examples on macOS +- riff: Add channel reorder maps for 3 and 7 channel audio +- sdp: proper usage of gst_buffer_append +- videorate: fix assert fail due to invalid buffer duration +- Fix build error with glib < 2.68 + +gst-plugins-good + +- matroskamux: Properly check if pads are EOS in find_best_pad +- qt: Fix building examples on macOS +- qtdemux: bad performance with GoPro videos containing FDSC metadata tracks +- qtdemux: fix open/seek perf for GoPro files with SOS track +- qtdemux: handle unsupported channel layout tags gracefully +- qtdemux: set channel-mask to 0 for unknown layout tags +- rtspsrc: Send RTSP keepalives in TCP/interleaved modes +- v4l2: Add GstV4l2Error handling in gst_v4l2_get_capabilities +- v4l2: Fix memory leak for DRM caps negotiation +- v4l2transform: reconfigure v4l2object only if respective caps changed +- Fix issues with G_DISABLE_CHECKS & G_DISABLE_ASSERT + +gst-plugins-bad + +- cuda: Fix runtime kernel compile with CUDA 13.0 +- d3d12convert: Fix crop meta support +- d3d12deinterlace: Fix passthrough handling +- gst: Fix a few small leaks +- matroskamux: Properly check if pads are EOS in find_best_pad +- tsdemux: Directly forward Opus AUs without opus_control_header +- tsmux: Write a full Opus channel configuration if no matching Vorbis one is found +- unixfd: Fix case of buffer with big payload +- vacompositor: Correct scale-method properties +- webrtc: nice: Fix a use-after-free and a mem leak +- Fix all compiler warnings on Fedora +- Fix issues with G_DISABLE_CHECKS & G_DISABLE_ASSERT + +gst-plugins-ugly + +- No changes + +GStreamer Rust plugins + +- cea608overlay: Support non-system memory correctly +- fallbacksrc: Fix custom source reuse case +- fallbacksrc: Fix sources only being restarted once +- fallbacksrc: Post no-more-pads signal for streams-unaware parent +- inter: add properties to fine tune the inner elements +- onvifmetadatapay: copy metadata from source buffer +- rtp: Add linear audio (L8, L16, L24) RTP payloaders / depayloaders +- rtpamrpay2: Actually forward the frame quality indicator +- rtpamrpay2: Set frame quality indicator flag +- rtp: basedepay: reuse last PTS, when possible to work around problems with NVIDIA Jetson AV1 encoder +- rtpsend/recv: fix property type for stats +- threadshare: audiotestsrc: support more Audio formats +- threadshare: backpressure: abort pending items on flush start +- threadshare: fixes & improvements +- threadshare: latency related improvements and fixes +- threadshare: runtime task: execute action in downward transition +- threadshare: udpsink: fix panic recalculating latency from certain executors +- uriplaylistbin: Ignore all tests for now +- webrtc: livekit: Drop connection lock after take() +- Update dependencies +- Update dependencies +- ci: use image and GST_RS_MSRV / GST_RS_STABLE variables from gstreamer-rs 0.24 in gst-plugins-rs 0.14 branch +- Add rust-tls-native-roots feature to the reqwest dep +- Fix some new clippy 1.90 warnings +- meson: Fix .pc files installation and simplify build output handling + +gst-libav + +- Fix all compiler warnings on Fedora + +gst-rtsp-server + +- Fix issues with G_DISABLE_CHECKS & G_DISABLE_ASSERT + +gstreamer-vaapi + +- No changes + +gstreamer-sharp + +- No changes + +gst-python + +- No changes + +gst-editing-services + +- ges: timeline: Respect SELECT_ELEMENT_TRACK signal discard decision +- gst: Fix a few small leaks + +gst-devtools, gst-validate + gst-integration-testsuites + +- Fix issues with G_DISABLE_CHECKS & G_DISABLE_ASSERT + +gst-examples + +- No changes + +gstreamer-docs + +- No changes + +Development build environment + +- libsoup.wrap: Apply upstream fix for GModule deadlock + +Cerbero build tool and packaging changes in 1.26.7 + +- meson: Update to 1.9.0 to enable Xcode 26 compatibility +- osxrelocator: Add .so to the allowed dylib extensions +- ci: update macos image to 26-tahoe +- EndeavourOS support + +Contributors to 1.26.7 + +Andoni Morales Alastruey, Branko Subasic, Vincent Beng Keat Cheah, Doug Nazar, Ekwang Lee, François Laignel, Inbok Kim, Jakub +Adam, Jan Schmidt, Jochen Henneberg, L. E. Segovia, Mark Nauwelaerts, Markus Hofstaetter, Matthew Waters, Nirbheek Chauhan, +Norbert Hańderek, Philippe Normand, Razvan Grigore, Sebastian Dröge, Seungha Yang, Taruntej Kanakamalla, Thibault Saunier, +Tim-Philipp Müller, Xavier Claessens, + +… 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.26.7 + +- List of Merge Requests applied in 1.26.7 +- List of Issues fixed in 1.26.7 + Schedule for 1.28 Our next major feature release will be 1.28, and 1.27 will be the unstable development version leading up to the stable 1.28
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/RELEASE -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/RELEASE
Changed
@@ -1,4 +1,4 @@ -This is GStreamer gst-plugins-bad 1.26.6. +This is GStreamer gst-plugins-bad 1.26.7. The GStreamer team is thrilled to announce a new major feature release of your favourite cross-platform multimedia framework!
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/ext/closedcaption/gstcea608mux.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/ext/closedcaption/gstcea608mux.c
Changed
@@ -110,7 +110,7 @@ buffer = gst_aggregator_pad_peek_buffer (apad); if (!buffer) { - if (!timeout && !GST_PAD_IS_EOS (apad)) { + if (!timeout && !gst_aggregator_pad_is_eos (apad)) { gst_object_replace ((GstObject **) & best, NULL); best_ts = GST_CLOCK_TIME_NONE; done = TRUE; @@ -363,11 +363,12 @@ gint fps_n, fps_d; GstCea608Mux *self = GST_CEA608MUX (agg); GstClockTime latency; + gboolean success G_GNUC_UNUSED; /* G_DISABLE_ASSERT */ GST_INFO_OBJECT (agg->srcpad, "set src caps: %" GST_PTR_FORMAT, caps); - g_assert (gst_structure_get_fraction (s, "framerate", &fps_n, - &fps_d) == TRUE); + success = gst_structure_get_fraction (s, "framerate", &fps_n, &fps_d); + g_assert (success); self->cdp_fps_entry = cdp_fps_entry_from_fps (fps_n, fps_d); g_assert (self->cdp_fps_entry != NULL && self->cdp_fps_entry->fps_n != 0);
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/ext/isac/meson.build -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/ext/isac/meson.build
Changed
@@ -26,9 +26,13 @@ 'isac': pathsep.join(doc_sources) } +# Fedora's pkgconfig file adds -Wno-virtual-dtor and GCC complains about that +# being a C++-only argument +gstisac_c_args = cc.get_supported_arguments('-Wno-complain-wrong-lang') + if webrtc_audio_coding_dep.found() gstisac = library('gstisac', isac_sources, - c_args : gst_plugins_bad_args, + c_args : gst_plugins_bad_args + gstisac_c_args, include_directories : configinc, dependencies : gstaudio_dep, webrtc_audio_coding_dep, install : true,
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/ext/lv2/gstlv2utils.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/ext/lv2/gstlv2utils.c
Changed
@@ -599,8 +599,14 @@ gst_lv2_class_get_param_nick (GstLV2Class * klass, const LilvPort * port) { const LilvPlugin *lv2plugin = klass->plugin; + LilvNode *node; + gchar *name; - return g_strdup (lilv_node_as_string (lilv_port_get_name (lv2plugin, port))); + node = lilv_port_get_name (lv2plugin, port); + name = g_strdup (lilv_node_as_string (node)); + lilv_node_free (node); + + return name; } static int
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/ext/teletextdec/gstteletextdec.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/ext/teletextdec/gstteletextdec.c
Changed
@@ -284,6 +284,8 @@ { GstTeletextDec *teletext = GST_TELETEXTDEC (object); + gst_teletextdec_zvbi_clear (teletext); + g_mutex_clear (&teletext->queue_lock); g_free (teletext->font_description);
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/gst-libs/gst/cuda/gstcudanvrtc.cpp -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/gst-libs/gst/cuda/gstcudanvrtc.cpp
Changed
@@ -296,7 +296,6 @@ CUresult curet; gsize ptx_size; gchar *ptx = nullptr; - int driverVersion; std::vector < const gchar *>opts; g_return_val_if_fail (source != nullptr, nullptr); @@ -307,14 +306,20 @@ GST_TRACE ("CUDA kernel source \n%s", source); - curet = CuDriverGetVersion (&driverVersion); + gint major, minor; + curet = CuDeviceGetAttribute (&major, + CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR, 0); if (curet != CUDA_SUCCESS) { - GST_ERROR ("Failed to query CUDA Driver version, ret %d", curet); + GST_WARNING ("Unknown major compute caps"); return nullptr; } - GST_DEBUG ("CUDA Driver Version %d.%d", driverVersion / 1000, - (driverVersion % 1000) / 10); + curet = CuDeviceGetAttribute (&minor, + CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR, 0); + if (curet != CUDA_SUCCESS) { + GST_WARNING ("Unknown minor compute caps"); + return nullptr; + } ret = NvrtcCreateProgram (&prog, source, nullptr, 0, nullptr, nullptr); if (ret != NVRTC_SUCCESS) { @@ -322,16 +327,20 @@ return nullptr; } - /* Starting from CUDA 11, the lowest supported architecture is 5.2 */ - if (driverVersion >= 11000) - opts.push_back ("--gpu-architecture=compute_52"); - else - opts.push_back ("--gpu-architecture=compute_30"); + std::string opt_str = "--gpu-architecture=compute_" + + std::to_string (major) + std::to_string (minor); for (guint i = 0; i < num_options; i++) opts.push_back (optionsi); + opts.push_back (opt_str.c_str ()); ret = NvrtcCompileProgram (prog, opts.size (), opts.data ()); + + if (ret != NVRTC_SUCCESS) { + /* Try with default architecture value */ + ret = NvrtcCompileProgram (prog, num_options, options); + } + if (ret != NVRTC_SUCCESS) { gsize log_size;
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/gst-libs/gst/webrtc/nice/nice.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/gst-libs/gst/webrtc/nice/nice.c
Changed
@@ -808,7 +808,8 @@ cand = nice_agent_parse_remote_candidate_sdp (nice->priv->nice_agent, rc->nice_stream_id, new_candidate); - g_free (new_candidate); + + g_free (new_addr); if (!cand) { if (rc->promise) { GError *error = @@ -822,11 +823,11 @@ GST_WARNING_OBJECT (ice, "Could not parse candidate \'%s\'", new_candidate); } + g_free (new_candidate); return; } - g_free (new_addr); - + g_free (new_candidate); add_ice_candidate_to_libnice (ice, rc->nice_stream_id, cand); nice_candidate_free (cand); }
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/gst-plugins-bad.doap -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/gst-plugins-bad.doap
Changed
@@ -35,6 +35,16 @@ <release> <Version> + <revision>1.26.7</revision> + <branch>1.26</branch> + <name></name> + <created>2025-10-14</created> + <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.26.7.tar.xz" /> + </Version> + </release> + + <release> + <Version> <revision>1.26.6</revision> <branch>1.26</branch> <name></name>
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/gst/audiomixmatrix/gstaudiomixmatrix.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/gst/audiomixmatrix/gstaudiomixmatrix.c
Changed
@@ -666,9 +666,11 @@ if (!gst_structure_has_field (s, "channel-mask")) { if (self->mode == GST_AUDIO_MIX_MATRIX_MODE_FIRST_CHANNELS || self->channel_mask == -1) { + gboolean success G_GNUC_UNUSED; /* G_DISABLE_ASSERT */ gint channels; - g_assert (gst_structure_get_int (s, "channels", &channels)); + success = gst_structure_get_int (s, "channels", &channels); + g_assert (success); gst_structure_set (s, "channel-mask", GST_TYPE_BITMASK, gst_audio_channel_get_fallback_mask (channels), NULL); } else {
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/gst/debugutils/gsttestsrcbin.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/gst/debugutils/gsttestsrcbin.c
Changed
@@ -619,9 +619,11 @@ switch (prop_id) { case PROP_STREAM_TYPES: { + gboolean set G_GNUC_UNUSED; /* G_DISABLE_ASSERT */ gchar *uri = g_strdup_printf ("testbin://%s", g_value_get_string (value)); - g_assert (gst_uri_handler_set_uri (GST_URI_HANDLER (self), uri, NULL)); + set = gst_uri_handler_set_uri (GST_URI_HANDLER (self), uri, NULL); + g_assert (set); g_free (uri); break; }
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/gst/mpegtsdemux/tsdemux.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/gst/mpegtsdemux/tsdemux.c
Changed
@@ -3158,14 +3158,25 @@ parse_opus_access_unit (TSDemuxStream * stream) { GstByteReader reader; + guint16 id; GstBufferList *buffer_list = NULL; buffer_list = gst_buffer_list_new (); gst_byte_reader_init (&reader, stream->data, stream->current_size); + if (!gst_byte_reader_peek_uint16_be (&reader, &id)) + goto error; + + /* No control header at the beginning of the access unit -- assume raw Opus */ + if ((id >> 5) != 0x3ff) { + GstBuffer *buffer = + gst_buffer_new_wrapped (stream->data, stream->current_size); + gst_buffer_list_add (buffer_list, buffer); + return buffer_list; + } + do { GstBuffer *buffer; - guint16 id; guint au_size = 0; guint8 b; gboolean start_trim_flag, end_trim_flag, control_extension_flag;
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/gst/mpegtsmux/gstbasetsmux.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/gst/mpegtsmux/gstbasetsmux.c
Changed
@@ -756,6 +756,7 @@ goto not_negotiated; } + /* First check for the cases that have a simplified configuration */ if (channels <= 2 && mapping_family == 0) { opus_channel_config0 = channels; opus_channel_config_len = 1; @@ -803,11 +804,11 @@ channels) == 0) { opus_channel_config0 = channels | 0x80; opus_channel_config_len = 1; - } else { - GST_FIXME_OBJECT (ts_pad, "Opus channel mapping not handled"); - goto not_negotiated; } - } else { + } + + /* If none of the simple cases matched, write out the full configuration */ + if (opus_channel_config_len == 0) { GstBitWriter writer; guint i; guint n_bits; @@ -2669,7 +2670,7 @@ buffer = gst_aggregator_pad_peek_buffer (apad); if (!buffer) { - if (!timeout && !GST_PAD_IS_EOS (apad)) { + if (!timeout && !gst_aggregator_pad_is_eos (apad)) { best = NULL; best_ts = GST_CLOCK_TIME_NONE; break;
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/gst/rist/gstristsink.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/gst/rist/gstristsink.c
Changed
@@ -1322,7 +1322,8 @@ } g_ptr_array_free (sink->bonds, TRUE); - g_clear_object (&sink->rtxbin); + gst_clear_object (&sink->rtxbin); + gst_clear_object (&sink->rtpext); g_mutex_unlock (&sink->bonds_lock); g_mutex_clear (&sink->bonds_lock);
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/gst/rist/gstristsrc.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/gst/rist/gstristsrc.c
Changed
@@ -453,6 +453,7 @@ gst_rist_src_init (GstRistSrc * src) { GstPad *pad, *gpad; + GstPadTemplate *template; GstStructure *sdes = NULL; RistReceiverBond *bond; @@ -471,9 +472,10 @@ * This pipeline is fixed for now, note that optionally an FEC stream could * be added later. */ - src->srcpad = gst_ghost_pad_new_no_target_from_template ("src", - gst_static_pad_template_get (&src_templ)); + template = gst_static_pad_template_get (&src_templ); + src->srcpad = gst_ghost_pad_new_no_target_from_template ("src", template); gst_element_add_pad (GST_ELEMENT (src), src->srcpad); + gst_object_unref (template); src->rtpbin = gst_element_factory_make ("rtpbin", "rist_recv_rtpbin"); if (!src->rtpbin) {
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/gst/unixfd/gstunixfd.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/gst/unixfd/gstunixfd.c
Changed
@@ -54,7 +54,6 @@ Command command = { type, payload_size }; GOutputVector vect = { {&command, sizeof (Command)}, - {payload, payload_size}, }; GSocketControlMessage *msg = NULL; gint num_msg = 0; @@ -70,7 +69,22 @@ ret = FALSE; } + if (ret && payload_size > 0) { + gsize remaining = payload_size; + const gchar *ptr = (const char *) payload; + while (remaining > 0) { + gssize sent = g_socket_send (socket, ptr, remaining, NULL, error); + if (sent < 0) { + ret = FALSE; + break; + } + remaining -= sent; + ptr += sent; + } + } + g_clear_object (&msg); + return ret; } @@ -98,11 +112,18 @@ if (command.payload_size > 0) { *payload = g_malloc (command.payload_size); *payload_size = command.payload_size; - if (g_socket_receive (socket, (gchar *) * payload, command.payload_size, - cancellable, error) < (gssize) command.payload_size) { - g_clear_pointer (payload, g_free); - ret = FALSE; - goto out; + gchar *ptr = (char *) *payload; + gsize remaining = command.payload_size; + while (remaining > 0) { + gssize received = + g_socket_receive (socket, ptr, remaining, cancellable, error); + if (received < 0) { + g_clear_pointer (payload, g_free); + ret = FALSE; + goto out; + } + remaining -= received; + ptr += received; } }
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/meson.build -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/meson.build
Changed
@@ -1,5 +1,5 @@ project('gst-plugins-bad', 'c', 'cpp', - version : '1.26.6', + version : '1.26.7', meson_version : '>= 1.4', default_options : 'warning_level=1', 'buildtype=debugoptimized' )
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/po/gst-plugins-bad-1.0.pot -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/po/gst-plugins-bad-1.0.pot
Changed
@@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gst-plugins-bad-1.26.6\n" +"Project-Id-Version: gst-plugins-bad-1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-14 13:14+0100\n" +"POT-Creation-Date: 2025-10-14 18:27+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/po/gst-plugins-bad.pot -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/po/gst-plugins-bad.pot
Changed
@@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gst-plugins-bad-1.26.6\n" +"Project-Id-Version: gst-plugins-bad-1.26.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-14 13:14+0100\n" +"POT-Creation-Date: 2025-10-14 18:27+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/sys/d3d12/gstd3d12convert.cpp -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/sys/d3d12/gstd3d12convert.cpp
Changed
@@ -1543,10 +1543,7 @@ return FALSE; } - if (priv->same_caps) { - if (!gst_pad_peer_query (trans->srcpad, query)) - return FALSE; - + if (priv->same_caps && gst_pad_peer_query (trans->srcpad, query)) { gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, nullptr); gst_query_add_allocation_meta (query, GST_VIDEO_CROP_META_API_TYPE, nullptr);
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/sys/d3d12/gstd3d12deinterlace.cpp -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/sys/d3d12/gstd3d12deinterlace.cpp
Changed
@@ -1104,6 +1104,9 @@ if (ret != GST_FLOW_OK) return ret; + if (gst_base_transform_is_passthrough (trans)) + return GST_FLOW_OK; + /* at this moment, baseclass must hold queued_buf */ g_assert (trans->queued_buf != NULL); auto buf = trans->queued_buf;
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/sys/decklink/gstdecklinkvideosink.cpp -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/sys/decklink/gstdecklinkvideosink.cpp
Changed
@@ -1106,7 +1106,7 @@ { GstDecklinkVideoSink *self = GST_DECKLINK_VIDEO_SINK_CAST (object); - g_queue_clear_full (self->pending_frames, (GDestroyNotify) unref_frame); + g_queue_free_full (self->pending_frames, (GDestroyNotify) unref_frame); self->pending_frames = NULL; G_OBJECT_CLASS (parent_class)->finalize (object);
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/sys/uvcgadget/gstuvcsink.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/sys/uvcgadget/gstuvcsink.c
Changed
@@ -658,6 +658,10 @@ self->sinkpad = NULL; } + gst_clear_object (&self->fakesinkpad); + gst_clear_object (&self->v4l2sinkpad); + gst_clear_caps (&self->cur_caps); + G_OBJECT_CLASS (parent_class)->dispose (object); }
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/sys/va/gstvacompositor.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/sys/va/gstvacompositor.c
Changed
@@ -1664,7 +1664,7 @@ */ if (GST_VA_DISPLAY_IS_IMPLEMENTATION (display, INTEL_IHD)) { g_object_class_install_property (object_class, - GST_VA_FILTER_PROP_SCALE_METHOD, + PROP_SCALE_METHOD, g_param_spec_enum ("scale-method", "Scale Method", "Scale method to use", GST_TYPE_VA_SCALE_METHOD, VA_FILTER_SCALING_DEFAULT,
View file
_service:download_url:gst-plugins-bad-1.26.6.tar.xz/tests/check/elements/unixfd.c -> _service:download_url:gst-plugins-bad-1.26.7.tar.xz/tests/check/elements/unixfd.c
Changed
@@ -224,6 +224,98 @@ GST_END_TEST; +GST_START_TEST (test_unixfd_big_payload) +{ + GError *error = NULL; + + /* Ensure we don't have socket from previous failed test */ + gchar *tempdir = g_dir_make_tmp ("unixfd-test-XXXXXX", &error); + g_assert_no_error (error); + gchar *socket_path = g_strdup_printf ("%s/socket", tempdir); + + GstCaps *caps = gst_caps_new_empty_simple ("video/x-raw"); + + /* Setup service */ + gchar *pipeline_str = + g_strdup_printf + ("appsrc name=src format=time ! unixfdsink socket-path=%s sync=false async=false wait-for-connection=true", + socket_path); + GstElement *pipeline_service = gst_parse_launch (pipeline_str, &error); + g_assert_no_error (error); + fail_unless (gst_element_set_state (pipeline_service, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS); + GstElement *appsrc = gst_bin_get_by_name (GST_BIN (pipeline_service), "src"); + gst_object_unref (appsrc); + g_free (pipeline_str); + + /* Setup client */ + pipeline_str = + g_strdup_printf + ("unixfdsrc socket-path=%s ! appsink name=sink sync=false async=false", + socket_path); + GstElement *pipeline_client = gst_parse_launch (pipeline_str, &error); + g_assert_no_error (error); + fail_unless (gst_element_set_state (pipeline_client, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS); + GstElement *appsink = gst_bin_get_by_name (GST_BIN (pipeline_client), "sink"); + gst_object_unref (appsink); + g_free (pipeline_str); + + /* Send a buffer with 1MB meta payload */ + gsize data_size = 1000000; + GstBuffer *indata = gst_buffer_new_allocate (NULL, data_size, NULL); + gst_buffer_memset (indata, 0, 0x42, data_size); + + GstSegment segment; + gst_segment_init (&segment, GST_FORMAT_TIME); + gst_meta_register_custom_simple ("test_unixfd_big_payload"); + GstBuffer *buf = gst_buffer_new (); + GstCustomMeta *meta = + gst_buffer_add_custom_meta (buf, "test_unixfd_big_payload"); + gst_structure_set (meta->structure, "data", GST_TYPE_BUFFER, indata, NULL); + GstSample *sample = gst_sample_new (buf, caps, &segment, NULL); + gst_app_src_push_sample (GST_APP_SRC (appsrc), sample); + gst_sample_unref (sample); + gst_buffer_unref (buf); + + /* Wait for it */ + sample = gst_app_sink_pull_sample (GST_APP_SINK (appsink)); + buf = gst_sample_get_buffer (sample); + meta = gst_buffer_get_custom_meta (buf, "test_unixfd_big_payload"); + fail_unless (meta != NULL); + GstBuffer *outdata = NULL; + gst_structure_get (meta->structure, "data", GST_TYPE_BUFFER, &outdata, NULL); + gst_sample_unref (sample); + + /* Check the buffer we received is identical */ + GstMapInfo inmap; + GstMapInfo outmap; + gst_buffer_map (indata, &inmap, GST_MAP_READ); + gst_buffer_map (outdata, &outmap, GST_MAP_READ); + fail_unless (inmap.size == outmap.size); + fail_unless (memcmp (inmap.data, outmap.data, inmap.size) == 0); + gst_buffer_unmap (indata, &inmap); + gst_buffer_unmap (outdata, &outmap); + gst_buffer_unref (indata); + gst_buffer_unref (outdata); + + /* Teardown */ + fail_unless (gst_element_set_state (pipeline_client, + GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS); + fail_unless (gst_element_set_state (pipeline_service, + GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS); + + g_rmdir (tempdir); + g_free (tempdir); + + gst_object_unref (pipeline_service); + gst_object_unref (pipeline_client); + g_free (socket_path); + gst_caps_unref (caps); +} + +GST_END_TEST; + static Suite * unixfd_suite (void) { @@ -233,6 +325,7 @@ suite_add_tcase (s, tc); tcase_add_test (tc, test_unixfd_videotestsrc); tcase_add_test (tc, test_unixfd_segment); + tcase_add_test (tc, test_unixfd_big_payload); return s; }
View file
gstreamer-plugins-bad-codecs-rpmlintrc
Added
@@ -0,0 +1,1 @@ +addFilter("W: no-%check-section") \ No newline at end of file
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.