Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pulseaudio for openSUSE:Factory checked in at 2022-07-21 11:32:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pulseaudio (Old) and /work/SRC/openSUSE:Factory/.pulseaudio.new.1523 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pulseaudio" Thu Jul 21 11:32:58 2022 rev:195 rq:989953 version:16.1 Changes: -------- --- /work/SRC/openSUSE:Factory/pulseaudio/pulseaudio.changes 2022-06-01 17:33:52.238684696 +0200 +++ /work/SRC/openSUSE:Factory/.pulseaudio.new.1523/pulseaudio.changes 2022-07-21 11:33:26.250950361 +0200 @@ -1,0 +2,13 @@ +Mon Jul 18 12:17:39 UTC 2022 - Takashi Iwai <ti...@suse.com> + +- Update to 16.1 (bsc#1201331): + * Fix parsing of percentage volumes with decimal points in pactl + * Fix crash with the "pacmd play-file" command when reads from the + disk aren't frame-aligned + * Fix module-rtp-recv sometimes thinking it's receiving an Opus + stream when it's not + * Fix frequent crashing in module-combine-sink, regression in 16.0 + * Fix crashing on 32-bit architectures when using the GStreamer + codecs for LDAC and AptX + +------------------------------------------------------------------- Old: ---- pulseaudio-16.0.tar.xz New: ---- pulseaudio-16.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pulseaudio.spec ++++++ --- /var/tmp/diff_new_pack.00KdmV/_old 2022-07-21 11:33:26.822950925 +0200 +++ /var/tmp/diff_new_pack.00KdmV/_new 2022-07-21 11:33:26.822950925 +0200 @@ -24,12 +24,12 @@ %define _fillupdir /var/adm/fillup-templates %endif -%define drvver 16.0 +%define drvver 16.1 %define soname 0 %define _udevrulesdir %(pkg-config --variable=udevdir udev)/rules.d %define _bashcompletionsdir %{_datadir}/bash-completion/completions Name: pulseaudio -Version: 16.0 +Version: 16.1 Release: 0 Summary: A Networked Sound Server License: GPL-2.0-or-later AND LGPL-2.1-or-later ++++++ pulseaudio-16.0.tar.xz -> pulseaudio-16.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-16.0/.tarball-version new/pulseaudio-16.1/.tarball-version --- old/pulseaudio-16.0/.tarball-version 2022-05-28 17:24:24.205100500 +0200 +++ new/pulseaudio-16.1/.tarball-version 2022-06-22 12:53:31.000000000 +0200 @@ -1 +1 @@ -16.0 +16.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-16.0/NEWS new/pulseaudio-16.1/NEWS --- old/pulseaudio-16.0/NEWS 2022-05-28 17:18:37.000000000 +0200 +++ new/pulseaudio-16.1/NEWS 2022-06-21 12:54:48.000000000 +0200 @@ -1,3 +1,22 @@ +PulseAudio 16.1 + +A bug fix release. + + * Fix parsing of percentage volumes with decimal points in pactl + * Fix crash with the "pacmd play-file" command when reads from the disk aren't frame-aligned + * Fix module-rtp-recv sometimes thinking it's receiving an Opus stream when it's not + * Fix frequent crashing in module-combine-sink, regression in 16.0 + * Fix crashing on 32-bit architectures when using the GStreamer codecs for LDAC and AptX + +Contributors + +Georg Chini +Igor V. Kovalenko +Jaechul Lee +Jan Palus +Sean Greenslade + + PulseAudio 16.0 Changes at a glance: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-16.0/src/modules/bluetooth/a2dp-codec-gst.c new/pulseaudio-16.1/src/modules/bluetooth/a2dp-codec-gst.c --- old/pulseaudio-16.0/src/modules/bluetooth/a2dp-codec-gst.c 2022-05-28 17:18:37.000000000 +0200 +++ new/pulseaudio-16.1/src/modules/bluetooth/a2dp-codec-gst.c 2022-06-21 12:54:48.000000000 +0200 @@ -22,6 +22,7 @@ #endif #include <arpa/inet.h> +#include <stdint.h> #include <pulsecore/log.h> #include <pulsecore/macro.h> @@ -82,7 +83,7 @@ static GstCaps *gst_create_caps_from_sample_spec(const pa_sample_spec *ss) { gchar *sample_format; GstCaps *caps; - int channel_mask; + uint64_t channel_mask; switch (ss->format) { case PA_SAMPLE_S16LE: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-16.0/src/modules/rtp/sdp.c new/pulseaudio-16.1/src/modules/rtp/sdp.c --- old/pulseaudio-16.0/src/modules/rtp/sdp.c 2022-05-28 17:18:37.000000000 +0200 +++ new/pulseaudio-16.1/src/modules/rtp/sdp.c 2022-06-21 12:54:48.000000000 +0200 @@ -129,6 +129,7 @@ i->origin = i->session_name = NULL; i->salen = 0; i->payload = 255; + i->enable_opus = false; if (!pa_startswith(t, PA_SDP_HEADER)) { pa_log("Failed to parse SDP data: invalid header."); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-16.0/src/pulsecore/sink.c new/pulseaudio-16.1/src/pulsecore/sink.c --- old/pulseaudio-16.0/src/pulsecore/sink.c 2022-05-28 17:18:37.000000000 +0200 +++ new/pulseaudio-16.1/src/pulsecore/sink.c 2022-06-21 12:54:48.000000000 +0200 @@ -1016,20 +1016,29 @@ if (i->origin_sink) { size_t filter_result, left_to_play_origin; - /* The recursive call works in the origin sink domain ... */ - left_to_play_origin = pa_convert_size(left_to_play, &i->sink->sample_spec, &i->origin_sink->sample_spec); + /* The combine sink sets i->origin sink but has a different threading model + * than the filter sinks. Therefore the recursion below may not be executed + * because pa_sink_process_input_underruns() was not called in the thread + * context of the origin sink. + * FIXME: It is unclear if some other kind of recursion would be necessary + * for the combine sink. */ + if (!i->module || !pa_safe_streq(i->module->name, "module-combine-sink")) { - /* .. and returns the time to sleep before waking up. We need the - * underrun duration for comparisons, so we undo the subtraction on - * the return value... */ - filter_result = left_to_play_origin - pa_sink_process_input_underruns(i->origin_sink, left_to_play_origin); - - /* ... and convert it back to the master sink domain */ - filter_result = pa_convert_size(filter_result, &i->origin_sink->sample_spec, &i->sink->sample_spec); - - /* Remember the longest underrun so far */ - if (filter_result > result) - result = filter_result; + /* The recursive call works in the origin sink domain ... */ + left_to_play_origin = pa_convert_size(left_to_play, &i->sink->sample_spec, &i->origin_sink->sample_spec); + + /* .. and returns the time to sleep before waking up. We need the + * underrun duration for comparisons, so we undo the subtraction on + * the return value... */ + filter_result = left_to_play_origin - pa_sink_process_input_underruns(i->origin_sink, left_to_play_origin); + + /* ... and convert it back to the master sink domain */ + filter_result = pa_convert_size(filter_result, &i->origin_sink->sample_spec, &i->sink->sample_spec); + + /* Remember the longest underrun so far */ + if (filter_result > result) + result = filter_result; + } } if (uf == 0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-16.0/src/pulsecore/sound-file-stream.c new/pulseaudio-16.1/src/pulsecore/sound-file-stream.c --- old/pulseaudio-16.0/src/pulsecore/sound-file-stream.c 2022-05-28 17:18:37.000000000 +0200 +++ new/pulseaudio-16.1/src/pulsecore/sound-file-stream.c 2022-06-21 12:54:48.000000000 +0200 @@ -185,7 +185,7 @@ tchunk.length = (size_t) n * fs; - pa_memblockq_push(u->memblockq, &tchunk); + pa_memblockq_push_align(u->memblockq, &tchunk); pa_memblock_unref(tchunk.memblock); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pulseaudio-16.0/src/utils/pactl.c new/pulseaudio-16.1/src/utils/pactl.c --- old/pulseaudio-16.0/src/utils/pactl.c 2022-05-28 17:18:37.000000000 +0200 +++ new/pulseaudio-16.1/src/utils/pactl.c 2022-06-21 12:54:48.000000000 +0200 @@ -2527,16 +2527,16 @@ vs = pa_xstrdup(vol_spec); *vol_flags = (pa_startswith(vs, "+") || pa_startswith(vs, "-")) ? VOL_RELATIVE : VOL_ABSOLUTE; - if (strchr(vs, '.')) - *vol_flags |= VOL_LINEAR; if (pa_endswith(vs, "%")) { *vol_flags |= VOL_PERCENT; vs[strlen(vs)-1] = 0; } - if (pa_endswith(vs, "db") || pa_endswith(vs, "dB")) { + else if (pa_endswith(vs, "db") || pa_endswith(vs, "dB")) { *vol_flags |= VOL_DECIBEL; vs[strlen(vs)-2] = 0; } + else if (strchr(vs, '.')) + *vol_flags |= VOL_LINEAR; atod_input = vs; @@ -2597,7 +2597,7 @@ volume.channels = n; for (i = 0; i < volume.channels; i++) { - enum volume_flags flags; + enum volume_flags flags = 0; if (parse_volume(args[i], &volume.values[i], &flags) < 0) return -1;