From 7e5479d2b53d94b05006cfce1364d50fb1c9ed33 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Nov 2010 07:45:41 +0100 Subject: [PATCH] pulseaudio: remove package Signed-off-by: Stephan Raue --- packages/audio/pulseaudio/build | 58 ---- packages/audio/pulseaudio/config/default.pa | 140 --------- packages/audio/pulseaudio/install | 57 ---- packages/audio/pulseaudio/meta | 19 -- ...ter-functions-only-if-they-were-actua.diff | 289 ----------------- ...e-fix-request-counter-miscalculations.diff | 275 ----------------- ...we-always-return-a-valid-memblock-in-.diff | 161 ---------- ...uct-stream-only-if-it-is-not-already-.diff | 56 ---- ...-hit-an-assert-if-latency-is-queried-.diff | 35 --- ...etect-forking-in-sample-cache-API-too.diff | 87 ------ ...onnection-state-in-pa_stream_connect_.diff | 28 -- ...et-to-unref-devices-we-are-not-intere.diff | 29 -- ...-make-once-related-variables-volatile.diff | 91 ------ ...0-bluetooth-fix-invalid-memory-access.diff | 36 --- ...easy-way-to-disable-log-rate-limiting.diff | 154 --------- ...-we-get-events-only-for-sound-devices.diff | 28 -- ...ume-changes-from-the-hw-if-we-are-not.diff | 41 --- ...MOV-flag-before-using-this-intsructio.diff | 80 ----- .../0015-alsa-cover-Input-Source-Int-Mic.diff | 29 -- ...-alsa-Cover-the-Int-Mic-Boost-element.diff | 36 --- ...nd-cards-with-both-modem-and-audio-pr.diff | 117 ------- ...018-udev-rework-modem-detection-a-bit.diff | 182 ----------- ...ke-name-on-the-bus-then-return-in-sta.diff | 39 --- ...0-alsa-cover-bass-boost-mixer-element.diff | 49 --- ...021-Mark-shared-variables-as-volatile.diff | 55 ---- ...EL_ENC-instead-of-ID_MODEL-if-it-is-s.diff | 153 --------- ...llow-configuration-of-latency-in-msec.diff | 268 ---------------- ...4-client-implement-PULSE_LATENCY_MSEC.diff | 107 ------- ...clude-dolby-channel-names-in-comments.diff | 57 ---- ...ile-set-for-M-Audio-FastTrack-Pro-USB.diff | 116 ------- ...op-Properly-initialise-m-n_waiting_fo.diff | 35 --- ...CLASS-instead-of-SOUND_FORM_FACTOR-wh.diff | 29 -- ...e-src-pulsecore-cpu-arm.c-FTBFS-fixes.diff | 39 --- ...ng-warnings-which-now-cause-buildd-fa.diff | 33 -- ...pa_stream-pointers-to-hashmaps-instea.diff | 180 ----------- ...andling-of-seeks-that-depend-on-varia.diff | 166 ---------- ...typo-PA_SINK_IS_LINKED-PA_SINK_INPUT_.diff | 25 -- ...-cover-Desktop-Speaker-mixer-elements.diff | 292 ------------------ ...over-Shared-Mic-Line-in-Analog-Source.diff | 49 --- ...0036-alsa-cover-Internal-Mic-elements.diff | 214 ------------- ...37-alsa-use-default-output-port-names.diff | 82 ----- ...sys-add-gobject-to-build-dependencies.diff | 27 -- .../0039-padsp-emulate-dev-audio-too.diff | 142 --------- ...-first-restart-timer-then-dispatch-it.diff | 92 ------ ...erbose-when-reading-from-eventfd-fail.diff | 111 ------- ...t-always-fully-fulfill-write-requests.diff | 79 ----- .../0043-pacmd-store-away-fd-type.diff | 60 ---- ...er-busy-loop-when-reading-from-stdin-.diff | 257 --------------- ...t-complain-about-missing-SHM-segments.diff | 29 -- ...-vala-fix-definition-of-INVALID_INDEX.diff | 25 -- ...finition-of-the-GLib-mainloop-adapter.diff | 30 -- ...file-and-alsa-mixer-paths-to-src-Make.diff | 49 --- ...-Use-Subwoofer-as-pretty-name-for-LFE.diff | 28 -- ...la-fix-wrapping-of-port-setting-calls.diff | 34 -- ...oplist-explicitly-mention-a-role-test.diff | 25 -- ...be-a-little-bit-more-verbose-why-we-d.diff | 25 -- ...e-the-sample-name-as-unmodified-fallb.diff | 26 -- ...ying-a-sample-from-the-cache-make-sur.diff | 153 --------- ...-buffer_attr-to-recording-streams-too.diff | 28 -- ...-resume-audio-device-even-for-initial.diff | 47 --- ...tive-improve-logging-for-buffer_attrs.diff | 48 --- ...strip-spaces-from-ALSA-card-pcm-names.diff | 53 ---- ...x_rewind-max_request-while-suspending.diff | 48 --- ...l-introduce-generic-function-pa_strip.diff | 78 ----- ...d-simple-use-pa_memblockq_pop_missing.diff | 46 --- ...ow-stream-volumes-affect-sink-volumes.diff | 72 ----- .../pulseaudio/patches/02_no-st_uid.diff | 58 ---- 67 files changed, 5686 deletions(-) delete mode 100755 packages/audio/pulseaudio/build delete mode 100644 packages/audio/pulseaudio/config/default.pa delete mode 100755 packages/audio/pulseaudio/install delete mode 100644 packages/audio/pulseaudio/meta delete mode 100644 packages/audio/pulseaudio/patches/0001-dbus-remove-filter-functions-only-if-they-were-actua.diff delete mode 100644 packages/audio/pulseaudio/patches/0002-native-fix-request-counter-miscalculations.diff delete mode 100644 packages/audio/pulseaudio/patches/0003-core-make-sure-we-always-return-a-valid-memblock-in-.diff delete mode 100644 packages/audio/pulseaudio/patches/0004-bluetooth-destruct-stream-only-if-it-is-not-already-.diff delete mode 100644 packages/audio/pulseaudio/patches/0005-bluetooth-don-t-hit-an-assert-if-latency-is-queried-.diff delete mode 100644 packages/audio/pulseaudio/patches/0006-client-detect-forking-in-sample-cache-API-too.diff delete mode 100644 packages/audio/pulseaudio/patches/0007-client-verify-connection-state-in-pa_stream_connect_.diff delete mode 100644 packages/audio/pulseaudio/patches/0008-udev-don-t-forget-to-unref-devices-we-are-not-intere.diff delete mode 100644 packages/audio/pulseaudio/patches/0009-once-make-once-related-variables-volatile.diff delete mode 100644 packages/audio/pulseaudio/patches/0010-bluetooth-fix-invalid-memory-access.diff delete mode 100644 packages/audio/pulseaudio/patches/0011-log-add-an-easy-way-to-disable-log-rate-limiting.diff delete mode 100644 packages/audio/pulseaudio/patches/0012-udev-make-sure-we-get-events-only-for-sound-devices.diff delete mode 100644 packages/audio/pulseaudio/patches/0013-alsa-ignore-volume-changes-from-the-hw-if-we-are-not.diff delete mode 100644 packages/audio/pulseaudio/patches/0014-cpu-check-for-CMOV-flag-before-using-this-intsructio.diff delete mode 100644 packages/audio/pulseaudio/patches/0015-alsa-cover-Input-Source-Int-Mic.diff delete mode 100644 packages/audio/pulseaudio/patches/0016-alsa-Cover-the-Int-Mic-Boost-element.diff delete mode 100644 packages/audio/pulseaudio/patches/0017-udev-handle-sound-cards-with-both-modem-and-audio-pr.diff delete mode 100644 packages/audio/pulseaudio/patches/0018-udev-rework-modem-detection-a-bit.diff delete mode 100644 packages/audio/pulseaudio/patches/0019-daemon-first-take-name-on-the-bus-then-return-in-sta.diff delete mode 100644 packages/audio/pulseaudio/patches/0020-alsa-cover-bass-boost-mixer-element.diff delete mode 100644 packages/audio/pulseaudio/patches/0021-Mark-shared-variables-as-volatile.diff delete mode 100644 packages/audio/pulseaudio/patches/0022-udev-use-ID_MODEL_ENC-instead-of-ID_MODEL-if-it-is-s.diff delete mode 100644 packages/audio/pulseaudio/patches/0023-pacat-allow-configuration-of-latency-in-msec.diff delete mode 100644 packages/audio/pulseaudio/patches/0024-client-implement-PULSE_LATENCY_MSEC.diff delete mode 100644 packages/audio/pulseaudio/patches/0025-client-include-dolby-channel-names-in-comments.diff delete mode 100644 packages/audio/pulseaudio/patches/0026-alsa-add-profile-set-for-M-Audio-FastTrack-Pro-USB.diff delete mode 100644 packages/audio/pulseaudio/patches/0027-threaded-mainloop-Properly-initialise-m-n_waiting_fo.diff delete mode 100644 packages/audio/pulseaudio/patches/0028-udev-Use-SOUND_CLASS-instead-of-SOUND_FORM_FACTOR-wh.diff delete mode 100644 packages/audio/pulseaudio/patches/0029-More-src-pulsecore-cpu-arm.c-FTBFS-fixes.diff delete mode 100644 packages/audio/pulseaudio/patches/0030-Fix-the-following-warnings-which-now-cause-buildd-fa.diff delete mode 100644 packages/audio/pulseaudio/patches/0031-libpulse-Store-pa_stream-pointers-to-hashmaps-instea.diff delete mode 100644 packages/audio/pulseaudio/patches/0032-native-rework-handling-of-seeks-that-depend-on-varia.diff delete mode 100644 packages/audio/pulseaudio/patches/0033-core-Fix-macro-typo-PA_SINK_IS_LINKED-PA_SINK_INPUT_.diff delete mode 100644 packages/audio/pulseaudio/patches/0034-alsa-cover-Desktop-Speaker-mixer-elements.diff delete mode 100644 packages/audio/pulseaudio/patches/0035-alsa-cover-Shared-Mic-Line-in-Analog-Source.diff delete mode 100644 packages/audio/pulseaudio/patches/0036-alsa-cover-Internal-Mic-elements.diff delete mode 100644 packages/audio/pulseaudio/patches/0037-alsa-use-default-output-port-names.diff delete mode 100644 packages/audio/pulseaudio/patches/0038-build-sys-add-gobject-to-build-dependencies.diff delete mode 100644 packages/audio/pulseaudio/patches/0039-padsp-emulate-dev-audio-too.diff delete mode 100644 packages/audio/pulseaudio/patches/0040-dbus-first-restart-timer-then-dispatch-it.diff delete mode 100644 packages/audio/pulseaudio/patches/0041-fdsem-be-more-verbose-when-reading-from-eventfd-fail.diff delete mode 100644 packages/audio/pulseaudio/patches/0042-pacat-always-fully-fulfill-write-requests.diff delete mode 100644 packages/audio/pulseaudio/patches/0043-pacmd-store-away-fd-type.diff delete mode 100644 packages/audio/pulseaudio/patches/0044-pacmd-don-t-enter-busy-loop-when-reading-from-stdin-.diff delete mode 100644 packages/audio/pulseaudio/patches/0045-shm-don-t-complain-about-missing-SHM-segments.diff delete mode 100644 packages/audio/pulseaudio/patches/0046-vala-fix-definition-of-INVALID_INDEX.diff delete mode 100644 packages/audio/pulseaudio/patches/0047-vala-fix-definition-of-the-GLib-mainloop-adapter.diff delete mode 100644 packages/audio/pulseaudio/patches/0048-Add-missing-profile-and-alsa-mixer-paths-to-src-Make.diff delete mode 100644 packages/audio/pulseaudio/patches/0049-channelmap-Use-Subwoofer-as-pretty-name-for-LFE.diff delete mode 100644 packages/audio/pulseaudio/patches/0050-vala-fix-wrapping-of-port-setting-calls.diff delete mode 100644 packages/audio/pulseaudio/patches/0051-proplist-explicitly-mention-a-role-test.diff delete mode 100644 packages/audio/pulseaudio/patches/0052-stream-restore-be-a-little-bit-more-verbose-why-we-d.diff delete mode 100644 packages/audio/pulseaudio/patches/0053-sample-cache-use-the-sample-name-as-unmodified-fallb.diff delete mode 100644 packages/audio/pulseaudio/patches/0054-scache-when-playing-a-sample-from-the-cache-make-sur.diff delete mode 100644 packages/audio/pulseaudio/patches/0055-pacat-pass-buffer_attr-to-recording-streams-too.diff delete mode 100644 packages/audio/pulseaudio/patches/0056-suspend-on-idle-resume-audio-device-even-for-initial.diff delete mode 100644 packages/audio/pulseaudio/patches/0057-native-improve-logging-for-buffer_attrs.diff delete mode 100644 packages/audio/pulseaudio/patches/0058-alsa-util-strip-spaces-from-ALSA-card-pcm-names.diff delete mode 100644 packages/audio/pulseaudio/patches/0059-alsa-reset-max_rewind-max_request-while-suspending.diff delete mode 100644 packages/audio/pulseaudio/patches/0060-core-util-introduce-generic-function-pa_strip.diff delete mode 100644 packages/audio/pulseaudio/patches/0061-esd-simple-use-pa_memblockq_pop_missing.diff delete mode 100644 packages/audio/pulseaudio/patches/0062-core-rework-how-stream-volumes-affect-sink-volumes.diff delete mode 100644 packages/audio/pulseaudio/patches/02_no-st_uid.diff diff --git a/packages/audio/pulseaudio/build b/packages/audio/pulseaudio/build deleted file mode 100755 index 5a60cc8af0..0000000000 --- a/packages/audio/pulseaudio/build +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh - -. config/options $1 - -# ensure we dont use as-needed optimization. - LDFLAGS=`echo $LDFLAGS | sed -e "s|-Wl,--as-needed||"` - -if [ "$AVAHI_DAEMON" = yes ]; then - PULSEAUDIO_AVAHI="--enable-avahi" -else - PULSEAUDIO_AVAHI="--disable-avahi" -fi - -cd $PKG_BUILD - -$AUTORECONF - -./configure --host=$TARGET_NAME \ - --build=$HOST_NAME \ - --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --disable-static \ - --enable-shared \ - --disable-x11 \ - --disable-samplerate \ - --disable-oss-output \ - --disable-oss-wrapper \ - --enable-alsa \ - --disable-solaris \ - --disable-glib2 \ - --disable-gtk2 \ - --disable-gconf \ - $PULSEAUDIO_AVAHI \ - --disable-jack \ - --disable-lirc \ - --disable-hal \ - --enable-udev \ - --disable-hal-compat \ - --disable-bluez \ - --enable-dbus \ - --disable-ipv6 \ - --enable-openssl \ - --disable-manpages \ - --disable-per-user-esound-socket \ - --disable-legacy-runtime-dir \ - --with-system-user=root \ - --with-system-group=root \ - --with-access-group=root \ - --with-module-dir="/usr/lib/pulse" \ - -# --with-system-user=pulse \ -# --with-system-group=pulse \ -# --with-access-group=pulse-access \ - -make - -$MAKEINSTALL diff --git a/packages/audio/pulseaudio/config/default.pa b/packages/audio/pulseaudio/config/default.pa deleted file mode 100644 index 50ec653b31..0000000000 --- a/packages/audio/pulseaudio/config/default.pa +++ /dev/null @@ -1,140 +0,0 @@ -#!/usr/bin/pulseaudio -nF -# -# This file is part of PulseAudio. -# -# PulseAudio is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# PulseAudio 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 -# General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with PulseAudio; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - -# This startup script is used only if PulseAudio is started per-user -# (i.e. not in system mode) - -.nofail - -### Load something into the sample cache -#load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav -#load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav -#load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav -#load-sample-lazy pulse-access /usr/share/sounds/generic.wav - -.fail - -### Automatically restore the volume of streams and devices -load-module module-device-restore -#load-module module-stream-restore - -#geexbox-special: enable device switching, forget about the cache -load-module module-stream-restore restore_device=false -load-module module-card-restore - -### Automatically augment property information from .desktop files -### stored in /usr/share/application -#disabled for geexbox: load-module module-augment-properties - -### Load audio drivers statically (it's probably better to not load -### these drivers manually, but instead use module-hal-detect -- -### see below -- for doing this automatically) -#load-module module-alsa-sink -#load-module module-alsa-source device=hw:1,0 -#load-module module-oss device="/dev/dsp" sink_name=output source_name=input -#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input -#load-module module-null-sink -#load-module module-pipe-sink - -### Automatically load driver modules depending on the hardware available -#disabled for geexbox: .ifexists module-udev-detect.so -load-module module-udev-detect -#disabled for geexbox: .else -### Alternatively use the static hardware detection module (for systems that -### lack udev support) -#disabled for geexbox: load-module module-detect -#disabled for geexbox: .endif - -### Automatically load driver modules for Bluetooth hardware -#disabled for geexbox: .ifexists module-bluetooth-discover.so -#disabled for geexbox: load-module module-bluetooth-discover -#disabled for geexbox: .endif - -### Load several protocols -#disabled for geexbox: .ifexists module-esound-protocol-unix.so -#disabled for geexbox: load-module module-esound-protocol-unix -#disabled for geexbox: .endif -load-module module-native-protocol-unix - -### Network access (may be configured with paprefs, so leave this commented -### here if you plan to use paprefs) -#load-module module-esound-protocol-tcp -#load-module module-native-protocol-tcp -#load-module module-zeroconf-publish - -### Load the RTP reciever module (also configured via paprefs, see above) -#load-module module-rtp-recv - -### Load the RTP sender module (also configured via paprefs, see above) -#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 description="RTP Multicast Sink" -#load-module module-rtp-send source=rtp.monitor - -### Load additional modules from GConf settings. This can be configured with the paprefs tool. -### Please keep in mind that the modules configured by paprefs might conflict with manually -### loaded modules. -#disabled for geexbox: .ifexists module-gconf.so -#disabled for geexbox: .nofail -#disabled for geexbox: load-module module-gconf -#disabled for geexbox: .fail -#disabled for geexbox: .endif - -### Automatically restore the default sink/source when changed by the user during runtime -load-module module-default-device-restore - -### Automatically move streams to the default sink if the sink they are -### connected to dies, similar for sources -load-module module-rescue-streams - -### Make sure we always have a sink around, even if it is a null sink. -load-module module-always-sink - -### Honour intended role device property -#disabled for geexbox: load-module module-intended-roles - -### Automatically suspend sinks/sources that become idle for too long -load-module module-suspend-on-idle - -### If autoexit on idle is enabled we want to make sure we only quit -### when no local session needs us anymore. -#disabled for geexbox: load-module module-console-kit - -### Enable positioned event sounds -load-module module-position-event-sounds - -### Cork music streams when a phone stream is active -#disabled for geexbox: load-module module-cork-music-on-phone - -# X11 modules should not be started from default.pa so that one daemon -# can be shared by multiple sessions. - -### Load X11 bell module -#load-module module-x11-bell sample=bell-windowing-system - -### Register ourselves in the X11 session manager -#load-module module-x11-xsmp - -### Publish connection data in the X11 root window -#.ifexists module-x11-publish.so -#.nofail -#load-module module-x11-publish -#.fail -#.endif - -### Make some devices default -#set-default-sink output -#set-default-source input diff --git a/packages/audio/pulseaudio/install b/packages/audio/pulseaudio/install deleted file mode 100755 index 772d3b3e9e..0000000000 --- a/packages/audio/pulseaudio/install +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh - -. config/options $1 - -# add_user pulse x 493 483 "PulseAudio System Daemon" "/var/run/pulse" "/bin/sh" -# add_group pulse 483 -# add_group pulse-access 482 - -mkdir -p $INSTALL/etc/dbus-1/system.d - cp $PKG_BUILD/src/daemon/pulseaudio-system.conf $INSTALL/etc/dbus-1/system.d - sed -e 's%user="pulse"%user="root"%g' -i $INSTALL/etc/dbus-1/system.d/pulseaudio-system.conf - -mkdir -p $INSTALL/etc/pulse - cp $PKG_BUILD/src/client.conf $INSTALL/etc/pulse - cp $PKG_BUILD/src/daemon.conf $INSTALL/etc/pulse -# cp $PKG_BUILD/src/default.pa $INSTALL/etc/pulse - cp $PKG_DIR/config/default.pa $INSTALL/etc/pulse - cp $PKG_BUILD/src/system.pa $INSTALL/etc/pulse - -mkdir -p $INSTALL/lib/udev/rules.d - cp $PKG_BUILD/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules $INSTALL/lib/udev/rules.d - -mkdir -p $INSTALL/usr/bin - cp $PKG_BUILD/src/.libs/pabrowse $INSTALL/usr/bin - cp $PKG_BUILD/src/.libs/pacat $INSTALL/usr/bin - cp $PKG_BUILD/src/.libs/pacmd $INSTALL/usr/bin - cp $PKG_BUILD/src/.libs/pactl $INSTALL/usr/bin - ln -sf pactl $INSTALL/usr/bin/pamon - ln -sf pactl $INSTALL/usr/bin/paplay - ln -sf pactl $INSTALL/usr/bin/parec - ln -sf pactl $INSTALL/usr/bin/parecord - cp $PKG_BUILD/src/.libs/pasuspender $INSTALL/usr/bin - cp $PKG_BUILD/src/.libs/pulseaudio $INSTALL/usr/bin - cp $PKG_BUILD/src/start-pulseaudio-x11 $INSTALL/usr/bin - -mkdir -p $INSTALL/usr/lib - cp -P $PKG_BUILD/src/.libs/libpulse*.so* $INSTALL/usr/lib - rm -rf $INSTALL/usr/lib/libpulse*.so*T - -mkdir -p $INSTALL/usr/lib/pulse - cp -P $PKG_BUILD/src/.libs/libalsa-util.so $INSTALL/usr/lib/pulse - cp -P $PKG_BUILD/src/.libs/libavahi-wrap.so $INSTALL/usr/lib/pulse - cp -P $PKG_BUILD/src/.libs/libcli.so $INSTALL/usr/lib/pulse - cp -P $PKG_BUILD/src/.libs/libprotocol-cli.so $INSTALL/usr/lib/pulse - cp -P $PKG_BUILD/src/.libs/libprotocol-esound.so $INSTALL/usr/lib/pulse - cp -P $PKG_BUILD/src/.libs/libprotocol-http.so $INSTALL/usr/lib/pulse - cp -P $PKG_BUILD/src/.libs/libprotocol-native.so $INSTALL/usr/lib/pulse - cp -P $PKG_BUILD/src/.libs/libprotocol-simple.so $INSTALL/usr/lib/pulse - cp -P $PKG_BUILD/src/.libs/libraop.so $INSTALL/usr/lib/pulse - cp -P $PKG_BUILD/src/.libs/librtp.so $INSTALL/usr/lib/pulse - cp -P $PKG_BUILD/src/.libs/module-*.so $INSTALL/usr/lib/pulse - -mkdir -p $INSTALL/usr/share/pulseaudio/alsa-mixer/paths - cp $PKG_BUILD/src/modules/alsa/mixer/paths/* $INSTALL/usr/share/pulseaudio/alsa-mixer/paths - -mkdir -p $INSTALL/usr/share/pulseaudio/alsa-mixer/profile-sets - cp $PKG_BUILD/src/modules/alsa/mixer/profile-sets/*.conf $INSTALL/usr/share/pulseaudio/alsa-mixer/profile-sets diff --git a/packages/audio/pulseaudio/meta b/packages/audio/pulseaudio/meta deleted file mode 100644 index 2a3ac7ff78..0000000000 --- a/packages/audio/pulseaudio/meta +++ /dev/null @@ -1,19 +0,0 @@ -PKG_NAME="pulseaudio" -PKG_VERSION="0.9.21" -PKG_REV="1" -PKG_ARCH="any" -PKG_LICENSE="GPL" -PKG_SITE="http://pulseaudio.org/" -PKG_URL="http://0pointer.de/lennart/projects/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS="libtool alsa-lib libsndfile speex dbus udev openssl alsa-plugins" -PKG_BUILD_DEPENDS="toolchain libtool alsa-lib libsndfile speex dbus udev openssl" -PKG_PRIORITY="optional" -PKG_SECTION="audio" -PKG_SHORTDESC="pulseaudio: Yet another sound server for Unix" -PKG_LONGDESC="PulseAudio is a sound server for Linux and other Unix-like operating systems. It is intended to be an improved drop-in replacement for the Enlightened Sound Daemon (esound or esd). In addition to the features esound provides, PulseAudio has an extensible plugin architecture, support for more than one sink per source, better low-latency behavior, the ability to be embedded into other software, a completely asynchronous C API, a simple command line interface for reconfiguring the daemon while running, flexible and implicit sample type conversion and resampling, and a "Zero-Copy" architecture." -PKG_IS_ADDON="no" - -if [ "$AVAHI_DAEMON" = yes ]; then - PKG_DEPENDS="$PKG_DEPENDS avahi" - PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS avahi" -fi diff --git a/packages/audio/pulseaudio/patches/0001-dbus-remove-filter-functions-only-if-they-were-actua.diff b/packages/audio/pulseaudio/patches/0001-dbus-remove-filter-functions-only-if-they-were-actua.diff deleted file mode 100644 index 4f91d62284..0000000000 --- a/packages/audio/pulseaudio/patches/0001-dbus-remove-filter-functions-only-if-they-were-actua.diff +++ /dev/null @@ -1,289 +0,0 @@ -From c41ee00893b6b0d5cc48ee041b8e4835eac548f0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 8 Jan 2010 20:06:21 +0100 -Subject: [PATCH 01/62] dbus: remove filter functions only if they were actually set before - -This fixes an assert when destructing modules that have not been fully -initialized. - -https://bugzilla.redhat.com/show_bug.cgi?id=548525 ---- - src/modules/bluetooth/bluetooth-util.c | 5 +++- - src/modules/bluetooth/module-bluetooth-device.c | 7 ++++- - src/modules/bluetooth/module-bluetooth-proximity.c | 11 ++++---- - src/modules/module-console-kit.c | 9 +++++- - src/modules/module-hal-detect.c | 10 ++++---- - src/pulse/context.c | 25 ++++--------------- - src/pulse/internal.h | 1 + - 7 files changed, 34 insertions(+), 34 deletions(-) - -diff --git a/src/modules/bluetooth/bluetooth-util.c b/src/modules/bluetooth/bluetooth-util.c -index 47d6200..795d510 100644 ---- a/src/modules/bluetooth/bluetooth-util.c -+++ b/src/modules/bluetooth/bluetooth-util.c -@@ -37,6 +37,7 @@ struct pa_bluetooth_discovery { - PA_LLIST_HEAD(pa_dbus_pending, pending); - pa_hashmap *devices; - pa_hook hook; -+ pa_bool_t filter_added; - }; - - static void get_properties_reply(DBusPendingCall *pending, void *userdata); -@@ -788,6 +789,7 @@ pa_bluetooth_discovery* pa_bluetooth_discovery_get(pa_core *c) { - pa_log_error("Failed to add filter function"); - goto fail; - } -+ y->filter_added = TRUE; - - if (pa_dbus_add_matches( - pa_dbus_connection_get(y->connection), &err, -@@ -856,7 +858,8 @@ void pa_bluetooth_discovery_unref(pa_bluetooth_discovery *y) { - "type='signal',sender='org.bluez',interface='org.bluez.AudioSink',member='PropertyChanged'", - "type='signal',sender='org.bluez',interface='org.bluez.AudioSource',member='PropertyChanged'", NULL); - -- dbus_connection_remove_filter(pa_dbus_connection_get(y->connection), filter_cb, y); -+ if (y->filter_added) -+ dbus_connection_remove_filter(pa_dbus_connection_get(y->connection), filter_cb, y); - - pa_dbus_connection_unref(y->connection); - } -diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c -index 0ba1421..19676df 100644 ---- a/src/modules/bluetooth/module-bluetooth-device.c -+++ b/src/modules/bluetooth/module-bluetooth-device.c -@@ -179,6 +179,8 @@ struct userdata { - - int stream_write_type; - int service_write_type, service_read_type; -+ -+ pa_bool_t filter_added; - }; - - #define FIXED_LATENCY_PLAYBACK_A2DP (25*PA_USEC_PER_MSEC) -@@ -2405,6 +2407,7 @@ int pa__init(pa_module* m) { - pa_log_error("Failed to add filter function"); - goto fail; - } -+ u->filter_added = TRUE; - - speaker = pa_sprintf_malloc("type='signal',sender='org.bluez',interface='org.bluez.Headset',member='SpeakerGainChanged',path='%s'", u->path); - mike = pa_sprintf_malloc("type='signal',sender='org.bluez',interface='org.bluez.Headset',member='MicrophoneGainChanged',path='%s'", u->path); -@@ -2494,7 +2497,9 @@ void pa__done(pa_module *m) { - pa_xfree(mike); - } - -- dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u); -+ if (u->filter_added) -+ dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u); -+ - pa_dbus_connection_unref(u->connection); - } - -diff --git a/src/modules/bluetooth/module-bluetooth-proximity.c b/src/modules/bluetooth/module-bluetooth-proximity.c -index c4cfd73..3eed9ce 100644 ---- a/src/modules/bluetooth/module-bluetooth-proximity.c -+++ b/src/modules/bluetooth/module-bluetooth-proximity.c -@@ -92,7 +92,8 @@ struct userdata { - unsigned n_found; - unsigned n_unknown; - -- pa_bool_t muted; -+ pa_bool_t muted:1; -+ pa_bool_t filter_added:1; - }; - - static void update_volume(struct userdata *u) { -@@ -358,9 +359,10 @@ static int add_matches(struct userdata *u, pa_bool_t add) { - } else - dbus_bus_remove_match(pa_dbus_connection_get(u->dbus_connection), filter2, &e); - -- if (add) -+ if (add) { - pa_assert_se(dbus_connection_add_filter(pa_dbus_connection_get(u->dbus_connection), filter_func, u, NULL)); -- else -+ u->filter_added = TRUE; -+ } else if (u->filter_added) - dbus_connection_remove_filter(pa_dbus_connection_get(u->dbus_connection), filter_func, u); - - r = 0; -@@ -393,9 +395,6 @@ int pa__init(pa_module*m) { - u->sink_name = pa_xstrdup(pa_modargs_get_value(ma, "sink", NULL)); - u->hci = pa_xstrdup(pa_modargs_get_value(ma, "hci", DEFAULT_HCI)); - u->hci_path = pa_sprintf_malloc("/org/bluez/%s", u->hci); -- u->n_found = u->n_unknown = 0; -- u->muted = FALSE; -- - u->bondings = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); - - if (!(u->dbus_connection = pa_dbus_bus_get(m->core, DBUS_BUS_SYSTEM, &e))) { -diff --git a/src/modules/module-console-kit.c b/src/modules/module-console-kit.c -index 103f5c4..875852f 100644 ---- a/src/modules/module-console-kit.c -+++ b/src/modules/module-console-kit.c -@@ -67,6 +67,7 @@ struct userdata { - pa_core *core; - pa_dbus_connection *connection; - pa_hashmap *sessions; -+ pa_bool_t filter_added; - }; - - static void add_session(struct userdata *u, const char *id) { -@@ -300,7 +301,7 @@ int pa__init(pa_module*m) { - goto fail; - } - -- m->userdata = u = pa_xnew(struct userdata, 1); -+ m->userdata = u = pa_xnew0(struct userdata, 1); - u->core = m->core; - u->module = m; - u->connection = connection; -@@ -311,6 +312,8 @@ int pa__init(pa_module*m) { - goto fail; - } - -+ u->filter_added = TRUE; -+ - if (pa_dbus_add_matches( - pa_dbus_connection_get(connection), &error, - "type='signal',sender='org.freedesktop.ConsoleKit',interface='org.freedesktop.ConsoleKit.Seat',member='SessionAdded'", -@@ -359,7 +362,9 @@ void pa__done(pa_module *m) { - "type='signal',sender='org.freedesktop.ConsoleKit',interface='org.freedesktop.ConsoleKit.Seat',member='SessionAdded'", - "type='signal',sender='org.freedesktop.ConsoleKit',interface='org.freedesktop.ConsoleKit.Seat',member='SessionRemoved'", NULL); - -- dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u); -+ if (u->filter_added) -+ dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u); -+ - pa_dbus_connection_unref(u->connection); - } - -diff --git a/src/modules/module-hal-detect.c b/src/modules/module-hal-detect.c -index 1851913..23d4010 100644 ---- a/src/modules/module-hal-detect.c -+++ b/src/modules/module-hal-detect.c -@@ -87,6 +87,7 @@ struct userdata { - #ifdef HAVE_OSS_OUTPUT - pa_bool_t init_subdevs; - #endif -+ pa_bool_t filter_added:1; - }; - - #define CAPABILITY_ALSA "alsa" -@@ -733,12 +734,9 @@ int pa__init(pa_module*m) { - goto fail; - } - -- m->userdata = u = pa_xnew(struct userdata, 1); -+ m->userdata = u = pa_xnew0(struct userdata, 1); - u->core = m->core; -- u->context = NULL; -- u->connection = NULL; - u->devices = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func); -- u->capability = NULL; - - #ifdef HAVE_ALSA - u->use_tsched = TRUE; -@@ -800,6 +798,7 @@ int pa__init(pa_module*m) { - pa_log_error("Failed to add filter function"); - goto fail; - } -+ u->filter_added = TRUE; - - if (pa_dbus_add_matches( - pa_dbus_connection_get(u->connection), &error, -@@ -856,7 +855,8 @@ void pa__done(pa_module *m) { - "type='signal',sender='org.freedesktop.Hal',interface='org.freedesktop.Hal.Device.AccessControl',member='ACLRemoved'", - "type='signal',interface='org.pulseaudio.Server',member='DirtyGiveUpMessage'", NULL); - -- dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u); -+ if (u->filter_added) -+ dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u); - pa_dbus_connection_unref(u->connection); - } - -diff --git a/src/pulse/context.c b/src/pulse/context.c -index 7468d0a..c83230d 100644 ---- a/src/pulse/context.c -+++ b/src/pulse/context.c -@@ -145,7 +145,7 @@ pa_context *pa_context_new_with_proplist(pa_mainloop_api *mainloop, const char * - - pa_init_i18n(); - -- c = pa_xnew(pa_context, 1); -+ c = pa_xnew0(pa_context, 1); - PA_REFCNT_INIT(c); - - c->proplist = p ? pa_proplist_copy(p) : pa_proplist_new(); -@@ -157,9 +157,6 @@ pa_context *pa_context_new_with_proplist(pa_mainloop_api *mainloop, const char * - c->system_bus = c->session_bus = NULL; - #endif - c->mainloop = mainloop; -- c->client = NULL; -- c->pstream = NULL; -- c->pdispatch = NULL; - c->playback_streams = pa_dynarray_new(); - c->record_streams = pa_dynarray_new(); - c->client_index = PA_INVALID_INDEX; -@@ -170,22 +167,9 @@ pa_context *pa_context_new_with_proplist(pa_mainloop_api *mainloop, const char * - - c->error = PA_OK; - c->state = PA_CONTEXT_UNCONNECTED; -- c->ctag = 0; -- c->csyncid = 0; - - reset_callbacks(c); - -- c->is_local = FALSE; -- c->server_list = NULL; -- c->server = NULL; -- -- c->do_shm = FALSE; -- -- c->server_specified = FALSE; -- c->no_fail = FALSE; -- c->do_autospawn = FALSE; -- memset(&c->spawn_api, 0, sizeof(c->spawn_api)); -- - #ifndef MSG_NOSIGNAL - #ifdef SIGPIPE - pa_check_signal_is_blocked(SIGPIPE); -@@ -255,12 +239,14 @@ static void context_free(pa_context *c) { - - #ifdef HAVE_DBUS - if (c->system_bus) { -- dbus_connection_remove_filter(pa_dbus_wrap_connection_get(c->system_bus), filter_cb, c); -+ if (c->filter_added) -+ dbus_connection_remove_filter(pa_dbus_wrap_connection_get(c->system_bus), filter_cb, c); - pa_dbus_wrap_connection_free(c->system_bus); - } - - if (c->session_bus) { -- dbus_connection_remove_filter(pa_dbus_wrap_connection_get(c->session_bus), filter_cb, c); -+ if (c->filter_added) -+ dbus_connection_remove_filter(pa_dbus_wrap_connection_get(c->session_bus), filter_cb, c); - pa_dbus_wrap_connection_free(c->session_bus); - } - #endif -@@ -794,6 +780,7 @@ static void track_pulseaudio_on_dbus(pa_context *c, DBusBusType type, pa_dbus_wr - pa_log_warn("Failed to add filter function"); - goto fail; - } -+ c->filter_added = TRUE; - - if (pa_dbus_add_matches( - pa_dbus_wrap_connection_get(*conn), &error, -diff --git a/src/pulse/internal.h b/src/pulse/internal.h -index b371bfc..c3ebf74 100644 ---- a/src/pulse/internal.h -+++ b/src/pulse/internal.h -@@ -91,6 +91,7 @@ struct pa_context { - pa_bool_t no_fail:1; - pa_bool_t do_autospawn:1; - pa_bool_t use_rtclock:1; -+ pa_bool_t filter_added:1; - pa_spawn_api spawn_api; - - pa_strlist *server_list; --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0002-native-fix-request-counter-miscalculations.diff b/packages/audio/pulseaudio/patches/0002-native-fix-request-counter-miscalculations.diff deleted file mode 100644 index 52425678a9..0000000000 --- a/packages/audio/pulseaudio/patches/0002-native-fix-request-counter-miscalculations.diff +++ /dev/null @@ -1,275 +0,0 @@ -From 8d356659e69556fa25d0579a66084f820683e2b8 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 8 Jan 2010 20:07:34 +0100 -Subject: [PATCH 02/62] native: fix request counter miscalculations - -Do not subtract bytes the client sends us beyond what we requested from -our missing bytes counter. - -This was mostly a thinko that caused servers asking for too little data -when the client initially sent more data than requested, because that -data sent too much was accounted for twice. - -This commit fixes this miscalculation. - -http://bugzilla.redhat.com/show_bug.cgi?id=534130 ---- - src/pulse/stream.c | 4 ++ - src/pulsecore/memblockq.c | 101 ++++++++++++++++++--------------------- - src/pulsecore/protocol-native.c | 7 ++- - 3 files changed, 55 insertions(+), 57 deletions(-) - -diff --git a/src/pulse/stream.c b/src/pulse/stream.c -index d01985b..793277a 100644 ---- a/src/pulse/stream.c -+++ b/src/pulse/stream.c -@@ -741,6 +741,8 @@ void pa_command_request(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tag - - s->requested_bytes += bytes; - -+ /* pa_log("got request for %lli, now at %lli", (long long) bytes, (long long) s->requested_bytes); */ -+ - if (s->requested_bytes > 0 && s->write_callback) - s->write_callback(s, (size_t) s->requested_bytes, s->write_userdata); - -@@ -1354,6 +1356,8 @@ int pa_stream_write( - * that's OK, the server side applies the same error */ - s->requested_bytes -= (seek == PA_SEEK_RELATIVE ? offset : 0) + (int64_t) length; - -+ /* pa_log("wrote %lli, now at %lli", (long long) length, (long long) s->requested_bytes); */ -+ - if (s->direction == PA_STREAM_PLAYBACK) { - - /* Update latency request correction */ -diff --git a/src/pulsecore/memblockq.c b/src/pulsecore/memblockq.c -index 32758be..4641801 100644 ---- a/src/pulsecore/memblockq.c -+++ b/src/pulsecore/memblockq.c -@@ -55,8 +55,7 @@ struct pa_memblockq { - pa_bool_t in_prebuf; - pa_memchunk silence; - pa_mcalign *mcalign; -- int64_t missing; -- size_t requested; -+ int64_t missing, requested; - }; - - pa_memblockq* pa_memblockq_new( -@@ -84,8 +83,8 @@ pa_memblockq* pa_memblockq_new( - pa_log_debug("memblockq requested: maxlength=%lu, tlength=%lu, base=%lu, prebuf=%lu, minreq=%lu maxrewind=%lu", - (unsigned long) maxlength, (unsigned long) tlength, (unsigned long) base, (unsigned long) prebuf, (unsigned long) minreq, (unsigned long) maxrewind); - -- bq->missing = 0; -- bq->requested = bq->maxlength = bq->tlength = bq->prebuf = bq->minreq = bq->maxrewind = 0; -+ bq->missing = bq->requested = 0; -+ bq->maxlength = bq->tlength = bq->prebuf = bq->minreq = bq->maxrewind = 0; - bq->in_prebuf = TRUE; - - pa_memblockq_set_maxlength(bq, maxlength); -@@ -246,10 +245,34 @@ static pa_bool_t can_push(pa_memblockq *bq, size_t l) { - return TRUE; - } - -+static void write_index_changed(pa_memblockq *bq, int64_t old_write_index, pa_bool_t account) { -+ int64_t delta; -+ -+ pa_assert(bq); -+ -+ delta = bq->write_index - old_write_index; -+ -+ if (account) -+ bq->requested -= delta; -+ -+ /* pa_log("pushed/seeked %lli: requested counter at %lli, account=%i", (long long) delta, (long long) bq->requested, account); */ -+} -+ -+static void read_index_changed(pa_memblockq *bq, int64_t old_read_index) { -+ int64_t delta; -+ -+ pa_assert(bq); -+ -+ delta = bq->read_index - old_read_index; -+ bq->missing += delta; -+ -+ /* pa_log("popped %lli: missing counter at %lli", (long long) delta, (long long) bq->missing); */ -+} -+ - int pa_memblockq_push(pa_memblockq* bq, const pa_memchunk *uchunk) { - struct list_item *q, *n; - pa_memchunk chunk; -- int64_t old, delta; -+ int64_t old; - - pa_assert(bq); - pa_assert(uchunk); -@@ -409,18 +432,7 @@ int pa_memblockq_push(pa_memblockq* bq, const pa_memchunk *uchunk) { - - finish: - -- delta = bq->write_index - old; -- -- if (delta >= (int64_t) bq->requested) { -- delta -= (int64_t) bq->requested; -- bq->requested = 0; -- } else { -- bq->requested -= (size_t) delta; -- delta = 0; -- } -- -- bq->missing -= delta; -- -+ write_index_changed(bq, old, TRUE); - return 0; - } - -@@ -514,7 +526,7 @@ int pa_memblockq_peek(pa_memblockq* bq, pa_memchunk *chunk) { - } - - void pa_memblockq_drop(pa_memblockq *bq, size_t length) { -- int64_t old, delta; -+ int64_t old; - pa_assert(bq); - pa_assert(length % bq->base == 0); - -@@ -553,19 +565,21 @@ void pa_memblockq_drop(pa_memblockq *bq, size_t length) { - } - - drop_backlog(bq); -- -- delta = bq->read_index - old; -- bq->missing += delta; -+ read_index_changed(bq, old); - } - - void pa_memblockq_rewind(pa_memblockq *bq, size_t length) { -+ int64_t old; - pa_assert(bq); - pa_assert(length % bq->base == 0); - -+ old = bq->read_index; -+ - /* This is kind of the inverse of pa_memblockq_drop() */ - - bq->read_index -= (int64_t) length; -- bq->missing -= (int64_t) length; -+ -+ read_index_changed(bq, old); - } - - pa_bool_t pa_memblockq_is_readable(pa_memblockq *bq) { -@@ -602,7 +616,7 @@ size_t pa_memblockq_missing(pa_memblockq *bq) { - } - - void pa_memblockq_seek(pa_memblockq *bq, int64_t offset, pa_seek_mode_t seek, pa_bool_t account) { -- int64_t old, delta; -+ int64_t old; - pa_assert(bq); - - old = bq->write_index; -@@ -625,24 +639,11 @@ void pa_memblockq_seek(pa_memblockq *bq, int64_t offset, pa_seek_mode_t seek, pa - } - - drop_backlog(bq); -- -- delta = bq->write_index - old; -- -- if (account) { -- if (delta >= (int64_t) bq->requested) { -- delta -= (int64_t) bq->requested; -- bq->requested = 0; -- } else if (delta >= 0) { -- bq->requested -= (size_t) delta; -- delta = 0; -- } -- } -- -- bq->missing -= delta; -+ write_index_changed(bq, old, account); - } - - void pa_memblockq_flush_write(pa_memblockq *bq) { -- int64_t old, delta; -+ int64_t old; - pa_assert(bq); - - pa_memblockq_silence(bq); -@@ -651,22 +652,11 @@ void pa_memblockq_flush_write(pa_memblockq *bq) { - bq->write_index = bq->read_index; - - pa_memblockq_prebuf_force(bq); -- -- delta = bq->write_index - old; -- -- if (delta >= (int64_t) bq->requested) { -- delta -= (int64_t) bq->requested; -- bq->requested = 0; -- } else if (delta >= 0) { -- bq->requested -= (size_t) delta; -- delta = 0; -- } -- -- bq->missing -= delta; -+ write_index_changed(bq, old, TRUE); - } - - void pa_memblockq_flush_read(pa_memblockq *bq) { -- int64_t old, delta; -+ int64_t old; - pa_assert(bq); - - pa_memblockq_silence(bq); -@@ -675,9 +665,7 @@ void pa_memblockq_flush_read(pa_memblockq *bq) { - bq->read_index = bq->write_index; - - pa_memblockq_prebuf_force(bq); -- -- delta = bq->read_index - old; -- bq->missing += delta; -+ read_index_changed(bq, old); - } - - size_t pa_memblockq_get_tlength(pa_memblockq *bq) { -@@ -774,8 +762,11 @@ size_t pa_memblockq_pop_missing(pa_memblockq *bq) { - return 0; - - l = (size_t) bq->missing; -+ -+ bq->requested += bq->missing; - bq->missing = 0; -- bq->requested += l; -+ -+ /* pa_log("sent %lli: request counter is at %lli", (long long) l, (long long) bq->requested); */ - - return l; - } -diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c -index 6e35762..b7b3f59 100644 ---- a/src/pulsecore/protocol-native.c -+++ b/src/pulsecore/protocol-native.c -@@ -1113,6 +1113,8 @@ static playback_stream* playback_stream_new( - - *missing = (uint32_t) pa_memblockq_pop_missing(s->memblockq); - -+ /* pa_log("missing original: %li", (long int) *missing); */ -+ - *ss = s->sink_input->sample_spec; - *map = s->sink_input->channel_map; - -@@ -1137,11 +1139,12 @@ static void playback_stream_request_bytes(playback_stream *s) { - - m = pa_memblockq_pop_missing(s->memblockq); - -- /* pa_log("request_bytes(%lu) (tlength=%lu minreq=%lu length=%lu)", */ -+ /* pa_log("request_bytes(%lu) (tlength=%lu minreq=%lu length=%lu really missing=%lli)", */ - /* (unsigned long) m, */ - /* pa_memblockq_get_tlength(s->memblockq), */ - /* pa_memblockq_get_minreq(s->memblockq), */ -- /* pa_memblockq_get_length(s->memblockq)); */ -+ /* pa_memblockq_get_length(s->memblockq), */ -+ /* (long long) pa_memblockq_get_tlength(s->memblockq) - (long long) pa_memblockq_get_length(s->memblockq)); */ - - if (m <= 0) - return; --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0003-core-make-sure-we-always-return-a-valid-memblock-in-.diff b/packages/audio/pulseaudio/patches/0003-core-make-sure-we-always-return-a-valid-memblock-in-.diff deleted file mode 100644 index 5d02e8caf4..0000000000 --- a/packages/audio/pulseaudio/patches/0003-core-make-sure-we-always-return-a-valid-memblock-in-.diff +++ /dev/null @@ -1,161 +0,0 @@ -From 3eed219a50c943251b41814e779cc37daf47e8f4 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 8 Jan 2010 21:51:30 +0100 -Subject: [PATCH 03/62] core: make sure we always return a valid memblock in sink_input_pop() callbacks - -https://bugzilla.redhat.com/show_bug.cgi?id=553607 ---- - src/modules/module-combine.c | 2 +- - src/modules/module-ladspa-sink.c | 6 +++++- - src/pulsecore/play-memchunk.c | 6 +++++- - src/pulsecore/protocol-esound.c | 5 ++++- - src/pulsecore/protocol-simple.c | 6 +++++- - src/pulsecore/sound-file-stream.c | 5 ++++- - 6 files changed, 24 insertions(+), 6 deletions(-) - -diff --git a/src/modules/module-combine.c b/src/modules/module-combine.c -index a186c89..62e6267 100644 ---- a/src/modules/module-combine.c -+++ b/src/modules/module-combine.c -@@ -890,7 +890,7 @@ static struct output *output_new(struct userdata *u, pa_sink *sink) { - 1, - 0, - 0, -- NULL); -+ &u->sink->silence); - - pa_assert_se(pa_idxset_put(u->outputs, o, NULL) == 0); - update_description(u); -diff --git a/src/modules/module-ladspa-sink.c b/src/modules/module-ladspa-sink.c -index 994c778..185871b 100644 ---- a/src/modules/module-ladspa-sink.c -+++ b/src/modules/module-ladspa-sink.c -@@ -476,6 +476,7 @@ int pa__init(pa_module*m) { - unsigned long input_port, output_port, p, j, n_control; - unsigned c; - pa_bool_t *use_default = NULL; -+ pa_memchunk silence; - - pa_assert(m); - -@@ -514,7 +515,10 @@ int pa__init(pa_module*m) { - u = pa_xnew0(struct userdata, 1); - u->module = m; - m->userdata = u; -- u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, NULL); -+ -+ pa_silence_memchunk_get(&m->core->silence_cache, m->core->mempool, &silence, &ss, 0); -+ u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, &silence); -+ pa_memblock_unref(silence.memblock); - - if (!(e = getenv("LADSPA_PATH"))) - e = LADSPA_PATH; -diff --git a/src/pulsecore/play-memchunk.c b/src/pulsecore/play-memchunk.c -index f127d7a..1a3bd5b 100644 ---- a/src/pulsecore/play-memchunk.c -+++ b/src/pulsecore/play-memchunk.c -@@ -47,12 +47,16 @@ int pa_play_memchunk( - - pa_memblockq *q; - int r; -+ pa_memchunk silence; - - pa_assert(sink); - pa_assert(ss); - pa_assert(chunk); - -- q = pa_memblockq_new(0, chunk->length, 0, pa_frame_size(ss), 1, 1, 0, NULL); -+ pa_silence_memchunk_get(&sink->core->silence_cache, sink->core->mempool, &silence, ss, 0); -+ q = pa_memblockq_new(0, chunk->length, 0, pa_frame_size(ss), 1, 1, 0, &silence); -+ pa_memblock_unref(silence.memblock); -+ - pa_assert_se(pa_memblockq_push(q, chunk) >= 0); - - if ((r = pa_play_memblockq(sink, ss, map, q, volume, p, sink_input_index)) < 0) { -diff --git a/src/pulsecore/protocol-esound.c b/src/pulsecore/protocol-esound.c -index 2326eb3..a89f327 100644 ---- a/src/pulsecore/protocol-esound.c -+++ b/src/pulsecore/protocol-esound.c -@@ -389,6 +389,7 @@ static int esd_proto_stream_play(connection *c, esd_proto_t request, const void - size_t l; - pa_sink *sink = NULL; - pa_sink_input_new_data sdata; -+ pa_memchunk silence; - - connection_assert_ref(c); - pa_assert(data); -@@ -435,6 +436,7 @@ static int esd_proto_stream_play(connection *c, esd_proto_t request, const void - CHECK_VALIDITY(c->sink_input, "Failed to create sink input."); - - l = (size_t) ((double) pa_bytes_per_second(&ss)*PLAYBACK_BUFFER_SECONDS); -+ pa_sink_input_get_silence(c->sink_input, &silence); - c->input_memblockq = pa_memblockq_new( - 0, - l, -@@ -443,7 +445,8 @@ static int esd_proto_stream_play(connection *c, esd_proto_t request, const void - (size_t) -1, - l/PLAYBACK_BUFFER_FRAGMENTS, - 0, -- NULL); -+ &silence); -+ pa_memblock_unref(silence.memblock); - pa_iochannel_socket_set_rcvbuf(c->io, l); - - c->sink_input->parent.process_msg = sink_input_process_msg; -diff --git a/src/pulsecore/protocol-simple.c b/src/pulsecore/protocol-simple.c -index a9f7389..fb2e564 100644 ---- a/src/pulsecore/protocol-simple.c -+++ b/src/pulsecore/protocol-simple.c -@@ -525,6 +525,7 @@ void pa_simple_protocol_connect(pa_simple_protocol *p, pa_iochannel *io, pa_simp - - if (o->playback) { - pa_sink_input_new_data data; -+ pa_memchunk silence; - size_t l; - pa_sink *sink; - -@@ -559,6 +560,7 @@ void pa_simple_protocol_connect(pa_simple_protocol *p, pa_iochannel *io, pa_simp - pa_sink_input_set_requested_latency(c->sink_input, DEFAULT_SINK_LATENCY); - - l = (size_t) ((double) pa_bytes_per_second(&o->sample_spec)*PLAYBACK_BUFFER_SECONDS); -+ pa_sink_input_get_silence(c->sink_input, &silence); - c->input_memblockq = pa_memblockq_new( - 0, - l, -@@ -567,7 +569,9 @@ void pa_simple_protocol_connect(pa_simple_protocol *p, pa_iochannel *io, pa_simp - (size_t) -1, - l/PLAYBACK_BUFFER_FRAGMENTS, - 0, -- NULL); -+ &silence); -+ pa_memblock_unref(silence.memblock); -+ - pa_iochannel_socket_set_rcvbuf(io, l); - - pa_atomic_store(&c->playback.missing, (int) pa_memblockq_missing(c->input_memblockq)); -diff --git a/src/pulsecore/sound-file-stream.c b/src/pulsecore/sound-file-stream.c -index 16de492..2025c2a 100644 ---- a/src/pulsecore/sound-file-stream.c -+++ b/src/pulsecore/sound-file-stream.c -@@ -239,6 +239,7 @@ int pa_play_file( - pa_sink_input_new_data data; - int fd; - SF_INFO sfi; -+ pa_memchunk silence; - - pa_assert(sink); - pa_assert(fname); -@@ -324,7 +325,9 @@ int pa_play_file( - u->sink_input->state_change = sink_input_state_change_cb; - u->sink_input->userdata = u; - -- u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, NULL); -+ pa_sink_input_get_silence(u->sink_input, &silence); -+ u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, &silence); -+ pa_memblock_unref(silence.memblock); - - pa_sink_input_put(u->sink_input); - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0004-bluetooth-destruct-stream-only-if-it-is-not-already-.diff b/packages/audio/pulseaudio/patches/0004-bluetooth-destruct-stream-only-if-it-is-not-already-.diff deleted file mode 100644 index 4d28682a6d..0000000000 --- a/packages/audio/pulseaudio/patches/0004-bluetooth-destruct-stream-only-if-it-is-not-already-.diff +++ /dev/null @@ -1,56 +0,0 @@ -From 11688eca4b2beb7aa1adcd4aa9a3ee933f7385fb Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 8 Jan 2010 22:18:15 +0100 -Subject: [PATCH 04/62] bluetooth: destruct stream only if it is not already destructed - -https://bugzilla.redhat.com/show_bug.cgi?id=551842 ---- - src/modules/bluetooth/module-bluetooth-device.c | 28 ++++++++++++---------- - 1 files changed, 15 insertions(+), 13 deletions(-) - -diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c -index 19676df..2bbae41 100644 ---- a/src/modules/bluetooth/module-bluetooth-device.c -+++ b/src/modules/bluetooth/module-bluetooth-device.c -@@ -823,23 +823,25 @@ static int stop_stream_fd(struct userdata *u) { - - pa_assert(u); - pa_assert(u->rtpoll); -- pa_assert(u->rtpoll_item); -- pa_assert(u->stream_fd >= 0); - -- pa_rtpoll_item_free(u->rtpoll_item); -- u->rtpoll_item = NULL; -+ if (u->rtpoll_item) { -+ pa_rtpoll_item_free(u->rtpoll_item); -+ u->rtpoll_item = NULL; -+ } - -- memset(msg.buf, 0, BT_SUGGESTED_BUFFER_SIZE); -- msg.start_req.h.type = BT_REQUEST; -- msg.start_req.h.name = BT_STOP_STREAM; -- msg.start_req.h.length = sizeof(msg.start_req); -+ if (u->stream_fd >= 0) { -+ memset(msg.buf, 0, BT_SUGGESTED_BUFFER_SIZE); -+ msg.start_req.h.type = BT_REQUEST; -+ msg.start_req.h.name = BT_STOP_STREAM; -+ msg.start_req.h.length = sizeof(msg.start_req); - -- if (service_send(u, &msg.start_req.h) < 0 || -- service_expect(u, &msg.rsp, sizeof(msg), BT_STOP_STREAM, sizeof(msg.start_rsp)) < 0) -- r = -1; -+ if (service_send(u, &msg.start_req.h) < 0 || -+ service_expect(u, &msg.rsp, sizeof(msg), BT_STOP_STREAM, sizeof(msg.start_rsp)) < 0) -+ r = -1; - -- pa_close(u->stream_fd); -- u->stream_fd = -1; -+ pa_close(u->stream_fd); -+ u->stream_fd = -1; -+ } - - if (u->read_smoother) { - pa_smoother_free(u->read_smoother); --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0005-bluetooth-don-t-hit-an-assert-if-latency-is-queried-.diff b/packages/audio/pulseaudio/patches/0005-bluetooth-don-t-hit-an-assert-if-latency-is-queried-.diff deleted file mode 100644 index fbb3ef940b..0000000000 --- a/packages/audio/pulseaudio/patches/0005-bluetooth-don-t-hit-an-assert-if-latency-is-queried-.diff +++ /dev/null @@ -1,35 +0,0 @@ -From e7d9f891e2a8e6b670098b80315ca1f0010c35ca Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 8 Jan 2010 23:44:42 +0100 -Subject: [PATCH 05/62] bluetooth: don't hit an assert if latency is queried for a stooped recording stream - -https://bugzilla.redhat.com/show_bug.cgi?id=537422 ---- - src/modules/bluetooth/module-bluetooth-device.c | 10 +++++++--- - 1 files changed, 7 insertions(+), 3 deletions(-) - -diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c -index 2bbae41..d6868b8 100644 ---- a/src/modules/bluetooth/module-bluetooth-device.c -+++ b/src/modules/bluetooth/module-bluetooth-device.c -@@ -972,10 +972,14 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off - case PA_SOURCE_MESSAGE_GET_LATENCY: { - pa_usec_t wi, ri; - -- wi = pa_smoother_get(u->read_smoother, pa_rtclock_now()); -- ri = pa_bytes_to_usec(u->read_index, &u->sample_spec); -+ if (u->read_smoother) { -+ wi = pa_smoother_get(u->read_smoother, pa_rtclock_now()); -+ ri = pa_bytes_to_usec(u->read_index, &u->sample_spec); -+ -+ *((pa_usec_t*) data) = (wi > ri ? wi - ri : 0) + u->source->thread_info.fixed_latency; -+ } else -+ *((pa_usec_t*) data) = 0; - -- *((pa_usec_t*) data) = (wi > ri ? wi - ri : 0) + u->source->thread_info.fixed_latency; - return 0; - } - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0006-client-detect-forking-in-sample-cache-API-too.diff b/packages/audio/pulseaudio/patches/0006-client-detect-forking-in-sample-cache-API-too.diff deleted file mode 100644 index 8466fd26b9..0000000000 --- a/packages/audio/pulseaudio/patches/0006-client-detect-forking-in-sample-cache-API-too.diff +++ /dev/null @@ -1,87 +0,0 @@ -From bf50dc42306857e361267d2ad39b737ad05b8604 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 12 Jan 2010 03:01:14 +0100 -Subject: [PATCH 06/62] client: detect forking in sample cache API, too - ---- - src/pulse/scache.c | 9 +++++++-- - src/pulse/stream.c | 1 + - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/src/pulse/scache.c b/src/pulse/scache.c -index 27da688..2a7602f 100644 ---- a/src/pulse/scache.c -+++ b/src/pulse/scache.c -@@ -28,15 +28,15 @@ - #include - - #include -+#include - - #include - #include - #include - -+#include "fork-detect.h" - #include "internal.h" - --#include "scache.h" -- - int pa_stream_connect_upload(pa_stream *s, size_t length) { - pa_tagstruct *t; - uint32_t tag; -@@ -45,6 +45,7 @@ int pa_stream_connect_upload(pa_stream *s, size_t length) { - pa_assert(s); - pa_assert(PA_REFCNT_VALUE(s) >= 1); - -+ PA_CHECK_VALIDITY(s->context, !pa_detect_fork(), PA_ERR_FORKED); - PA_CHECK_VALIDITY(s->context, s->state == PA_STREAM_UNCONNECTED, PA_ERR_BADSTATE); - PA_CHECK_VALIDITY(s->context, length > 0, PA_ERR_INVALID); - PA_CHECK_VALIDITY(s->context, length == (size_t) (uint32_t) length, PA_ERR_INVALID); -@@ -85,6 +86,7 @@ int pa_stream_finish_upload(pa_stream *s) { - pa_assert(s); - pa_assert(PA_REFCNT_VALUE(s) >= 1); - -+ PA_CHECK_VALIDITY(s->context, !pa_detect_fork(), PA_ERR_FORKED); - PA_CHECK_VALIDITY(s->context, s->channel_valid, PA_ERR_BADSTATE); - PA_CHECK_VALIDITY(s->context, s->context->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); - -@@ -174,6 +176,7 @@ pa_operation *pa_context_play_sample(pa_context *c, const char *name, const char - pa_assert(c); - pa_assert(PA_REFCNT_VALUE(c) >= 1); - -+ PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED); - PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); - PA_CHECK_VALIDITY_RETURN_NULL(c, name && *name, PA_ERR_INVALID); - PA_CHECK_VALIDITY_RETURN_NULL(c, !dev || *dev, PA_ERR_INVALID); -@@ -213,6 +216,7 @@ pa_operation *pa_context_play_sample_with_proplist(pa_context *c, const char *na - pa_assert(c); - pa_assert(PA_REFCNT_VALUE(c) >= 1); - -+ PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED); - PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); - PA_CHECK_VALIDITY_RETURN_NULL(c, name && *name, PA_ERR_INVALID); - PA_CHECK_VALIDITY_RETURN_NULL(c, !dev || *dev, PA_ERR_INVALID); -@@ -255,6 +259,7 @@ pa_operation* pa_context_remove_sample(pa_context *c, const char *name, pa_conte - pa_assert(c); - pa_assert(PA_REFCNT_VALUE(c) >= 1); - -+ PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED); - PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); - PA_CHECK_VALIDITY_RETURN_NULL(c, name && *name, PA_ERR_INVALID); - -diff --git a/src/pulse/stream.c b/src/pulse/stream.c -index 793277a..79b2868 100644 ---- a/src/pulse/stream.c -+++ b/src/pulse/stream.c -@@ -29,6 +29,7 @@ - #include - - #include -+#include - #include - #include - #include --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0007-client-verify-connection-state-in-pa_stream_connect_.diff b/packages/audio/pulseaudio/patches/0007-client-verify-connection-state-in-pa_stream_connect_.diff deleted file mode 100644 index b9cd10d907..0000000000 --- a/packages/audio/pulseaudio/patches/0007-client-verify-connection-state-in-pa_stream_connect_.diff +++ /dev/null @@ -1,28 +0,0 @@ -From 78811c5653d0ba508b6558ba4578b61da26c60cf Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 12 Jan 2010 03:01:27 +0100 -Subject: [PATCH 07/62] client: verify connection state in pa_stream_connect_upload() - -Make suer we check the connection state before going on, so that we can -rely that s->context->pstream is properly initialized. - -https://bugzilla.redhat.com/show_bug.cgi?id=539500 ---- - src/pulse/scache.c | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -diff --git a/src/pulse/scache.c b/src/pulse/scache.c -index 2a7602f..b2169b6 100644 ---- a/src/pulse/scache.c -+++ b/src/pulse/scache.c -@@ -49,6 +49,7 @@ int pa_stream_connect_upload(pa_stream *s, size_t length) { - PA_CHECK_VALIDITY(s->context, s->state == PA_STREAM_UNCONNECTED, PA_ERR_BADSTATE); - PA_CHECK_VALIDITY(s->context, length > 0, PA_ERR_INVALID); - PA_CHECK_VALIDITY(s->context, length == (size_t) (uint32_t) length, PA_ERR_INVALID); -+ PA_CHECK_VALIDITY(s->context, s->context->state == PA_CONTEXT_READY, PA_ERR_BADSTATE); - - if (!(name = pa_proplist_gets(s->proplist, PA_PROP_EVENT_ID))) - name = pa_proplist_gets(s->proplist, PA_PROP_MEDIA_NAME); --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0008-udev-don-t-forget-to-unref-devices-we-are-not-intere.diff b/packages/audio/pulseaudio/patches/0008-udev-don-t-forget-to-unref-devices-we-are-not-intere.diff deleted file mode 100644 index 30cfa271fc..0000000000 --- a/packages/audio/pulseaudio/patches/0008-udev-don-t-forget-to-unref-devices-we-are-not-intere.diff +++ /dev/null @@ -1,29 +0,0 @@ -From 15a3018bda8ee92393671ceaf272be418e95a81f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 12 Jan 2010 23:01:24 +0100 -Subject: [PATCH 08/62] udev: don't forget to unref devices we are not interested in - -https://bugzilla.redhat.com/show_bug.cgi?id=552932 ---- - src/modules/module-udev-detect.c | 4 +++- - 1 files changed, 3 insertions(+), 1 deletions(-) - -diff --git a/src/modules/module-udev-detect.c b/src/modules/module-udev-detect.c -index 1b1e9c1..7508d9a 100644 ---- a/src/modules/module-udev-detect.c -+++ b/src/modules/module-udev-detect.c -@@ -416,8 +416,10 @@ static void monitor_cb( - goto fail; - } - -- if (!path_get_card_id(udev_device_get_devpath(dev))) -+ if (!path_get_card_id(udev_device_get_devpath(dev))) { -+ udev_device_unref(dev); - return; -+ } - - process_device(u, dev); - udev_device_unref(dev); --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0009-once-make-once-related-variables-volatile.diff b/packages/audio/pulseaudio/patches/0009-once-make-once-related-variables-volatile.diff deleted file mode 100644 index e07ac4f6ac..0000000000 --- a/packages/audio/pulseaudio/patches/0009-once-make-once-related-variables-volatile.diff +++ /dev/null @@ -1,91 +0,0 @@ -From 73ae1fce001253677b7ab633f42d3c3300fe5cf5 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 12 Jan 2010 23:03:04 +0100 -Subject: [PATCH 09/62] once: make once related variables volatile - ---- - src/pulsecore/flist.h | 2 +- - src/pulsecore/once.c | 3 +-- - src/pulsecore/thread-posix.c | 8 ++------ - src/pulsecore/thread.h | 2 +- - 4 files changed, 5 insertions(+), 10 deletions(-) - -diff --git a/src/pulsecore/flist.h b/src/pulsecore/flist.h -index e147486..184e599 100644 ---- a/src/pulsecore/flist.h -+++ b/src/pulsecore/flist.h -@@ -45,7 +45,7 @@ void* pa_flist_pop(pa_flist*l); - - #define PA_STATIC_FLIST_DECLARE(name, size, free_cb) \ - static struct { \ -- pa_flist *flist; \ -+ pa_flist *volatile flist; \ - pa_once once; \ - } name##_flist = { NULL, PA_ONCE_INIT }; \ - static void name##_flist_init(void) { \ -diff --git a/src/pulsecore/once.c b/src/pulsecore/once.c -index 05a3ad2..4e509e0 100644 ---- a/src/pulsecore/once.c -+++ b/src/pulsecore/once.c -@@ -29,8 +29,6 @@ - #include "once.h" - - pa_bool_t pa_once_begin(pa_once *control) { -- pa_mutex *m; -- - pa_assert(control); - - if (pa_atomic_load(&control->done)) -@@ -43,6 +41,7 @@ pa_bool_t pa_once_begin(pa_once *control) { - * executed by us. Hence the awkward locking. */ - - for (;;) { -+ pa_mutex *m; - - if ((m = pa_atomic_ptr_load(&control->mutex))) { - -diff --git a/src/pulsecore/thread-posix.c b/src/pulsecore/thread-posix.c -index fdab270..bc0d6e3 100644 ---- a/src/pulsecore/thread-posix.c -+++ b/src/pulsecore/thread-posix.c -@@ -80,11 +80,9 @@ pa_thread* pa_thread_new(pa_thread_func_t thread_func, void *userdata) { - - pa_assert(thread_func); - -- t = pa_xnew(pa_thread, 1); -+ t = pa_xnew0(pa_thread, 1); - t->thread_func = thread_func; - t->userdata = userdata; -- t->joined = FALSE; -- pa_atomic_store(&t->running, 0); - - if (pthread_create(&t->id, NULL, internal_thread_func, t) < 0) { - pa_xfree(t); -@@ -135,10 +133,8 @@ pa_thread* pa_thread_self(void) { - /* This is a foreign thread, let's create a pthread structure to - * make sure that we can always return a sensible pointer */ - -- t = pa_xnew(pa_thread, 1); -+ t = pa_xnew0(pa_thread, 1); - t->id = pthread_self(); -- t->thread_func = NULL; -- t->userdata = NULL; - t->joined = TRUE; - pa_atomic_store(&t->running, 2); - -diff --git a/src/pulsecore/thread.h b/src/pulsecore/thread.h -index 25eace6..60c1267 100644 ---- a/src/pulsecore/thread.h -+++ b/src/pulsecore/thread.h -@@ -55,7 +55,7 @@ void *pa_tls_set(pa_tls *t, void *userdata); - #define PA_STATIC_TLS_DECLARE(name, free_cb) \ - static struct { \ - pa_once once; \ -- pa_tls *tls; \ -+ pa_tls *volatile tls; \ - } name##_tls = { \ - .once = PA_ONCE_INIT, \ - .tls = NULL \ --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0010-bluetooth-fix-invalid-memory-access.diff b/packages/audio/pulseaudio/patches/0010-bluetooth-fix-invalid-memory-access.diff deleted file mode 100644 index 8baf40c224..0000000000 --- a/packages/audio/pulseaudio/patches/0010-bluetooth-fix-invalid-memory-access.diff +++ /dev/null @@ -1,36 +0,0 @@ -From 4bcb1a909f936a63628273e7d35726bc64785eeb Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 13 Jan 2010 17:24:37 +0100 -Subject: [PATCH 10/62] bluetooth: fix invalid memory access - -When an GetProperties() reply arrives after we already deleted the -device structure for it make sure we don't accidentaly touch the -invalidated object. - -https://bugzilla.redhat.com/show_bug.cgi?id=543205 ---- - src/modules/bluetooth/bluetooth-util.c | 8 +++++++- - 1 files changed, 7 insertions(+), 1 deletions(-) - -diff --git a/src/modules/bluetooth/bluetooth-util.c b/src/modules/bluetooth/bluetooth-util.c -index 795d510..b2c0429 100644 ---- a/src/modules/bluetooth/bluetooth-util.c -+++ b/src/modules/bluetooth/bluetooth-util.c -@@ -342,7 +342,13 @@ static void get_properties_reply(DBusPendingCall *pending, void *userdata) { - /* dbus_message_get_interface(p->message), */ - /* dbus_message_get_path(p->message)); */ - -- d = p->call_data; -+ /* We don't use p->call_data here right-away since the device -+ * might already be invalidated at this point */ -+ -+ if (!(d = pa_hashmap_get(y->devices, dbus_message_get_path(p->message)))) -+ return; -+ -+ pa_assert(p->call_data == d); - - valid = dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR ? -1 : 1; - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0011-log-add-an-easy-way-to-disable-log-rate-limiting.diff b/packages/audio/pulseaudio/patches/0011-log-add-an-easy-way-to-disable-log-rate-limiting.diff deleted file mode 100644 index bdefce0ba8..0000000000 --- a/packages/audio/pulseaudio/patches/0011-log-add-an-easy-way-to-disable-log-rate-limiting.diff +++ /dev/null @@ -1,154 +0,0 @@ -From 21b484e056be445fdaf00f91ce50bc40b1ac9623 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 13 Jan 2010 17:35:04 +0100 -Subject: [PATCH 11/62] log: add an easy way to disable log rate limiting - -Should help with debuggin bugs like: - -https://bugzilla.redhat.com/show_bug.cgi?id=554405 ---- - src/pulsecore/log.c | 88 +++++++++++++++++++++++++++++---------------------- - 1 files changed, 50 insertions(+), 38 deletions(-) - -diff --git a/src/pulsecore/log.c b/src/pulsecore/log.c -index 8c21ee6..0c5a317 100644 ---- a/src/pulsecore/log.c -+++ b/src/pulsecore/log.c -@@ -61,6 +61,7 @@ - #define ENV_LOG_PRINT_LEVEL "PULSE_LOG_LEVEL" - #define ENV_LOG_BACKTRACE "PULSE_LOG_BACKTRACE" - #define ENV_LOG_BACKTRACE_SKIP "PULSE_LOG_BACKTRACE_SKIP" -+#define ENV_LOG_NO_RATELIMIT "PULSE_LOG_NO_RATE_LIMIT" - - static char *ident = NULL; /* in local charset format */ - static pa_log_target_t target = PA_LOG_STDERR, target_override; -@@ -68,6 +69,7 @@ static pa_bool_t target_override_set = FALSE; - static pa_log_level_t maximum_level = PA_LOG_ERROR, maximum_level_override = PA_LOG_ERROR; - static unsigned show_backtrace = 0, show_backtrace_override = 0, skip_backtrace = 0; - static pa_log_flags_t flags = 0, flags_override = 0; -+static pa_bool_t no_rate_limit = FALSE; - - #ifdef HAVE_SYSLOG_H - static const int level_to_syslog[] = { -@@ -195,54 +197,61 @@ static char* get_backtrace(unsigned show_nframes) { - #endif - - static void init_defaults(void) { -- const char *e; -+ PA_ONCE_BEGIN { - -- if (!ident) { -- char binary[256]; -- if (pa_get_binary_name(binary, sizeof(binary))) -- pa_log_set_ident(binary); -- } -+ const char *e; - -- if (getenv(ENV_LOG_SYSLOG)) { -- target_override = PA_LOG_SYSLOG; -- target_override_set = TRUE; -- } -+ if (!ident) { -+ char binary[256]; -+ if (pa_get_binary_name(binary, sizeof(binary))) -+ pa_log_set_ident(binary); -+ } - -- if ((e = getenv(ENV_LOG_LEVEL))) { -- maximum_level_override = (pa_log_level_t) atoi(e); -+ if (getenv(ENV_LOG_SYSLOG)) { -+ target_override = PA_LOG_SYSLOG; -+ target_override_set = TRUE; -+ } - -- if (maximum_level_override >= PA_LOG_LEVEL_MAX) -- maximum_level_override = PA_LOG_LEVEL_MAX-1; -- } -+ if ((e = getenv(ENV_LOG_LEVEL))) { -+ maximum_level_override = (pa_log_level_t) atoi(e); - -- if (getenv(ENV_LOG_COLORS)) -- flags_override |= PA_LOG_COLORS; -+ if (maximum_level_override >= PA_LOG_LEVEL_MAX) -+ maximum_level_override = PA_LOG_LEVEL_MAX-1; -+ } - -- if (getenv(ENV_LOG_PRINT_TIME)) -- flags_override |= PA_LOG_PRINT_TIME; -+ if (getenv(ENV_LOG_COLORS)) -+ flags_override |= PA_LOG_COLORS; - -- if (getenv(ENV_LOG_PRINT_FILE)) -- flags_override |= PA_LOG_PRINT_FILE; -+ if (getenv(ENV_LOG_PRINT_TIME)) -+ flags_override |= PA_LOG_PRINT_TIME; - -- if (getenv(ENV_LOG_PRINT_META)) -- flags_override |= PA_LOG_PRINT_META; -+ if (getenv(ENV_LOG_PRINT_FILE)) -+ flags_override |= PA_LOG_PRINT_FILE; - -- if (getenv(ENV_LOG_PRINT_LEVEL)) -- flags_override |= PA_LOG_PRINT_LEVEL; -+ if (getenv(ENV_LOG_PRINT_META)) -+ flags_override |= PA_LOG_PRINT_META; - -- if ((e = getenv(ENV_LOG_BACKTRACE))) { -- show_backtrace_override = (unsigned) atoi(e); -+ if (getenv(ENV_LOG_PRINT_LEVEL)) -+ flags_override |= PA_LOG_PRINT_LEVEL; - -- if (show_backtrace_override <= 0) -- show_backtrace_override = 0; -- } -+ if ((e = getenv(ENV_LOG_BACKTRACE))) { -+ show_backtrace_override = (unsigned) atoi(e); - -- if ((e = getenv(ENV_LOG_BACKTRACE_SKIP))) { -- skip_backtrace = (unsigned) atoi(e); -+ if (show_backtrace_override <= 0) -+ show_backtrace_override = 0; -+ } - -- if (skip_backtrace <= 0) -- skip_backtrace = 0; -- } -+ if ((e = getenv(ENV_LOG_BACKTRACE_SKIP))) { -+ skip_backtrace = (unsigned) atoi(e); -+ -+ if (skip_backtrace <= 0) -+ skip_backtrace = 0; -+ } -+ -+ if (getenv(ENV_LOG_NO_RATELIMIT)) -+ no_rate_limit = TRUE; -+ -+ } PA_ONCE_END; - } - - void pa_log_levelv_meta( -@@ -268,9 +277,7 @@ void pa_log_levelv_meta( - pa_assert(level < PA_LOG_LEVEL_MAX); - pa_assert(format); - -- PA_ONCE_BEGIN { -- init_defaults(); -- } PA_ONCE_END; -+ init_defaults(); - - _target = target_override_set ? target_override : target; - _maximum_level = PA_MAX(maximum_level, maximum_level_override); -@@ -428,5 +435,10 @@ pa_bool_t pa_log_ratelimit(void) { - /* Not more than 10 messages every 5s */ - static PA_DEFINE_RATELIMIT(ratelimit, 5 * PA_USEC_PER_SEC, 10); - -+ init_defaults(); -+ -+ if (no_rate_limit) -+ return TRUE; -+ - return pa_ratelimit_test(&ratelimit); - } --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0012-udev-make-sure-we-get-events-only-for-sound-devices.diff b/packages/audio/pulseaudio/patches/0012-udev-make-sure-we-get-events-only-for-sound-devices.diff deleted file mode 100644 index 37a21bd7b1..0000000000 --- a/packages/audio/pulseaudio/patches/0012-udev-make-sure-we-get-events-only-for-sound-devices.diff +++ /dev/null @@ -1,28 +0,0 @@ -From 9b37dce4223aaf7a5f48b04b52c89b46ad97cf73 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 13 Jan 2010 19:41:44 +0100 -Subject: [PATCH 12/62] udev: make sure we get events only for sound devices - ---- - src/modules/module-udev-detect.c | 5 +++++ - 1 files changed, 5 insertions(+), 0 deletions(-) - -diff --git a/src/modules/module-udev-detect.c b/src/modules/module-udev-detect.c -index 7508d9a..58635a5 100644 ---- a/src/modules/module-udev-detect.c -+++ b/src/modules/module-udev-detect.c -@@ -639,6 +639,11 @@ int pa__init(pa_module *m) { - goto fail; - } - -+ if (udev_monitor_filter_add_match_subsystem_devtype(u->monitor, "sound", NULL) < 0) { -+ pa_log("Failed to subscribe to sound devices."); -+ goto fail; -+ } -+ - errno = 0; - if (udev_monitor_enable_receiving(u->monitor) < 0) { - pa_log("Failed to enable monitor: %s", pa_cstrerror(errno)); --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0013-alsa-ignore-volume-changes-from-the-hw-if-we-are-not.diff b/packages/audio/pulseaudio/patches/0013-alsa-ignore-volume-changes-from-the-hw-if-we-are-not.diff deleted file mode 100644 index 3b2c71c412..0000000000 --- a/packages/audio/pulseaudio/patches/0013-alsa-ignore-volume-changes-from-the-hw-if-we-are-not.diff +++ /dev/null @@ -1,41 +0,0 @@ -From 540ec7b961256d6c7702448ca995f61268064190 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 13 Jan 2010 20:30:36 +0100 -Subject: [PATCH 13/62] alsa: ignore volume changes from the hw if we are not on the active console - ---- - src/modules/alsa/alsa-sink.c | 3 +++ - src/modules/alsa/alsa-source.c | 3 +++ - 2 files changed, 6 insertions(+), 0 deletions(-) - -diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c -index ed16c83..690480f 100644 ---- a/src/modules/alsa/alsa-sink.c -+++ b/src/modules/alsa/alsa-sink.c -@@ -1103,6 +1103,9 @@ static int mixer_callback(snd_mixer_elem_t *elem, unsigned int mask) { - if (mask == SND_CTL_EVENT_MASK_REMOVE) - return 0; - -+ if (u->sink->suspend_cause & PA_SUSPEND_SESSION) -+ return 0; -+ - if (mask & SND_CTL_EVENT_MASK_VALUE) { - pa_sink_get_volume(u->sink, TRUE); - pa_sink_get_mute(u->sink, TRUE); -diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c -index 157698e..f8b583e 100644 ---- a/src/modules/alsa/alsa-source.c -+++ b/src/modules/alsa/alsa-source.c -@@ -1051,6 +1051,9 @@ static int mixer_callback(snd_mixer_elem_t *elem, unsigned int mask) { - if (mask == SND_CTL_EVENT_MASK_REMOVE) - return 0; - -+ if (u->source->suspend_cause & PA_SUSPEND_SESSION) -+ return 0; -+ - if (mask & SND_CTL_EVENT_MASK_VALUE) { - pa_source_get_volume(u->source, TRUE); - pa_source_get_mute(u->source, TRUE); --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0014-cpu-check-for-CMOV-flag-before-using-this-intsructio.diff b/packages/audio/pulseaudio/patches/0014-cpu-check-for-CMOV-flag-before-using-this-intsructio.diff deleted file mode 100644 index 2ea4fa8cfd..0000000000 --- a/packages/audio/pulseaudio/patches/0014-cpu-check-for-CMOV-flag-before-using-this-intsructio.diff +++ /dev/null @@ -1,80 +0,0 @@ -From 170812755e0ac235ed2b7182ef637eb317d8b2b2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 13 Jan 2010 20:31:17 +0100 -Subject: [PATCH 14/62] cpu: check for CMOV flag before using this intsruction in assembly - -http://pulseaudio.org/ticket/776 ---- - src/pulsecore/cpu-x86.c | 6 +++++- - src/pulsecore/cpu-x86.h | 6 +++--- - src/pulsecore/svolume_mmx.c | 2 +- - 3 files changed, 9 insertions(+), 5 deletions(-) - -diff --git a/src/pulsecore/cpu-x86.c b/src/pulsecore/cpu-x86.c -index f194a60..b173072 100644 ---- a/src/pulsecore/cpu-x86.c -+++ b/src/pulsecore/cpu-x86.c -@@ -57,6 +57,9 @@ void pa_cpu_init_x86 (void) { - if (level >= 1) { - get_cpuid (0x00000001, &eax, &ebx, &ecx, &edx); - -+ if (edx & (1<<15)) -+ flags |= PA_CPU_X86_CMOV; -+ - if (edx & (1<<23)) - flags |= PA_CPU_X86_MMX; - -@@ -97,7 +100,8 @@ void pa_cpu_init_x86 (void) { - flags |= PA_CPU_X86_3DNOW; - } - -- pa_log_info ("CPU flags: %s%s%s%s%s%s%s%s%s%s", -+ pa_log_info ("CPU flags: %s%s%s%s%s%s%s%s%s%s%s", -+ (flags & PA_CPU_X86_CMOV) ? "CMOV " : "", - (flags & PA_CPU_X86_MMX) ? "MMX " : "", - (flags & PA_CPU_X86_SSE) ? "SSE " : "", - (flags & PA_CPU_X86_SSE2) ? "SSE2 " : "", -diff --git a/src/pulsecore/cpu-x86.h b/src/pulsecore/cpu-x86.h -index b40eb5c..285c203 100644 ---- a/src/pulsecore/cpu-x86.h -+++ b/src/pulsecore/cpu-x86.h -@@ -5,7 +5,7 @@ - This file is part of PulseAudio. - - Copyright 2004-2006 Lennart Poettering -- Copyright 2009 Wim Taymans -+ Copyright 2009 Wim Taymans - - PulseAudio is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published -@@ -35,12 +35,12 @@ typedef enum pa_cpu_x86_flag { - PA_CPU_X86_SSE4_1 = (1 << 6), - PA_CPU_X86_SSE4_2 = (1 << 7), - PA_CPU_X86_3DNOW = (1 << 8), -- PA_CPU_X86_3DNOWEXT = (1 << 9) -+ PA_CPU_X86_3DNOWEXT = (1 << 9), -+ PA_CPU_X86_CMOV = (1 << 10) - } pa_cpu_x86_flag_t; - - void pa_cpu_init_x86 (void); - -- - #if defined (__i386__) - typedef int32_t pa_reg_x86; - #define PA_REG_a "eax" -diff --git a/src/pulsecore/svolume_mmx.c b/src/pulsecore/svolume_mmx.c -index 46923ed..e50ebee 100644 ---- a/src/pulsecore/svolume_mmx.c -+++ b/src/pulsecore/svolume_mmx.c -@@ -305,7 +305,7 @@ void pa_volume_func_init_mmx (pa_cpu_x86_flag_t flags) { - run_test (); - #endif - -- if (flags & PA_CPU_X86_MMX) { -+ if ((flags & PA_CPU_X86_MMX) && (flags & PA_CPU_X86_CMOV)) { - pa_log_info("Initialising MMX optimized functions."); - - pa_set_volume_func (PA_SAMPLE_S16NE, (pa_do_volume_func_t) pa_volume_s16ne_mmx); --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0015-alsa-cover-Input-Source-Int-Mic.diff b/packages/audio/pulseaudio/patches/0015-alsa-cover-Input-Source-Int-Mic.diff deleted file mode 100644 index 2526026e35..0000000000 --- a/packages/audio/pulseaudio/patches/0015-alsa-cover-Input-Source-Int-Mic.diff +++ /dev/null @@ -1,29 +0,0 @@ -From 67c6535222508bd84a122860023a8dc7fd44cd35 Mon Sep 17 00:00:00 2001 -From: Colin Guthrie -Date: Wed, 13 Jan 2010 23:44:00 +0000 -Subject: [PATCH 15/62] alsa: cover Input Source:Int Mic - -As seen on some HDA chips (e.g. Fujitsu Siemens S6410) -Refs http://pulseaudio.org/ticket/772 ---- - .../alsa/mixer/paths/analog-input.conf.common | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/src/modules/alsa/mixer/paths/analog-input.conf.common b/src/modules/alsa/mixer/paths/analog-input.conf.common -index 951e11f..fbdc8fb 100644 ---- a/src/modules/alsa/mixer/paths/analog-input.conf.common -+++ b/src/modules/alsa/mixer/paths/analog-input.conf.common -@@ -78,6 +78,10 @@ priority = 19 - name = input-microphone - priority = 19 - -+[Option Input Source:Int Mic] -+name = input-microphone -+priority = 19 -+ - [Option Input Source:Internal Mic] - name = input-microphone - priority = 19 --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0016-alsa-Cover-the-Int-Mic-Boost-element.diff b/packages/audio/pulseaudio/patches/0016-alsa-Cover-the-Int-Mic-Boost-element.diff deleted file mode 100644 index 89d269c3b4..0000000000 --- a/packages/audio/pulseaudio/patches/0016-alsa-Cover-the-Int-Mic-Boost-element.diff +++ /dev/null @@ -1,36 +0,0 @@ -From 291cd096015d540d5064bfae94a66adc3bc3fc64 Mon Sep 17 00:00:00 2001 -From: Colin Guthrie -Date: Wed, 13 Jan 2010 23:47:21 +0000 -Subject: [PATCH 16/62] alsa: Cover the 'Int Mic Boost' element. - -This is not 100% ideal as we have not way to tie specific boosts to specific -inputs and this particular chipset (as noted in #772) appears to -support just that. - -For the time being incorporate it into the normal boost logic. - -See http://pulseaudio.org/ticket/772 ---- - .../alsa/mixer/paths/analog-input-mic.conf.common | 9 +++++++++ - 1 files changed, 9 insertions(+), 0 deletions(-) - -diff --git a/src/modules/alsa/mixer/paths/analog-input-mic.conf.common b/src/modules/alsa/mixer/paths/analog-input-mic.conf.common -index b35e7af..4663305 100644 ---- a/src/modules/alsa/mixer/paths/analog-input-mic.conf.common -+++ b/src/modules/alsa/mixer/paths/analog-input-mic.conf.common -@@ -61,3 +61,12 @@ name = input-boost-on - - [Option Front Mic Boost:off] - name = input-boost-off -+ -+[Element Int Mic Boost] -+switch = select -+ -+[Option Int Mic Boost:on] -+name = input-boost-on -+ -+[Option Int Mic Boost:off] -+name = input-boost-off --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0017-udev-handle-sound-cards-with-both-modem-and-audio-pr.diff b/packages/audio/pulseaudio/patches/0017-udev-handle-sound-cards-with-both-modem-and-audio-pr.diff deleted file mode 100644 index 1ed41c5057..0000000000 --- a/packages/audio/pulseaudio/patches/0017-udev-handle-sound-cards-with-both-modem-and-audio-pr.diff +++ /dev/null @@ -1,117 +0,0 @@ -From 63c968bf775ec7e172b89e45ddc4981d79587bc5 Mon Sep 17 00:00:00 2001 -From: Daniel T. Chen -Date: Thu, 14 Jan 2010 00:57:27 +0100 -Subject: [PATCH 17/62] udev: handle sound cards with both modem and audio properly - -http://pulseaudio.org/ticket/681 -https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/394500 ---- - src/modules/module-udev-detect.c | 59 ++++++++++++++++++++++++++++++++++++-- - 1 files changed, 56 insertions(+), 3 deletions(-) - -diff --git a/src/modules/module-udev-detect.c b/src/modules/module-udev-detect.c -index 58635a5..1fe9fdc 100644 ---- a/src/modules/module-udev-detect.c -+++ b/src/modules/module-udev-detect.c -@@ -103,13 +103,17 @@ static const char *path_get_card_id(const char *path) { - return e + 5; - } - -+static const char *pa_udev_get_sysattr(const char *card_idx, const char *name); -+ - static pa_bool_t is_card_busy(const char *id) { -- char *card_path = NULL, *pcm_path = NULL, *sub_status = NULL; -+ const char *pcm_class; -+ char *card_path = NULL, *pcm_path = NULL, *sub_status = NULL, -+ *sysfs_path = NULL; - DIR *card_dir = NULL, *pcm_dir = NULL; - FILE *status_file = NULL; - size_t len; - struct dirent *space = NULL, *de; -- pa_bool_t busy = FALSE; -+ pa_bool_t busy = FALSE, is_modem = FALSE; - int r; - - pa_assert(id); -@@ -127,6 +131,17 @@ static pa_bool_t is_card_busy(const char *id) { - len = offsetof(struct dirent, d_name) + fpathconf(dirfd(card_dir), _PC_NAME_MAX) + 1; - space = pa_xmalloc(len); - -+ /* Also check /sys/class/sound/card.../pcmC...D6p/pcm_class. An HDA -+ * modem can be used simultaneously with generic playback/record. */ -+ -+ pa_xfree(sysfs_path); -+ sysfs_path = pa_sprintf_malloc("pcmC%sD6p/pcm_class", id); -+ -+ pcm_class = pa_udev_get_sysattr(id, sysfs_path); -+ -+ if (pcm_class && pa_streq(pcm_class, "modem")) -+ is_modem = TRUE; -+ - for (;;) { - de = NULL; - -@@ -182,7 +197,7 @@ static pa_bool_t is_card_busy(const char *id) { - continue; - } - -- if (!pa_streq(line, "closed\n")) { -+ if (!is_modem && !pa_streq(line, "closed\n")) { - busy = TRUE; - break; - } -@@ -193,6 +208,7 @@ fail: - - pa_xfree(card_path); - pa_xfree(pcm_path); -+ pa_xfree(sysfs_path); - pa_xfree(sub_status); - pa_xfree(space); - -@@ -594,6 +610,43 @@ static int setup_inotify(struct userdata *u) { - return 0; - } - -+static const char *pa_udev_get_sysattr(const char *card_idx, const char *name) { -+ struct udev *udev; -+ struct udev_device *card = NULL; -+ char *t, *r = NULL; -+ const char *v; -+ -+ pa_assert(card_idx); -+ pa_assert(name); -+ -+ if (!(udev = udev_new())) { -+ pa_log_error("Failed to allocate udev context."); -+ goto finish; -+ } -+ -+ t = pa_sprintf_malloc("%s/class/sound/card%s", udev_get_sys_path(udev), card_idx); -+ card = udev_device_new_from_syspath(udev, t); -+ pa_xfree(t); -+ -+ if (!card) { -+ pa_log_error("Failed to get card object."); -+ goto finish; -+ } -+ -+ if ((v = udev_device_get_sysattr_value(card, name)) && *v) -+ r = pa_xstrdup(v); -+ -+finish: -+ -+ if (card) -+ udev_device_unref(card); -+ -+ if (udev) -+ udev_unref(udev); -+ -+ return r; -+} -+ - int pa__init(pa_module *m) { - struct userdata *u = NULL; - pa_modargs *ma; --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0018-udev-rework-modem-detection-a-bit.diff b/packages/audio/pulseaudio/patches/0018-udev-rework-modem-detection-a-bit.diff deleted file mode 100644 index 8e45a4b1a4..0000000000 --- a/packages/audio/pulseaudio/patches/0018-udev-rework-modem-detection-a-bit.diff +++ /dev/null @@ -1,182 +0,0 @@ -From acb4996203f6723d92a9b0df4e60db83c65116fc Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 14 Jan 2010 02:06:52 +0100 -Subject: [PATCH 18/62] udev: rework modem detection a bit - -Check every single pcm device of a card whether it is a modem. ---- - src/modules/module-udev-detect.c | 117 ++++++++++++++++++++------------------ - 1 files changed, 62 insertions(+), 55 deletions(-) - -diff --git a/src/modules/module-udev-detect.c b/src/modules/module-udev-detect.c -index 1fe9fdc..b8568b2 100644 ---- a/src/modules/module-udev-detect.c -+++ b/src/modules/module-udev-detect.c -@@ -103,17 +103,70 @@ static const char *path_get_card_id(const char *path) { - return e + 5; - } - --static const char *pa_udev_get_sysattr(const char *card_idx, const char *name); -+static char *card_get_sysattr(const char *card_idx, const char *name) { -+ struct udev *udev; -+ struct udev_device *card = NULL; -+ char *t, *r = NULL; -+ const char *v; -+ -+ pa_assert(card_idx); -+ pa_assert(name); -+ -+ if (!(udev = udev_new())) { -+ pa_log_error("Failed to allocate udev context."); -+ goto finish; -+ } -+ -+ t = pa_sprintf_malloc("%s/class/sound/card%s", udev_get_sys_path(udev), card_idx); -+ card = udev_device_new_from_syspath(udev, t); -+ pa_xfree(t); -+ -+ if (!card) { -+ pa_log_error("Failed to get card object."); -+ goto finish; -+ } -+ -+ if ((v = udev_device_get_sysattr_value(card, name)) && *v) -+ r = pa_xstrdup(v); -+ -+finish: -+ -+ if (card) -+ udev_device_unref(card); -+ -+ if (udev) -+ udev_unref(udev); -+ -+ return r; -+} -+ -+static pa_bool_t pcm_is_modem(const char *card_idx, const char *pcm) { -+ char *sysfs_path, *pcm_class; -+ pa_bool_t is_modem; -+ -+ pa_assert(card_idx); -+ pa_assert(pcm); -+ -+ /* Check /sys/class/sound/card.../pcmC...../pcm_class. An HDA -+ * modem can be used simultaneously with generic -+ * playback/record. */ -+ -+ sysfs_path = pa_sprintf_malloc("pcmC%sD%s/pcm_class", card_idx, pcm); -+ pcm_class = card_get_sysattr(card_idx, sysfs_path); -+ is_modem = pcm_class && pa_streq(pcm_class, "modem"); -+ pa_xfree(pcm_class); -+ pa_xfree(sysfs_path); -+ -+ return is_modem; -+} - - static pa_bool_t is_card_busy(const char *id) { -- const char *pcm_class; -- char *card_path = NULL, *pcm_path = NULL, *sub_status = NULL, -- *sysfs_path = NULL; -+ char *card_path = NULL, *pcm_path = NULL, *sub_status = NULL; - DIR *card_dir = NULL, *pcm_dir = NULL; - FILE *status_file = NULL; - size_t len; - struct dirent *space = NULL, *de; -- pa_bool_t busy = FALSE, is_modem = FALSE; -+ pa_bool_t busy = FALSE; - int r; - - pa_assert(id); -@@ -131,17 +184,6 @@ static pa_bool_t is_card_busy(const char *id) { - len = offsetof(struct dirent, d_name) + fpathconf(dirfd(card_dir), _PC_NAME_MAX) + 1; - space = pa_xmalloc(len); - -- /* Also check /sys/class/sound/card.../pcmC...D6p/pcm_class. An HDA -- * modem can be used simultaneously with generic playback/record. */ -- -- pa_xfree(sysfs_path); -- sysfs_path = pa_sprintf_malloc("pcmC%sD6p/pcm_class", id); -- -- pcm_class = pa_udev_get_sysattr(id, sysfs_path); -- -- if (pcm_class && pa_streq(pcm_class, "modem")) -- is_modem = TRUE; -- - for (;;) { - de = NULL; - -@@ -156,6 +198,9 @@ static pa_bool_t is_card_busy(const char *id) { - if (!pa_startswith(de->d_name, "pcm")) - continue; - -+ if (pcm_is_modem(id, de->d_name + 3)) -+ continue; -+ - pa_xfree(pcm_path); - pcm_path = pa_sprintf_malloc("%s/%s", card_path, de->d_name); - -@@ -197,7 +242,7 @@ static pa_bool_t is_card_busy(const char *id) { - continue; - } - -- if (!is_modem && !pa_streq(line, "closed\n")) { -+ if (!pa_streq(line, "closed\n")) { - busy = TRUE; - break; - } -@@ -208,7 +253,6 @@ fail: - - pa_xfree(card_path); - pa_xfree(pcm_path); -- pa_xfree(sysfs_path); - pa_xfree(sub_status); - pa_xfree(space); - -@@ -610,43 +654,6 @@ static int setup_inotify(struct userdata *u) { - return 0; - } - --static const char *pa_udev_get_sysattr(const char *card_idx, const char *name) { -- struct udev *udev; -- struct udev_device *card = NULL; -- char *t, *r = NULL; -- const char *v; -- -- pa_assert(card_idx); -- pa_assert(name); -- -- if (!(udev = udev_new())) { -- pa_log_error("Failed to allocate udev context."); -- goto finish; -- } -- -- t = pa_sprintf_malloc("%s/class/sound/card%s", udev_get_sys_path(udev), card_idx); -- card = udev_device_new_from_syspath(udev, t); -- pa_xfree(t); -- -- if (!card) { -- pa_log_error("Failed to get card object."); -- goto finish; -- } -- -- if ((v = udev_device_get_sysattr_value(card, name)) && *v) -- r = pa_xstrdup(v); -- --finish: -- -- if (card) -- udev_device_unref(card); -- -- if (udev) -- udev_unref(udev); -- -- return r; --} -- - int pa__init(pa_module *m) { - struct userdata *u = NULL; - pa_modargs *ma; --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0019-daemon-first-take-name-on-the-bus-then-return-in-sta.diff b/packages/audio/pulseaudio/patches/0019-daemon-first-take-name-on-the-bus-then-return-in-sta.diff deleted file mode 100644 index 2315a30dc7..0000000000 --- a/packages/audio/pulseaudio/patches/0019-daemon-first-take-name-on-the-bus-then-return-in-sta.diff +++ /dev/null @@ -1,39 +0,0 @@ -From 93cb75d78ed82c40e525a8b30f1ead147ad35ead Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 14 Jan 2010 02:33:49 +0100 -Subject: [PATCH 19/62] daemon: first take name on the bus, then return in starter process - -http://pulseaudio.org/ticket/748 ---- - src/daemon/main.c | 8 ++++---- - 1 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/daemon/main.c b/src/daemon/main.c -index eafd72a..c7e202a 100644 ---- a/src/daemon/main.c -+++ b/src/daemon/main.c -@@ -952,6 +952,10 @@ int main(int argc, char *argv[]) { - goto finish; - } - -+#ifdef HAVE_DBUS -+ dbus = register_dbus(c); -+#endif -+ - #ifdef HAVE_FORK - if (daemon_pipe[1] >= 0) { - int ok = 0; -@@ -961,10 +965,6 @@ int main(int argc, char *argv[]) { - } - #endif - --#ifdef HAVE_DBUS -- dbus = register_dbus(c); --#endif -- - pa_log_info(_("Daemon startup complete.")); - - retval = 0; --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0020-alsa-cover-bass-boost-mixer-element.diff b/packages/audio/pulseaudio/patches/0020-alsa-cover-bass-boost-mixer-element.diff deleted file mode 100644 index 8ba6278976..0000000000 --- a/packages/audio/pulseaudio/patches/0020-alsa-cover-bass-boost-mixer-element.diff +++ /dev/null @@ -1,49 +0,0 @@ -From 48e0f6808bcc8e07622e4a45b3aabfc4679e9966 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 14 Jan 2010 02:53:50 +0100 -Subject: [PATCH 20/62] alsa: cover bass boost mixer element - -http://pulseaudio.org/ticket/740 ---- - src/modules/alsa/alsa-mixer.c | 2 ++ - .../alsa/mixer/paths/analog-output.conf.common | 11 +++++++++++ - 2 files changed, 13 insertions(+), 0 deletions(-) - -diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c -index 8b13239..8bbd1f5 100644 ---- a/src/modules/alsa/alsa-mixer.c -+++ b/src/modules/alsa/alsa-mixer.c -@@ -1713,6 +1713,8 @@ static int option_verify(pa_alsa_option *o) { - { "input-boost-off", N_("No Boost") }, - { "output-amplifier-on", N_("Amplifier") }, - { "output-amplifier-off", N_("No Amplifier") }, -+ { "output-bass-boost-on", N_("Bass Boost") }, -+ { "output-bass-boost-off", N_("No Bass Boost") }, - { "output-speaker", N_("Speaker") }, - { "output-headphones", N_("Headphones") } - }; -diff --git a/src/modules/alsa/mixer/paths/analog-output.conf.common b/src/modules/alsa/mixer/paths/analog-output.conf.common -index fd7f0cf..6131da5 100644 ---- a/src/modules/alsa/mixer/paths/analog-output.conf.common -+++ b/src/modules/alsa/mixer/paths/analog-output.conf.common -@@ -110,6 +110,17 @@ priority = 10 - name = output-amplifier-off - priority = 0 - -+[Element Bass Boost] -+switch = select -+ -+[Option Bass Boost:on] -+name = output-bass-boost-on -+priority = 0 -+ -+[Option Bass Boost:off] -+name = output-bass-boost-off -+priority = 10 -+ - ;;; 'Analog Output' - - [Element Analog Output] --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0021-Mark-shared-variables-as-volatile.diff b/packages/audio/pulseaudio/patches/0021-Mark-shared-variables-as-volatile.diff deleted file mode 100644 index cfce6b6957..0000000000 --- a/packages/audio/pulseaudio/patches/0021-Mark-shared-variables-as-volatile.diff +++ /dev/null @@ -1,55 +0,0 @@ -From 366e6d7e90d3bebc98a1af3cfb04b4cfc8cff6f5 Mon Sep 17 00:00:00 2001 -From: Arun Raghavan -Date: Sun, 6 Dec 2009 12:20:53 +0530 -Subject: [PATCH 21/62] Mark shared variables as volatile - -'n_waiting' and 'n_waiting_for_accept' may be accessed from mulitple -threads, and thus need to be marked as volatile to suppres certain -compiler optimisations. All uses are protected by a mutex, so we don't -need to worry about cache issues (added documentation for this as well). - -This addresses bug #738. ---- - src/pulse/thread-mainloop.c | 5 ++++- - 1 files changed, 4 insertions(+), 1 deletions(-) - -diff --git a/src/pulse/thread-mainloop.c b/src/pulse/thread-mainloop.c -index a2b98ce..14ed926 100644 ---- a/src/pulse/thread-mainloop.c -+++ b/src/pulse/thread-mainloop.c -@@ -51,7 +51,7 @@ - - struct pa_threaded_mainloop { - pa_mainloop *real_mainloop; -- int n_waiting, n_waiting_for_accept; -+ volatile int n_waiting, n_waiting_for_accept; - - pa_thread* thread; - pa_mutex* mutex; -@@ -185,6 +185,7 @@ void pa_threaded_mainloop_unlock(pa_threaded_mainloop *m) { - pa_mutex_unlock(m->mutex); - } - -+/* Called with the lock taken */ - void pa_threaded_mainloop_signal(pa_threaded_mainloop *m, int wait_for_accept) { - pa_assert(m); - -@@ -198,6 +199,7 @@ void pa_threaded_mainloop_signal(pa_threaded_mainloop *m, int wait_for_accept) { - } - } - -+/* Called with the lock taken */ - void pa_threaded_mainloop_wait(pa_threaded_mainloop *m) { - pa_assert(m); - -@@ -212,6 +214,7 @@ void pa_threaded_mainloop_wait(pa_threaded_mainloop *m) { - m->n_waiting --; - } - -+/* Called with the lock taken */ - void pa_threaded_mainloop_accept(pa_threaded_mainloop *m) { - pa_assert(m); - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0022-udev-use-ID_MODEL_ENC-instead-of-ID_MODEL-if-it-is-s.diff b/packages/audio/pulseaudio/patches/0022-udev-use-ID_MODEL_ENC-instead-of-ID_MODEL-if-it-is-s.diff deleted file mode 100644 index cd7a968785..0000000000 --- a/packages/audio/pulseaudio/patches/0022-udev-use-ID_MODEL_ENC-instead-of-ID_MODEL-if-it-is-s.diff +++ /dev/null @@ -1,153 +0,0 @@ -From e129f8577a405266a5b7d4a7ee75bd56dd43953e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 14 Jan 2010 20:31:00 +0100 -Subject: [PATCH 22/62] udev: use ID_MODEL_ENC instead of ID_MODEL if it is set - -That way we should be able to make use of the nicer USB strings the USB -hw provides. - -Fixes the issues pointed out in: - -https://tango.0pointer.de/pipermail/pulseaudio-discuss/2010-January/006248.html ---- - src/modules/udev-util.c | 110 +++++++++++++++++++++++++++++++++++++++++++++++ - 1 files changed, 110 insertions(+), 0 deletions(-) - -diff --git a/src/modules/udev-util.c b/src/modules/udev-util.c -index cc82446..eee5409 100644 ---- a/src/modules/udev-util.c -+++ b/src/modules/udev-util.c -@@ -58,6 +58,112 @@ static int read_id(struct udev_device *d, const char *n) { - return u; - } - -+static int dehex(char x) { -+ if (x >= '0' && x <= '9') -+ return x - '0'; -+ -+ if (x >= 'A' && x <= 'F') -+ return x - 'A'; -+ -+ if (x >= 'a' && x <= 'f') -+ return x - 'a'; -+ -+ return -1; -+} -+ -+static void proplist_sets_unescape(pa_proplist *p, const char *prop, const char *s) { -+ const char *f; -+ char *t, *r; -+ int c; -+ -+ enum { -+ TEXT, -+ BACKSLASH, -+ EX, -+ FIRST -+ } state = TEXT; -+ -+ /* The resulting string is definitely shorter than the source string */ -+ r = pa_xnew(char, strlen(s)+1); -+ -+ for (f = s, t = r; *f; f++) { -+ -+ switch (state) { -+ -+ case TEXT: -+ if (*f == '\\') -+ state = BACKSLASH; -+ else -+ *(t++) = *f; -+ break; -+ -+ case BACKSLASH: -+ if (*f == 'x') -+ state = EX; -+ else { -+ *(t++) = '\\'; -+ *(t++) = *f; -+ state = TEXT; -+ } -+ break; -+ -+ case EX: -+ c = dehex(*f); -+ -+ if (c < 0) { -+ *(t++) = '\\'; -+ *(t++) = 'x'; -+ *(t++) = *f; -+ state = TEXT; -+ } else -+ state = FIRST; -+ -+ break; -+ -+ case FIRST: { -+ int d = dehex(*f); -+ -+ if (d < 0) { -+ *(t++) = '\\'; -+ *(t++) = 'x'; -+ *(t++) = *(f-1); -+ *(t++) = *f; -+ } else -+ *(t++) = (char) (c << 4) | d; -+ -+ state = TEXT; -+ break; -+ } -+ } -+ } -+ -+ switch (state) { -+ -+ case TEXT: -+ break; -+ -+ case BACKSLASH: -+ *(t++) = '\\'; -+ break; -+ -+ case EX: -+ *(t++) = '\\'; -+ *(t++) = 'x'; -+ break; -+ -+ case FIRST: -+ *(t++) = '\\'; -+ *(t++) = 'x'; -+ *(t++) = *(f-1); -+ break; -+ } -+ -+ *t = 0; -+ -+ pa_proplist_sets(p, prop, r); -+ pa_xfree(r); -+} -+ - int pa_udev_get_info(int card_idx, pa_proplist *p) { - int r = -1; - struct udev *udev; -@@ -107,6 +213,8 @@ int pa_udev_get_info(int card_idx, pa_proplist *p) { - if (!pa_proplist_contains(p, PA_PROP_DEVICE_VENDOR_NAME)) { - if ((v = udev_device_get_property_value(card, "ID_VENDOR_FROM_DATABASE")) && *v) - pa_proplist_sets(p, PA_PROP_DEVICE_VENDOR_NAME, v); -+ else if ((v = udev_device_get_property_value(card, "ID_VENDOR_ENC")) && *v) -+ proplist_sets_unescape(p, PA_PROP_DEVICE_VENDOR_NAME, v); - else if ((v = udev_device_get_property_value(card, "ID_VENDOR")) && *v) - pa_proplist_sets(p, PA_PROP_DEVICE_VENDOR_NAME, v); - } -@@ -118,6 +226,8 @@ int pa_udev_get_info(int card_idx, pa_proplist *p) { - if (!pa_proplist_contains(p, PA_PROP_DEVICE_PRODUCT_NAME)) { - if ((v = udev_device_get_property_value(card, "ID_MODEL_FROM_DATABASE")) && *v) - pa_proplist_sets(p, PA_PROP_DEVICE_PRODUCT_NAME, v); -+ else if ((v = udev_device_get_property_value(card, "ID_MODEL_ENC")) && *v) -+ proplist_sets_unescape(p, PA_PROP_DEVICE_PRODUCT_NAME, v); - else if ((v = udev_device_get_property_value(card, "ID_MODEL")) && *v) - pa_proplist_sets(p, PA_PROP_DEVICE_PRODUCT_NAME, v); - } --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0023-pacat-allow-configuration-of-latency-in-msec.diff b/packages/audio/pulseaudio/patches/0023-pacat-allow-configuration-of-latency-in-msec.diff deleted file mode 100644 index 5cf591475d..0000000000 --- a/packages/audio/pulseaudio/patches/0023-pacat-allow-configuration-of-latency-in-msec.diff +++ /dev/null @@ -1,268 +0,0 @@ -From 27df02779a26e0356497a39bee04a28138ba52af Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 15 Jan 2010 01:25:21 +0100 -Subject: [PATCH 23/62] pacat: allow configuration of latency in msec - ---- - man/pacat.1.xml.in | 96 +++++++++++++++++++++++++++++++++++++++++++-------- - src/utils/pacat.c | 46 ++++++++++++++++++++----- - 2 files changed, 118 insertions(+), 24 deletions(-) - -diff --git a/man/pacat.1.xml.in b/man/pacat.1.xml.in -index 68a3a12..2e27450 100644 ---- a/man/pacat.1.xml.in -+++ b/man/pacat.1.xml.in -@@ -21,18 +21,22 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - USA. - --> - -- -+ - - -+ paplay [options] [FILE] -+ parecord [options] [FILE] - pacat [options] [FILE] - parec [options] [FILE] -- paplay --help -- paplay --version -+ pamon [options] [FILE] -+ pacat --help -+ pacat --version - - - -

