Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gstreamer-plugins-libav for
openSUSE:Factory checked in at 2026-08-06 16:19:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-libav (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-plugins-libav.new.16738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-libav"
Thu Aug 6 16:19:42 2026 rev:73 rq:1369821 version:1.28.6
Changes:
--------
---
/work/SRC/openSUSE:Factory/gstreamer-plugins-libav/gstreamer-plugins-libav.changes
2026-07-15 16:31:32.209901139 +0200
+++
/work/SRC/openSUSE:Factory/.gstreamer-plugins-libav.new.16738/gstreamer-plugins-libav.changes
2026-08-06 16:19:59.879831821 +0200
@@ -1,0 +2,10 @@
+Wed Aug 5 16:01:55 UTC 2026 - Bjørn Lie <[email protected]>
+
+- Update to version 1.28.6:
+ + Fix build failure with FFmpeg 9.0
+ + libav: FFmpeg 9.0 Build Failure
+ + avdemux: Close demuxer on pad deactivation instead of state
+ change and don't use uninitialized audio channel positions
+ + avdemux: Use a dynamic-sized array for the AVStreams
+
+-------------------------------------------------------------------
Old:
----
gst-libav-1.28.5.obscpio
New:
----
gst-libav-1.28.6.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-plugins-libav.spec ++++++
--- /var/tmp/diff_new_pack.MuNJrP/_old 2026-08-06 16:20:00.471852475 +0200
+++ /var/tmp/diff_new_pack.MuNJrP/_new 2026-08-06 16:20:00.475852615 +0200
@@ -19,7 +19,7 @@
%define gst_branch 1.0
Name: gstreamer-plugins-libav
-Version: 1.28.5
+Version: 1.28.6
Release: 0
Summary: A ffmpeg/libav plugin for GStreamer
License: LGPL-2.1-or-later
++++++ _service ++++++
--- /var/tmp/diff_new_pack.MuNJrP/_old 2026-08-06 16:20:00.507853731 +0200
+++ /var/tmp/diff_new_pack.MuNJrP/_new 2026-08-06 16:20:00.511853871 +0200
@@ -5,7 +5,7 @@
<param
name="url">https://gitlab.freedesktop.org/gstreamer/gstreamer.git</param>
<param name="subdir">subprojects/gst-libav</param>
<param name="filename">gst-libav</param>
- <param name="revision">1.28.5</param>
+ <param name="revision">1.28.6</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">v?(.*)\+0</param>
<param name="versionrewrite-replacement">\1</param>
++++++ gst-libav-1.28.5.obscpio -> gst-libav-1.28.6.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-libav-1.28.5/ext/libav/gstavcodecmap.c
new/gst-libav-1.28.6/ext/libav/gstavcodecmap.c
--- old/gst-libav-1.28.5/ext/libav/gstavcodecmap.c 2026-07-08
23:42:39.000000000 +0200
+++ new/gst-libav-1.28.6/ext/libav/gstavcodecmap.c 2026-08-05
13:59:39.000000000 +0200
@@ -656,7 +656,7 @@
#else
if (context != NULL && context->channels != -1) {
#endif
- GstAudioChannelPosition pos[64];
+ GstAudioChannelPosition pos[64] = { GST_AUDIO_CHANNEL_POSITION_INVALID, };
guint64 mask;
#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100)
@@ -665,11 +665,17 @@
"channels", G_TYPE_INT, context->ch_layout.nb_channels, NULL);
static const AVChannelLayout mono = AV_CHANNEL_LAYOUT_MONO;
- const gboolean needs_mask = (context->ch_layout.nb_channels == 1 &&
- av_channel_layout_compare (&context->ch_layout, &mono) != 0)
- || (context->ch_layout.nb_channels > 1
- && gst_ffmpeg_channel_layout_to_gst (&context->ch_layout,
- context->ch_layout.nb_channels, pos));
+ gboolean needs_mask = FALSE;
+
+ if (context->ch_layout.nb_channels == 1 &&
+ av_channel_layout_compare (&context->ch_layout, &mono) != 0) {
+ pos[0] = GST_AUDIO_CHANNEL_POSITION_MONO;
+ needs_mask = TRUE;
+ } else if (context->ch_layout.nb_channels > 1) {
+ gst_ffmpeg_channel_layout_to_gst (&context->ch_layout,
+ context->ch_layout.nb_channels, pos);
+ needs_mask = TRUE;
+ }
if (needs_mask &&
gst_audio_channel_positions_to_mask (pos,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-libav-1.28.5/ext/libav/gstavdemux.c
new/gst-libav-1.28.6/ext/libav/gstavdemux.c
--- old/gst-libav-1.28.5/ext/libav/gstavdemux.c 2026-07-08 23:42:39.000000000
+0200
+++ new/gst-libav-1.28.6/ext/libav/gstavdemux.c 2026-08-05 13:59:39.000000000
+0200
@@ -37,8 +37,6 @@
#include "gstavutils.h"
#include "gstavprotocol.h"
-#define MAX_STREAMS 20
-
typedef struct _GstFFMpegDemux GstFFMpegDemux;
typedef struct _GstFFStream GstFFStream;
@@ -72,7 +70,7 @@
/* global tags */
GstTagList *tags, *upstream_global_tags, *upstream_stream_tags;
- GstFFStream *streams[MAX_STREAMS];
+ GPtrArray *streams;
GstFlowCombiner *flowcombiner;
@@ -252,7 +250,6 @@
{
GstFFMpegDemuxClass *oclass =
(GstFFMpegDemuxClass *) (G_OBJECT_GET_CLASS (demux));
- gint n;
demux->sinkpad = gst_pad_new_from_template (oclass->sinktempl, "sink");
gst_pad_set_activate_function (demux->sinkpad,
@@ -278,9 +275,7 @@
demux->context = NULL;
- for (n = 0; n < MAX_STREAMS; n++) {
- demux->streams[n] = NULL;
- }
+ demux->streams = g_ptr_array_new ();
demux->videopads = 0;
demux->audiopads = 0;
@@ -317,6 +312,8 @@
gst_object_unref (demux->task);
g_rec_mutex_clear (&demux->task_lock);
+ g_ptr_array_unref (demux->streams);
+
G_OBJECT_CLASS (parent_class)->finalize (object);
}
@@ -330,10 +327,10 @@
return;
/* remove pads from ourselves */
- for (n = 0; n < MAX_STREAMS; n++) {
+ for (n = 0; n < demux->streams->len; n++) {
GstFFStream *stream;
- stream = demux->streams[n];
+ stream = g_ptr_array_index (demux->streams, n);
if (stream) {
if (stream->pad) {
gst_flow_combiner_remove_pad (demux->flowcombiner, stream->pad);
@@ -343,8 +340,8 @@
gst_tag_list_unref (stream->tags);
g_free (stream);
}
- demux->streams[n] = NULL;
}
+ g_ptr_array_set_size (demux->streams, 0);
demux->videopads = 0;
demux->audiopads = 0;
gst_clear_tag_list (&demux->tags);
@@ -378,8 +375,8 @@
res = TRUE;
- for (n = 0; n < MAX_STREAMS; n++) {
- GstFFStream *s = demux->streams[n];
+ for (n = 0; n < demux->streams->len; n++) {
+ GstFFStream *s = g_ptr_array_index (demux->streams, n);
if (s && s->pad) {
gst_event_ref (event);
@@ -396,11 +393,12 @@
gst_ffmpegdemux_set_flags (GstFFMpegDemux * demux, gboolean discont,
gboolean eos)
{
- GstFFStream *s;
gint n;
- for (n = 0; n < MAX_STREAMS; n++) {
- if ((s = demux->streams[n])) {
+ for (n = 0; n < demux->streams->len; n++) {
+ GstFFStream *s = g_ptr_array_index (demux->streams, n);
+
+ if (s) {
s->discont = discont;
s->eos = eos;
}
@@ -411,11 +409,12 @@
static gboolean
gst_ffmpegdemux_is_eos (GstFFMpegDemux * demux)
{
- GstFFStream *s;
gint n;
- for (n = 0; n < MAX_STREAMS; n++) {
- if ((s = demux->streams[n])) {
+ for (n = 0; n < demux->streams->len; n++) {
+ GstFFStream *s = g_ptr_array_index (demux->streams, n);
+
+ if (s) {
GST_DEBUG ("stream %d %p eos:%d", n, s, s->eos);
if (!s->eos)
return FALSE;
@@ -428,11 +427,12 @@
static gboolean
gst_ffmpegdemux_has_outputted (GstFFMpegDemux * demux)
{
- GstFFStream *s;
gint n;
- for (n = 0; n < MAX_STREAMS; n++) {
- if ((s = demux->streams[n])) {
+ for (n = 0; n < demux->streams->len; n++) {
+ GstFFStream *s = g_ptr_array_index (demux->streams, n);
+
+ if (s) {
if (GST_CLOCK_TIME_IS_VALID (s->last_ts))
return TRUE;
}
@@ -934,7 +934,9 @@
oclass = (GstFFMpegDemuxClass *) G_OBJECT_GET_CLASS (demux);
- if (demux->streams[avstream->index] != NULL)
+ if (demux->streams->len <= avstream->index)
+ g_ptr_array_set_size (demux->streams, avstream->index + 1);
+ if (g_ptr_array_index (demux->streams, avstream->index))
goto exists;
ctx = avcodec_alloc_context3 (NULL);
@@ -942,7 +944,7 @@
/* create new stream */
stream = g_new0 (GstFFStream, 1);
- demux->streams[avstream->index] = stream;
+ g_ptr_array_index (demux->streams, avstream->index) = stream;
/* mark stream as unknown */
stream->unknown = TRUE;
@@ -1007,9 +1009,6 @@
avstream->index, GST_TIME_ARGS (tmp));
}
- demux->streams[avstream->index] = stream;
-
-
stream_id =
gst_pad_create_stream_id_printf (pad, GST_ELEMENT_CAST (demux), "%03u",
avstream->index);
@@ -1062,7 +1061,7 @@
exists:
{
GST_DEBUG_OBJECT (demux, "Pad existed (stream %d)", avstream->index);
- stream = demux->streams[avstream->index];
+ stream = g_ptr_array_index (demux->streams, avstream->index);
goto done;
}
unknown_type:
@@ -1940,6 +1939,7 @@
g_rec_mutex_lock (&demux->task_lock);
g_rec_mutex_unlock (&demux->task_lock);
res = gst_task_join (demux->task);
+ gst_ffmpegdemux_close (demux);
demux->seekable = FALSE;
}
@@ -1967,6 +1967,7 @@
demux, NULL);
} else {
res = gst_pad_stop_task (sinkpad);
+ gst_ffmpegdemux_close (demux);
demux->seekable = FALSE;
}
@@ -2017,7 +2018,6 @@
switch (transition) {
case GST_STATE_CHANGE_PAUSED_TO_READY:
- gst_ffmpegdemux_close (demux);
gst_adapter_clear (demux->ffpipe.adapter);
g_list_foreach (demux->cached_events, (GFunc) gst_mini_object_unref,
NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-libav-1.28.5/ext/libav/gstavviddec.c
new/gst-libav-1.28.6/ext/libav/gstavviddec.c
--- old/gst-libav-1.28.5/ext/libav/gstavviddec.c 2026-07-08
23:42:39.000000000 +0200
+++ new/gst-libav-1.28.6/ext/libav/gstavviddec.c 2026-08-05
13:59:39.000000000 +0200
@@ -2997,12 +2997,15 @@
}
/* no quasi codecs, please */
- if (in_plugin->id == AV_CODEC_ID_RAWVIDEO ||
- in_plugin->id == AV_CODEC_ID_V210 ||
- in_plugin->id == AV_CODEC_ID_V210X ||
- in_plugin->id == AV_CODEC_ID_V308 ||
- in_plugin->id == AV_CODEC_ID_V408 ||
- in_plugin->id == AV_CODEC_ID_V410 || in_plugin->id == AV_CODEC_ID_R210
+ if (in_plugin->id == AV_CODEC_ID_RAWVIDEO
+ || in_plugin->id == AV_CODEC_ID_V210
+ || in_plugin->id == AV_CODEC_ID_V210X
+ || in_plugin->id == AV_CODEC_ID_R210
+#if LIBAVCODEC_VERSION_MAJOR < 63
+ || in_plugin->id == AV_CODEC_ID_V308
+ || in_plugin->id == AV_CODEC_ID_V408
+ || in_plugin->id == AV_CODEC_ID_V410
+#endif
#if LIBAVCODEC_VERSION_MAJOR < 61
|| in_plugin->id == AV_CODEC_ID_AYUV
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-libav-1.28.5/ext/libav/gstavvidenc.c
new/gst-libav-1.28.6/ext/libav/gstavvidenc.c
--- old/gst-libav-1.28.5/ext/libav/gstavvidenc.c 2026-07-08
23:42:39.000000000 +0200
+++ new/gst-libav-1.28.6/ext/libav/gstavvidenc.c 2026-08-05
13:59:39.000000000 +0200
@@ -1030,12 +1030,15 @@
}
/* no quasi codecs, please */
- if (in_plugin->id == AV_CODEC_ID_RAWVIDEO ||
- in_plugin->id == AV_CODEC_ID_V210 ||
- in_plugin->id == AV_CODEC_ID_V210X ||
- in_plugin->id == AV_CODEC_ID_V308 ||
- in_plugin->id == AV_CODEC_ID_V408 ||
- in_plugin->id == AV_CODEC_ID_V410 || in_plugin->id == AV_CODEC_ID_R210
+ if (in_plugin->id == AV_CODEC_ID_RAWVIDEO
+ || in_plugin->id == AV_CODEC_ID_V210
+ || in_plugin->id == AV_CODEC_ID_V210X
+ || in_plugin->id == AV_CODEC_ID_R210
+#if LIBAVCODEC_VERSION_MAJOR < 63
+ || in_plugin->id == AV_CODEC_ID_V308
+ || in_plugin->id == AV_CODEC_ID_V408
+ || in_plugin->id == AV_CODEC_ID_V410
+#endif
#if LIBAVCODEC_VERSION_MAJOR < 61
|| in_plugin->id == AV_CODEC_ID_AYUV
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-libav-1.28.5/gst-libav.doap
new/gst-libav-1.28.6/gst-libav.doap
--- old/gst-libav-1.28.5/gst-libav.doap 2026-07-08 23:42:39.000000000 +0200
+++ new/gst-libav-1.28.6/gst-libav.doap 2026-08-05 13:59:39.000000000 +0200
@@ -34,6 +34,16 @@
<release>
<Version>
+ <revision>1.28.6</revision>
+ <branch>1.28</branch>
+ <name></name>
+ <created>2026-08-05</created>
+ <file-release
rdf:resource="https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.28.6.tar.xz"
/>
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.28.5</revision>
<branch>1.28</branch>
<name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-libav-1.28.5/meson.build
new/gst-libav-1.28.6/meson.build
--- old/gst-libav-1.28.5/meson.build 2026-07-08 23:42:39.000000000 +0200
+++ new/gst-libav-1.28.6/meson.build 2026-08-05 13:59:39.000000000 +0200
@@ -1,5 +1,5 @@
project('gst-libav', 'c',
- version : '1.28.5',
+ version : '1.28.6',
meson_version : '>= 1.4',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized',
++++++ gst-libav.obsinfo ++++++
--- /var/tmp/diff_new_pack.MuNJrP/_old 2026-08-06 16:20:00.967869780 +0200
+++ /var/tmp/diff_new_pack.MuNJrP/_new 2026-08-06 16:20:00.975870059 +0200
@@ -1,5 +1,5 @@
name: gst-libav
-version: 1.28.5
-mtime: 1783546959
-commit: 727ceb91886862d200f423baf36cde2bb7ce5b4d
+version: 1.28.6
+mtime: 1785931179
+commit: 2d3e05cbdad68e47d645f548899b432dc9fb4473