Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package alsa-plugins for openSUSE:Factory checked in at 2021-06-05 23:30:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/alsa-plugins (Old) and /work/SRC/openSUSE:Factory/.alsa-plugins.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "alsa-plugins" Sat Jun 5 23:30:30 2021 rev:111 rq:896396 version:1.2.5 Changes: -------- --- /work/SRC/openSUSE:Factory/alsa-plugins/alsa-plugins.changes 2020-10-06 17:10:52.677515239 +0200 +++ /work/SRC/openSUSE:Factory/.alsa-plugins.new.1898/alsa-plugins.changes 2021-06-05 23:30:50.396365752 +0200 @@ -1,0 +2,12 @@ +Mon May 31 11:48:44 UTC 2021 - Ferdinand Thiessen <r...@fthiessen.de> + +- Update to 1.2.5 + * Support alsa 1.2.5 + * Fixed A52 Output plugin + * upmix: complete generalizing format + * jack: add option to allow non-jack-aligned period size + * oss: fix the config (port -> device) + * pulse: pcm - handle reading pulse stream hole + * usb_stream: use snd_config_get_card() to decode the card number + +------------------------------------------------------------------- Old: ---- alsa-plugins-1.2.2.tar.bz2 New: ---- alsa-plugins-1.2.5.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ alsa-plugins.spec ++++++ --- /var/tmp/diff_new_pack.Uc2I1g/_old 2021-06-05 23:30:50.928366677 +0200 +++ /var/tmp/diff_new_pack.Uc2I1g/_new 2021-06-05 23:30:50.932366683 +0200 @@ -1,7 +1,7 @@ # # spec file for package alsa-plugins # -# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,16 +23,16 @@ %endif Name: alsa-plugins -Version: 1.2.2 +Version: 1.2.5 Release: 0 Summary: Extra Plug-Ins for ALSA Library License: LGPL-2.1-or-later Group: System/Libraries -Url: http://www.alsa-project.org/ -Source: ftp://ftp.alsa-project.org/pub/plugins/alsa-plugins-%{version}.tar.bz2 +Url: https://www.alsa-project.org +Source: https://www.alsa-project.org/files/pub/plugins/alsa-plugins-%{version}.tar.bz2 Source1: baselibs.conf BuildRequires: libtool -BuildRequires: pkgconfig(alsa) >= 1.1.6 +BuildRequires: pkgconfig(alsa) >= 1.2.5 %if %{build_aaf} BuildRequires: pkgconfig(avtp) %endif ++++++ alsa-plugins-1.2.2.tar.bz2 -> alsa-plugins-1.2.5.tar.bz2 ++++++ ++++ 4293 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.2.2/a52/pcm_a52.c new/alsa-plugins-1.2.5/a52/pcm_a52.c --- old/alsa-plugins-1.2.2/a52/pcm_a52.c 2020-02-19 10:35:42.000000000 +0100 +++ new/alsa-plugins-1.2.5/a52/pcm_a52.c 2021-05-27 19:18:39.000000000 +0200 @@ -144,7 +144,7 @@ /* write pending encoded data to the slave pcm */ static int write_out_pending(snd_pcm_ioplug_t *io, struct a52_ctx *rec) { - int err, ofs = 0; + int err, ofs = (rec->avctx->frame_size - rec->remain) * 4; if (! rec->remain) return 0; @@ -154,6 +154,8 @@ if (err < 0) { if (err == -EPIPE) io->state = SND_PCM_STATE_XRUN; + if (err == -EAGAIN) + break; return err; } else if (! err) break; @@ -161,8 +163,6 @@ ofs += (rec->remain - err) * 4; rec->remain -= err; } - if (rec->remain && ofs) - memmove(rec->outbuf, rec->outbuf + ofs, rec->remain * 4); return 0; } @@ -255,6 +255,12 @@ if ((err = write_out_pending(io, rec)) < 0) return err; + /* If there are still frames left in outbuf, we can't + * accept a full a52 frame, because this would overwrite + * the frames in outbuf. */ + if (rec->remain && len) + len--; + if (size > len) size = len; @@ -312,7 +318,7 @@ do { err = fill_data(io, areas, offset, size, interleaved); - if (err < 0) + if (err <= 0) break; offset += (unsigned int)err; size -= (unsigned int)err; @@ -325,21 +331,18 @@ /* * pointer callback * - * Calculate the current position from the delay of slave PCM + * Calculate the current position from the available frames of slave PCM */ static snd_pcm_sframes_t a52_pointer(snd_pcm_ioplug_t *io) { struct a52_ctx *rec = io->private_data; - snd_pcm_sframes_t delay; + snd_pcm_sframes_t avail; snd_pcm_state_t state; - int err; state = snd_pcm_state(rec->slave); switch (state) { case SND_PCM_STATE_RUNNING: case SND_PCM_STATE_DRAINING: - if ((err = snd_pcm_delay(rec->slave, &delay)) < 0) - return err; break; case SND_PCM_STATE_XRUN: case SND_PCM_STATE_SUSPENDED: @@ -348,16 +351,25 @@ return 0; } - if (delay < 0 || delay >= (snd_pcm_sframes_t)rec->slave_buffer_size) - delay = 0; - delay = (snd_pcm_sframes_t)io->appl_ptr - delay; - if (delay < 0) { - delay += io->buffer_size; - if (delay < 0) - delay = 0; + avail = 0; + + /* Write what we have from outbuf. */ + write_out_pending(io, rec); + + /* If there is anything remaining in outbuf, we can't + * accept any full packets. */ + if (rec->remain == 0) + { + /* Round the slave frames to multiples of the packet size. */ + avail += (snd_pcm_avail_update(rec->slave) / rec->avctx->frame_size) * rec->avctx->frame_size; } - delay %= io->buffer_size; - return delay; + + if (avail < 0) + avail = 0; + else if (avail >= io->buffer_size) + avail = io->buffer_size - 1; + + return (io->appl_ptr + avail) % io->buffer_size; } /* set up the fixed parameters of slave PCM hw_parmas */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.2.2/compile new/alsa-plugins-1.2.5/compile --- old/alsa-plugins-1.2.2/compile 2020-02-19 11:26:51.000000000 +0100 +++ new/alsa-plugins-1.2.5/compile 2021-05-27 22:06:35.000000000 +0200 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # Written by Tom Tromey <tro...@cygnus.com>. # # This program is free software; you can redistribute it and/or modify @@ -53,7 +53,7 @@ MINGW*) file_conv=mingw ;; - CYGWIN*) + CYGWIN* | MSYS*) file_conv=cygwin ;; *) @@ -67,7 +67,7 @@ mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/*) + cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.2.2/configure.ac new/alsa-plugins-1.2.5/configure.ac --- old/alsa-plugins-1.2.2/configure.ac 2020-02-19 10:35:42.000000000 +0100 +++ new/alsa-plugins-1.2.5/configure.ac 2021-05-27 19:18:39.000000000 +0200 @@ -1,5 +1,5 @@ AC_PREREQ(2.59) -AC_INIT(alsa-plugins, 1.2.2) +AC_INIT(alsa-plugins, 1.2.5) AM_INIT_AUTOMAKE AC_PREFIX_DEFAULT(/usr) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.2.2/jack/pcm_jack.c new/alsa-plugins-1.2.5/jack/pcm_jack.c --- old/alsa-plugins-1.2.2/jack/pcm_jack.c 2020-02-19 10:35:42.000000000 +0100 +++ new/alsa-plugins-1.2.5/jack/pcm_jack.c 2021-05-27 19:18:39.000000000 +0200 @@ -51,6 +51,7 @@ snd_pcm_uframes_t hw_ptr; unsigned int sample_bits; snd_pcm_uframes_t min_avail; + int use_period_alignment; snd_pcm_channel_area_t *areas; @@ -450,8 +451,9 @@ jack->num_ports, jack->num_ports)) < 0 || (err = snd_pcm_ioplug_set_param_minmax(&jack->io, SND_PCM_IOPLUG_HW_RATE, rate, rate)) < 0 || - (err = snd_pcm_ioplug_set_param_list(&jack->io, SND_PCM_IOPLUG_HW_PERIOD_BYTES, - ARRAY_SIZE(psize_list), psize_list)) < 0 || + (err = jack->use_period_alignment ? + snd_pcm_ioplug_set_param_list(&jack->io, SND_PCM_IOPLUG_HW_PERIOD_BYTES, ARRAY_SIZE(psize_list), psize_list) : + snd_pcm_ioplug_set_param_minmax(&jack->io, SND_PCM_IOPLUG_HW_PERIOD_BYTES, 128, 64*1024) ) < 0 || (err = snd_pcm_ioplug_set_param_minmax(&jack->io, SND_PCM_IOPLUG_HW_PERIODS, 2, 64)) < 0) return err; @@ -532,6 +534,7 @@ const char *client_name, snd_config_t *playback_conf, snd_config_t *capture_conf, + int use_period_alignment, snd_pcm_stream_t stream, int mode) { snd_pcm_jack_t *jack; @@ -547,6 +550,7 @@ jack->fd = -1; jack->io.poll_fd = -1; + jack->use_period_alignment = use_period_alignment; err = parse_ports(jack, stream == SND_PCM_STREAM_PLAYBACK ? playback_conf : capture_conf); @@ -635,6 +639,7 @@ snd_config_t *capture_conf = NULL; const char *client_name = NULL; int err; + int align_jack_period = 1; /*by default we allow only JACK aligned period size*/ snd_config_for_each(i, next, conf) { snd_config_t *n = snd_config_iterator_entry(i); @@ -663,11 +668,18 @@ capture_conf = n; continue; } + if (strcmp(id, "align_psize") == 0) { + err = snd_config_get_bool(n); + if (err < 0) + return err; + align_jack_period = err ? 1 : 0; + continue; + } SNDERR("Unknown field %s", id); return -EINVAL; } - err = snd_pcm_jack_open(pcmp, name, client_name, playback_conf, capture_conf, stream, mode); + err = snd_pcm_jack_open(pcmp, name, client_name, playback_conf, capture_conf, align_jack_period, stream, mode); return err; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.2.2/missing new/alsa-plugins-1.2.5/missing --- old/alsa-plugins-1.2.2/missing 2020-02-19 11:26:51.000000000 +0100 +++ new/alsa-plugins-1.2.5/missing 2021-05-27 22:06:35.000000000 +0200 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.2.2/mix/pcm_upmix.c new/alsa-plugins-1.2.5/mix/pcm_upmix.c --- old/alsa-plugins-1.2.2/mix/pcm_upmix.c 2020-02-19 10:35:42.000000000 +0100 +++ new/alsa-plugins-1.2.5/mix/pcm_upmix.c 2021-05-27 19:18:39.000000000 +0200 @@ -516,9 +516,9 @@ SND_PCM_EXTPLUG_HW_CHANNELS, 3, chlist); snd_pcm_extplug_set_param(&mix->ext, SND_PCM_EXTPLUG_HW_FORMAT, - SND_PCM_FORMAT_S16); + UPMIX_PCM_FORMAT); snd_pcm_extplug_set_slave_param(&mix->ext, SND_PCM_EXTPLUG_HW_FORMAT, - SND_PCM_FORMAT_S16); + UPMIX_PCM_FORMAT); *pcmp = mix->ext.pcm; return 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.2.2/oss/50-oss.conf new/alsa-plugins-1.2.5/oss/50-oss.conf --- old/alsa-plugins-1.2.2/oss/50-oss.conf 2020-02-19 10:35:42.000000000 +0100 +++ new/alsa-plugins-1.2.5/oss/50-oss.conf 2021-05-27 19:18:39.000000000 +0200 @@ -5,7 +5,7 @@ default "/dev/dsp" } type oss - port $DEVICE + device $DEVICE hint { show { @func refer diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.2.2/pulse/pcm_pulse.c new/alsa-plugins-1.2.5/pulse/pcm_pulse.c --- old/alsa-plugins-1.2.2/pulse/pcm_pulse.c 2020-02-19 10:35:42.000000000 +0100 +++ new/alsa-plugins-1.2.5/pulse/pcm_pulse.c 2021-05-27 19:18:39.000000000 +0200 @@ -522,16 +522,22 @@ if (frag_length == 0) break; - src_buf = (char *) src_buf + pcm->offset; - frag_length -= pcm->offset; + if (src_buf) { + src_buf = (char *) src_buf + pcm->offset; + frag_length -= pcm->offset; - if (frag_length > remain_size) { - pcm->offset += remain_size; - frag_length = remain_size; - } else - pcm->offset = 0; + if (frag_length > remain_size) { + pcm->offset += remain_size; + frag_length = remain_size; + } else + pcm->offset = 0; - memcpy(dst_buf, src_buf, frag_length); + memcpy(dst_buf, src_buf, frag_length); + } else { + /* If there is a hole in the stream, generate silence. */ + int sample_size = snd_pcm_format_physical_width(io->format) / 8; + snd_pcm_format_set_silence(io->format, dst_buf, frag_length / sample_size); + } if (pcm->offset == 0) pa_stream_drop(pcm->stream); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.2.2/usb_stream/pcm_usb_stream.c new/alsa-plugins-1.2.5/usb_stream/pcm_usb_stream.c --- old/alsa-plugins-1.2.2/usb_stream/pcm_usb_stream.c 2020-02-19 10:35:42.000000000 +0100 +++ new/alsa-plugins-1.2.5/usb_stream/pcm_usb_stream.c 2021-05-27 19:18:39.000000000 +0200 @@ -50,9 +50,8 @@ #define FRAME_SIZE 6 -#define LCARD 32 struct user_usb_stream { - char card[LCARD]; + int card; unsigned use; struct usb_stream *s; void *write_area; @@ -79,14 +78,14 @@ static struct user_usb_stream *uus; static pthread_mutex_t uus_mutex = PTHREAD_MUTEX_INITIALIZER; -static struct user_usb_stream *get_uus(const char *card) +static struct user_usb_stream *get_uus(int card) { pthread_mutex_lock(&uus_mutex); struct user_usb_stream **l_uus = &uus, *r_uus = NULL; while (*l_uus) { - if (strcmp((*l_uus)->card, card) == 0) { + if ((*l_uus)->card == card) { r_uus = *l_uus; r_uus->use++; goto unlock; @@ -96,7 +95,7 @@ r_uus = calloc(1, sizeof(*r_uus)); if (r_uus) { r_uus->use = 1; - strcpy(r_uus->card, card); + r_uus->card = card; *l_uus = r_uus; } @@ -399,7 +398,7 @@ } static int snd_pcm_us_open(snd_pcm_t **pcmp, const char *name, - const char *card, + int card, snd_pcm_stream_t stream, int mode, snd_pcm_uframes_t period_size, unsigned int rate) @@ -408,15 +407,12 @@ int err; char us_name[32]; - if (strlen(card) >= LCARD) - return -EINVAL; - assert(pcmp); us = calloc(1, sizeof(*us)); if (!us) return -ENOMEM; - if (snprintf(us_name, sizeof(us_name), "hw:%s", card) + if (snprintf(us_name, sizeof(us_name), "hw:%d", card) >= (int)sizeof(us_name)) { fprintf(stderr, "%s: WARNING: USB_STREAM client name '%s' truncated to %d characters, might not be unique\n", __func__, us_name, (int)strlen(us_name)); @@ -469,8 +465,7 @@ SND_PCM_PLUGIN_DEFINE_FUNC(usb_stream) { snd_config_iterator_t i, next; - const char *card; - int err; + int err, card = -1; long period_size = 0, rate = 0; snd_config_for_each(i, next, conf) { @@ -482,11 +477,11 @@ if (strcmp(id, "comment") == 0 || strcmp(id, "type") == 0) continue; if (strcmp(id, "card") == 0) { - if (snd_config_get_type(n) != SND_CONFIG_TYPE_STRING) { - SNDERR("Invalid type for %s", id); + card = snd_config_get_card(n); + if (card < 0) { + SNDERR("Invalid card '%s'", id); return -EINVAL; } - snd_config_get_string(n, &card); continue; } if (strcmp(id, "period_size") == 0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.2.2/version new/alsa-plugins-1.2.5/version --- old/alsa-plugins-1.2.2/version 2020-02-19 11:26:56.000000000 +0100 +++ new/alsa-plugins-1.2.5/version 2021-05-27 22:06:40.000000000 +0200 @@ -1 +1 @@ -1.2.2 +1.2.5