Projects
Essentials
gstreamer-plugins-ugly-codecs
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 33
View file
gstreamer-plugins-ugly-codecs.changes
Changed
@@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Mon Mar 2 13:16:14 UTC 2026 - Bjørn Lie <zaitor@opensuse.org> + +- Update to version 1.28.1 + +------------------------------------------------------------------- Thu Feb 12 09:43:51 UTC 2026 - Bjørn Lie <zaitor@opensuse.org> - Update to version 1.28.0
View file
gstreamer-plugins-ugly-codecs.spec
Changed
@@ -7,7 +7,7 @@ %define _version 1.28.0 Name: gstreamer-plugins-ugly-codecs -Version: 1.28.0 +Version: 1.28.1 Release: 0 Summary: Codecs/plugins for gstreamer-plugins-ugly License: LGPL-2.1-or-later
View file
_service:download_files:gst-plugins-ugly-1.28.0.tar.xz/NEWS
Deleted
@@ -1,1096 +0,0 @@ -GStreamer 1.28 Release Notes - -GStreamer 1.28.0 was originally released on 27 January 2026. - -See https://gstreamer.freedesktop.org/releases/1.28/ for the latest version of this document. - -Last updated: Tuesday 27 January 2026, 17:00 UTC (log) - -## Introduction - -The GStreamer team is proud to announce a new major feature release in the stable 1.x API series of your favourite -cross-platform multimedia framework! - -As always, this release is again packed with many new features, bug fixes, and other improvements. - -## Highlights - -- AMD HIP plugin and integration helper library -- Vulkan Video AV1 and VP9 decoding, H.264 encoding, and 10-bit support for H.265 decoder -- waylandsink: Parse and set the HDR10 metadata and other color management improvements -- Audio source separation element based on demucs in Rust -- Analytics combiner and splitter elements plus batch meta to batch buffers from one or more streams -- LiteRT inference element; move modelinfo to analytics lib; add script to help with modelinfo generation and upgrade -- Add general classifier tensor-decoder, facedetector, and more analytics convenience API -- New tensordecodebin element to auto-plug compatible tensor decoders based on their caps and many other additions and - improvements -- Add a burn-based YOLOX inference element and a YOLOX tensor decoder in Rust -- applemedia: VideoToolbox VP9 and AV1 hardware-accelerated decoding support, and 10-bit HEVC encoding -- Add new GIF decoder element in Rust with looping support -- input-selector: implements a two-phase sinkpad switch now to avoid races when switching input pads -- The inter wormhole sink and source elements gained a way to forward upstream events to the producer as well as new - fine-tuning properties -- webrtcsink: add renegotiation support and support for va hardware encoders -- webrtc WHEP client and server signaller -- New ST-2038 ancillary data combiner and extractor elements -- fallbacksrc gained support for encoded streams -- flv: enhanced rtmp H.265 video support, and support for multitrack audio -- glupload: Implement udmabuf uploader to share buffers between software decoders/sources and GPUs, display engines (wayland), - and other dma devices -- video: Add crop, scale, rotate, flip, shear and more GstMeta transformation -- New task pool GstContext to share a thread pool amongst elements for better resource management and performance, especially - for video conversion and compositing -- New Deepgram speech-to-text transcription plugin and many other translation and transcription improvements -- Speech synthesizers: expose new “compress” overflow mode that can speed up audio while preserving pitch -- ElevenLabs voice cloning element and support for Speechmatics speaker identification API -- textaccumulate: new element for speech synthesis or translation preprocessing -- New vmaf element to calculate perceptual video quality assessment scores using Netflix’s VMAF framework -- decodebin3: expose KLV, ID3 PES and ST-2038 ancillary data streams with new metadata GstStream type -- New MPEG-H audio decoding plugin plus MP4 demuxing support -- LCEVC: Add autoplugging decoding support for LCEVC H265 and H266 video streams and LCEVC H.265 and H.266 encoders -- RTP “robust MPEG audio”, raw audio (L8, L16, L24), and SMPTE ST291 ancillary metadata payloaders/depayloaders in Rust -- Add a Rust-based icecastsink element with AAC support -- The Windows IPC plugin gained support for passing generic data in addition to raw audio/video, and various properties -- New D3D12 interlace and overlay compositor elements, plus many other D3D12 improvements -- Blackmagic Decklink elements gained support for capturing and outputting all types of VANC via GstAncillaryMeta -- GstLogContext API to reduce log spam in several components and GST_DEBUG_ONCE (etc) convenience macros to log things only - once -- hlssink3, hlscmafsink: Support the use of a single media file, plus I-frame only playlist support -- Webkit: New wpe2 plugin making use of the “WPE Platform API” -- MPEG-TS demuxer can now disable skew corrections -- New Qt6 QML render source element -- qml6gloverlay: support directly passing a QQuickItem for QML the render tree -- unifxfdsink: Add a property to allow copying to make sink usable with more upstream elements -- dots-viewer: Improve dot file generation and interactivity -- Python bindings: more syntactic sugar, analytics API improvements and type annotations -- cerbero: add support for Python wheel packaging, Windows ARM64, new iOS xcframework, Gtk4 on macOS and Windows, and more - plugins -- Smaller binary sizes of Rust plugins in Windows and Android binary packages -- Peel: New C++ bindings for GStreamer -- Lots of new plugins, features, performance improvements and bug fixes -- Countless bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements - -## Major new features and changes - -### AMD HIP plugin and integration library - -- HIP (formerly known as Heterogeneous-computing Interface for Portability) is AMD’s GPU programming API that enables - portable, CUDA-like development across both AMD and NVIDIA platforms: - - - On AMD GPUs, HIP runs natively via the ROCm stack. - - On NVIDIA GPUs, HIP operates as a thin translation layer over the CUDA runtime and driver APIs. - - This allows developers to maintain a single codebase that can target multiple GPU vendors with minimal effort. - -- The new HIP plugin provides the following elements: - - - hipcompositor: a HIP-based video mixer/compositor - - hipconvert: Converts video from one colorspace to another using HIP - - hipconvertscale: Resizes video and allow color conversion using HIP - - hipscale: Resize video using HIP - - hipdownload: Downloads HIP device memory into system memory - - hipupload: Uploads system memory into HIP device memory - -- The GStreamer HIP integration helper library provides HIP integration functionality to applications and other HIP users. - -- Watch the Bringing AMD HIP into GStreamer talk from last year’s GStreamer Conference for more details or read Seungha’s - devlog post on the subject. - -### Low Complexity Enhancement Video Coding (LCEVC) support for H.265 and H.266 - -- LCEVC is a codec that provides an enhancement layer on top of another codec such as H.264 for example. It is standardised as - MPEG-5 Part 2. - -- LCEVC H.265 and H.266 encoder and decoder elements based on V-Nova’s SDK libraries were added in this cycle - -- Autoplugging support for LCEVC H265 and H266 video streams, so these can be decoded automatically in a decodebin3 or - playbin3 scenario. - -### Closed captions and text handling improvements - -- cea708overlay: suport non-relative positioning for streams with CCs that do not have relative positions. Instead of - displaying them at the top, they are positioned relatively. - -- cea708mux: expose “discarded-services” property on sink pads. This can be useful when muxing in an original caption stream - with a newly-created one (e.g. transcription / translation), in which case one might wish to discard select services from - the original stream in order to avoid garbled captions. - -- sccparse: Better handling of streams with more byte tuples in the SCC field. - -- tttocea608: expose “speaker-prefix” property - -- Miscellaneous improvements and spec compliance fixes - -- Also see SMPTE ST-2038 metadata section below. - -### Speech to Text, Translation and Speech Synthesis - -- New audio source separation element based on demucs in Rust. This is useful to separate speech from background audio before - running speech to text transcription, but could also be used to separate vocals from music for karaoke. - -- New Deepgram speech-to-text transcription plugin in Rust. - -- The Speechmatics transcriber has seen a major refactoring for better timings, gap and discontinuity handling and has gained - support for the new Speechmatics speaker identification API as well as a new property to mask profanities. - -- New ElevenLabs voice cloning element. The new element can operate in two modes: - - - In single speaker mode, the element will directly clone a single voice from its input, without storing any samples. - - Otherwise, the element will store a backlog of samples, and wait to receive certain events from a transcriber on its - source pad before draining them to create potentially multiple voices. - -- New “compress” overflow mode for speech synthesizers that can speed up the audio while preserving pitch. This may be needed - to keep or regain audio/video synchronisation if translated speech output has been consistently longer in duration than the - original and there hasn’t been a sufficient amount of silence that could be filled in to make up the difference. - -- awstranslate: new “brevity-on” property for turning brevity on. - -- The awstranscriber2 has been refactored to match the speechmatics transcriber design and gained a “show-speaker-label” - property that defines whether to partition speakers in the transcription output. - -- New textaccumulate element for speech synthesis or translation preprocessing that can be used to accumulate words and - punctuation into complete sentences (or sentence fragments) for synthesis and / or translation by further elements - downstream. - -### HLS DASH adaptive streaming improvements - -- Reverse playback, seeking and stream selection fixes in the HLS/DASH clients. - -- hlscmafsink can generate I-frame only playlists now - -- Both hlssink3 and hlscmafsink gained support for use of a single media file, in which case the media playlist will use byte - range tags for each chunk whilst always referencing the same single media file. This can be useful for VOD use cases. - -### decodebin3 and playbin3 improvements - -- decodebin3 now has a separate pad template for metadata streams and considers KLV, ID3 PES streams and ST-2038 ancillary - streams as raw formats for meta streams. This comes also with a new dedicated GST_STREAM_TYPE_METADATA stream type in the - stream collection. - -### Enhanced RTMP and multitrack audio/video support in FLV - -- The FLV container used for RTMP streaming is fairly old and limited in terms of features: It only supports one audio and one - video track, and also only a very limited number of audio and video codecs, most of which are by now quite long in the - tooth. - -- The Enhanced RTMP (V2) specification seeks to remedy this and adds support for modern video codecs such H.265 and AV1 as - well as support for more than one audio and video track inside the container. - -- Both H.265 video and multiple audio/video tracks are now supported for FLV in GStreamer. - -- Support for this comes in form of a new eflvmux muxer element, which is needed to accommodate both the need of backwards - compatibility in the existing FLV muxer and the requirements of the new format. See Tarun’s blog post for more details. - -### MPEG-TS container format improvements - -- The MPEG-TS demuxer gained a “skew-corrections” property that allows disabling of skew corrections, which are done by - default for live inputs to make sure downstream consumes data at the same rate as it comes in if the local clock and the - sender clock drift apart (as they usually do). Disabling skew corrections is useful if the input stream has already been - clock-corrected (for example with mpegtslivesrc) or where the output doesn’t require synchronisation against a clock, - e.g. when it’s re-encoded and/or remuxed and written to file (incl. HLS/DASH output) where it’s desirable to maintain the - original timestamps and frame spacings. - - It is also useful for cases where we want to refer to the PCR stream to figure out global positioning, gap detection and - wrapover correction. - -- tsdemux now also supports demuxing of ID3 tags in MPEG-TS as specified in the Apple Timed Metadata for HTTP Live Streaming - specification. These timed ID3 tags have a media type of meta/x-id3 which is different from the one used to tag audio files, - and an id3metaparse element is needed to properly frame the PES data coming out of the demuxer. -
View file
_service:download_files:gst-plugins-ugly-1.28.0.tar.xz/ChangeLog -> _service:download_files:gst-plugins-ugly-1.28.1.tar.xz/ChangeLog
Changed
@@ -1,3 +1,69 @@ +=== release 1.28.1 === + +2026-02-26 01:44:06 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst-plugins-ugly.doap: + * meson.build: + Release 1.28.1 + +2026-02-11 20:00:04 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/realmedia/rmdemux.c: + rmdemux: Avoid integer overflow when checking if enough data is available for video fragment + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10893> + +2026-02-11 19:58:31 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/realmedia/rmdemux.c: + rmdemux: Check if new video fragment overflows the fragment storage before storing it + There already was a check but that happened afterwards, i.e. after an + out-of-bounds write that overwrote some following struct data. + Fixes GST-SA-2026-0005, CVE-2026-2922, ZDI-CAN-28845. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4905 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10893> + +2026-02-11 19:27:09 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/asfdemux/gstasfdemux.c: + asfdemux: Error out on files with more than 32 streams + This avoids overflowing the static streams array and overwriting + random other element state. + Fixes GST--SA-2026-0006, CVE-2026-2920, ZDI-CAN-28843. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4900 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10891> + +2023-04-02 16:53:45 +0100 Tim-Philipp Müller <tim@centricular.com> + + * meson.build: + * scripts/dist-common-files.py: + modules: dist common files from monorepo root + Less noise when making releases, and just need to maintain one copy. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822> + +2026-02-15 17:45:19 +0000 Tim-Philipp Müller <tim@centricular.com> + + * README.md: + modules: remove subproject README.md from git + Will be added to the tarballs based on the monorepo README on dist. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822> + +2026-02-15 17:20:59 +0000 Tim-Philipp Müller <tim@centricular.com> + + * RELEASE: + modules: remove RELEASE from git, will be generated from template on dist + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822> + +2026-02-15 15:02:07 +0000 Tim-Philipp Müller <tim@centricular.com> + + * NEWS: + modules: Remove NEWS from git which is generated from full release notes + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822> + +2026-01-27 17:10:54 +0000 Tim-Philipp Müller <tim@centricular.com> + + * meson.build: + Back to development after 1.28.0 + === release 1.28.0 === 2026-01-27 17:02:33 +0000 Tim-Philipp Müller <tim@centricular.com>
View file
_service:download_files:gst-plugins-ugly-1.28.0.tar.xz/README.md -> _service:download_files:gst-plugins-ugly-1.28.1.tar.xz/README.md
Changed
@@ -1,12 +1,8 @@ -GStreamer 1.28.x stable series - -WHAT IT IS ----------- +# GStreamer This is GStreamer, a framework for streaming media. -WHERE TO START --------------- +## Where to start We have a website at @@ -28,169 +24,598 @@ https://matrix.to/#/#gstreamer:gstreamer.org -GStreamer 1.0 series --------------------- +This repository contains all official modules supported by the GStreamer +community which can be found in the `subprojects/` directory. + +## Getting started + +### Install git and python 3.8+ + +If you're on Linux, you probably already have these. On macOS, new versions of +Xcode ship Python 3 already. If you're on an older Xcode, you can use the +official Python installer(https://www.python.org/downloads/mac-osx/). + +You can find instructions for Windows below(#windows-prerequisites-setup). + +### Install meson and ninja + +Meson 1.1 or newer is required. + +On Linux and macOS you can get meson through your package manager or using: + +``` +$ pip3 install --user meson +``` + +This will install meson into `~/.local/bin` which may or may not be included +automatically in your PATH by default. + +You should get `ninja` using your package manager or download the official +release(https://github.com/ninja-build/ninja/releases) and put the `ninja` +binary in your PATH. + +You can find instructions for Windows below(#windows-prerequisites-setup). + + +If you used the official Python installer on macOS instead of the Python +3 shipped with Xcode, you might need to execute "Install Certificates.command" +from the Python folder in the user Applications folder: + +``` +$ /Applications/Python\ 3.*/Install\ Certificates.command +``` + +Otherwise you will get this error when downloading meson wraps: + +``` +urllib.error.URLError: urlopen error SSL: CERTIFICATE_VERIFY_FAILED certificate verify failed +``` + +### Build GStreamer and its modules + +You can get all GStreamer built running: + +``` +meson setup builddir +meson compile -C builddir +``` + +This will automatically create the `builddir` directory and build everything +inside it. + +NOTE: On Windows, meson will automatically detect and use the latest Visual +Studio if GCC, clang, etc are not available in `PATH`. Use the `--vsenv` +argument to force the use of Visual Studio. + +NOTE: Meson will not update subprojects automatically once a subproject has +been fetched. Remember to update subprojects if wrap files are updated. + +``` +meson subprojects update +``` + +### External dependencies + +All mandatory dependencies of GStreamer are included as meson subprojects(https://mesonbuild.com/Subprojects.html): +libintl, zlib, libffi, glib. Some optional dependencies are also included as +subprojects, such as ffmpeg, x264, json-glib, graphene, openh264, orc, etc. + +Mandatory dependencies will be automatically built if meson cannot find them on +your system using pkg-config. The same is true for optional dependencies that +are included as subprojects. You can find a full list by looking at the +`subprojects` directory. + +Plugins that need optional dependencies that aren't included can only be built +if they are provided by the system. Instructions on how to build some common +ones such as Qt5/QML are listed below. If you do not know how to provide an +optional dependency needed by a plugin, you should use Cerbero(https://gitlab.freedesktop.org/gstreamer/cerbero/#description) +which handles this for you automatically. + +Plugins will be automatically enabled if possible, but you can ensure that +a particular plugin (especially if it has external dependencies) is built by +enabling the gstreamer repository that ships it and the plugin inside it. For +example, to enable the Qt5 plugin in the gst-plugins-good repository, you need +to run meson as follows: + +``` +meson -Dgood=enabled -Dgst-plugins-good:qt5=enabled builddir +``` + +This will cause Meson to error out if the plugin could not be enabled. You can +also flip the default and disable all plugins except those explicitly enabled +like so: + +``` +meson -Dauto_features=disabled -Dgstreamer:tools=enabled -Dbad=enabled -Dgst-plugins-bad:openh264=enabled +``` + +This will disable all optional features and then enable the `openh264` plugin +and the tools that ship with the core gstreamer repository: `gst-inspect-1.0`, +`gst-launch-1.0`, etc. As usual, you can change these values on a builddir that +has already been setup with `meson configure -Doption=value`. + +### Building the Qt5 QML plugin + +If `qmake` is not in `PATH` and pkgconfig files are not available, you can +point the `QMAKE` env var to the Qt5 installation of your choosing before +running `meson` as shown above. + +The plugin will be automatically enabled if possible, but you can ensure that +it is built by passing `-Dgood=enabled -Dgst-plugins-good:qt5=enabled` to `meson`. + +### Building the Intel MSDK plugin + +On Linux, you need to have development files for `libmfx` installed. On +Windows, if you have the Intel Media SDK(https://software.intel.com/en-us/media-sdk), +it will set the `INTELMEDIASDKROOT` environment variable, which will be used by +the build files to find `libmfx`. + +The plugin will be automatically enabled if possible, but you can ensure it by +passing `-Dbad=enabled -Dgst-plugins-bad:msdk=enabled` to `meson`. + +### Building plugins with (A)GPL-licensed dependencies + +Some plugins have GPL- or AGPL-licensed dependencies and will only be built +if you have explicitly opted in to allow (A)GPL-licensed dependencies by +passing `-Dgpl=enabled` to Meson. + +List of plugins with (A)GPL-licensed dependencies (non-exhaustive) in gst-plugins-bad: + - dts (DTS audio decoder plugin) + - faad (Free AAC audio decoder plugin) + - iqa (Image quality assessment plugin based on dssim-c) + - mpeg2enc (MPEG-2 video encoder plugin) + - mplex (audio/video multiplexer plugin) + - ofa (Open Fingerprint Architecture library plugin) + - resindvd (Resin DVD playback plugin) + - x265 (HEVC/H.265 video encoder plugin) + +List of plugins with (A)GPL-licensed dependencies (non-exhaustive) in gst-plugins-ugly: + - a52dec (Dolby Digital (AC-3) audio decoder plugin) + - cdio (CD audio source plugin based on libcdio) + - dvdread (DVD video source plugin based on libdvdread) + - mpeg2dec (MPEG-2 video decoder plugin based on libmpeg2) + - sidplay (Commodore 64 audio decoder plugin based on libsidplay) + - x264 (H.264 video encoder plugin based on libx264) + +### Static build + +Since *1.18.0*, when doing a static build using `--default-library=static`, +a shared library `gstreamer-full-1.0`, in addition to a package config file, +will be produced and includes all enabled GStreamer plugins and libraries. +A list of libraries that needs to be exposed in `gstreamer-full-1.0` +ABI can be set using `gst-full-libraries` option. +glib-2.0, gobject-2.0 and gstreamer-1.0 are always included. + +``` +meson setup --default-library=static -Dgst-full-libraries=gstreamer-app-1.0,gstreamer-video-1.0 builddir +``` + +GStreamer *1.18* requires applications using gstreamer-full-1.0 to initialize +static plugins by calling `gst_init_static_plugins()` after `gst_init()`. That +function is defined in `gst/gstinitstaticplugins.h` header file. + +Since *1.20.0*, `gst_init_static_plugins()` is called automatically by +`gst_init()` and applications don't have to call it manually any more. +The header file has been removed from public API. + +One can use the `gst-full-version-script` option to pass a +version script(https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html) +to the linker. This can be used to control the exact symbols that are exported by +the `gstreamer-full` library, allowing the linker to garbage collect unused code +and so, reduce the total library size. A default script
View file
_service:download_files:gst-plugins-ugly-1.28.0.tar.xz/RELEASE -> _service:download_files:gst-plugins-ugly-1.28.1.tar.xz/RELEASE
Changed
@@ -1,4 +1,4 @@ -This is GStreamer gst-plugins-ugly 1.28.0. +This is GStreamer gst-plugins-ugly 1.28.1 The GStreamer team is thrilled to announce a new major feature release of your favourite cross-platform multimedia framework!
View file
_service:download_files:gst-plugins-ugly-1.28.0.tar.xz/gst-plugins-ugly.doap -> _service:download_files:gst-plugins-ugly-1.28.1.tar.xz/gst-plugins-ugly.doap
Changed
@@ -35,6 +35,16 @@ <release> <Version> + <revision>1.28.1</revision> + <branch>1.28</branch> + <name></name> + <created>2026-02-26</created> + <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.28.1.tar.xz" /> + </Version> + </release> + + <release> + <Version> <revision>1.28.0</revision> <branch>main</branch> <name></name>
View file
_service:download_files:gst-plugins-ugly-1.28.0.tar.xz/gst/asfdemux/gstasfdemux.c -> _service:download_files:gst-plugins-ugly-1.28.1.tar.xz/gst/asfdemux/gstasfdemux.c
Changed
@@ -2616,6 +2616,9 @@ { AsfStream *stream; + /* Checked in the callers */ + g_assert (demux->num_streams < G_N_ELEMENTS (demux->stream)); + gst_pad_use_fixed_caps (src_pad); gst_pad_set_caps (src_pad, caps); @@ -3071,6 +3074,12 @@ case ASF_STREAM_AUDIO:{ asf_stream_audio audio_object; + if (demux->num_streams >= G_N_ELEMENTS (demux->stream)) { + GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL), + ("File has too many streams")); + return NULL; + } + if (!gst_asf_demux_get_stream_audio (&audio_object, &data, &size)) goto not_enough_data; @@ -3149,6 +3158,12 @@ asf_stream_video video_object; guint16 vsize; + if (demux->num_streams >= G_N_ELEMENTS (demux->stream)) { + GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL), + ("File has too many streams")); + return NULL; + } + if (!gst_asf_demux_get_stream_video (&video_object, &data, &size)) goto not_enough_data;
View file
_service:download_files:gst-plugins-ugly-1.28.0.tar.xz/gst/realmedia/rmdemux.c -> _service:download_files:gst-plugins-ugly-1.28.1.tar.xz/gst/realmedia/rmdemux.c
Changed
@@ -2348,7 +2348,8 @@ } GST_DEBUG_OBJECT (rmdemux, "fragment size %d", fragment_size); - if (map.size < (data - map.data) + fragment_size) + if (fragment_size > map.size + || (data - map.data) > map.size - fragment_size) goto not_enough_data; /* get the fragment */ @@ -2369,15 +2370,17 @@ stream->frag_length = fragment_size; } + if (stream->frag_count >= MAX_FRAGS) { + gst_buffer_unref (fragment); + goto too_many_fragments; + } + /* put fragment in adapter */ gst_adapter_push (stream->adapter, fragment); stream->frag_offsetstream->frag_count = stream->frag_current; stream->frag_current += fragment_size; stream->frag_count++; - if (stream->frag_count > MAX_FRAGS) - goto too_many_fragments; - GST_DEBUG_OBJECT (rmdemux, "stored fragment in adapter %d/%d", stream->frag_current, stream->frag_length);
View file
_service:download_files:gst-plugins-ugly-1.28.0.tar.xz/meson.build -> _service:download_files:gst-plugins-ugly-1.28.1.tar.xz/meson.build
Changed
@@ -1,5 +1,5 @@ project('gst-plugins-ugly', 'c', - version : '1.28.0', + version : '1.28.1', meson_version : '>= 1.4', default_options : 'warning_level=1', 'buildtype=debugoptimized' ) @@ -354,6 +354,11 @@ meson.add_dist_script('scripts/gen-changelog.py', meson.project_name(), '1.26.0', meson.project_version()) +# dist common files from monorepo root +if not meson.is_subproject() + meson.add_dist_script('scripts/dist-common-files.py', meson.project_version()) +endif + plugin_names = gst_plugins = foreach plugin: plugins
View file
_service:download_files:gst-plugins-ugly-1.28.0.tar.xz/po/gst-plugins-ugly-1.0.pot -> _service:download_files:gst-plugins-ugly-1.28.1.tar.xz/po/gst-plugins-ugly-1.0.pot
Changed
@@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gst-plugins-ugly-1.28.0\n" +"Project-Id-Version: gst-plugins-ugly-1.28.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-27 17:03+0000\n" +"POT-Creation-Date: 2026-02-26 01:45+0000\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_files:gst-plugins-ugly-1.28.0.tar.xz/po/gst-plugins-ugly.pot -> _service:download_files:gst-plugins-ugly-1.28.1.tar.xz/po/gst-plugins-ugly.pot
Changed
@@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gst-plugins-ugly-1.28.0\n" +"Project-Id-Version: gst-plugins-ugly-1.28.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-27 17:03+0000\n" +"POT-Creation-Date: 2026-02-26 01:45+0000\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_files:gst-plugins-ugly-1.28.1.tar.xz/release-notes-1.28.md
Added
@@ -0,0 +1,1705 @@ +# GStreamer 1.28 Release Notes + +GStreamer 1.28.0 was originally released on 27 January 2026. + +The latest bug-fix release in the stable 1.28 series is 1.28.1(#1.28.1) and was released on 26 February 2026. + +See https://gstreamer.freedesktop.org/releases/1.28/latest for the latest version of this document. + +*Last updated: Thursday 26 February 2026, 01:00 UTC (log)gitlog* + +latest: https://gstreamer.freedesktop.org/releases/1.28/ +gitlog: https://gitlab.freedesktop.org/gstreamer/www/commits/main/src/htdocs/releases/1.28/release-notes-1.28.md + +<a id="introduction"></a> +## Introduction + +The GStreamer team is proud to announce a new major feature release in the +stable 1.x API series of your favourite cross-platform multimedia framework! + +As always, this release is again packed with many new features, bug fixes, and other improvements. + +<a id="highlights"></a> +## Highlights + +- AMD HIP plugin and integration helper library +- Vulkan Video AV1 and VP9 decoding, H.264 encoding, and 10-bit support for H.265 decoder +- waylandsink: Parse and set the HDR10 metadata and other color management improvements +- Audio source separation element based on demucs in Rust +- Analytics combiner and splitter elements plus batch meta to batch buffers from one or more streams +- LiteRT inference element; move modelinfo to analytics lib; add script to help with modelinfo generation and upgrade +- Add general classifier tensor-decoder, facedetector, and more analytics convenience API +- New tensordecodebin element to auto-plug compatible tensor decoders based on their caps and many other additions and improvements +- Add a burn-based YOLOX inference element and a YOLOX tensor decoder in Rust +- applemedia: VideoToolbox VP9 and AV1 hardware-accelerated decoding support, and 10-bit HEVC encoding +- Add new GIF decoder element in Rust with looping support +- input-selector: implements a two-phase sinkpad switch now to avoid races when switching input pads +- The inter wormhole sink and source elements gained a way to forward upstream events to the producer as well as new fine-tuning properties +- webrtcsink: add renegotiation support and support for va hardware encoders +- webrtc WHEP client and server signaller +- New ST-2038 ancillary data combiner and extractor elements +- fallbacksrc gained support for encoded streams +- flv: enhanced rtmp H.265 video support, and support for multitrack audio +- glupload: Implement udmabuf uploader to share buffers between software decoders/sources and GPUs, display engines (wayland), and other dma devices +- video: Add crop, scale, rotate, flip, shear and more GstMeta transformation +- New task pool GstContext to share a thread pool amongst elements for better resource management and performance, especially for video conversion and compositing +- New Deepgram speech-to-text transcription plugin and many other translation and transcription improvements +- Speech synthesizers: expose new "compress" overflow mode that can speed up audio while preserving pitch +- ElevenLabs voice cloning element and support for Speechmatics speaker identification API +- textaccumulate: new element for speech synthesis or translation preprocessing +- New vmaf element to calculate perceptual video quality assessment scores using Netflix's VMAF framework +- decodebin3: expose KLV, ID3 PES and ST-2038 ancillary data streams with new metadata GstStream type +- New MPEG-H audio decoding plugin plus MP4 demuxing support +- LCEVC: Add autoplugging decoding support for LCEVC H265 and H266 video streams and LCEVC H.265 and H.266 encoders +- RTP "robust MPEG audio", raw audio (L8, L16, L24), and SMPTE ST291 ancillary metadata payloaders/depayloaders in Rust +- Add a Rust-based icecastsink element with AAC support +- The Windows IPC plugin gained support for passing generic data in addition to raw audio/video, and various properties +- New D3D12 interlace and overlay compositor elements, plus many other D3D12 improvements +- Blackmagic Decklink elements gained support for capturing and outputting all types of VANC via GstAncillaryMeta +- GstLogContext API to reduce log spam in several components and `GST_DEBUG_ONCE` (etc) convenience macros to log things only once +- hlssink3, hlscmafsink: Support the use of a single media file, plus I-frame only playlist support +- Webkit: New wpe2 plugin making use of the "WPE Platform API" +- MPEG-TS demuxer can now disable skew corrections +- New Qt6 QML render source element +- qml6gloverlay: support directly passing a QQuickItem for QML the render tree +- unifxfdsink: Add a property to allow copying to make sink usable with more upstream elements +- dots-viewer: Improve dot file generation and interactivity +- Python bindings: more syntactic sugar, analytics API improvements and type annotations +- cerbero: add support for Python wheel packaging, Windows ARM64, new iOS xcframework, Gtk4 on macOS and Windows, and more plugins +- Smaller binary sizes of Rust plugins in Windows and Android binary packages +- Peel: New C++ bindings for GStreamer +- Lots of new plugins, features, performance improvements and bug fixes +- Countless bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements + +<a id="major-changes"></a> +## Major new features and changes + +<a id="hip"></a> +### AMD HIP plugin and integration library + +- HIP (formerly known as Heterogeneous-computing Interface for Portability) is AMD’s + GPU programming API that enables portable, CUDA-like development across both AMD and + NVIDIA platforms: + + - On AMD GPUs, HIP runs natively via the ROCm stack. + - On NVIDIA GPUs, HIP operates as a thin translation layer over the CUDA runtime and driver APIs. + + This allows developers to maintain a single codebase that can target multiple GPU vendors with minimal effort. + +- The **new HIP plugin**hip-plugin provides the following elements: + + - **hipcompositor**: a HIP-based video mixer/compositor + - **hipconvert**: Converts video from one colorspace to another using HIP + - **hipconvertscale**: Resizes video and allow color conversion using HIP + - **hipscale**: Resize video using HIP + - **hipdownload**: Downloads HIP device memory into system memory + - **hipupload**: Uploads system memory into HIP device memory + +- The **GStreamer HIP integration helper library** provides HIP integration functionality + to applications and other HIP users. + +- Watch the Bringing AMD HIP into GStreamergstconf-hip talk from last year's GStreamer Conference + for more details or read Seungha's devlog postdevlog-hip on the subject. + +hip-plugin: https://gstreamer.freedesktop.org/documentation/hip/index.html?gi-language=c#hip-page +gstconf-hip: https://gstconf.ubicast.tv/videos/bringing-amd-hip-into-gstreamer/ +devlog-hip: https://centricular.com/devlog/2025-07/amd-hip-integration/ + +<a id="lvecv"></a> +### Low Complexity Enhancement Video Coding (LCEVC) support for H.265 and H.266 + +- LCEVClcevc is a codec that provides an enhancement layer on top of + another codec such as H.264 for example. It is standardised as MPEG-5 Part 2. + +- **LCEVC H.265 and H.266 encoder and decoder elements** based on V-Nova's SDK libraries + were added in this cycle + +- **Autoplugging support for LCEVC H265 and H266 video streams**, so these can be decoded + automatically in a decodebin3 or playbin3 scenario. + +lcevc: https://www.lcevc.org + +<a id="closedcaptions"></a> +### Closed captions and text handling improvements + +- **cea708overlay**: suport non-relative positioning for streams with CCs + that do not have relative positions. Instead of displaying them at the + top, they are positioned relatively. + +- **cea708mux**: expose "discarded-services" property on sink pads. This can be + useful when muxing in an original caption stream with a newly-created one + (e.g. transcription / translation), in which case one might wish to discard + select services from the original stream in order to avoid garbled captions. + +- **sccparse**: Better handling of streams with more byte tuples in the SCC field. + +- **tttocea608**: expose "speaker-prefix" property + +- Miscellaneous improvements and spec compliance fixes + +- Also see SMPTE ST-2038 metadata section below. + +<a id="stt-translations-and-speech-synthesis"></a> +### Speech to Text, Translation and Speech Synthesis + +- New **audio source separation element based on demucs** in Rust. This is useful + to separate speech from background audio before running speech to text transcription, + but could also be used to separate vocals from music for karaoke. + +- New **Deepgram speech-to-text transcription** plugin in Rust. + +- The **Speechmatics transcriber** has seen a **major refactoring** for better timings, + gap and discontinuity handling and has gained **support for the new Speechmatics speaker + identification API** as well as a new property to **mask profanities**. + +- New **ElevenLabs voice cloning element**. The new element can operate in two modes: + - In single speaker mode, the element will directly clone a single voice + from its input, without storing any samples. + - Otherwise, the element will store a backlog of samples, and wait to + receive certain events from a transcriber on its source pad before draining + them to create potentially multiple voices. + +- New **"compress" overflow mode for speech synthesizers** that can speed up + the audio while preserving pitch. This may be needed to keep or regain audio/video + synchronisation if translated speech output has been consistently longer in duration + than the original and there hasn't been a sufficient amount of silence that could be + filled in to make up the difference. + +- **awstranslate**: new "brevity-on" property for turning brevity on. + +- The **awstranscriber2** has been **refactored** to match the speechmatics transcriber design + and gained a "show-speaker-label" property that defines whether to partition speakers in the + transcription output. + +- New **textaccumulate** element for speech synthesis or translation preprocessing that + can be used to accumulate words and punctuation into complete sentences (or sentence fragments) + for synthesis and / or translation by further elements downstream. + +<a id="adaptive-streaming"></a> +### HLS DASH adaptive streaming improvements + +- Reverse playback, seeking and stream selection fixes in the HLS/DASH clients. + +- **hlscmafsink** can generate I-frame only playlists now + +- Both **hlssink3** and **hlscmafsink** gained support for use of a single media file, + in which case the media playlist will use byte range tags for each chunk whilst + always referencing the same single media file. This can be useful for VOD use cases. + +<a id="playback"></a> +### decodebin3 and playbin3 improvements + + - **decodebin3** now has a separate pad template for **metadata streams** and considers + KLV, ID3 PES streams and ST-2038 ancillary streams as raw formats for meta streams. This comes + also with a new dedicated `GST_STREAM_TYPE_METADATA` stream type in the stream collection. + +<a id="eflv"></a> +### Enhanced RTMP and multitrack audio/video support in FLV + +- The FLV container used for RTMP streaming is fairly old and limited in terms of features:
View file
_service:download_files:gst-plugins-ugly-1.28.1.tar.xz/scripts/dist-common-files.py
Added
@@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +# +# Copyright (C) 2023-2026 Tim-Philipp Müller <tim centricular net> +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. + +import os +import subprocess +import shutil +import tempfile +import sys + +if __name__ == "__main__": + dist_root = os.environ'MESON_DIST_ROOT' + build_root = os.environ'MESON_BUILD_ROOT' + source_root = os.environ'MESON_SOURCE_ROOT' + project_version = sys.argv1 + pwd = os.environ'PWD' + tmpdir = tempfile.gettempdir() + + ver_array = project_version.split('.') + major_minor = '{}.{}'.format(ver_array0, ver_array1) + + module = os.path.basename(os.path.normpath(source_root)) + + print('Copying README.md into dist staging directory ..') + readme_src = os.path.join(source_root, '..', '..', 'README.md') + shutil.copy2(readme_src, dist_root) + + # Release notes (instead of NEWS) - could also write it out as NEWS.md + print('Copying release notes into dist staging directory ..') + relnotes_src = os.path.join(source_root, '..', '..', 'release-notes', major_minor, f'release-notes-{major_minor}.md') + with open(relnotes_src, 'r') as f: + lines = f.readlines() + if not f'### {project_version}\n' in lines: + sys.exit(f'Update {relnotes_src} first, must contain a section for {project_version}') + if not project_version.endswith('.0'): + found = False + for line in lines: + if line.startswith('The latest') and project_version in line: + found = True + if not found: + sys.exit(f'Update {relnotes_src} first, header should say latest version is {project_version}.') + shutil.copy2(relnotes_src, dist_root) + + # RELEASE + print('Copying RELEASE into dist staging directory ..') + rel_src = os.path.join(source_root, '..', '..', 'release-notes', major_minor, f'RELEASE-{major_minor}.template') + with open(rel_src, 'r') as f: + lines = f.readlines() + + assert (lines0.startswith('This is GStreamer')) + + if module == 'gstreamer': + lines0 = f'This is GStreamer core {project_version}\n' + else: + lines0 = f'This is GStreamer {module} {project_version}\n' + + with open(os.path.join(dist_root, 'RELEASE'), 'w') as f: + f.writelines(lines)
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
.