pacat is a simple tool for playing back or -- capturing raw audio files on a PulseAudio sound server.

-+ capturing raw or encoded audio files on a PulseAudio sound -+ server.

-
- - -@@ -52,13 +56,13 @@ USA. - - - - - - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - - -
-@@ -178,7 +244,7 @@ USA. - -
-

-- , -+ , -

-
- -diff --git a/src/utils/pacat.c b/src/utils/pacat.c -index 5f29ba3..a5d2e9a 100644 ---- a/src/utils/pacat.c -+++ b/src/utils/pacat.c -@@ -45,6 +45,7 @@ - #include - #include - #include -+#include - - #define TIME_EVENT_USEC 50000 - -@@ -86,6 +87,7 @@ static sf_count_t (*writef_function)(SNDFILE *_sndfile, const void *ptr, sf_coun - static pa_stream_flags_t flags = 0; - - static size_t latency = 0, process_time = 0; -+static int32_t latency_msec = 0, process_time_msec = 0; - - static pa_bool_t raw = TRUE; - static int file_format = -1; -@@ -434,19 +436,25 @@ static void context_state_callback(pa_context *c, void *userdata) { - buffer_attr.maxlength = (uint32_t) -1; - buffer_attr.prebuf = (uint32_t) -1; - -- if (latency > 0) { -+ if (latency_msec > 0) { -+ buffer_attr.fragsize = buffer_attr.tlength = pa_usec_to_bytes(latency_msec * PA_USEC_PER_MSEC, &sample_spec); -+ flags |= PA_STREAM_ADJUST_LATENCY; -+ } else if (latency > 0) { - buffer_attr.fragsize = buffer_attr.tlength = (uint32_t) latency; -- buffer_attr.minreq = (uint32_t) process_time; - flags |= PA_STREAM_ADJUST_LATENCY; -- } else { -- buffer_attr.tlength = (uint32_t) -1; -+ } else -+ buffer_attr.fragsize = buffer_attr.tlength = (uint32_t) -1; -+ -+ if (process_time_msec > 0) { -+ buffer_attr.minreq = pa_usec_to_bytes(process_time_msec * PA_USEC_PER_MSEC, &sample_spec); -+ } else if (process_time > 0) -+ buffer_attr.minreq = (uint32_t) process_time; -+ else - buffer_attr.minreq = (uint32_t) -1; -- buffer_attr.fragsize = (uint32_t) -1; -- } - - if (mode == PLAYBACK) { - pa_cvolume cv; -- if (pa_stream_connect_playback(stream, device, latency > 0 ? &buffer_attr : NULL, flags, volume_is_set ? pa_cvolume_set(&cv, sample_spec.channels, volume) : NULL, NULL) < 0) { -+ if (pa_stream_connect_playback(stream, device, &buffer_attr, flags, volume_is_set ? pa_cvolume_set(&cv, sample_spec.channels, volume) : NULL, NULL) < 0) { - pa_log(_("pa_stream_connect_playback() failed: %s"), pa_strerror(pa_context_errno(c))); - goto fail; - } -@@ -634,9 +642,11 @@ static void help(const char *argv0) { - " --no-remap Map channels by index instead of name.\n" - " --latency=BYTES Request the specified latency in bytes.\n" - " --process-time=BYTES Request the specified process time per request in bytes.\n" -+ " --latency-msec=MSEC Request the specified latency in msec.\n" -+ " --process-time-msec=MSEC Request the specified process time per request in msec.\n" - " --property=PROPERTY=VALUE Set the specified property to the specified value.\n" - " --raw Record/play raw PCM data.\n" -- " --file-format=FFORMAT Record/play formatted PCM data.\n" -+ " --file-format[=FFORMAT] Record/play formatted PCM data.\n" - " --list-file-formats List available file formats.\n") - , argv0); - } -@@ -659,7 +669,9 @@ enum { - ARG_RAW, - ARG_PROPERTY, - ARG_FILE_FORMAT, -- ARG_LIST_FILE_FORMATS -+ ARG_LIST_FILE_FORMATS, -+ ARG_LATENCY_MSEC, -+ ARG_PROCESS_TIME_MSEC - }; - - int main(int argc, char *argv[]) { -@@ -695,6 +707,8 @@ int main(int argc, char *argv[]) { - {"raw", 0, NULL, ARG_RAW}, - {"file-format", 2, NULL, ARG_FILE_FORMAT}, - {"list-file-formats", 0, NULL, ARG_LIST_FILE_FORMATS}, -+ {"latency-msec", 1, NULL, ARG_LATENCY_MSEC}, -+ {"process-time-msec", 1, NULL, ARG_PROCESS_TIME_MSEC}, - {NULL, 0, NULL, 0} - }; - -@@ -854,6 +868,20 @@ int main(int argc, char *argv[]) { - } - break; - -+ case ARG_LATENCY_MSEC: -+ if (((latency_msec = (int32_t) atoi(optarg))) <= 0) { -+ pa_log(_("Invalid latency specification '%s'"), optarg); -+ goto quit; -+ } -+ break; -+ -+ case ARG_PROCESS_TIME_MSEC: -+ if (((process_time_msec = (int32_t) atoi(optarg))) <= 0) { -+ pa_log(_("Invalid process time specification '%s'"), optarg); -+ goto quit; -+ } -+ break; -+ - case ARG_PROPERTY: { - char *t; - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0024-client-implement-PULSE_LATENCY_MSEC.diff b/packages/audio/pulseaudio/patches/0024-client-implement-PULSE_LATENCY_MSEC.diff deleted file mode 100644 index 37cb5d1f3b..0000000000 --- a/packages/audio/pulseaudio/patches/0024-client-implement-PULSE_LATENCY_MSEC.diff +++ /dev/null @@ -1,107 +0,0 @@ -From fa64230107bd348ceda271dc9db74765c694d311 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 15 Jan 2010 01:25:42 +0100 -Subject: [PATCH 24/62] client: implement $PULSE_LATENCY_MSEC - -This allows easy overriding of a clients latency setting for debugging -purposes. - -http://pulseaudio.org/ticket/753 ---- - src/pulse/stream.c | 37 +++++++++++++++++++++++++++++++------ - 1 files changed, 31 insertions(+), 6 deletions(-) - -diff --git a/src/pulse/stream.c b/src/pulse/stream.c -index 79b2868..daeb53a 100644 ---- a/src/pulse/stream.c -+++ b/src/pulse/stream.c -@@ -39,6 +39,7 @@ - #include - #include - #include -+#include - - #include "fork-detect.h" - #include "internal.h" -@@ -855,10 +856,28 @@ static void create_stream_complete(pa_stream *s) { - check_smoother_status(s, TRUE, FALSE, FALSE); - } - --static void automatic_buffer_attr(pa_stream *s, pa_buffer_attr *attr, const pa_sample_spec *ss) { -+static void patch_buffer_attr(pa_stream *s, pa_buffer_attr *attr, pa_stream_flags_t *flags) { -+ const char *e; -+ - pa_assert(s); - pa_assert(attr); -- pa_assert(ss); -+ -+ if ((e = getenv("PULSE_LATENCY_MSEC"))) { -+ uint32_t ms; -+ -+ if (pa_atou(e, &ms) < 0 || ms <= 0) -+ pa_log_debug("Failed to parse $PULSE_LATENCY_MSEC: %s", e); -+ else { -+ attr->maxlength = (uint32_t) -1; -+ attr->tlength = pa_usec_to_bytes(ms * PA_USEC_PER_MSEC, &s->sample_spec); -+ attr->minreq = (uint32_t) -1; -+ attr->prebuf = (uint32_t) -1; -+ attr->fragsize = attr->tlength; -+ } -+ -+ if (flags) -+ *flags |= PA_STREAM_ADJUST_LATENCY; -+ } - - if (s->context->version >= 13) - return; -@@ -873,7 +892,7 @@ static void automatic_buffer_attr(pa_stream *s, pa_buffer_attr *attr, const pa_s - attr->maxlength = 4*1024*1024; /* 4MB is the maximum queue length PulseAudio <= 0.9.9 supported. */ - - if (attr->tlength == (uint32_t) -1) -- attr->tlength = (uint32_t) pa_usec_to_bytes(250*PA_USEC_PER_MSEC, ss); /* 250ms of buffering */ -+ attr->tlength = (uint32_t) pa_usec_to_bytes(250*PA_USEC_PER_MSEC, &s->sample_spec); /* 250ms of buffering */ - - if (attr->minreq == (uint32_t) -1) - attr->minreq = (attr->tlength)/5; /* Ask for more data when there are only 200ms left in the playback buffer */ -@@ -1064,15 +1083,16 @@ static int create_stream( - pa_stream_ref(s); - - s->direction = direction; -- s->flags = flags; -- s->corked = !!(flags & PA_STREAM_START_CORKED); - - if (sync_stream) - s->syncid = sync_stream->syncid; - - if (attr) - s->buffer_attr = *attr; -- automatic_buffer_attr(s, &s->buffer_attr, &s->sample_spec); -+ patch_buffer_attr(s, &s->buffer_attr, &flags); -+ -+ s->flags = flags; -+ s->corked = !!(flags & PA_STREAM_START_CORKED); - - if (flags & PA_STREAM_INTERPOLATE_TIMING) { - pa_usec_t x; -@@ -2412,6 +2432,7 @@ pa_operation* pa_stream_set_buffer_attr(pa_stream *s, const pa_buffer_attr *attr - pa_operation *o; - pa_tagstruct *t; - uint32_t tag; -+ pa_buffer_attr copy; - - pa_assert(s); - pa_assert(PA_REFCNT_VALUE(s) >= 1); -@@ -2435,6 +2456,10 @@ pa_operation* pa_stream_set_buffer_attr(pa_stream *s, const pa_buffer_attr *attr - &tag); - pa_tagstruct_putu32(t, s->channel); - -+ copy = *attr; -+ patch_buffer_attr(s, ©, NULL); -+ attr = © -+ - pa_tagstruct_putu32(t, attr->maxlength); - - if (s->direction == PA_STREAM_PLAYBACK) --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0025-client-include-dolby-channel-names-in-comments.diff b/packages/audio/pulseaudio/patches/0025-client-include-dolby-channel-names-in-comments.diff deleted file mode 100644 index 8ecba0ac3e..0000000000 --- a/packages/audio/pulseaudio/patches/0025-client-include-dolby-channel-names-in-comments.diff +++ /dev/null @@ -1,57 +0,0 @@ -From 86144ee6cb6af54903a8d3d8395751ae26a4d134 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 14 Jan 2010 21:32:26 +0100 -Subject: [PATCH 25/62] client: include dolby channel names in comments - ---- - src/pulse/channelmap.h | 20 ++++++++++---------- - 1 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/src/pulse/channelmap.h b/src/pulse/channelmap.h -index 469effc..d1d5c8b 100644 ---- a/src/pulse/channelmap.h -+++ b/src/pulse/channelmap.h -@@ -74,9 +74,9 @@ typedef enum pa_channel_position { - PA_CHANNEL_POSITION_INVALID = -1, - PA_CHANNEL_POSITION_MONO = 0, - -- PA_CHANNEL_POSITION_FRONT_LEFT, /* Apple calls this 'Left' */ -- PA_CHANNEL_POSITION_FRONT_RIGHT, /* Apple calls this 'Right' */ -- PA_CHANNEL_POSITION_FRONT_CENTER, /* Apple calls this 'Center' */ -+ PA_CHANNEL_POSITION_FRONT_LEFT, /* Apple, Dolby call this 'Left' */ -+ PA_CHANNEL_POSITION_FRONT_RIGHT, /* Apple, Dolby call this 'Right' */ -+ PA_CHANNEL_POSITION_FRONT_CENTER, /* Apple, Dolby call this 'Center' */ - - /** \cond fulldocs */ - PA_CHANNEL_POSITION_LEFT = PA_CHANNEL_POSITION_FRONT_LEFT, -@@ -84,20 +84,20 @@ typedef enum pa_channel_position { - PA_CHANNEL_POSITION_CENTER = PA_CHANNEL_POSITION_FRONT_CENTER, - /** \endcond */ - -- PA_CHANNEL_POSITION_REAR_CENTER, /* Microsoft calls this 'Back Center', Apple calls this 'Center Surround' */ -- PA_CHANNEL_POSITION_REAR_LEFT, /* Microsoft calls this 'Back Left', Apple calls this 'Left Surround' */ -- PA_CHANNEL_POSITION_REAR_RIGHT, /* Microsoft calls this 'Back Right', Apple calls this 'Right Surround' */ -+ PA_CHANNEL_POSITION_REAR_CENTER, /* Microsoft calls this 'Back Center', Apple calls this 'Center Surround', Dolby calls this 'Surround Rear Center' */ -+ PA_CHANNEL_POSITION_REAR_LEFT, /* Microsoft calls this 'Back Left', Apple calls this 'Left Surround' (!), Dolby calls this 'Surround Rear Left' */ -+ PA_CHANNEL_POSITION_REAR_RIGHT, /* Microsoft calls this 'Back Right', Apple calls this 'Right Surround' (!), Dolby calls this 'Surround Rear Right' */ - - PA_CHANNEL_POSITION_LFE, /* Microsoft calls this 'Low Frequency', Apple calls this 'LFEScreen' */ - /** \cond fulldocs */ - PA_CHANNEL_POSITION_SUBWOOFER = PA_CHANNEL_POSITION_LFE, - /** \endcond */ - -- PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER, /* Apple calls this 'Left Center' */ -- PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER, /* Apple calls this 'Right Center */ -+ PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER, /* Apple, Dolby call this 'Left Center' */ -+ PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER, /* Apple, Dolby call this 'Right Center */ - -- PA_CHANNEL_POSITION_SIDE_LEFT, /* Apple calls this 'Left Surround Direct' */ -- PA_CHANNEL_POSITION_SIDE_RIGHT, /* Apple calls this 'Right Surround Direct' */ -+ PA_CHANNEL_POSITION_SIDE_LEFT, /* Apple calls this 'Left Surround Direct', Dolby calls this 'Surround Left' (!) */ -+ PA_CHANNEL_POSITION_SIDE_RIGHT, /* Apple calls this 'Right Surround Direct', Dolby calls this 'Surround Right' (!) */ - - PA_CHANNEL_POSITION_AUX0, - PA_CHANNEL_POSITION_AUX1, --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0026-alsa-add-profile-set-for-M-Audio-FastTrack-Pro-USB.diff b/packages/audio/pulseaudio/patches/0026-alsa-add-profile-set-for-M-Audio-FastTrack-Pro-USB.diff deleted file mode 100644 index 593952b3c7..0000000000 --- a/packages/audio/pulseaudio/patches/0026-alsa-add-profile-set-for-M-Audio-FastTrack-Pro-USB.diff +++ /dev/null @@ -1,116 +0,0 @@ -From 66e1a2d05139d7968d41d9f1a88c22093cdd04d5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?David=20K=C3=A5gedal?= -Date: Tue, 5 Jan 2010 20:14:11 +0100 -Subject: [PATCH 26/62] alsa: add profile set for M-Audio FastTrack Pro USB - ---- - .../alsa/mixer/profile-sets/90-pulseaudio.rules | 1 + - .../mixer/profile-sets/maudio-fasttrack-pro.conf | 85 ++++++++++++++++++++ - 2 files changed, 86 insertions(+), 0 deletions(-) - create mode 100644 src/modules/alsa/mixer/profile-sets/maudio-fasttrack-pro.conf - -diff --git a/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules b/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules -index ea1a2fe..b8e88d0 100644 ---- a/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules -+++ b/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules -@@ -22,5 +22,6 @@ KERNEL!="card*", GOTO="pulseaudio_end" - - SUBSYSTEMS=="usb", ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="1978", ENV{PULSE_PROFILE_SET}="native-instruments-audio8dj.conf" - SUBSYSTEMS=="usb", ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="0839", ENV{PULSE_PROFILE_SET}="native-instruments-audio4dj.conf" -+SUBSYSTEMS=="usb", ATTRS{idVendor}=="0763", ATTRS{idProduct}=="2012", ENV{PULSE_PROFILE_SET}="maudio-fasttrack-pro.conf" - - LABEL="pulseaudio_end" -diff --git a/src/modules/alsa/mixer/profile-sets/maudio-fasttrack-pro.conf b/src/modules/alsa/mixer/profile-sets/maudio-fasttrack-pro.conf -new file mode 100644 -index 0000000..75f5112 ---- /dev/null -+++ b/src/modules/alsa/mixer/profile-sets/maudio-fasttrack-pro.conf -@@ -0,0 +1,85 @@ -+# This file is part of PulseAudio. -+# -+# PulseAudio is free software; you can redistribute it and/or modify -+# it under the terms of the GNU Lesser General Public License as -+# published by the Free Software Foundation; either version 2.1 of the -+# License, or (at your option) any later version. -+# -+# PulseAudio 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 -+# General Public License for more details. -+# -+# You should have received a copy of the GNU Lesser General Public License -+# along with PulseAudio; if not, write to the Free Software Foundation, -+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -+ -+; M-Audio FastTrack Pro -+; -+; This card has one duplex stereo channel called A and an additional -+; stereo output channel called B. -+; -+; We knowingly only define a subset of the theoretically possible -+; mapping combinations as profiles here. -+; -+; See default.conf for an explanation on the directives used here. -+ -+[General] -+auto-profiles = no -+ -+[Mapping analog-stereo-a-output] -+description = Analog Stereo Channel A -+device-strings = hw:%f,0,0 -+channel-map = left,right -+direction = output -+ -+[Mapping analog-stereo-a-input] -+description = Analog Stereo Channel A -+device-strings = hw:%f,0,0 -+channel-map = left,right -+direction = input -+ -+[Mapping analog-stereo-b-output] -+description = Analog Stereo Channel B -+device-strings = hw:%f,1,0 -+channel-map = left,right -+direction = output -+ -+[Profile output:analog-stereo-all+input:analog-stereo-all] -+description = Analog Stereo Duplex Channel A, Analog Stereo output Channel B -+output-mappings = analog-stereo-a-output analog-stereo-b-output -+input-mappings = analog-stereo-a-input -+priority = 100 -+skip-probe = yes -+ -+[Profile output:analog-stereo-a-output+input:analog-stereo-a-input] -+description = Analog Stereo Duplex Channel A -+output-mappings = analog-stereo-a-output -+input-mappings = analog-stereo-a-input -+priority = 40 -+skip-probe = yes -+ -+[Profile output:analog-stereo-b+input:analog-stereo-b] -+description = Analog Stereo Output Channel B -+output-mappings = analog-stereo-b-output -+input-mappings = -+priority = 50 -+skip-probe = yes -+ -+[Profile output:analog-stereo-a] -+description = Analog Stereo Output Channel A -+output-mappings = analog-stereo-a-output -+priority = 5 -+skip-probe = yes -+ -+[Profile output:analog-stereo-b] -+description = Analog Stereo Output Channel B -+output-mappings = analog-stereo-b-output -+priority = 6 -+skip-probe = yes -+ -+[Profile input:analog-stereo-a] -+description = Analog Stereo Input Channel A -+input-mappings = analog-stereo-a-input -+priority = 2 -+skip-probe = yes --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0027-threaded-mainloop-Properly-initialise-m-n_waiting_fo.diff b/packages/audio/pulseaudio/patches/0027-threaded-mainloop-Properly-initialise-m-n_waiting_fo.diff deleted file mode 100644 index 333599145d..0000000000 --- a/packages/audio/pulseaudio/patches/0027-threaded-mainloop-Properly-initialise-m-n_waiting_fo.diff +++ /dev/null @@ -1,35 +0,0 @@ -From a2418effe7c4bc54390939ccd07dd6227e6cdfa5 Mon Sep 17 00:00:00 2001 -From: Daniel T Chen -Date: Mon, 4 Jan 2010 21:44:37 -0500 -Subject: [PATCH 27/62] threaded-mainloop: Properly initialise m->n_waiting_for_accept to prevent deadlock -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Compiler optimisations have been seen to initialise -m->n_waiting_for_accept to a positive non-zero value, so the while() in -pa_threaded_mainloop_signal() never proceeds. Fix this by properly -initializing m->n_waiting_for_accept in pa_threaded_mainloop_new(). - -Patch from Iain BucÅ‚aw. - -https://bugs.launchpad.net/bugs/502992 ---- - src/pulse/thread-mainloop.c | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -diff --git a/src/pulse/thread-mainloop.c b/src/pulse/thread-mainloop.c -index 14ed926..1693404 100644 ---- a/src/pulse/thread-mainloop.c -+++ b/src/pulse/thread-mainloop.c -@@ -116,6 +116,7 @@ pa_threaded_mainloop *pa_threaded_mainloop_new(void) { - pa_mainloop_set_poll_func(m->real_mainloop, poll_func, m->mutex); - - m->n_waiting = 0; -+ m->n_waiting_for_accept = 0; - - return m; - } --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0028-udev-Use-SOUND_CLASS-instead-of-SOUND_FORM_FACTOR-wh.diff b/packages/audio/pulseaudio/patches/0028-udev-Use-SOUND_CLASS-instead-of-SOUND_FORM_FACTOR-wh.diff deleted file mode 100644 index eebd0f1685..0000000000 --- a/packages/audio/pulseaudio/patches/0028-udev-Use-SOUND_CLASS-instead-of-SOUND_FORM_FACTOR-wh.diff +++ /dev/null @@ -1,29 +0,0 @@ -From 8c7148a4eaecd687a004b0611748452fd4b41e92 Mon Sep 17 00:00:00 2001 -From: Daniel T Chen -Date: Mon, 4 Jan 2010 21:53:36 -0500 -Subject: [PATCH 28/62] udev: Use SOUND_CLASS instead of SOUND_FORM_FACTOR when checking for modem - -The fact whether an ALSA card is a modem is stored in the SOUND_CLASS, -not the SOUND_FORM_FACTOR property. So read it from there. - -Patch from Whoopie. ---- - src/modules/module-udev-detect.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/modules/module-udev-detect.c b/src/modules/module-udev-detect.c -index b8568b2..3cf3e58 100644 ---- a/src/modules/module-udev-detect.c -+++ b/src/modules/module-udev-detect.c -@@ -426,7 +426,7 @@ static void process_device(struct userdata *u, struct udev_device *dev) { - return; - } - -- if ((ff = udev_device_get_property_value(dev, "SOUND_FORM_FACTOR")) && -+ if ((ff = udev_device_get_property_value(dev, "SOUND_CLASS")) && - pa_streq(ff, "modem")) { - pa_log_debug("Ignoring %s, because it is a modem.", udev_device_get_devpath(dev)); - return; --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0029-More-src-pulsecore-cpu-arm.c-FTBFS-fixes.diff b/packages/audio/pulseaudio/patches/0029-More-src-pulsecore-cpu-arm.c-FTBFS-fixes.diff deleted file mode 100644 index d6edbf8ebc..0000000000 --- a/packages/audio/pulseaudio/patches/0029-More-src-pulsecore-cpu-arm.c-FTBFS-fixes.diff +++ /dev/null @@ -1,39 +0,0 @@ -From 09c416e11fe4f53c468f68ad0a67f4696241050a Mon Sep 17 00:00:00 2001 -From: Daniel T Chen -Date: Wed, 16 Dec 2009 23:55:05 -0500 -Subject: [PATCH 29/62] More src/pulsecore/cpu-arm.c FTBFS fixes - -Fix missing argument to pa_read(), and be consistent with declaration of -state variable in pa_cpu_init_arm(). - -Signed-off-by: Daniel T Chen ---- - src/pulsecore/cpu-arm.c | 5 +++-- - 1 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/pulsecore/cpu-arm.c b/src/pulsecore/cpu-arm.c -index 453b784..61299cc 100644 ---- a/src/pulsecore/cpu-arm.c -+++ b/src/pulsecore/cpu-arm.c -@@ -67,7 +67,7 @@ static char *get_cpuinfo(void) { - return NULL; - } - -- if ((n = pa_read(fd, cpuinfo, MAX_BUFFER-1)) < 0) { -+ if ((n = pa_read(fd, cpuinfo, MAX_BUFFER-1, NULL)) < 0) { - pa_xfree(cpuinfo); - pa_close(fd); - return NULL; -@@ -105,7 +105,8 @@ void pa_cpu_init_arm (void) { - } - /* get the CPU features */ - if ((line = get_cpuinfo_line (cpuinfo, "Features"))) { -- char *state = NULL, *current; -+ const char *state = NULL; -+ char *current; - - while ((current = pa_split_spaces (line, &state))) { - if (!strcmp (current, "vfp")) --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0030-Fix-the-following-warnings-which-now-cause-buildd-fa.diff b/packages/audio/pulseaudio/patches/0030-Fix-the-following-warnings-which-now-cause-buildd-fa.diff deleted file mode 100644 index c9f82bfdc3..0000000000 --- a/packages/audio/pulseaudio/patches/0030-Fix-the-following-warnings-which-now-cause-buildd-fa.diff +++ /dev/null @@ -1,33 +0,0 @@ -From fd5c802ecb5ae5ed9b294422410761126a37d1b3 Mon Sep 17 00:00:00 2001 -From: Daniel T Chen -Date: Wed, 16 Dec 2009 22:53:18 -0500 -Subject: [PATCH 30/62] Fix the following warnings (which now cause buildd failures in Ubuntu 10.04): - -pulsecore/cpu-arm.c: In function 'get_cpuinfo': -pulsecore/cpu-arm.c:70: warning: implicit declaration of function 'pa_read' [-Wimplicit-function-declaration] -pulsecore/cpu-arm.c:72: warning: implicit declaration of function 'pa_close' [-Wimplicit-function-declaration] -pulsecore/cpu-arm.c: In function 'pa_cpu_init_arm': -pulsecore/cpu-arm.c:110: warning: implicit declaration of function 'pa_split_spaces' [-Wimplicit-function-declaration] -pulsecore/cpu-arm.c:110: warning: assignment makes pointer from integer without a cast -Function `pa_split_spaces' implicitly converted to pointer at pulsecore/cpu-arm.c:110 - -Signed-off-by: Daniel T Chen ---- - src/pulsecore/cpu-arm.c | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -diff --git a/src/pulsecore/cpu-arm.c b/src/pulsecore/cpu-arm.c -index 61299cc..56d0bbc 100644 ---- a/src/pulsecore/cpu-arm.c -+++ b/src/pulsecore/cpu-arm.c -@@ -30,6 +30,7 @@ - #include - - #include -+#include - #include - - #include "cpu-arm.h" --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0031-libpulse-Store-pa_stream-pointers-to-hashmaps-instea.diff b/packages/audio/pulseaudio/patches/0031-libpulse-Store-pa_stream-pointers-to-hashmaps-instea.diff deleted file mode 100644 index 38ebc7c6b0..0000000000 --- a/packages/audio/pulseaudio/patches/0031-libpulse-Store-pa_stream-pointers-to-hashmaps-instea.diff +++ /dev/null @@ -1,180 +0,0 @@ -From 52c66b47664d47154b2c8368e32beef27d4b2d03 Mon Sep 17 00:00:00 2001 -From: Tanu Kaskinen -Date: Thu, 3 Dec 2009 13:22:05 +0200 -Subject: [PATCH 31/62] libpulse: Store pa_stream pointers to hashmaps instead of dynarrays. - -Since the stream identifiers (channels) are monotonically growing integer, it -isn't a good idea to use them as index to a dynamic array, because the array -will grow all the time. This is not a problem with client connections that -don't create many streams, but, for example, long-running clients that use -libcanberra for playing event sounds, this means that the client connection -effectively leaks memory. ---- - src/pulse/context.c | 12 ++++++------ - src/pulse/internal.h | 3 +-- - src/pulse/stream.c | 20 ++++++++++---------- - 3 files changed, 17 insertions(+), 18 deletions(-) - -diff --git a/src/pulse/context.c b/src/pulse/context.c -index c83230d..91f4817 100644 ---- a/src/pulse/context.c -+++ b/src/pulse/context.c -@@ -63,7 +63,7 @@ - #include - #include - #include --#include -+#include - #include - #include - #include -@@ -157,8 +157,8 @@ pa_context *pa_context_new_with_proplist(pa_mainloop_api *mainloop, const char * - c->system_bus = c->session_bus = NULL; - #endif - c->mainloop = mainloop; -- c->playback_streams = pa_dynarray_new(); -- c->record_streams = pa_dynarray_new(); -+ c->playback_streams = pa_hashmap_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func); -+ c->record_streams = pa_hashmap_new(pa_idxset_trivial_hash_func, pa_idxset_trivial_compare_func); - c->client_index = PA_INVALID_INDEX; - c->use_rtclock = pa_mainloop_is_our_api(mainloop); - -@@ -252,9 +252,9 @@ static void context_free(pa_context *c) { - #endif - - if (c->record_streams) -- pa_dynarray_free(c->record_streams, NULL, NULL); -+ pa_hashmap_free(c->record_streams, NULL, NULL); - if (c->playback_streams) -- pa_dynarray_free(c->playback_streams, NULL, NULL); -+ pa_hashmap_free(c->playback_streams, NULL, NULL); - - if (c->mempool) - pa_mempool_free(c->mempool); -@@ -361,7 +361,7 @@ static void pstream_memblock_callback(pa_pstream *p, uint32_t channel, int64_t o - - pa_context_ref(c); - -- if ((s = pa_dynarray_get(c->record_streams, channel))) { -+ if ((s = pa_hashmap_get(c->record_streams, PA_UINT32_TO_PTR(channel)))) { - - if (chunk->memblock) { - pa_memblockq_seek(s->record_memblockq, offset, seek, TRUE); -diff --git a/src/pulse/internal.h b/src/pulse/internal.h -index c3ebf74..ab702b9 100644 ---- a/src/pulse/internal.h -+++ b/src/pulse/internal.h -@@ -34,7 +34,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -66,7 +65,7 @@ struct pa_context { - pa_pstream *pstream; - pa_pdispatch *pdispatch; - -- pa_dynarray *record_streams, *playback_streams; -+ pa_hashmap *record_streams, *playback_streams; - PA_LLIST_HEAD(pa_stream, streams); - PA_LLIST_HEAD(pa_operation, operations); - -diff --git a/src/pulse/stream.c b/src/pulse/stream.c -index daeb53a..ab8f8f4 100644 ---- a/src/pulse/stream.c -+++ b/src/pulse/stream.c -@@ -201,7 +201,7 @@ static void stream_unlink(pa_stream *s) { - pa_pdispatch_unregister_reply(s->context->pdispatch, s); - - if (s->channel_valid) { -- pa_dynarray_put((s->direction == PA_STREAM_PLAYBACK) ? s->context->playback_streams : s->context->record_streams, s->channel, NULL); -+ pa_hashmap_remove((s->direction == PA_STREAM_PLAYBACK) ? s->context->playback_streams : s->context->record_streams, PA_UINT32_TO_PTR(s->channel)); - s->channel = 0; - s->channel_valid = FALSE; - } -@@ -356,7 +356,7 @@ void pa_command_stream_killed(pa_pdispatch *pd, uint32_t command, uint32_t tag, - goto finish; - } - -- if (!(s = pa_dynarray_get(command == PA_COMMAND_PLAYBACK_STREAM_KILLED ? c->playback_streams : c->record_streams, channel))) -+ if (!(s = pa_hashmap_get(command == PA_COMMAND_PLAYBACK_STREAM_KILLED ? c->playback_streams : c->record_streams, PA_UINT32_TO_PTR(channel)))) - goto finish; - - if (s->state != PA_STREAM_READY) -@@ -476,7 +476,7 @@ void pa_command_stream_moved(pa_pdispatch *pd, uint32_t command, uint32_t tag, p - goto finish; - } - -- if (!(s = pa_dynarray_get(command == PA_COMMAND_PLAYBACK_STREAM_MOVED ? c->playback_streams : c->record_streams, channel))) -+ if (!(s = pa_hashmap_get(command == PA_COMMAND_PLAYBACK_STREAM_MOVED ? c->playback_streams : c->record_streams, PA_UINT32_TO_PTR(channel)))) - goto finish; - - if (s->state != PA_STREAM_READY) -@@ -559,7 +559,7 @@ void pa_command_stream_buffer_attr(pa_pdispatch *pd, uint32_t command, uint32_t - goto finish; - } - -- if (!(s = pa_dynarray_get(command == PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED ? c->playback_streams : c->record_streams, channel))) -+ if (!(s = pa_hashmap_get(command == PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED ? c->playback_streams : c->record_streams, PA_UINT32_TO_PTR(channel)))) - goto finish; - - if (s->state != PA_STREAM_READY) -@@ -611,7 +611,7 @@ void pa_command_stream_suspended(pa_pdispatch *pd, uint32_t command, uint32_t ta - goto finish; - } - -- if (!(s = pa_dynarray_get(command == PA_COMMAND_PLAYBACK_STREAM_SUSPENDED ? c->playback_streams : c->record_streams, channel))) -+ if (!(s = pa_hashmap_get(command == PA_COMMAND_PLAYBACK_STREAM_SUSPENDED ? c->playback_streams : c->record_streams, PA_UINT32_TO_PTR(channel)))) - goto finish; - - if (s->state != PA_STREAM_READY) -@@ -653,7 +653,7 @@ void pa_command_stream_started(pa_pdispatch *pd, uint32_t command, uint32_t tag, - goto finish; - } - -- if (!(s = pa_dynarray_get(c->playback_streams, channel))) -+ if (!(s = pa_hashmap_get(c->playback_streams, PA_UINT32_TO_PTR(channel)))) - goto finish; - - if (s->state != PA_STREAM_READY) -@@ -699,7 +699,7 @@ void pa_command_stream_event(pa_pdispatch *pd, uint32_t command, uint32_t tag, p - goto finish; - } - -- if (!(s = pa_dynarray_get(command == PA_COMMAND_PLAYBACK_STREAM_EVENT ? c->playback_streams : c->record_streams, channel))) -+ if (!(s = pa_hashmap_get(command == PA_COMMAND_PLAYBACK_STREAM_EVENT ? c->playback_streams : c->record_streams, PA_UINT32_TO_PTR(channel)))) - goto finish; - - if (s->state != PA_STREAM_READY) -@@ -735,7 +735,7 @@ void pa_command_request(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tag - goto finish; - } - -- if (!(s = pa_dynarray_get(c->playback_streams, channel))) -+ if (!(s = pa_hashmap_get(c->playback_streams, PA_UINT32_TO_PTR(channel)))) - goto finish; - - if (s->state != PA_STREAM_READY) -@@ -771,7 +771,7 @@ void pa_command_overflow_or_underflow(pa_pdispatch *pd, uint32_t command, uint32 - goto finish; - } - -- if (!(s = pa_dynarray_get(c->playback_streams, channel))) -+ if (!(s = pa_hashmap_get(c->playback_streams, PA_UINT32_TO_PTR(channel)))) - goto finish; - - if (s->state != PA_STREAM_READY) -@@ -1019,7 +1019,7 @@ void pa_create_stream_callback(pa_pdispatch *pd, uint32_t command, uint32_t tag, - } - - s->channel_valid = TRUE; -- pa_dynarray_put((s->direction == PA_STREAM_RECORD) ? s->context->record_streams : s->context->playback_streams, s->channel, s); -+ pa_hashmap_put((s->direction == PA_STREAM_RECORD) ? s->context->record_streams : s->context->playback_streams, PA_UINT32_TO_PTR(s->channel), s); - - create_stream_complete(s); - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0032-native-rework-handling-of-seeks-that-depend-on-varia.diff b/packages/audio/pulseaudio/patches/0032-native-rework-handling-of-seeks-that-depend-on-varia.diff deleted file mode 100644 index 1a85b5c11a..0000000000 --- a/packages/audio/pulseaudio/patches/0032-native-rework-handling-of-seeks-that-depend-on-varia.diff +++ /dev/null @@ -1,166 +0,0 @@ -From 84782f24c5f43456430c796bd12f9face24f0573 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 18 Jan 2010 01:33:04 +0100 -Subject: [PATCH 32/62] native: rework handling of seeks that depend on variables the client does not know anything about - -All seeks/flushes that depend on the playback buffer read pointer cannot -be accounted for properly in the client since it does not know the -actual read pointer. Due to that the clients do not account for it at -all. We need do the same on the server side. And we did, but a little -bit too extreme. While we properly have not applied the changes to the -"request" counter we still do have to apply it to the "missing" counter. -This patch fixes that. ---- - src/modules/module-combine.c | 4 ++-- - src/modules/module-loopback.c | 4 ++-- - src/pulse/stream.c | 5 +++++ - src/pulsecore/memblockq.c | 6 ++++-- - src/pulsecore/memblockq.h | 2 +- - src/pulsecore/protocol-native.c | 6 +++++- - src/pulsecore/sink-input.c | 2 +- - 7 files changed, 20 insertions(+), 9 deletions(-) - -diff --git a/src/modules/module-combine.c b/src/modules/module-combine.c -index 62e6267..cffb901 100644 ---- a/src/modules/module-combine.c -+++ b/src/modules/module-combine.c -@@ -562,7 +562,7 @@ static int sink_input_process_msg(pa_msgobject *obj, int code, void *data, int64 - if (PA_SINK_IS_OPENED(o->sink_input->sink->thread_info.state)) - pa_memblockq_push_align(o->memblockq, chunk); - else -- pa_memblockq_flush_write(o->memblockq); -+ pa_memblockq_flush_write(o->memblockq, TRUE); - - return 0; - } -@@ -982,7 +982,7 @@ static void output_disable(struct output *o) { - o->sink_input = NULL; - - /* Finally, drop all queued data */ -- pa_memblockq_flush_write(o->memblockq); -+ pa_memblockq_flush_write(o->memblockq, TRUE); - pa_asyncmsgq_flush(o->inq, FALSE); - pa_asyncmsgq_flush(o->outq, FALSE); - } -diff --git a/src/modules/module-loopback.c b/src/modules/module-loopback.c -index bb0182b..15ef96e 100644 ---- a/src/modules/module-loopback.c -+++ b/src/modules/module-loopback.c -@@ -430,7 +430,7 @@ static int sink_input_process_msg_cb(pa_msgobject *obj, int code, void *data, in - if (PA_SINK_IS_OPENED(u->sink_input->sink->thread_info.state)) - pa_memblockq_push_align(u->memblockq, chunk); - else -- pa_memblockq_flush_write(u->memblockq); -+ pa_memblockq_flush_write(u->memblockq, TRUE); - - update_min_memblockq_length(u); - -@@ -457,7 +457,7 @@ static int sink_input_process_msg_cb(pa_msgobject *obj, int code, void *data, in - if (PA_SINK_IS_OPENED(u->sink_input->sink->thread_info.state)) - pa_memblockq_seek(u->memblockq, -offset, PA_SEEK_RELATIVE, TRUE); - else -- pa_memblockq_flush_write(u->memblockq); -+ pa_memblockq_flush_write(u->memblockq, TRUE); - - u->recv_counter -= offset; - -diff --git a/src/pulse/stream.c b/src/pulse/stream.c -index ab8f8f4..8da40ec 100644 ---- a/src/pulse/stream.c -+++ b/src/pulse/stream.c -@@ -2146,6 +2146,11 @@ pa_operation* pa_stream_flush(pa_stream *s, pa_stream_success_cb_t cb, void *use - * index, but the read index might jump. */ - invalidate_indexes(s, TRUE, FALSE); - -+ /* Note that we do not update requested_bytes here. This is -+ * because we cannot really know how data actually was dropped -+ * from the write index due to this. This 'error' will be applied -+ * by both client and server and hence we should be fine. */ -+ - return o; - } - -diff --git a/src/pulsecore/memblockq.c b/src/pulsecore/memblockq.c -index 4641801..2b063fa 100644 ---- a/src/pulsecore/memblockq.c -+++ b/src/pulsecore/memblockq.c -@@ -254,6 +254,8 @@ static void write_index_changed(pa_memblockq *bq, int64_t old_write_index, pa_bo - - if (account) - bq->requested -= delta; -+ else -+ bq->missing -= delta; - - /* pa_log("pushed/seeked %lli: requested counter at %lli, account=%i", (long long) delta, (long long) bq->requested, account); */ - } -@@ -642,7 +644,7 @@ void pa_memblockq_seek(pa_memblockq *bq, int64_t offset, pa_seek_mode_t seek, pa - write_index_changed(bq, old, account); - } - --void pa_memblockq_flush_write(pa_memblockq *bq) { -+void pa_memblockq_flush_write(pa_memblockq *bq, pa_bool_t account) { - int64_t old; - pa_assert(bq); - -@@ -652,7 +654,7 @@ void pa_memblockq_flush_write(pa_memblockq *bq) { - bq->write_index = bq->read_index; - - pa_memblockq_prebuf_force(bq); -- write_index_changed(bq, old, TRUE); -+ write_index_changed(bq, old, account); - } - - void pa_memblockq_flush_read(pa_memblockq *bq) { -diff --git a/src/pulsecore/memblockq.h b/src/pulsecore/memblockq.h -index 587c364..6132f31 100644 ---- a/src/pulsecore/memblockq.h -+++ b/src/pulsecore/memblockq.h -@@ -118,7 +118,7 @@ size_t pa_memblockq_pop_missing(pa_memblockq *bq); - int pa_memblockq_splice(pa_memblockq *bq, pa_memblockq *source); - - /* Set the queue to silence, set write index to read index */ --void pa_memblockq_flush_write(pa_memblockq *bq); -+void pa_memblockq_flush_write(pa_memblockq *bq, pa_bool_t account); - - /* Set the queue to silence, set write read index to write index*/ - void pa_memblockq_flush_read(pa_memblockq *bq); -diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c -index b7b3f59..f80b0c2 100644 ---- a/src/pulsecore/protocol-native.c -+++ b/src/pulsecore/protocol-native.c -@@ -1325,6 +1325,10 @@ static void handle_seek(playback_stream *s, int64_t indexw) { - playback_stream_request_bytes(s); - } - -+static void flush_write_no_account(pa_memblockq *q) { -+ pa_memblockq_flush_write(q, FALSE); -+} -+ - /* Called from thread context */ - static int sink_input_process_msg(pa_msgobject *o, int code, void *userdata, int64_t offset, pa_memchunk *chunk) { - pa_sink_input *i = PA_SINK_INPUT(o); -@@ -1386,7 +1390,7 @@ static int sink_input_process_msg(pa_msgobject *o, int code, void *userdata, int - - switch (code) { - case SINK_INPUT_MESSAGE_FLUSH: -- func = pa_memblockq_flush_write; -+ func = flush_write_no_account; - break; - - case SINK_INPUT_MESSAGE_PREBUF_FORCE: -diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c -index aa84ccb..7acb25f 100644 ---- a/src/pulsecore/sink-input.c -+++ b/src/pulsecore/sink-input.c -@@ -801,7 +801,7 @@ void pa_sink_input_process_rewind(pa_sink_input *i, size_t nbytes /* in sink sam - /* We were asked to drop all buffered data, and rerequest new - * data from implementor the next time push() is called */ - -- pa_memblockq_flush_write(i->thread_info.render_memblockq); -+ pa_memblockq_flush_write(i->thread_info.render_memblockq, TRUE); - - } else if (i->thread_info.rewrite_nbytes > 0) { - size_t max_rewrite, amount; --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0033-core-Fix-macro-typo-PA_SINK_IS_LINKED-PA_SINK_INPUT_.diff b/packages/audio/pulseaudio/patches/0033-core-Fix-macro-typo-PA_SINK_IS_LINKED-PA_SINK_INPUT_.diff deleted file mode 100644 index 552f7f5b4a..0000000000 --- a/packages/audio/pulseaudio/patches/0033-core-Fix-macro-typo-PA_SINK_IS_LINKED-PA_SINK_INPUT_.diff +++ /dev/null @@ -1,25 +0,0 @@ -From a631beeafb4729f8bed1c538846d0bb142cee7bf Mon Sep 17 00:00:00 2001 -From: Colin Guthrie -Date: Tue, 9 Feb 2010 21:37:32 +0000 -Subject: [PATCH 33/62] core: Fix macro typo - PA_SINK_IS_LINKED -> PA_SINK_INPUT_IS_LINKED - ---- - src/pulsecore/sink-input.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c -index 7acb25f..3c957f1 100644 ---- a/src/pulsecore/sink-input.c -+++ b/src/pulsecore/sink-input.c -@@ -1086,7 +1086,7 @@ void pa_sink_input_update_proplist(pa_sink_input *i, pa_update_mode_t mode, pa_p - if (p) - pa_proplist_update(i->proplist, mode, p); - -- if (PA_SINK_IS_LINKED(i->state)) { -+ if (PA_SINK_INPUT_IS_LINKED(i->state)) { - pa_hook_fire(&i->core->hooks[PA_CORE_HOOK_SINK_INPUT_PROPLIST_CHANGED], i); - pa_subscription_post(i->core, PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_CHANGE, i->index); - } --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0034-alsa-cover-Desktop-Speaker-mixer-elements.diff b/packages/audio/pulseaudio/patches/0034-alsa-cover-Desktop-Speaker-mixer-elements.diff deleted file mode 100644 index 54d6cd9a39..0000000000 --- a/packages/audio/pulseaudio/patches/0034-alsa-cover-Desktop-Speaker-mixer-elements.diff +++ /dev/null @@ -1,292 +0,0 @@ -From e8cb96c0103d5bd23fe945afdc658a5f60b70a9d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 15 Feb 2010 22:23:39 +0100 -Subject: [PATCH 34/62] alsa: cover "Desktop Speaker" mixer elements - -As exposed by really old Microsoft USB sound systems ---- - src/modules/alsa/alsa-mixer.c | 3 +- - .../mixer/paths/analog-output-desktop-speaker.conf | 98 ++++++++++++++++++++ - .../mixer/paths/analog-output-headphones-2.conf | 4 + - .../alsa/mixer/paths/analog-output-headphones.conf | 4 + - .../mixer/paths/analog-output-lfe-on-mono.conf | 4 + - .../alsa/mixer/paths/analog-output-mono.conf | 4 + - .../alsa/mixer/paths/analog-output-speaker.conf | 4 + - src/modules/alsa/mixer/paths/analog-output.conf | 4 + - src/modules/alsa/mixer/profile-sets/default.conf | 14 ++-- - 9 files changed, 131 insertions(+), 8 deletions(-) - create mode 100644 src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf - -diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c -index 8bbd1f5..cb814af 100644 ---- a/src/modules/alsa/alsa-mixer.c -+++ b/src/modules/alsa/alsa-mixer.c -@@ -1784,7 +1784,8 @@ static int path_verify(pa_alsa_path *p) { - { "analog-output-lfe-on-mono", N_("Analog Output (LFE)") }, - { "analog-output-mono", N_("Analog Mono Output") }, - { "analog-output-headphones-2", N_("Analog Headphones 2") }, -- { "analog-output-speaker", N_("Analog Speaker") } -+ { "analog-output-speaker", N_("Analog Speakers") } -+ { "analog-output-desktop-speaker", N_("Analog Speakers 2") } - }; - - pa_alsa_element *e; -diff --git a/src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf b/src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf -new file mode 100644 -index 0000000..9f18b25 ---- /dev/null -+++ b/src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf -@@ -0,0 +1,98 @@ -+# This file is part of PulseAudio. -+# -+# PulseAudio is free software; you can redistribute it and/or modify -+# it under the terms of the GNU Lesser General Public License as -+# published by the Free Software Foundation; either version 2.1 of the -+# License, or (at your option) any later version. -+# -+# PulseAudio 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 -+# General Public License for more details. -+# -+# You should have received a copy of the GNU Lesser General Public License -+# along with PulseAudio; if not, write to the Free Software Foundation, -+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -+ -+; Path for mixers that have a 'Desktop Speaker' control -+; -+; See analog-output.conf.common for an explanation on the directives -+ -+[General] -+priority = 100 -+ -+[Element Hardware Master] -+switch = mute -+volume = merge -+override-map.1 = all -+override-map.2 = all-left,all-right -+ -+[Element Master] -+switch = mute -+volume = merge -+override-map.1 = all -+override-map.2 = all-left,all-right -+ -+[Element Master Mono] -+switch = off -+volume = off -+ -+; This profile path is intended to control the desktop speaker, not -+; the headphones. But it should not hurt if we leave the headphone -+; jack enabled nonetheless. -+[Element Headphone] -+switch = mute -+volume = zero -+ -+[Element Headphone2] -+switch = mute -+volume = zero -+ -+[Element Speaker] -+switch = off -+volume = off -+ -+[Element Desktop Speaker] -+required = any -+switch = mute -+volume = merge -+override-map.1 = all -+override-map.2 = all-left,all-right -+ -+[Element Front] -+switch = mute -+volume = merge -+override-map.1 = all-front -+override-map.2 = front-left,front-right -+ -+[Element Rear] -+switch = mute -+volume = merge -+override-map.1 = all-rear -+override-map.2 = rear-left,rear-right -+ -+[Element Surround] -+switch = mute -+volume = merge -+override-map.1 = all-rear -+override-map.2 = rear-left,rear-right -+ -+[Element Side] -+switch = mute -+volume = merge -+override-map.1 = all-side -+override-map.2 = side-left,side-right -+ -+[Element Center] -+switch = mute -+volume = merge -+override-map.1 = all-center -+override-map.2 = all-center,all-center -+ -+[Element LFE] -+switch = mute -+volume = merge -+override-map.1 = lfe -+override-map.2 = lfe,lfe -+ -+.include analog-output.conf.common -diff --git a/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf b/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf -index f2fd31c..580c798 100644 ---- a/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf -+++ b/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf -@@ -55,6 +55,10 @@ override-map.2 = all-left,all-right - switch = off - volume = off - -+[Element Desktop Speaker] -+switch = off -+volume = off -+ - [Element Front] - switch = off - volume = off -diff --git a/src/modules/alsa/mixer/paths/analog-output-headphones.conf b/src/modules/alsa/mixer/paths/analog-output-headphones.conf -index 2131cfe..79ebc7f 100644 ---- a/src/modules/alsa/mixer/paths/analog-output-headphones.conf -+++ b/src/modules/alsa/mixer/paths/analog-output-headphones.conf -@@ -55,6 +55,10 @@ volume = zero - switch = off - volume = off - -+[Element Desktop Speaker] -+switch = off -+volume = off -+ - [Element Front] - switch = off - volume = off -diff --git a/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf b/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf -index 0a43e27..67ee32f 100644 ---- a/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf -+++ b/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf -@@ -58,6 +58,10 @@ volume = merge - override-map.1 = all - override-map.2 = all-left,all-right - -+[Element Desktop Speaker] -+switch = off -+volume = off -+ - [Element Front] - switch = off - volume = off -diff --git a/src/modules/alsa/mixer/paths/analog-output-mono.conf b/src/modules/alsa/mixer/paths/analog-output-mono.conf -index 542edc4..13a2d6a 100644 ---- a/src/modules/alsa/mixer/paths/analog-output-mono.conf -+++ b/src/modules/alsa/mixer/paths/analog-output-mono.conf -@@ -55,6 +55,10 @@ volume = merge - override-map.1 = all - override-map.2 = all-left,all-right - -+[Element Desktop Speaker] -+switch = off -+volume = off -+ - [Element Front] - switch = off - volume = off -diff --git a/src/modules/alsa/mixer/paths/analog-output-speaker.conf b/src/modules/alsa/mixer/paths/analog-output-speaker.conf -index aea7853..b133a2e 100644 ---- a/src/modules/alsa/mixer/paths/analog-output-speaker.conf -+++ b/src/modules/alsa/mixer/paths/analog-output-speaker.conf -@@ -55,6 +55,10 @@ volume = merge - override-map.1 = all - override-map.2 = all-left,all-right - -+[Element Desktop Speaker] -+switch = off -+volume = off -+ - [Element Front] - switch = mute - volume = merge -diff --git a/src/modules/alsa/mixer/paths/analog-output.conf b/src/modules/alsa/mixer/paths/analog-output.conf -index d7c1223..50fc88e 100644 ---- a/src/modules/alsa/mixer/paths/analog-output.conf -+++ b/src/modules/alsa/mixer/paths/analog-output.conf -@@ -53,6 +53,10 @@ volume = zero - switch = mute - volume = off - -+[Element Desktop Speaker] -+switch = mute -+volume = off -+ - [Element Front] - switch = mute - volume = merge -diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf -index 046938f..5d352f1 100644 ---- a/src/modules/alsa/mixer/profile-sets/default.conf -+++ b/src/modules/alsa/mixer/profile-sets/default.conf -@@ -62,42 +62,42 @@ auto-profiles = yes - [Mapping analog-mono] - device-strings = hw:%f - channel-map = mono --paths-output = analog-output analog-output-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono analog-output-lfe-on-mono -+paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono analog-output-lfe-on-mono - paths-input = analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line - priority = 1 - - [Mapping analog-stereo] - device-strings = front:%f hw:%f - channel-map = left,right --paths-output = analog-output analog-output-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono analog-output-lfe-on-mono -+paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono analog-output-lfe-on-mono - paths-input = analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line - priority = 10 - - [Mapping analog-surround-40] - device-strings = surround40:%f - channel-map = front-left,front-right,rear-left,rear-right --paths-output = analog-output analog-output-speaker analog-output-lfe-on-mono -+paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono - priority = 7 - direction = output - - [Mapping analog-surround-41] - device-strings = surround41:%f - channel-map = front-left,front-right,rear-left,rear-right,lfe --paths-output = analog-output analog-output-speaker analog-output-lfe-on-mono -+paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono - priority = 8 - direction = output - - [Mapping analog-surround-50] - device-strings = surround50:%f - channel-map = front-left,front-right,rear-left,rear-right,front-center --paths-output = analog-output analog-output-speaker analog-output-lfe-on-mono -+paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono - priority = 7 - direction = output - - [Mapping analog-surround-51] - device-strings = surround51:%f - channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe --paths-output = analog-output analog-output-speaker analog-output-lfe-on-mono -+paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono - priority = 8 - direction = output - -@@ -105,7 +105,7 @@ direction = output - device-strings = surround71:%f - channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right - description = Analog Surround 7.1 --paths-output = analog-output analog-output-speaker analog-output-lfe-on-mono -+paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono - priority = 7 - direction = output - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0035-alsa-cover-Shared-Mic-Line-in-Analog-Source.diff b/packages/audio/pulseaudio/patches/0035-alsa-cover-Shared-Mic-Line-in-Analog-Source.diff deleted file mode 100644 index 08b57de3e0..0000000000 --- a/packages/audio/pulseaudio/patches/0035-alsa-cover-Shared-Mic-Line-in-Analog-Source.diff +++ /dev/null @@ -1,49 +0,0 @@ -From 7d6bab0d003386baba3ff3fad4cc3caa5839b361 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 15 Feb 2010 23:39:12 +0100 -Subject: [PATCH 35/62] alsa: cover 'Shared Mic/Line in', 'Analog Source' - -https://bugzilla.redhat.com/show_bug.cgi?id=558638 ---- - .../alsa/mixer/paths/analog-input.conf.common | 25 ++++++++++++++++++++ - 1 files changed, 25 insertions(+), 0 deletions(-) - -diff --git a/src/modules/alsa/mixer/paths/analog-input.conf.common b/src/modules/alsa/mixer/paths/analog-input.conf.common -index fbdc8fb..66c3dda 100644 ---- a/src/modules/alsa/mixer/paths/analog-input.conf.common -+++ b/src/modules/alsa/mixer/paths/analog-input.conf.common -@@ -277,6 +277,31 @@ name = input-microphone - [Option Digital Input Source:Digital Mic 2] - name = input-microphone - -+;;; 'Analog Source' -+ -+[Element Analog Source] -+enumeration = select -+ -+[Option Analog Source:Mic] -+name = input-microphone -+ -+[Option Analog Source:Line in] -+name = input-linein -+ -+[Option Analog Source:Aux] -+name = input -+ -+;;; 'Shared Mic/Line in' -+ -+[Element Shared Mic/Line in] -+enumeration = select -+ -+[Option Shared Mic/Line in:Mic in] -+name = input-microphone -+ -+[Option Shared Mic/Line in:Line in] -+name = input-linein -+ - ;;; Various Boosts - - [Element Capture Boost] --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0036-alsa-cover-Internal-Mic-elements.diff b/packages/audio/pulseaudio/patches/0036-alsa-cover-Internal-Mic-elements.diff deleted file mode 100644 index 3329bd8e6e..0000000000 --- a/packages/audio/pulseaudio/patches/0036-alsa-cover-Internal-Mic-elements.diff +++ /dev/null @@ -1,214 +0,0 @@ -From 0c836aacd8be34bcb5e02581495f7d30a5fbee05 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 16 Feb 2010 00:58:49 +0100 -Subject: [PATCH 36/62] alsa: cover "Internal Mic" elements - -https://bugzilla.redhat.com/show_bug.cgi?id=562216 ---- - src/modules/alsa/mixer/paths/analog-input-aux.conf | 4 + - src/modules/alsa/mixer/paths/analog-input-fm.conf | 4 + - .../mixer/paths/analog-input-internal-mic.conf | 67 ++++++++++++++++++++ - .../alsa/mixer/paths/analog-input-linein.conf | 4 + - .../alsa/mixer/paths/analog-input-mic-line.conf | 4 + - src/modules/alsa/mixer/paths/analog-input-mic.conf | 4 + - .../alsa/mixer/paths/analog-input-tvtuner.conf | 4 + - .../alsa/mixer/paths/analog-input-video.conf | 4 + - src/modules/alsa/mixer/paths/analog-input.conf | 3 + - 9 files changed, 98 insertions(+), 0 deletions(-) - create mode 100644 src/modules/alsa/mixer/paths/analog-input-internal-mic.conf - -diff --git a/src/modules/alsa/mixer/paths/analog-input-aux.conf b/src/modules/alsa/mixer/paths/analog-input-aux.conf -index db78eb4..3a7cb7b 100644 ---- a/src/modules/alsa/mixer/paths/analog-input-aux.conf -+++ b/src/modules/alsa/mixer/paths/analog-input-aux.conf -@@ -32,6 +32,10 @@ override-map.2 = all-left,all-right - switch = off - volume = off - -+[Element Internal Mic] -+switch = off -+volume = off -+ - [Element Line] - switch = off - volume = off -diff --git a/src/modules/alsa/mixer/paths/analog-input-fm.conf b/src/modules/alsa/mixer/paths/analog-input-fm.conf -index baf674a..7f150e3 100644 ---- a/src/modules/alsa/mixer/paths/analog-input-fm.conf -+++ b/src/modules/alsa/mixer/paths/analog-input-fm.conf -@@ -32,6 +32,10 @@ override-map.2 = all-left,all-right - switch = off - volume = off - -+[Element Internal Mic] -+switch = off -+volume = off -+ - [Element Line] - switch = off - volume = off -diff --git a/src/modules/alsa/mixer/paths/analog-input-internal-mic.conf b/src/modules/alsa/mixer/paths/analog-input-internal-mic.conf -new file mode 100644 -index 0000000..70cd512 ---- /dev/null -+++ b/src/modules/alsa/mixer/paths/analog-input-internal-mic.conf -@@ -0,0 +1,67 @@ -+# This file is part of PulseAudio. -+# -+# PulseAudio is free software; you can redistribute it and/or modify -+# it under the terms of the GNU Lesser General Public License as -+# published by the Free Software Foundation; either version 2.1 of the -+# License, or (at your option) any later version. -+# -+# PulseAudio 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 -+# General Public License for more details. -+# -+# You should have received a copy of the GNU Lesser General Public License -+# along with PulseAudio; if not, write to the Free Software Foundation, -+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -+ -+; For devices where a 'Internal Mic' element exists -+; -+; See analog-output.conf.common for an explanation on the directives -+ -+[General] -+priority = 90 -+name = analog-input-microphone -+ -+[Element Capture] -+switch = mute -+volume = merge -+override-map.1 = all -+override-map.2 = all-left,all-right -+ -+[Element Mic] -+switch = off -+volume = off -+ -+[Element Internal Mic] -+required = any -+switch = mute -+volume = merge -+override-map.1 = all -+override-map.2 = all-left,all-right -+ -+[Element Line] -+switch = off -+volume = off -+ -+[Element Aux] -+switch = off -+volume = off -+ -+[Element Video] -+switch = off -+volume = off -+ -+[Element Mic/Line] -+switch = off -+volume = off -+ -+[Element TV Tuner] -+switch = off -+volume = off -+ -+[Element FM] -+switch = off -+volume = off -+ -+.include analog-input.conf.common -+.include analog-input-mic.conf.common -diff --git a/src/modules/alsa/mixer/paths/analog-input-linein.conf b/src/modules/alsa/mixer/paths/analog-input-linein.conf -index 4be5722..57568cc 100644 ---- a/src/modules/alsa/mixer/paths/analog-input-linein.conf -+++ b/src/modules/alsa/mixer/paths/analog-input-linein.conf -@@ -31,6 +31,10 @@ override-map.2 = all-left,all-right - switch = off - volume = off - -+[Element Internal Mic] -+switch = off -+volume = off -+ - [Element Line] - required = any - switch = mute -diff --git a/src/modules/alsa/mixer/paths/analog-input-mic-line.conf b/src/modules/alsa/mixer/paths/analog-input-mic-line.conf -index f7f3085..fa680aa 100644 ---- a/src/modules/alsa/mixer/paths/analog-input-mic-line.conf -+++ b/src/modules/alsa/mixer/paths/analog-input-mic-line.conf -@@ -32,6 +32,10 @@ override-map.2 = all-left,all-right - switch = off - volume = off - -+[Element Internal Mic] -+switch = off -+volume = off -+ - [Element Line] - switch = off - volume = off -diff --git a/src/modules/alsa/mixer/paths/analog-input-mic.conf b/src/modules/alsa/mixer/paths/analog-input-mic.conf -index 2a36f2f..9b8b75a 100644 ---- a/src/modules/alsa/mixer/paths/analog-input-mic.conf -+++ b/src/modules/alsa/mixer/paths/analog-input-mic.conf -@@ -35,6 +35,10 @@ volume = merge - override-map.1 = all - override-map.2 = all-left,all-right - -+[Element Internal Mic] -+switch = off -+volume = off -+ - [Element Line] - switch = off - volume = off -diff --git a/src/modules/alsa/mixer/paths/analog-input-tvtuner.conf b/src/modules/alsa/mixer/paths/analog-input-tvtuner.conf -index 8531ec7..fae3ce8 100644 ---- a/src/modules/alsa/mixer/paths/analog-input-tvtuner.conf -+++ b/src/modules/alsa/mixer/paths/analog-input-tvtuner.conf -@@ -32,6 +32,10 @@ override-map.2 = all-left,all-right - switch = off - volume = off - -+[Element Internal Mic] -+switch = off -+volume = off -+ - [Element Line] - switch = off - volume = off -diff --git a/src/modules/alsa/mixer/paths/analog-input-video.conf b/src/modules/alsa/mixer/paths/analog-input-video.conf -index 74c76f0..19f1809 100644 ---- a/src/modules/alsa/mixer/paths/analog-input-video.conf -+++ b/src/modules/alsa/mixer/paths/analog-input-video.conf -@@ -31,6 +31,10 @@ override-map.2 = all-left,all-right - switch = off - volume = off - -+[Element Internal Mic] -+switch = off -+volume = off -+ - [Element Line] - switch = off - volume = off -diff --git a/src/modules/alsa/mixer/paths/analog-input.conf b/src/modules/alsa/mixer/paths/analog-input.conf -index 5055f90..3050738 100644 ---- a/src/modules/alsa/mixer/paths/analog-input.conf -+++ b/src/modules/alsa/mixer/paths/analog-input.conf -@@ -32,6 +32,9 @@ override-map.2 = all-left,all-right - [Element Mic] - required-absent = any - -+[Element Internal Mic] -+required-absent = any -+ - [Element Line] - required-absent = any - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0037-alsa-use-default-output-port-names.diff b/packages/audio/pulseaudio/patches/0037-alsa-use-default-output-port-names.diff deleted file mode 100644 index d8b7cd28aa..0000000000 --- a/packages/audio/pulseaudio/patches/0037-alsa-use-default-output-port-names.diff +++ /dev/null @@ -1,82 +0,0 @@ -From 307bd142feef8f42d3adcea354b72f4c076470e4 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 16 Feb 2010 00:59:24 +0100 -Subject: [PATCH 37/62] alsa: use default output port names - -instead of coming up with pointless aliases, reuse the already established -names, for second headphones, and second speakers. ---- - src/modules/alsa/alsa-mixer.c | 2 -- - .../mixer/paths/analog-output-desktop-speaker.conf | 3 ++- - .../mixer/paths/analog-output-headphones-2.conf | 1 + - .../alsa/mixer/paths/analog-output-headphones.conf | 1 + - .../alsa/mixer/paths/analog-output-speaker.conf | 1 + - 5 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c -index cb814af..93f2ed0 100644 ---- a/src/modules/alsa/alsa-mixer.c -+++ b/src/modules/alsa/alsa-mixer.c -@@ -1783,9 +1783,7 @@ static int path_verify(pa_alsa_path *p) { - { "analog-output-headphones", N_("Analog Headphones") }, - { "analog-output-lfe-on-mono", N_("Analog Output (LFE)") }, - { "analog-output-mono", N_("Analog Mono Output") }, -- { "analog-output-headphones-2", N_("Analog Headphones 2") }, - { "analog-output-speaker", N_("Analog Speakers") } -- { "analog-output-desktop-speaker", N_("Analog Speakers 2") } - }; - - pa_alsa_element *e; -diff --git a/src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf b/src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf -index 9f18b25..dfdecf4 100644 ---- a/src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf -+++ b/src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf -@@ -19,7 +19,8 @@ - ; See analog-output.conf.common for an explanation on the directives - - [General] --priority = 100 -+priority = 101 -+name = analog-output-speaker - - [Element Hardware Master] - switch = mute -diff --git a/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf b/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf -index 580c798..e47543f 100644 ---- a/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf -+++ b/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf -@@ -20,6 +20,7 @@ - - [General] - priority = 89 -+name = analog-output-headphones - - [Element Hardware Master] - switch = mute -diff --git a/src/modules/alsa/mixer/paths/analog-output-headphones.conf b/src/modules/alsa/mixer/paths/analog-output-headphones.conf -index 79ebc7f..1d7bb0b 100644 ---- a/src/modules/alsa/mixer/paths/analog-output-headphones.conf -+++ b/src/modules/alsa/mixer/paths/analog-output-headphones.conf -@@ -20,6 +20,7 @@ - - [General] - priority = 90 -+name = analog-output-headphones - - [Element Hardware Master] - switch = mute -diff --git a/src/modules/alsa/mixer/paths/analog-output-speaker.conf b/src/modules/alsa/mixer/paths/analog-output-speaker.conf -index b133a2e..c6916d6 100644 ---- a/src/modules/alsa/mixer/paths/analog-output-speaker.conf -+++ b/src/modules/alsa/mixer/paths/analog-output-speaker.conf -@@ -20,6 +20,7 @@ - - [General] - priority = 100 -+name = analog-output-speaker - - [Element Hardware Master] - switch = mute --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0038-build-sys-add-gobject-to-build-dependencies.diff b/packages/audio/pulseaudio/patches/0038-build-sys-add-gobject-to-build-dependencies.diff deleted file mode 100644 index c424d2e393..0000000000 --- a/packages/audio/pulseaudio/patches/0038-build-sys-add-gobject-to-build-dependencies.diff +++ /dev/null @@ -1,27 +0,0 @@ -From f9b31fe5443bded4a55b0900f08f04486c3395bd Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 16 Feb 2010 01:43:00 +0100 -Subject: [PATCH 38/62] build-sys: add gobject to build dependencies - -Since we call g_object_unref() we need to link against gobject in -compliance of the new Fedora implicit DSO linking policy. ---- - configure.ac | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/configure.ac b/configure.ac -index c9ec490..1b80788 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -893,7 +893,7 @@ AC_ARG_ENABLE([gconf], - [gconf=auto]) - - if test "x${gconf}" != xno ; then -- PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ], -+ PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], - HAVE_GCONF=1, - [ - HAVE_GCONF=0 --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0039-padsp-emulate-dev-audio-too.diff b/packages/audio/pulseaudio/patches/0039-padsp-emulate-dev-audio-too.diff deleted file mode 100644 index 4b20ef245e..0000000000 --- a/packages/audio/pulseaudio/patches/0039-padsp-emulate-dev-audio-too.diff +++ /dev/null @@ -1,142 +0,0 @@ -From ff2474e5fc9eaa4c7f687e71a39a5bed4f56c259 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 16 Feb 2010 02:03:45 +0100 -Subject: [PATCH 39/62] padsp: emulate /dev/audio, too - -https://bugzilla.redhat.com/show_bug.cgi?id=561262 ---- - src/utils/padsp.c | 55 +++++++++++++++++++--------------------------------- - 1 files changed, 20 insertions(+), 35 deletions(-) - -diff --git a/src/utils/padsp.c b/src/utils/padsp.c -index 2ed0a03..fb756d3 100644 ---- a/src/utils/padsp.c -+++ b/src/utils/padsp.c -@@ -1458,11 +1458,11 @@ static int real_open(const char *filename, int flags, mode_t mode) { - return _open(filename, flags, mode); - } - -- if (filename && dsp_cloak_enable() && (strcmp(filename, "/dev/dsp") == 0 || strcmp(filename, "/dev/adsp") == 0)) -+ if (filename && dsp_cloak_enable() && (pa_streq(filename, "/dev/dsp") || pa_streq(filename, "/dev/adsp") || pa_streq(filename, "/dev/audio"))) - r = dsp_open(flags, &_errno); -- else if (filename && mixer_cloak_enable() && strcmp(filename, "/dev/mixer") == 0) -+ else if (filename && mixer_cloak_enable() && pa_streq(filename, "/dev/mixer")) - r = mixer_open(flags, &_errno); -- else if (filename && sndstat_cloak_enable() && strcmp(filename, "/dev/sndstat") == 0) -+ else if (filename && sndstat_cloak_enable() && pa_streq(filename, "/dev/sndstat")) - r = sndstat_open(flags, &_errno); - else { - function_exit(); -@@ -2383,15 +2383,21 @@ int close(int fd) { - return 0; - } - -+static pa_bool_t is_audio_device_node(const char *path) { -+ return -+ pa_streq(path, "/dev/dsp") || -+ pa_streq(path, "/dev/adsp") || -+ pa_streq(path, "/dev/audio") || -+ pa_streq(path, "/dev/sndstat") || -+ pa_streq(path, "/dev/mixer"); -+} -+ - int access(const char *pathname, int mode) { - - debug(DEBUG_LEVEL_VERBOSE, __FILE__": access(%s)\n", pathname?pathname:"NULL"); - - if (!pathname || -- (strcmp(pathname, "/dev/dsp") != 0 && -- strcmp(pathname, "/dev/adsp") != 0 && -- strcmp(pathname, "/dev/sndstat") != 0 && -- strcmp(pathname, "/dev/mixer") != 0 )) { -+ !is_audio_device_node(pathname)) { - LOAD_ACCESS_FUNC(); - return _access(pathname, mode); - } -@@ -2417,10 +2423,7 @@ int stat(const char *pathname, struct stat *buf) { - - if (!pathname || - !buf || -- ( strcmp(pathname, "/dev/dsp") != 0 && -- strcmp(pathname, "/dev/adsp") != 0 && -- strcmp(pathname, "/dev/sndstat") != 0 && -- strcmp(pathname, "/dev/mixer") != 0 )) { -+ !is_audio_device_node(pathname)) { - debug(DEBUG_LEVEL_VERBOSE, __FILE__": stat(%s)\n", pathname?pathname:"NULL"); - LOAD_STAT_FUNC(); - return _stat(pathname, buf); -@@ -2474,10 +2477,7 @@ int stat64(const char *pathname, struct stat64 *buf) { - - if (!pathname || - !buf || -- ( strcmp(pathname, "/dev/dsp") != 0 && -- strcmp(pathname, "/dev/adsp") != 0 && -- strcmp(pathname, "/dev/sndstat") != 0 && -- strcmp(pathname, "/dev/mixer") != 0 )) { -+ !is_audio_device_node(pathname)) { - LOAD_STAT64_FUNC(); - return _stat64(pathname, buf); - } -@@ -2519,10 +2519,7 @@ int open64(const char *filename, int flags, ...) { - } - - if (!filename || -- ( strcmp(filename, "/dev/dsp") != 0 && -- strcmp(filename, "/dev/adsp") != 0 && -- strcmp(filename, "/dev/sndstat") != 0 && -- strcmp(filename, "/dev/mixer") != 0 )) { -+ !is_audio_device_node(filename)) { - LOAD_OPEN64_FUNC(); - return _open64(filename, flags, mode); - } -@@ -2539,10 +2536,7 @@ int __xstat(int ver, const char *pathname, struct stat *buf) { - - if (!pathname || - !buf || -- ( strcmp(pathname, "/dev/dsp") != 0 && -- strcmp(pathname, "/dev/adsp") != 0 && -- strcmp(pathname, "/dev/sndstat") != 0 && -- strcmp(pathname, "/dev/mixer") != 0 )) { -+ !is_audio_device_node(pathname)) { - LOAD_XSTAT_FUNC(); - return ___xstat(ver, pathname, buf); - } -@@ -2562,10 +2556,7 @@ int __xstat64(int ver, const char *pathname, struct stat64 *buf) { - - if (!pathname || - !buf || -- ( strcmp(pathname, "/dev/dsp") != 0 && -- strcmp(pathname, "/dev/adsp") != 0 && -- strcmp(pathname, "/dev/sndstat") != 0 && -- strcmp(pathname, "/dev/mixer") != 0 )) { -+ !is_audio_device_node(pathname)) { - LOAD_XSTAT64_FUNC(); - return ___xstat64(ver, pathname, buf); - } -@@ -2591,10 +2582,7 @@ FILE* fopen(const char *filename, const char *mode) { - - if (!filename || - !mode || -- ( strcmp(filename, "/dev/dsp") != 0 && -- strcmp(filename, "/dev/adsp") != 0 && -- strcmp(filename, "/dev/sndstat") != 0 && -- strcmp(filename, "/dev/mixer") != 0 )) { -+ !is_audio_device_node(filename)) { - LOAD_FOPEN_FUNC(); - return _fopen(filename, mode); - } -@@ -2634,10 +2622,7 @@ FILE *fopen64(const char *filename, const char *mode) { - - if (!filename || - !mode || -- ( strcmp(filename, "/dev/dsp") != 0 && -- strcmp(filename, "/dev/adsp") != 0 && -- strcmp(filename, "/dev/sndstat") != 0 && -- strcmp(filename, "/dev/mixer") != 0 )) { -+ !is_audio_device_node(filename)) { - LOAD_FOPEN64_FUNC(); - return _fopen64(filename, mode); - } --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0040-dbus-first-restart-timer-then-dispatch-it.diff b/packages/audio/pulseaudio/patches/0040-dbus-first-restart-timer-then-dispatch-it.diff deleted file mode 100644 index 93e97734d1..0000000000 --- a/packages/audio/pulseaudio/patches/0040-dbus-first-restart-timer-then-dispatch-it.diff +++ /dev/null @@ -1,92 +0,0 @@ -From 96592c21150e789156153dcebd14e201cd41cbeb Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 16 Feb 2010 02:49:44 +0100 -Subject: [PATCH 40/62] dbus: first restart timer, then dispatch it - -This makes sure that we don't access the timer after it might have been -destroyed already from the dbus timeout callback. - -https://bugzilla.redhat.com/attachment.cgi?id=389952 ---- - src/pulsecore/dbus-util.c | 29 ++++++++++++++++------------- - 1 files changed, 16 insertions(+), 13 deletions(-) - -diff --git a/src/pulsecore/dbus-util.c b/src/pulsecore/dbus-util.c -index 4e6148f..40b64a0 100644 ---- a/src/pulsecore/dbus-util.c -+++ b/src/pulsecore/dbus-util.c -@@ -44,17 +44,16 @@ struct pa_dbus_wrap_connection { - }; - - struct timeout_data { -- pa_dbus_wrap_connection *c; -+ pa_dbus_wrap_connection *connection; - DBusTimeout *timeout; - }; - - static void dispatch_cb(pa_mainloop_api *ea, pa_defer_event *ev, void *userdata) { - DBusConnection *conn = userdata; - -- if (dbus_connection_dispatch(conn) == DBUS_DISPATCH_COMPLETE) { -+ if (dbus_connection_dispatch(conn) == DBUS_DISPATCH_COMPLETE) - /* no more data to process, disable the deferred */ - ea->defer_enable(ev, 0); -- } - } - - /* DBusDispatchStatusFunction callback for the pa mainloop */ -@@ -131,13 +130,17 @@ static void handle_time_event(pa_mainloop_api *ea, pa_time_event* e, const struc - struct timeout_data *d = userdata; - - pa_assert(d); -- pa_assert(d->c); -+ pa_assert(d->connection); - - if (dbus_timeout_get_enabled(d->timeout)) { -- dbus_timeout_handle(d->timeout); -+ /* Restart it for the next scheduled time. We do this before -+ * calling dbus_timeout_handle() to make sure that the time -+ * event is still around. */ -+ ea->time_restart(e, pa_timeval_rtstore(&tv, -+ pa_timeval_load(t) + dbus_timeout_get_interval(d->timeout) * PA_USEC_PER_MSEC, -+ d->connection->use_rtclock)); - -- /* restart it for the next scheduled time */ -- ea->time_restart(e, pa_timeval_rtstore(&tv, pa_timeval_load(t) + dbus_timeout_get_interval(d->timeout) * PA_USEC_PER_MSEC, d->c->use_rtclock)); -+ dbus_timeout_handle(d->timeout); - } - } - -@@ -207,7 +210,7 @@ static dbus_bool_t add_timeout(DBusTimeout *timeout, void *data) { - return FALSE; - - d = pa_xnew(struct timeout_data, 1); -- d->c = c; -+ d->connection = c; - d->timeout = timeout; - ev = c->mainloop->time_new(c->mainloop, pa_timeval_rtstore(&tv, pa_rtclock_now() + dbus_timeout_get_interval(timeout) * PA_USEC_PER_MSEC, c->use_rtclock), handle_time_event, d); - c->mainloop->time_set_destroy(ev, time_event_destroy_cb); -@@ -236,15 +239,15 @@ static void toggle_timeout(DBusTimeout *timeout, void *data) { - struct timeval tv; - - pa_assert(d); -- pa_assert(d->c); -+ pa_assert(d->connection); - pa_assert(timeout); - - pa_assert_se(ev = dbus_timeout_get_data(timeout)); - -- if (dbus_timeout_get_enabled(timeout)) { -- d->c->mainloop->time_restart(ev, pa_timeval_rtstore(&tv, pa_rtclock_now() + dbus_timeout_get_interval(timeout) * PA_USEC_PER_MSEC, d->c->use_rtclock)); -- } else -- d->c->mainloop->time_restart(ev, pa_timeval_rtstore(&tv, PA_USEC_INVALID, d->c->use_rtclock)); -+ if (dbus_timeout_get_enabled(timeout)) -+ d->connection->mainloop->time_restart(ev, pa_timeval_rtstore(&tv, pa_rtclock_now() + dbus_timeout_get_interval(timeout) * PA_USEC_PER_MSEC, d->connection->use_rtclock)); -+ else -+ d->connection->mainloop->time_restart(ev, pa_timeval_rtstore(&tv, PA_USEC_INVALID, d->connection->use_rtclock)); - } - - static void wakeup_main(void *userdata) { --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0041-fdsem-be-more-verbose-when-reading-from-eventfd-fail.diff b/packages/audio/pulseaudio/patches/0041-fdsem-be-more-verbose-when-reading-from-eventfd-fail.diff deleted file mode 100644 index 9267fe1f2b..0000000000 --- a/packages/audio/pulseaudio/patches/0041-fdsem-be-more-verbose-when-reading-from-eventfd-fail.diff +++ /dev/null @@ -1,111 +0,0 @@ -From 5e2af2d3f3dea473d46b33a5e90a993ac5da3f35 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 16 Feb 2010 03:36:44 +0100 -Subject: [PATCH 41/62] fdsem: be more verbose when reading from eventfd fails. - -Apperently reading from an eventfd can fail, which results in an assert -to be hit. I am not sure about the reason for the failure, but in -attempt to track down the issue the next time is hit this prints a more -useful log message. - -https://bugzilla.redhat.com/attachment.cgi?id=386380 ---- - src/pulsecore/fdsem.c | 41 +++++++++++++++++++++++++++++++++++------ - 1 files changed, 35 insertions(+), 6 deletions(-) - -diff --git a/src/pulsecore/fdsem.c b/src/pulsecore/fdsem.c -index 380f34f..00836f9 100644 ---- a/src/pulsecore/fdsem.c -+++ b/src/pulsecore/fdsem.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - #include - - #ifndef HAVE_PIPE -@@ -159,7 +160,12 @@ static void flush(pa_fdsem *f) { - uint64_t u; - - if ((r = read(f->efd, &u, sizeof(u))) != sizeof(u)) { -- pa_assert(r < 0 && errno == EINTR); -+ -+ if (r >= 0 || errno != EINTR) { -+ pa_log_error("Invalid read from eventfd: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); -+ pa_assert_not_reached(); -+ } -+ - continue; - } - r = (ssize_t) u; -@@ -167,7 +173,12 @@ static void flush(pa_fdsem *f) { - #endif - - if ((r = read(f->fds[0], &x, sizeof(x))) <= 0) { -- pa_assert(r < 0 && errno == EINTR); -+ -+ if (r >= 0 || errno != EINTR) { -+ pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); -+ pa_assert_not_reached(); -+ } -+ - continue; - } - -@@ -192,14 +203,22 @@ void pa_fdsem_post(pa_fdsem *f) { - uint64_t u = 1; - - if ((r = write(f->efd, &u, sizeof(u))) != sizeof(u)) { -- pa_assert(r < 0 && errno == EINTR); -+ if (r >= 0 || errno != EINTR) { -+ pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); -+ pa_assert_not_reached(); -+ } -+ - continue; - } - } else - #endif - - if ((r = write(f->fds[1], &x, 1)) != 1) { -- pa_assert(r < 0 && errno == EINTR); -+ if (r >= 0 || errno != EINTR) { -+ pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); -+ pa_assert_not_reached(); -+ } -+ - continue; - } - -@@ -228,7 +247,12 @@ void pa_fdsem_wait(pa_fdsem *f) { - uint64_t u; - - if ((r = read(f->efd, &u, sizeof(u))) != sizeof(u)) { -- pa_assert(r < 0 && errno == EINTR); -+ -+ if (r >= 0 || errno != EINTR) { -+ pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); -+ pa_assert_not_reached(); -+ } -+ - continue; - } - -@@ -237,7 +261,12 @@ void pa_fdsem_wait(pa_fdsem *f) { - #endif - - if ((r = read(f->fds[0], &x, sizeof(x))) <= 0) { -- pa_assert(r < 0 && errno == EINTR); -+ -+ if (r >= 0 || errno != EINTR) { -+ pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); -+ pa_assert_not_reached(); -+ } -+ - continue; - } - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0042-pacat-always-fully-fulfill-write-requests.diff b/packages/audio/pulseaudio/patches/0042-pacat-always-fully-fulfill-write-requests.diff deleted file mode 100644 index c69438f1fe..0000000000 --- a/packages/audio/pulseaudio/patches/0042-pacat-always-fully-fulfill-write-requests.diff +++ /dev/null @@ -1,79 +0,0 @@ -From 19fa81bf1375032cb1a27c7715a28a52b238d4cb Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 18 Feb 2010 01:54:51 +0100 -Subject: [PATCH 42/62] pacat: always fully fulfill write requests - -Make sure we always fulfill write requests from the server. If we don't -the server won't ask us again and playback will stay stuck. - -https://tango.0pointer.de/pipermail/pulseaudio-discuss/2010-February/006611.html ---- - src/utils/pacat.c | 47 ++++++++++++++++++++++++++++++----------------- - 1 files changed, 30 insertions(+), 17 deletions(-) - -diff --git a/src/utils/pacat.c b/src/utils/pacat.c -index a5d2e9a..d136f6b 100644 ---- a/src/utils/pacat.c -+++ b/src/utils/pacat.c -@@ -195,28 +195,41 @@ static void stream_write_callback(pa_stream *s, size_t length, void *userdata) { - - pa_assert(sndfile); - -- if (pa_stream_begin_write(s, &data, &length) < 0) { -- pa_log(_("pa_stream_begin_write() failed: %s"), pa_strerror(pa_context_errno(context))); -- quit(1); -- return; -- } -+ for (;;) { -+ size_t data_length = length; - -- if (readf_function) { -- size_t k = pa_frame_size(&sample_spec); -+ if (pa_stream_begin_write(s, &data, &data_length) < 0) { -+ pa_log(_("pa_stream_begin_write() failed: %s"), pa_strerror(pa_context_errno(context))); -+ quit(1); -+ return; -+ } - -- if ((bytes = readf_function(sndfile, data, (sf_count_t) (length/k))) > 0) -- bytes *= (sf_count_t) k; -+ if (readf_function) { -+ size_t k = pa_frame_size(&sample_spec); - -- } else -- bytes = sf_read_raw(sndfile, data, (sf_count_t) length); -+ if ((bytes = readf_function(sndfile, data, (sf_count_t) (data_length/k))) > 0) -+ bytes *= (sf_count_t) k; - -- if (bytes > 0) -- pa_stream_write(s, data, (size_t) bytes, NULL, 0, PA_SEEK_RELATIVE); -- else -- pa_stream_cancel_write(s); -+ } else -+ bytes = sf_read_raw(sndfile, data, (sf_count_t) data_length); - -- if (bytes < (sf_count_t) length) -- start_drain(); -+ if (bytes > 0) -+ pa_stream_write(s, data, (size_t) bytes, NULL, 0, PA_SEEK_RELATIVE); -+ else -+ pa_stream_cancel_write(s); -+ -+ /* EOF? */ -+ if (bytes < (sf_count_t) data_length) { -+ start_drain(); -+ break; -+ } -+ -+ /* Request fulfilled */ -+ if ((size_t) bytes >= length) -+ break; -+ -+ length -= bytes; -+ } - } - } - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0043-pacmd-store-away-fd-type.diff b/packages/audio/pulseaudio/patches/0043-pacmd-store-away-fd-type.diff deleted file mode 100644 index d71cb81aa8..0000000000 --- a/packages/audio/pulseaudio/patches/0043-pacmd-store-away-fd-type.diff +++ /dev/null @@ -1,60 +0,0 @@ -From 96ec29c6b2a40d3851f46587143a4ba6dce29d0d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 18 Feb 2010 02:32:35 +0100 -Subject: [PATCH 43/62] pacmd: store away fd type - ---- - src/utils/pacmd.c | 9 +++++---- - 1 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/src/utils/pacmd.c b/src/utils/pacmd.c -index 5ef57e3..59aae48 100644 ---- a/src/utils/pacmd.c -+++ b/src/utils/pacmd.c -@@ -61,6 +61,7 @@ int main(int argc, char*argv[]) { - char *cli; - pa_bool_t ibuf_eof, obuf_eof, ibuf_closed, obuf_closed; - struct pollfd pollfd[N_WATCH]; -+ int stdin_type = 0, stdout_type = 0, fd_type = 0; - - setlocale(LC_ALL, ""); - bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR); -@@ -166,7 +167,7 @@ int main(int argc, char*argv[]) { - ssize_t r; - pa_assert(!ibuf_length); - -- if ((r = pa_read(STDIN_FILENO, ibuf, sizeof(ibuf), NULL)) <= 0) { -+ if ((r = pa_read(STDIN_FILENO, ibuf, sizeof(ibuf), &stdin_type)) <= 0) { - if (r < 0) { - pa_log(_("read(): %s"), strerror(errno)); - goto fail; -@@ -183,7 +184,7 @@ int main(int argc, char*argv[]) { - ssize_t r; - pa_assert(!obuf_length); - -- if ((r = pa_read(fd, obuf, sizeof(obuf), NULL)) <= 0) { -+ if ((r = pa_read(fd, obuf, sizeof(obuf), &fd_type)) <= 0) { - if (r < 0) { - pa_log(_("read(): %s"), strerror(errno)); - goto fail; -@@ -203,7 +204,7 @@ int main(int argc, char*argv[]) { - ssize_t r; - pa_assert(obuf_length); - -- if ((r = pa_write(STDOUT_FILENO, obuf + obuf_index, obuf_length, NULL)) < 0) { -+ if ((r = pa_write(STDOUT_FILENO, obuf + obuf_index, obuf_length, &stdout_type)) < 0) { - pa_log(_("write(): %s"), strerror(errno)); - goto fail; - } -@@ -219,7 +220,7 @@ int main(int argc, char*argv[]) { - ssize_t r; - pa_assert(ibuf_length); - -- if ((r = pa_write(fd, ibuf + ibuf_index, ibuf_length, NULL)) < 0) { -+ if ((r = pa_write(fd, ibuf + ibuf_index, ibuf_length, &fd_type)) < 0) { - pa_log(_("write(): %s"), strerror(errno)); - goto fail; - } --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0044-pacmd-don-t-enter-busy-loop-when-reading-from-stdin-.diff b/packages/audio/pulseaudio/patches/0044-pacmd-don-t-enter-busy-loop-when-reading-from-stdin-.diff deleted file mode 100644 index 5066980811..0000000000 --- a/packages/audio/pulseaudio/patches/0044-pacmd-don-t-enter-busy-loop-when-reading-from-stdin-.diff +++ /dev/null @@ -1,257 +0,0 @@ -From 6e064d1d6d0292d230c752b1f41034fd0754487b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 18 Feb 2010 03:28:56 +0100 -Subject: [PATCH 44/62] pacmd: don't enter busy loop when reading from stdin very early - -pointed out in: - -https://tango.0pointer.de/pipermail/pulseaudio-discuss/2010-January/006365.html ---- - src/utils/pacmd.c | 186 ++++++++++++++++++++++++++++------------------------ - 1 files changed, 100 insertions(+), 86 deletions(-) - -diff --git a/src/utils/pacmd.c b/src/utils/pacmd.c -index 59aae48..87661e3 100644 ---- a/src/utils/pacmd.c -+++ b/src/utils/pacmd.c -@@ -45,13 +45,6 @@ - - int main(int argc, char*argv[]) { - -- enum { -- WATCH_STDIN, -- WATCH_STDOUT, -- WATCH_SOCKET, -- N_WATCH -- }; -- - pid_t pid ; - int fd = -1; - int ret = 1, i; -@@ -60,7 +53,9 @@ int main(int argc, char*argv[]) { - size_t ibuf_index, ibuf_length, obuf_index, obuf_length; - char *cli; - pa_bool_t ibuf_eof, obuf_eof, ibuf_closed, obuf_closed; -- struct pollfd pollfd[N_WATCH]; -+ struct pollfd pollfd[3]; -+ struct pollfd *watch_socket, *watch_stdin, *watch_stdout; -+ - int stdin_type = 0, stdout_type = 0, fd_type = 0; - - setlocale(LC_ALL, ""); -@@ -129,32 +124,53 @@ int main(int argc, char*argv[]) { - ibuf_eof = TRUE; - } - -- pa_zero(pollfd); -- -- pollfd[WATCH_STDIN].fd = STDIN_FILENO; -- pollfd[WATCH_STDOUT].fd = STDOUT_FILENO; -- pollfd[WATCH_SOCKET].fd = fd; -- - for (;;) { -+ struct pollfd *p; -+ - if (ibuf_eof && - obuf_eof && - ibuf_length <= 0 && - obuf_length <= 0) - break; - -- pollfd[WATCH_STDIN].events = pollfd[WATCH_STDOUT].events = pollfd[WATCH_SOCKET].events = 0; -+ if (ibuf_length <= 0 && ibuf_eof && !ibuf_closed) { -+ shutdown(fd, SHUT_WR); -+ ibuf_closed = TRUE; -+ } - -- if (obuf_length > 0) -- pollfd[WATCH_STDOUT].events |= POLLOUT; -- else if (!obuf_eof) -- pollfd[WATCH_SOCKET].events |= POLLIN; -+ if (obuf_length <= 0 && obuf_eof && !obuf_closed) { -+ shutdown(fd, SHUT_RD); -+ obuf_closed = TRUE; -+ } -+ -+ pa_zero(pollfd); -+ -+ p = pollfd; - -- if (ibuf_length > 0) -- pollfd[WATCH_SOCKET].events |= POLLOUT; -- else if (!ibuf_eof) -- pollfd[WATCH_STDIN].events |= POLLIN; -+ if (ibuf_length > 0 || (!obuf_eof && obuf_length <= 0)) { -+ watch_socket = p++; -+ watch_socket->fd = fd; -+ watch_socket->events = -+ (ibuf_length > 0 ? POLLOUT : 0) | -+ (!obuf_eof && obuf_length <= 0 ? POLLIN : 0); -+ } else -+ watch_socket = NULL; - -- if (poll(pollfd, N_WATCH, -1) < 0) { -+ if (!ibuf_eof && ibuf_length <= 0) { -+ watch_stdin = p++; -+ watch_stdin->fd = STDIN_FILENO; -+ watch_stdin->events = POLLIN; -+ } else -+ watch_stdin = NULL; -+ -+ if (obuf_length > 0) { -+ watch_stdout = p++; -+ watch_stdout->fd = STDOUT_FILENO; -+ watch_stdout->events = POLLOUT; -+ } else -+ watch_stdout = NULL; -+ -+ if (poll(pollfd, p-pollfd, -1) < 0) { - - if (errno == EINTR) - continue; -@@ -163,82 +179,80 @@ int main(int argc, char*argv[]) { - goto fail; - } - -- if (pollfd[WATCH_STDIN].revents & POLLIN) { -- ssize_t r; -- pa_assert(!ibuf_length); -- -- if ((r = pa_read(STDIN_FILENO, ibuf, sizeof(ibuf), &stdin_type)) <= 0) { -- if (r < 0) { -- pa_log(_("read(): %s"), strerror(errno)); -- goto fail; -+ if (watch_stdin) { -+ if (watch_stdin->revents & POLLIN) { -+ ssize_t r; -+ pa_assert(ibuf_length <= 0); -+ -+ if ((r = pa_read(STDIN_FILENO, ibuf, sizeof(ibuf), &stdin_type)) <= 0) { -+ if (r < 0) { -+ pa_log(_("read(): %s"), strerror(errno)); -+ goto fail; -+ } -+ -+ ibuf_eof = TRUE; -+ } else { -+ ibuf_length = (size_t) r; -+ ibuf_index = 0; - } -- -+ } else if (watch_stdin->revents & POLLHUP) - ibuf_eof = TRUE; -- } else { -- ibuf_length = (size_t) r; -- ibuf_index = 0; -- } - } - -- if (pollfd[WATCH_SOCKET].revents & POLLIN) { -- ssize_t r; -- pa_assert(!obuf_length); -- -- if ((r = pa_read(fd, obuf, sizeof(obuf), &fd_type)) <= 0) { -- if (r < 0) { -- pa_log(_("read(): %s"), strerror(errno)); -- goto fail; -+ if (watch_socket) { -+ if (watch_socket->revents & POLLIN) { -+ ssize_t r; -+ pa_assert(obuf_length <= 0); -+ -+ if ((r = pa_read(fd, obuf, sizeof(obuf), &fd_type)) <= 0) { -+ if (r < 0) { -+ pa_log(_("read(): %s"), strerror(errno)); -+ goto fail; -+ } -+ -+ obuf_eof = TRUE; -+ } else { -+ obuf_length = (size_t) r; -+ obuf_index = 0; - } -- -+ } else if (watch_socket->revents & POLLHUP) - obuf_eof = TRUE; -- } else { -- obuf_length = (size_t) r; -- obuf_index = 0; -- } - } - -- if (pollfd[WATCH_STDOUT].revents & POLLHUP) { -- obuf_eof = TRUE; -- obuf_length = 0; -- } else if (pollfd[WATCH_STDOUT].revents & POLLOUT) { -- ssize_t r; -- pa_assert(obuf_length); -- -- if ((r = pa_write(STDOUT_FILENO, obuf + obuf_index, obuf_length, &stdout_type)) < 0) { -- pa_log(_("write(): %s"), strerror(errno)); -- goto fail; -- } -- -- obuf_length -= (size_t) r; -- obuf_index += obuf_index; -- } -+ if (watch_stdout) { -+ if (watch_stdout->revents & POLLHUP) { -+ obuf_eof = TRUE; -+ obuf_length = 0; -+ } else if (watch_stdout->revents & POLLOUT) { -+ ssize_t r; -+ pa_assert(obuf_length > 0); - -- if (pollfd[WATCH_SOCKET].revents & POLLHUP) { -- ibuf_eof = TRUE; -- ibuf_length = 0; -- } if (pollfd[WATCH_SOCKET].revents & POLLOUT) { -- ssize_t r; -- pa_assert(ibuf_length); -+ if ((r = pa_write(STDOUT_FILENO, obuf + obuf_index, obuf_length, &stdout_type)) < 0) { -+ pa_log(_("write(): %s"), strerror(errno)); -+ goto fail; -+ } - -- if ((r = pa_write(fd, ibuf + ibuf_index, ibuf_length, &fd_type)) < 0) { -- pa_log(_("write(): %s"), strerror(errno)); -- goto fail; -+ obuf_length -= (size_t) r; -+ obuf_index += obuf_index; - } -- -- ibuf_length -= (size_t) r; -- ibuf_index += obuf_index; - } - -- if (ibuf_length <= 0 && ibuf_eof && !ibuf_closed) { -- pa_close(STDIN_FILENO); -- shutdown(fd, SHUT_WR); -- ibuf_closed = TRUE; -- } -+ if (watch_socket) { -+ if (watch_socket->revents & POLLHUP) { -+ ibuf_eof = TRUE; -+ ibuf_length = 0; -+ } if (watch_socket->revents & POLLOUT) { -+ ssize_t r; -+ pa_assert(ibuf_length > 0); - -- if (obuf_length <= 0 && obuf_eof && !obuf_closed) { -- shutdown(fd, SHUT_RD); -- pa_close(STDOUT_FILENO); -- obuf_closed = TRUE; -+ if ((r = pa_write(fd, ibuf + ibuf_index, ibuf_length, &fd_type)) < 0) { -+ pa_log(_("write(): %s"), strerror(errno)); -+ goto fail; -+ } -+ -+ ibuf_length -= (size_t) r; -+ ibuf_index += obuf_index; -+ } - } - } - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0045-shm-don-t-complain-about-missing-SHM-segments.diff b/packages/audio/pulseaudio/patches/0045-shm-don-t-complain-about-missing-SHM-segments.diff deleted file mode 100644 index 8f2af7aeeb..0000000000 --- a/packages/audio/pulseaudio/patches/0045-shm-don-t-complain-about-missing-SHM-segments.diff +++ /dev/null @@ -1,29 +0,0 @@ -From dfe27f623765b20bdaff2306109f89baca67d0cf Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 19 Feb 2010 03:29:36 +0100 -Subject: [PATCH 45/62] shm: don't complain about missing SHM segments - -If two clients try to cleanup the SHM directory at the same time, they -might want to open and then delete the same segment at the same time, in -which case one client might win, the other one lose. In this case, don't -warn about ENOENT. ---- - src/pulsecore/shm.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/pulsecore/shm.c b/src/pulsecore/shm.c -index fbf777a..1e31d54 100644 ---- a/src/pulsecore/shm.c -+++ b/src/pulsecore/shm.c -@@ -286,7 +286,7 @@ int pa_shm_attach_ro(pa_shm *m, unsigned id) { - segment_name(fn, sizeof(fn), m->id = id); - - if ((fd = shm_open(fn, O_RDONLY, 0)) < 0) { -- if (errno != EACCES) -+ if (errno != EACCES && errno != ENOENT) - pa_log("shm_open() failed: %s", pa_cstrerror(errno)); - goto fail; - } --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0046-vala-fix-definition-of-INVALID_INDEX.diff b/packages/audio/pulseaudio/patches/0046-vala-fix-definition-of-INVALID_INDEX.diff deleted file mode 100644 index dbad446fbd..0000000000 --- a/packages/audio/pulseaudio/patches/0046-vala-fix-definition-of-INVALID_INDEX.diff +++ /dev/null @@ -1,25 +0,0 @@ -From 5ce18c32f6ba8202c9f17f84aaffbdbbd8df071c Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 19 Feb 2010 03:31:46 +0100 -Subject: [PATCH 46/62] vala: fix definition of INVALID_INDEX - ---- - vala/libpulse.vapi | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/vala/libpulse.vapi b/vala/libpulse.vapi -index 9e05b14..b02bb56 100644 ---- a/vala/libpulse.vapi -+++ b/vala/libpulse.vapi -@@ -46,7 +46,7 @@ namespace PulseAudio { - [CCode (cname="PA_CHECK_VERSION")] - public bool CHECK_VERSION(int major, int minor, int micro); - -- [CCode (cname="INVALID_INDEX")] -+ [CCode (cname="PA_INVALID_INDEX")] - public const uint32 INVALID_INDEX; - - [CCode (cname="pa_free_cb_t")] --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0047-vala-fix-definition-of-the-GLib-mainloop-adapter.diff b/packages/audio/pulseaudio/patches/0047-vala-fix-definition-of-the-GLib-mainloop-adapter.diff deleted file mode 100644 index 6946e6bd78..0000000000 --- a/packages/audio/pulseaudio/patches/0047-vala-fix-definition-of-the-GLib-mainloop-adapter.diff +++ /dev/null @@ -1,30 +0,0 @@ -From 6bbdd200e89bdbf180071e5281c0feb9617de81d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 19 Feb 2010 03:32:00 +0100 -Subject: [PATCH 47/62] vala: fix definition of the GLib mainloop adapter - ---- - vala/libpulse.vapi | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/vala/libpulse.vapi b/vala/libpulse.vapi -index b02bb56..d47ef73 100644 ---- a/vala/libpulse.vapi -+++ b/vala/libpulse.vapi -@@ -879,11 +879,11 @@ namespace PulseAudio { - } - - [Compact] -- [CCode (cname="pa_glib_mainloop", cprefix="pa_glib_mainloop_", free_function="pa_glib_mainloop_free")] -+ [CCode (cheader_filename="pulse/glib-mainloop.h", cname="pa_glib_mainloop", cprefix="pa_glib_mainloop_", free_function="pa_glib_mainloop_free")] - public class GLibMainLoop { - - [CCode (cname="pa_glib_mainloop_new")] -- public GLibMainLoop(); -+ public GLibMainLoop(MainContext? c = null); - - public unowned MainLoopApi get_api(); - } --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0048-Add-missing-profile-and-alsa-mixer-paths-to-src-Make.diff b/packages/audio/pulseaudio/patches/0048-Add-missing-profile-and-alsa-mixer-paths-to-src-Make.diff deleted file mode 100644 index 79eb009e62..0000000000 --- a/packages/audio/pulseaudio/patches/0048-Add-missing-profile-and-alsa-mixer-paths-to-src-Make.diff +++ /dev/null @@ -1,49 +0,0 @@ -From 047e16f2d18c20ea8d9dbb8a24175e1c4bb34d5e Mon Sep 17 00:00:00 2001 -From: Daniel T Chen -Date: Fri, 19 Feb 2010 00:23:17 -0500 -Subject: [PATCH 48/62] Add missing profile and alsa-mixer/paths to src/Makefile.am - -Commits e8cb96c and 0c836aa created mixer paths but did not update -src/Makefile.am. Building a snapshot containing these two commits -therefore results in the user being unable to adjust the volume or -(un)mute through PA. Fix this by adding the two new mixer paths -files to src/Makefile.am. - -Likewise, commit 66e1a2d created a profile for the M-Audio FastTrack -Pro USB but did not update src/Makefile.am. Fix this by adding the -profile to src/Makefile.am. ---- - src/Makefile.am | 3 +++ - 1 files changed, 3 insertions(+), 0 deletions(-) - -diff --git a/src/Makefile.am b/src/Makefile.am -index 598e77f..ffe7558 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -109,6 +109,7 @@ MODULE_LDFLAGS = -module -disable-static -avoid-version $(LDFLAGS_NOUNDEFINED) - - ALSA_PROFILES = \ - modules/alsa/mixer/profile-sets/default.conf \ -+ modules/alsa/mixer/profile-sets/maudio-fasttrack-pro.conf \ - modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf \ - modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf - -@@ -117,6 +118,7 @@ ALSA_PATHS = \ - modules/alsa/mixer/paths/analog-input.conf \ - modules/alsa/mixer/paths/analog-input.conf.common \ - modules/alsa/mixer/paths/analog-input-fm.conf \ -+ modules/alsa/mixer/paths/analog-input-internal-mic.conf \ - modules/alsa/mixer/paths/analog-input-linein.conf \ - modules/alsa/mixer/paths/analog-input-mic.conf \ - modules/alsa/mixer/paths/analog-input-mic.conf.common \ -@@ -126,6 +128,7 @@ ALSA_PATHS = \ - modules/alsa/mixer/paths/analog-output.conf \ - modules/alsa/mixer/paths/analog-output-speaker.conf \ - modules/alsa/mixer/paths/analog-output.conf.common \ -+ modules/alsa/mixer/paths/analog-output-desktop-speaker.conf \ - modules/alsa/mixer/paths/analog-output-headphones.conf \ - modules/alsa/mixer/paths/analog-output-headphones-2.conf \ - modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf \ --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0049-channelmap-Use-Subwoofer-as-pretty-name-for-LFE.diff b/packages/audio/pulseaudio/patches/0049-channelmap-Use-Subwoofer-as-pretty-name-for-LFE.diff deleted file mode 100644 index 2223ee0962..0000000000 --- a/packages/audio/pulseaudio/patches/0049-channelmap-Use-Subwoofer-as-pretty-name-for-LFE.diff +++ /dev/null @@ -1,28 +0,0 @@ -From 3f44bf0afaba9c227f09a475f4886c14813afc2f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 21 Feb 2010 16:19:40 +0100 -Subject: [PATCH 49/62] channelmap: Use "Subwoofer" as pretty name for LFE - -The pretty name is suspposed to be understandable by non-technical -folks, and they are generally more used to the term "Subwoofer" than -"Low Frequency Emitter", so let's change the name here. ---- - src/pulse/channelmap.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/pulse/channelmap.c b/src/pulse/channelmap.c -index 9b51626..83fdb43 100644 ---- a/src/pulse/channelmap.c -+++ b/src/pulse/channelmap.c -@@ -112,7 +112,7 @@ const char *const pretty_table[PA_CHANNEL_POSITION_MAX] = { - [PA_CHANNEL_POSITION_REAR_LEFT] = N_("Rear Left"), - [PA_CHANNEL_POSITION_REAR_RIGHT] = N_("Rear Right"), - -- [PA_CHANNEL_POSITION_LFE] = N_("Low Frequency Emmiter"), -+ [PA_CHANNEL_POSITION_LFE] = N_("Subwoofer"), - - [PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER] = N_("Front Left-of-center"), - [PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER] = N_("Front Right-of-center"), --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0050-vala-fix-wrapping-of-port-setting-calls.diff b/packages/audio/pulseaudio/patches/0050-vala-fix-wrapping-of-port-setting-calls.diff deleted file mode 100644 index 9bc20b8f11..0000000000 --- a/packages/audio/pulseaudio/patches/0050-vala-fix-wrapping-of-port-setting-calls.diff +++ /dev/null @@ -1,34 +0,0 @@ -From 117c99de3af9a19104d946852821f7b2f5646526 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 21 Feb 2010 16:21:13 +0100 -Subject: [PATCH 50/62] vala: fix wrapping of port setting calls - ---- - vala/libpulse.vapi | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/vala/libpulse.vapi b/vala/libpulse.vapi -index d47ef73..21c0f7c 100644 ---- a/vala/libpulse.vapi -+++ b/vala/libpulse.vapi -@@ -1024,7 +1024,7 @@ namespace PulseAudio { - public Operation? suspend_sink_by_index(uint32 idx, bool suspend, SuccessCb? cb = null); - - public Operation? set_sink_port_by_name(string name, string port, SuccessCb? cb = null); -- public Operation? set_sink_port_by_index(string idx, string port, SuccessCb? cb = null); -+ public Operation? set_sink_port_by_index(uint32 idx, string port, SuccessCb? cb = null); - - public Operation? get_source_info_by_name(string name, SourceInfoCb cb); - public Operation? get_source_info_by_index(uint32 idx, SourceInfoCb cb); -@@ -1039,7 +1039,7 @@ namespace PulseAudio { - public Operation? suspend_source_by_index(uint32 idx, bool suspend, SuccessCb? cb = null); - - public Operation? set_source_port_by_name(string name, string port, SuccessCb? cb = null); -- public Operation? set_source_port_by_index(string idx, string port, SuccessCb? cb = null); -+ public Operation? set_source_port_by_index(uint32 idx, string port, SuccessCb? cb = null); - - public Operation? get_server_info(ServerInfoCb cb); - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0051-proplist-explicitly-mention-a-role-test.diff b/packages/audio/pulseaudio/patches/0051-proplist-explicitly-mention-a-role-test.diff deleted file mode 100644 index 739f20231a..0000000000 --- a/packages/audio/pulseaudio/patches/0051-proplist-explicitly-mention-a-role-test.diff +++ /dev/null @@ -1,25 +0,0 @@ -From ddabaa3b0f7b95e2cf5279f5be74769905af8496 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 21 Feb 2010 16:21:43 +0100 -Subject: [PATCH 51/62] proplist: explicitly mention a role 'test' - ---- - src/pulse/proplist.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/pulse/proplist.h b/src/pulse/proplist.h -index 8dff8df..6283177 100644 ---- a/src/pulse/proplist.h -+++ b/src/pulse/proplist.h -@@ -59,7 +59,7 @@ PA_C_DECL_BEGIN - /** For streams: an XDG icon name for the media. e.g. "audio-x-mp3" */ - #define PA_PROP_MEDIA_ICON_NAME "media.icon_name" - --/** For streams: logic role of this media. One of the strings "video", "music", "game", "event", "phone", "animation", "production", "a11y" */ -+/** For streams: logic role of this media. One of the strings "video", "music", "game", "event", "phone", "animation", "production", "a11y", "test" */ - #define PA_PROP_MEDIA_ROLE "media.role" - - /** For event sound streams: XDG event sound name. e.g. "message-new-email" (Event sound streams are those with media.role set to "event") */ --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0052-stream-restore-be-a-little-bit-more-verbose-why-we-d.diff b/packages/audio/pulseaudio/patches/0052-stream-restore-be-a-little-bit-more-verbose-why-we-d.diff deleted file mode 100644 index 23d1cd8891..0000000000 --- a/packages/audio/pulseaudio/patches/0052-stream-restore-be-a-little-bit-more-verbose-why-we-d.diff +++ /dev/null @@ -1,25 +0,0 @@ -From 8adf536426a86e986fb5bd4ad31ba2d50054c485 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 21 Feb 2010 16:22:17 +0100 -Subject: [PATCH 52/62] stream-restore: be a little bit more verbose why we don't reastore a sink - ---- - src/modules/module-stream-restore.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/modules/module-stream-restore.c b/src/modules/module-stream-restore.c -index 9b6f914..00ce5ab 100644 ---- a/src/modules/module-stream-restore.c -+++ b/src/modules/module-stream-restore.c -@@ -394,7 +394,7 @@ static pa_hook_result_t sink_input_new_hook_callback(pa_core *c, pa_sink_input_n - return PA_HOOK_OK; - - if (new_data->sink) -- pa_log_debug("Not restoring device for stream %s, because already set.", name); -+ pa_log_debug("Not restoring device for stream %s, because already set to '%s'.", name, new_data->sink->name); - else if ((e = read_entry(u, name))) { - pa_sink *s = NULL; - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0053-sample-cache-use-the-sample-name-as-unmodified-fallb.diff b/packages/audio/pulseaudio/patches/0053-sample-cache-use-the-sample-name-as-unmodified-fallb.diff deleted file mode 100644 index 0461375223..0000000000 --- a/packages/audio/pulseaudio/patches/0053-sample-cache-use-the-sample-name-as-unmodified-fallb.diff +++ /dev/null @@ -1,26 +0,0 @@ -From 180589511dab1b5d0388b58b41a0e9843ea1a35a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 21 Feb 2010 16:23:25 +0100 -Subject: [PATCH 53/62] sample-cache: use the sample name as unmodified fallback in the properties when playing a sample from the cache - ---- - src/pulsecore/core-scache.c | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/src/pulsecore/core-scache.c b/src/pulsecore/core-scache.c -index 1fb81d0..95aaa10 100644 ---- a/src/pulsecore/core-scache.c -+++ b/src/pulsecore/core-scache.c -@@ -310,7 +310,8 @@ int pa_scache_play_item(pa_core *c, const char *name, pa_sink *sink, pa_volume_t - return -1; - - merged = pa_proplist_new(); -- pa_proplist_setf(merged, PA_PROP_MEDIA_NAME, "Sample %s", name); -+ pa_proplist_sets(merged, PA_PROP_MEDIA_NAME, name); -+ pa_proplist_sets(merged, PA_PROP_EVENT_ID, name); - - if (e->lazy && !e->memchunk.memblock) { - pa_channel_map old_channel_map = e->channel_map; --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0054-scache-when-playing-a-sample-from-the-cache-make-sur.diff b/packages/audio/pulseaudio/patches/0054-scache-when-playing-a-sample-from-the-cache-make-sur.diff deleted file mode 100644 index 93bc081722..0000000000 --- a/packages/audio/pulseaudio/patches/0054-scache-when-playing-a-sample-from-the-cache-make-sur.diff +++ /dev/null @@ -1,153 +0,0 @@ -From f9b9579cf4fe65d3619629b5bc28ce02ceca305e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 21 Feb 2010 17:35:05 +0100 -Subject: [PATCH 54/62] scache: when playing a sample from the cache make sure not queue them up when the sink is suspended - -libcanberra already sets the appropriate flags for uncached sample -streams, we now need to make sure to set them for cached samples too. ---- - src/pulsecore/core-scache.c | 7 ++++++- - src/pulsecore/play-memblockq.c | 7 +++++-- - src/pulsecore/play-memblockq.h | 18 ++++++++++-------- - src/pulsecore/play-memchunk.c | 3 ++- - src/pulsecore/play-memchunk.h | 15 ++++++++------- - 5 files changed, 31 insertions(+), 19 deletions(-) - -diff --git a/src/pulsecore/core-scache.c b/src/pulsecore/core-scache.c -index 95aaa10..0172419 100644 ---- a/src/pulsecore/core-scache.c -+++ b/src/pulsecore/core-scache.c -@@ -351,7 +351,12 @@ int pa_scache_play_item(pa_core *c, const char *name, pa_sink *sink, pa_volume_t - if (p) - pa_proplist_update(merged, PA_UPDATE_REPLACE, p); - -- if (pa_play_memchunk(sink, &e->sample_spec, &e->channel_map, &e->memchunk, pass_volume ? &r : NULL, merged, sink_input_idx) < 0) -+ if (pa_play_memchunk(sink, -+ &e->sample_spec, &e->channel_map, -+ &e->memchunk, -+ pass_volume ? &r : NULL, -+ merged, -+ PA_SINK_INPUT_NO_CREATE_ON_SUSPEND|PA_SINK_INPUT_KILL_ON_SUSPEND, sink_input_idx) < 0) - goto fail; - - pa_proplist_free(merged); -diff --git a/src/pulsecore/play-memblockq.c b/src/pulsecore/play-memblockq.c -index f528c49..0d6da3e 100644 ---- a/src/pulsecore/play-memblockq.c -+++ b/src/pulsecore/play-memblockq.c -@@ -173,7 +173,8 @@ pa_sink_input* pa_memblockq_sink_input_new( - const pa_channel_map *map, - pa_memblockq *q, - pa_cvolume *volume, -- pa_proplist *p) { -+ pa_proplist *p, -+ pa_sink_input_flags_t flags) { - - memblockq_stream *u = NULL; - pa_sink_input_new_data data; -@@ -198,6 +199,7 @@ pa_sink_input* pa_memblockq_sink_input_new( - pa_sink_input_new_data_set_channel_map(&data, map); - pa_sink_input_new_data_set_volume(&data, volume); - pa_proplist_update(data.proplist, PA_UPDATE_REPLACE, p); -+ data.flags |= flags; - - pa_sink_input_new(&u->sink_input, sink->core, &data); - pa_sink_input_new_data_done(&data); -@@ -237,6 +239,7 @@ int pa_play_memblockq( - pa_memblockq *q, - pa_cvolume *volume, - pa_proplist *p, -+ pa_sink_input_flags_t flags, - uint32_t *sink_input_index) { - - pa_sink_input *i; -@@ -245,7 +248,7 @@ int pa_play_memblockq( - pa_assert(ss); - pa_assert(q); - -- if (!(i = pa_memblockq_sink_input_new(sink, ss, map, q, volume, p))) -+ if (!(i = pa_memblockq_sink_input_new(sink, ss, map, q, volume, p, flags))) - return -1; - - pa_sink_input_put(i); -diff --git a/src/pulsecore/play-memblockq.h b/src/pulsecore/play-memblockq.h -index 9d5f40f..a55fed0 100644 ---- a/src/pulsecore/play-memblockq.h -+++ b/src/pulsecore/play-memblockq.h -@@ -31,17 +31,19 @@ pa_sink_input* pa_memblockq_sink_input_new( - const pa_channel_map *map, - pa_memblockq *q, - pa_cvolume *volume, -- pa_proplist *p); -+ pa_proplist *p, -+ pa_sink_input_flags_t flags); - - void pa_memblockq_sink_input_set_queue(pa_sink_input *i, pa_memblockq *q); - - int pa_play_memblockq( -- pa_sink *sink, -- const pa_sample_spec *ss, -- const pa_channel_map *map, -- pa_memblockq *q, -- pa_cvolume *cvolume, -- pa_proplist *p, -- uint32_t *sink_input_index); -+ pa_sink *sink, -+ const pa_sample_spec *ss, -+ const pa_channel_map *map, -+ pa_memblockq *q, -+ pa_cvolume *cvolume, -+ pa_proplist *p, -+ pa_sink_input_flags_t flags, -+ uint32_t *sink_input_index); - - #endif -diff --git a/src/pulsecore/play-memchunk.c b/src/pulsecore/play-memchunk.c -index 1a3bd5b..6fb8902 100644 ---- a/src/pulsecore/play-memchunk.c -+++ b/src/pulsecore/play-memchunk.c -@@ -43,6 +43,7 @@ int pa_play_memchunk( - const pa_memchunk *chunk, - pa_cvolume *volume, - pa_proplist *p, -+ pa_sink_input_flags_t flags, - uint32_t *sink_input_index) { - - pa_memblockq *q; -@@ -59,7 +60,7 @@ int pa_play_memchunk( - - pa_assert_se(pa_memblockq_push(q, chunk) >= 0); - -- if ((r = pa_play_memblockq(sink, ss, map, q, volume, p, sink_input_index)) < 0) { -+ if ((r = pa_play_memblockq(sink, ss, map, q, volume, p, flags, sink_input_index)) < 0) { - pa_memblockq_free(q); - return r; - } -diff --git a/src/pulsecore/play-memchunk.h b/src/pulsecore/play-memchunk.h -index c813611..068add1 100644 ---- a/src/pulsecore/play-memchunk.h -+++ b/src/pulsecore/play-memchunk.h -@@ -26,12 +26,13 @@ - #include - - int pa_play_memchunk( -- pa_sink *sink, -- const pa_sample_spec *ss, -- const pa_channel_map *map, -- const pa_memchunk *chunk, -- pa_cvolume *cvolume, -- pa_proplist *p, -- uint32_t *sink_input_index); -+ pa_sink *sink, -+ const pa_sample_spec *ss, -+ const pa_channel_map *map, -+ const pa_memchunk *chunk, -+ pa_cvolume *cvolume, -+ pa_proplist *p, -+ pa_sink_input_flags_t flags, -+ uint32_t *sink_input_index); - - #endif --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0055-pacat-pass-buffer_attr-to-recording-streams-too.diff b/packages/audio/pulseaudio/patches/0055-pacat-pass-buffer_attr-to-recording-streams-too.diff deleted file mode 100644 index a3e4acccda..0000000000 --- a/packages/audio/pulseaudio/patches/0055-pacat-pass-buffer_attr-to-recording-streams-too.diff +++ /dev/null @@ -1,28 +0,0 @@ -From b2e9fb6f6e12a3eab8a41c67017507e60d616e2a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 21 Feb 2010 21:09:26 +0100 -Subject: [PATCH 55/62] pacat: pass buffer_attr to recording streams too - -Pointed out by Colin Guthrie. - -https://tango.0pointer.de/pipermail/pulseaudio-discuss/2010-February/006698.html ---- - src/utils/pacat.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/utils/pacat.c b/src/utils/pacat.c -index d136f6b..394cfbf 100644 ---- a/src/utils/pacat.c -+++ b/src/utils/pacat.c -@@ -473,7 +473,7 @@ static void context_state_callback(pa_context *c, void *userdata) { - } - - } else { -- if (pa_stream_connect_record(stream, device, latency > 0 ? &buffer_attr : NULL, flags) < 0) { -+ if (pa_stream_connect_record(stream, device, &buffer_attr, flags) < 0) { - pa_log(_("pa_stream_connect_record() failed: %s"), pa_strerror(pa_context_errno(c))); - goto fail; - } --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0056-suspend-on-idle-resume-audio-device-even-for-initial.diff b/packages/audio/pulseaudio/patches/0056-suspend-on-idle-resume-audio-device-even-for-initial.diff deleted file mode 100644 index 08ff9099d6..0000000000 --- a/packages/audio/pulseaudio/patches/0056-suspend-on-idle-resume-audio-device-even-for-initial.diff +++ /dev/null @@ -1,47 +0,0 @@ -From a469d44e6993c4e9e7a53ac91ed53eacb500e279 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 22 Feb 2010 03:22:28 +0100 -Subject: [PATCH 56/62] suspend-on-idle: resume audio device even for initially corked streams - -We need to resume audio devices even for streams that are created in -corked stat, so that the latency ranges of the audio device are known -during the initial latency negotiation. If we don't the latency -negotiation will be based on placeholder data and changed later on which -clients do not expect. - -This should fix issues with Skype. - -https://bugzilla.redhat.com/show_bug.cgi?id=554929 ---- - src/modules/module-suspend-on-idle.c | 8 +++----- - 1 files changed, 3 insertions(+), 5 deletions(-) - -diff --git a/src/modules/module-suspend-on-idle.c b/src/modules/module-suspend-on-idle.c -index 7adaa0b..cfb7879 100644 ---- a/src/modules/module-suspend-on-idle.c -+++ b/src/modules/module-suspend-on-idle.c -@@ -145,8 +145,9 @@ static pa_hook_result_t sink_input_fixate_hook_cb(pa_core *c, pa_sink_input_new_ - pa_assert(data); - pa_assert(u); - -- if (data->flags & PA_SINK_INPUT_START_CORKED) -- return PA_HOOK_OK; -+ /* We need to resume the audio device here even for -+ * PA_SINK_INPUT_START_CORKED, since we need the device parameters -+ * to be fully available while the stream is set up. */ - - if ((d = pa_hashmap_get(u->device_infos, data->sink))) - resume(d); -@@ -161,9 +162,6 @@ static pa_hook_result_t source_output_fixate_hook_cb(pa_core *c, pa_source_outpu - pa_assert(data); - pa_assert(u); - -- if (data->flags & PA_SOURCE_OUTPUT_START_CORKED) -- return PA_HOOK_OK; -- - if (data->source->monitor_of) - d = pa_hashmap_get(u->device_infos, data->source->monitor_of); - else --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0057-native-improve-logging-for-buffer_attrs.diff b/packages/audio/pulseaudio/patches/0057-native-improve-logging-for-buffer_attrs.diff deleted file mode 100644 index fa971fc54b..0000000000 --- a/packages/audio/pulseaudio/patches/0057-native-improve-logging-for-buffer_attrs.diff +++ /dev/null @@ -1,48 +0,0 @@ -From 4a32103d84102ee91368eed1f30613de6da12f6a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 22 Feb 2010 03:40:29 +0100 -Subject: [PATCH 57/62] native: improve logging for buffer_attrs - ---- - src/pulsecore/protocol-native.c | 18 ++++++++++++++++++ - 1 files changed, 18 insertions(+), 0 deletions(-) - -diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c -index f80b0c2..337869d 100644 ---- a/src/pulsecore/protocol-native.c -+++ b/src/pulsecore/protocol-native.c -@@ -858,6 +858,18 @@ static void fix_playback_buffer_attr(playback_stream *s) { - - pa_assert(s); - -+ /* pa_log("Client requested: maxlength=%li bytes tlength=%li bytes minreq=%li bytes prebuf=%li bytes", */ -+ /* (long) s->buffer_attr.maxlength, */ -+ /* (long) s->buffer_attr.tlength, */ -+ /* (long) s->buffer_attr.minreq, */ -+ /* (long) s->buffer_attr.prebuf); */ -+ -+ /* pa_log("Client requested: maxlength=%lu ms tlength=%lu ms minreq=%lu ms prebuf=%lu ms", */ -+ /* (unsigned long) (pa_bytes_to_usec(s->buffer_attr.maxlength, &s->sink_input->sample_spec) / PA_USEC_PER_MSEC), */ -+ /* (unsigned long) (pa_bytes_to_usec(s->buffer_attr.tlength, &s->sink_input->sample_spec) / PA_USEC_PER_MSEC), */ -+ /* (unsigned long) (pa_bytes_to_usec(s->buffer_attr.minreq, &s->sink_input->sample_spec) / PA_USEC_PER_MSEC), */ -+ /* (unsigned long) (pa_bytes_to_usec(s->buffer_attr.prebuf, &s->sink_input->sample_spec) / PA_USEC_PER_MSEC)); */ -+ - /* This function will be called from the main thread, before as - * well as after the sink input has been activated using - * pa_sink_input_put()! That means it may not touch any -@@ -984,6 +996,12 @@ static void fix_playback_buffer_attr(playback_stream *s) { - if (s->buffer_attr.prebuf == (uint32_t) -1 || - s->buffer_attr.prebuf > max_prebuf) - s->buffer_attr.prebuf = max_prebuf; -+ -+ /* pa_log("Client accepted: maxlength=%lu ms tlength=%lu ms minreq=%lu ms prebuf=%lu ms", */ -+ /* (unsigned long) (pa_bytes_to_usec(s->buffer_attr.maxlength, &s->sink_input->sample_spec) / PA_USEC_PER_MSEC), */ -+ /* (unsigned long) (pa_bytes_to_usec(s->buffer_attr.tlength, &s->sink_input->sample_spec) / PA_USEC_PER_MSEC), */ -+ /* (unsigned long) (pa_bytes_to_usec(s->buffer_attr.minreq, &s->sink_input->sample_spec) / PA_USEC_PER_MSEC), */ -+ /* (unsigned long) (pa_bytes_to_usec(s->buffer_attr.prebuf, &s->sink_input->sample_spec) / PA_USEC_PER_MSEC)); */ - } - - /* Called from main context */ --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0058-alsa-util-strip-spaces-from-ALSA-card-pcm-names.diff b/packages/audio/pulseaudio/patches/0058-alsa-util-strip-spaces-from-ALSA-card-pcm-names.diff deleted file mode 100644 index 50439fd292..0000000000 --- a/packages/audio/pulseaudio/patches/0058-alsa-util-strip-spaces-from-ALSA-card-pcm-names.diff +++ /dev/null @@ -1,53 +0,0 @@ -From 522c446ddc2bf2f4467f9de16f8618fc544a94fe Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 21 Feb 2010 22:00:49 +0100 -Subject: [PATCH 58/62] alsa-util: strip spaces from ALSA card/pcm names - -http://pulseaudio.org/ticket/778 ---- - src/modules/alsa/alsa-util.c | 12 +++++++----- - 1 files changed, 7 insertions(+), 5 deletions(-) - -diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c -index 52f1259..1cbb3f3 100644 ---- a/src/modules/alsa/alsa-util.c -+++ b/src/modules/alsa/alsa-util.c -@@ -874,12 +874,12 @@ void pa_alsa_init_proplist_card(pa_core *c, pa_proplist *p, int card) { - pa_proplist_setf(p, "alsa.card", "%i", card); - - if (snd_card_get_name(card, &cn) >= 0) { -- pa_proplist_sets(p, "alsa.card_name", cn); -+ pa_proplist_sets(p, "alsa.card_name", pa_strip(cn)); - free(cn); - } - - if (snd_card_get_longname(card, &lcn) >= 0) { -- pa_proplist_sets(p, "alsa.long_card_name", lcn); -+ pa_proplist_sets(p, "alsa.long_card_name", pa_strip(lcn)); - free(lcn); - } - -@@ -937,8 +937,11 @@ void pa_alsa_init_proplist_pcm_info(pa_core *c, pa_proplist *p, snd_pcm_info_t * - if (alsa_subclass_table[subclass]) - pa_proplist_sets(p, "alsa.subclass", alsa_subclass_table[subclass]); - -- if ((n = snd_pcm_info_get_name(pcm_info))) -- pa_proplist_sets(p, "alsa.name", n); -+ if ((n = snd_pcm_info_get_name(pcm_info))) { -+ char *t = pa_xstrdup(n); -+ pa_proplist_sets(p, "alsa.name", pa_strip(t)); -+ pa_xfree(t); -+ } - - if ((id = snd_pcm_info_get_id(pcm_info))) - pa_proplist_sets(p, "alsa.id", id); -@@ -1331,6 +1334,5 @@ pa_bool_t pa_alsa_may_tsched(pa_bool_t want) { - return FALSE; - } - -- - return TRUE; - } --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0059-alsa-reset-max_rewind-max_request-while-suspending.diff b/packages/audio/pulseaudio/patches/0059-alsa-reset-max_rewind-max_request-while-suspending.diff deleted file mode 100644 index 2931eddd0f..0000000000 --- a/packages/audio/pulseaudio/patches/0059-alsa-reset-max_rewind-max_request-while-suspending.diff +++ /dev/null @@ -1,48 +0,0 @@ -From dd682d6f96fe7133b866c97b72edcb6136a9737c Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 22 Feb 2010 04:54:24 +0100 -Subject: [PATCH 59/62] alsa: reset max_rewind/max_request while suspending - ---- - src/modules/alsa/alsa-sink.c | 11 ++++++++++- - 1 files changed, 10 insertions(+), 1 deletions(-) - -diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c -index 690480f..60c10c4 100644 ---- a/src/modules/alsa/alsa-sink.c -+++ b/src/modules/alsa/alsa-sink.c -@@ -79,7 +79,7 @@ - #define TSCHED_MIN_WAKEUP_USEC (4*PA_USEC_PER_MSEC) /* 4ms -- Wakeup at least this long before the buffer runs empty*/ - - #define SMOOTHER_MIN_INTERVAL (2*PA_USEC_PER_MSEC) /* 2ms -- min smoother update interval */ --#define SMOOTHER_MAX_INTERVAL (200*PA_USEC_PER_MSEC) /* 200ms -- max smoother update inteval */ -+#define SMOOTHER_MAX_INTERVAL (200*PA_USEC_PER_MSEC) /* 200ms -- max smoother update interval */ - - #define VOLUME_ACCURACY (PA_VOLUME_NORM/100) /* don't require volume adjustments to be perfectly correct. don't necessarily extend granularity in software unless the differences get greater than this level */ - -@@ -876,6 +876,14 @@ static int suspend(struct userdata *u) { - u->alsa_rtpoll_item = NULL; - } - -+ /* We reset max_rewind/max_request here to make sure that while we -+ * are suspended the old max_request/max_rewind values set before -+ * the suspend can influence the per-stream buffer of newly -+ * created streams, without their requirements having any -+ * influence on them. */ -+ pa_sink_set_max_rewind_within_thread(u->sink, 0); -+ pa_sink_set_max_request_within_thread(u->sink, 0); -+ - pa_log_info("Device suspended..."); - - return 0; -@@ -933,6 +941,7 @@ static int update_sw_params(struct userdata *u) { - } - - pa_sink_set_max_request_within_thread(u->sink, u->hwbuf_size - u->hwbuf_unused); -+ pa_sink_set_max_rewind_within_thread(u->sink, u->hwbuf_size); - - return 0; - } --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0060-core-util-introduce-generic-function-pa_strip.diff b/packages/audio/pulseaudio/patches/0060-core-util-introduce-generic-function-pa_strip.diff deleted file mode 100644 index 9e7b01a469..0000000000 --- a/packages/audio/pulseaudio/patches/0060-core-util-introduce-generic-function-pa_strip.diff +++ /dev/null @@ -1,78 +0,0 @@ -From 195069c1815a1483b2c44f8cc72e2dd25e9b8fb1 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 21 Feb 2010 21:59:53 +0100 -Subject: [PATCH 60/62] core-util: introduce generic function pa_strip() - ---- - src/pulsecore/core-util.c | 28 ++++++++++++++++++++++++---- - src/pulsecore/core-util.h | 1 + - 2 files changed, 25 insertions(+), 4 deletions(-) - -diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c -index 258e8ee..d6017b9 100644 ---- a/src/pulsecore/core-util.c -+++ b/src/pulsecore/core-util.c -@@ -126,6 +126,9 @@ - #define MSG_NOSIGNAL 0 - #endif - -+#define NEWLINE "\r\n" -+#define WHITESPACE "\n\r \t" -+ - static pa_strlist *recorded_env = NULL; - - #ifdef OS_IS_WIN32 -@@ -830,9 +833,6 @@ char *pa_split(const char *c, const char *delimiter, const char**state) { - return pa_xstrndup(current, l); - } - --/* What is interpreted as whitespace? */ --#define WHITESPACE " \t\n" -- - /* Split a string into words. Otherwise similar to pa_split(). */ - char *pa_split_spaces(const char *c, const char **state) { - const char *current = *state ? *state : c; -@@ -1189,7 +1189,27 @@ int pa_lock_fd(int fd, int b) { - char* pa_strip_nl(char *s) { - pa_assert(s); - -- s[strcspn(s, "\r\n")] = 0; -+ s[strcspn(s, NEWLINE)] = 0; -+ return s; -+} -+ -+char *pa_strip(char *s) { -+ char *e, *l = NULL; -+ -+ /* Drops trailing whitespace. Modifies the string in -+ * place. Returns pointer to first non-space character */ -+ -+ s += strspn(s, WHITESPACE); -+ -+ for (e = s; *e; e++) -+ if (!strchr(WHITESPACE, *e)) -+ l = e; -+ -+ if (l) -+ *(l+1) = 0; -+ else -+ *s = 0; -+ - return s; - } - -diff --git a/src/pulsecore/core-util.h b/src/pulsecore/core-util.h -index eba1b40..71be9de 100644 ---- a/src/pulsecore/core-util.h -+++ b/src/pulsecore/core-util.h -@@ -102,6 +102,7 @@ char *pa_split(const char *c, const char*delimiters, const char **state); - char *pa_split_spaces(const char *c, const char **state); - - char *pa_strip_nl(char *s); -+char *pa_strip(char *s); - - const char *pa_sig2str(int sig) PA_GCC_PURE; - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0061-esd-simple-use-pa_memblockq_pop_missing.diff b/packages/audio/pulseaudio/patches/0061-esd-simple-use-pa_memblockq_pop_missing.diff deleted file mode 100644 index 19fd57b14d..0000000000 --- a/packages/audio/pulseaudio/patches/0061-esd-simple-use-pa_memblockq_pop_missing.diff +++ /dev/null @@ -1,46 +0,0 @@ -From 30f28ebf3619a86b49009e8dbce154233f597dbb Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 23 Feb 2010 00:48:35 +0100 -Subject: [PATCH 61/62] esd,simple: use pa_memblockq_pop_missing() - -We need to use pa_memblockq_pop_missing() for all request handling, -including the initial request, because otherwise the counters will be -stay off during the entire runtime. - -This should fix: - -https://bugzilla.redhat.com/show_bug.cgi?id=559467 ---- - src/pulsecore/protocol-esound.c | 2 +- - src/pulsecore/protocol-simple.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/pulsecore/protocol-esound.c b/src/pulsecore/protocol-esound.c -index a89f327..1e16334 100644 ---- a/src/pulsecore/protocol-esound.c -+++ b/src/pulsecore/protocol-esound.c -@@ -462,7 +462,7 @@ static int esd_proto_stream_play(connection *c, esd_proto_t request, const void - - c->protocol->n_player++; - -- pa_atomic_store(&c->playback.missing, (int) pa_memblockq_missing(c->input_memblockq)); -+ pa_atomic_store(&c->playback.missing, (int) pa_memblockq_pop_missing(c->input_memblockq)); - - pa_sink_input_put(c->sink_input); - -diff --git a/src/pulsecore/protocol-simple.c b/src/pulsecore/protocol-simple.c -index fb2e564..77277e1 100644 ---- a/src/pulsecore/protocol-simple.c -+++ b/src/pulsecore/protocol-simple.c -@@ -574,7 +574,7 @@ void pa_simple_protocol_connect(pa_simple_protocol *p, pa_iochannel *io, pa_simp - - pa_iochannel_socket_set_rcvbuf(io, l); - -- pa_atomic_store(&c->playback.missing, (int) pa_memblockq_missing(c->input_memblockq)); -+ pa_atomic_store(&c->playback.missing, (int) pa_memblockq_pop_missing(c->input_memblockq)); - - pa_sink_input_put(c->sink_input); - } --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/0062-core-rework-how-stream-volumes-affect-sink-volumes.diff b/packages/audio/pulseaudio/patches/0062-core-rework-how-stream-volumes-affect-sink-volumes.diff deleted file mode 100644 index 6197e5e1a8..0000000000 --- a/packages/audio/pulseaudio/patches/0062-core-rework-how-stream-volumes-affect-sink-volumes.diff +++ /dev/null @@ -1,72 +0,0 @@ -From 0d1154d078f8f149e2ab9a67b09835a829416e49 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 23 Feb 2010 18:41:18 +0100 -Subject: [PATCH 62/62] core: rework how stream volumes affect sink volumes - ---- - src/pulsecore/sink.c | 42 +++++++++++++++++++++++++++++++++++++++++- - 1 files changed, 41 insertions(+), 1 deletions(-) - -diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c -index e6d718f..3a92f67 100644 ---- a/src/pulsecore/sink.c -+++ b/src/pulsecore/sink.c -@@ -1162,6 +1162,46 @@ pa_usec_t pa_sink_get_latency_within_thread(pa_sink *s) { - return usec; - } - -+static pa_cvolume* cvolume_remap_minimal_impact( -+ pa_cvolume *v, -+ const pa_cvolume *template, -+ const pa_channel_map *from, -+ const pa_channel_map *to) { -+ -+ pa_cvolume t; -+ -+ pa_assert(v); -+ pa_assert(template); -+ pa_assert(from); -+ pa_assert(to); -+ -+ pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(v, from), NULL); -+ pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(template, to), NULL); -+ -+ /* Much like pa_cvolume_remap(), but tries to minimize impact when -+ * mapping from sink input to sink volumes: -+ * -+ * If template is a possible remapping from v it is used instead -+ * of remapping anew. -+ * -+ * If the channel maps don't match we set an all-channel volume on -+ * the sink to ensure that changing a volume on one stream has no -+ * effect that cannot be compensated for in another stream that -+ * does not have the same channel map as the sink. */ -+ -+ if (pa_channel_map_equal(from, to)) -+ return v; -+ -+ t = *template; -+ if (pa_cvolume_equal(pa_cvolume_remap(&t, to, from), v)) { -+ *v = *template; -+ return v; -+ } -+ -+ pa_cvolume_set(v, to->channels, pa_cvolume_max(v)); -+ return v; -+} -+ - /* Called from main context */ - static void compute_reference_ratios(pa_sink *s) { - uint32_t idx; -@@ -1289,7 +1329,7 @@ static void compute_real_volume(pa_sink *s) { - pa_cvolume remapped; - - remapped = i->volume; -- pa_cvolume_remap(&remapped, &i->channel_map, &s->channel_map); -+ cvolume_remap_minimal_impact(&remapped, &s->real_volume, &i->channel_map, &s->channel_map); - pa_cvolume_merge(&s->real_volume, &s->real_volume, &remapped); - } - --- -1.7.0 - diff --git a/packages/audio/pulseaudio/patches/02_no-st_uid.diff b/packages/audio/pulseaudio/patches/02_no-st_uid.diff deleted file mode 100644 index ebb630c859..0000000000 --- a/packages/audio/pulseaudio/patches/02_no-st_uid.diff +++ /dev/null @@ -1,58 +0,0 @@ ---- pulseaudio-0.9.21/src/pulse/context.c.orig 2009-11-22 22:57:06.000000000 -0500 -+++ pulseaudio-0.9.21/src/pulse/context.c 2010-05-10 10:57:57.000000000 -0400 -@@ -603,11 +603,6 @@ - return NULL; - } - -- if (st.st_uid != getuid()) { -- pa_xfree(p); -- return NULL; -- } -- - return p; - } - -@@ -625,11 +620,6 @@ - return NULL; - } - -- if (st.st_uid != getuid()) { -- pa_xfree(p); -- return NULL; -- } -- - return p; - } - #endif ---- pulseaudio-0.9.21/src/pulsecore/core-util.c.orig 2009-11-22 22:57:07.000000000 -0500 -+++ pulseaudio-0.9.21/src/pulsecore/core-util.c 2010-05-10 10:59:12.000000000 -0400 -@@ -235,8 +235,6 @@ - - #ifndef OS_IS_WIN32 - if (!S_ISDIR(st.st_mode) || -- (st.st_uid != uid) || -- (st.st_gid != gid) || - ((st.st_mode & 0777) != m)) { - errno = EACCES; - goto fail; -@@ -1293,12 +1291,6 @@ - goto finish; - } - -- if (st.st_uid != getuid()) { -- pa_log_error("Home directory %s not ours.", h); -- errno = EACCES; -- goto finish; -- } -- - ret = pa_sprintf_malloc("%s" PA_PATH_SEP ".pulse", h); - - finish: -@@ -1524,7 +1516,6 @@ - } else { - - if (S_ISDIR(st.st_mode) && -- (st.st_uid == getuid()) && - ((st.st_mode & 0777) == 0700)) { - - pa_xfree(p);