[meta-freescale] [meta-fsl-arm][PATCH v5] pulseaudio: Add PulseAudio configuration

Carlos Rafael Giani dv at pseudoterminal.org
Wed Aug 5 11:39:09 PDT 2015


Can you describe why you prefer the ffmpeg resampler over the speex ones 
(which seem to be the default in most distros)?

Am 2015-07-30 um 21:18 schrieb Yuqing Zhu:
> Set ffmpeg as resample method
>
> Set exit idle time as -1 to force it not to exit
>
> Signed-off-by: Yuqing Zhu <b54851 at freescale.com>
> ---
>   .../pulseaudio/pulseaudio/daemon.conf              |  87 +++++++++++
>   .../pulseaudio/pulseaudio/default.pa               | 170 +++++++++++++++++++++
>   .../pulseaudio/pulseaudio_%.bbappend               |  20 +++
>   3 files changed, 277 insertions(+)
>   create mode 100644 recipes-multimedia/pulseaudio/pulseaudio/daemon.conf
>   create mode 100644 recipes-multimedia/pulseaudio/pulseaudio/default.pa
>
> diff --git a/recipes-multimedia/pulseaudio/pulseaudio/daemon.conf b/recipes-multimedia/pulseaudio/pulseaudio/daemon.conf
> new file mode 100644
> index 0000000..54854eb
> --- /dev/null
> +++ b/recipes-multimedia/pulseaudio/pulseaudio/daemon.conf
> @@ -0,0 +1,87 @@
> +# 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.
> +
> +## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
> +## more information. Default values are commented out.  Use either ; or # for
> +## commenting.
> +
> +; daemonize = no
> +; fail = yes
> +; allow-module-loading = yes
> +; allow-exit = yes
> +; use-pid-file = yes
> +; system-instance = no
> +; local-server-type = user
> +; enable-shm = yes
> +; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
> +; lock-memory = no
> +; cpu-limit = no
> +
> +; high-priority = yes
> +; nice-level = -11
> +
> +; realtime-scheduling = yes
> +; realtime-priority = 5
> +
> +exit-idle-time = -1
> +; scache-idle-time = 20
> +
> +; dl-search-path = (depends on architecture)
> +
> +; load-default-script-file = yes
> +; default-script-file = /etc/pulse/default.pa
> +
> +; log-target = auto
> +; log-level = notice
> +; log-meta = no
> +; log-time = no
> +; log-backtrace = 0
> +
> +resample-method = ffmpeg
> +; enable-remixing = yes
> +; enable-lfe-remixing = no
> +
> +flat-volumes = no
> +
> +; rlimit-fsize = -1
> +; rlimit-data = -1
> +; rlimit-stack = -1
> +; rlimit-core = -1
> +; rlimit-as = -1
> +; rlimit-rss = -1
> +; rlimit-nproc = -1
> +; rlimit-nofile = 256
> +; rlimit-memlock = -1
> +; rlimit-locks = -1
> +; rlimit-sigpending = -1
> +; rlimit-msgqueue = -1
> +; rlimit-nice = 31
> +; rlimit-rtprio = 9
> +; rlimit-rttime = 1000000
> +
> +; default-sample-format = s16le
> +; default-sample-rate = 44100
> +; alternate-sample-rate = 48000
> +; default-sample-channels = 2
> +; default-channel-map = front-left,front-right
> +
> +; default-fragments = 4
> +; default-fragment-size-msec = 25
> +
> +; enable-deferred-volume = yes
> +; deferred-volume-safety-margin-usec = 8000
> +; deferred-volume-extra-delay-usec = 0
> diff --git a/recipes-multimedia/pulseaudio/pulseaudio/default.pa b/recipes-multimedia/pulseaudio/pulseaudio/default.pa
> new file mode 100644
> index 0000000..83a6ba8
> --- /dev/null
> +++ b/recipes-multimedia/pulseaudio/pulseaudio/default.pa
> @@ -0,0 +1,170 @@
> +#!/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
> +load-module module-card-restore
> +
> +### Automatically augment property information from .desktop files
> +### stored in /usr/share/application
> +load-module module-augment-properties
> +
> +### Should be after module-*-restore but before module-*-detect
> +load-module module-switch-on-port-available
> +
> +### Load audio drivers statically
> +### (it's probably better to not load these drivers manually, but instead
> +### use module-udev-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
> +.ifexists module-udev-detect.so
> +load-module module-udev-detect tsched=0
> +.else
> +### Use the static hardware detection module (for systems that lack udev support)
> +load-module module-detect
> +.endif
> +
> +### Automatically connect sink and source if JACK server is present
> +.ifexists module-jackdbus-detect.so
> +.nofail
> +load-module module-jackdbus-detect channels=2
> +.fail
> +.endif
> +
> +### Automatically load driver modules for Bluetooth hardware
> +.ifexists module-bluetooth-policy.so
> +load-module module-bluetooth-policy
> +.endif
> +
> +.ifexists module-bluetooth-discover.so
> +load-module module-bluetooth-discover
> +.endif
> +
> +### Load several protocols
> +.ifexists module-esound-protocol-unix.so
> +load-module module-esound-protocol-unix
> +.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 receiver 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 sink_properties="device.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.
> +.ifexists module-gconf.so
> +.nofail
> +load-module module-gconf
> +.fail
> +.endif
> +
> +### Automatically restore the default sink/source when changed by the user
> +### during runtime
> +### NOTE: This should be loaded as early as possible so that subsequent modules
> +### that look up the default sink/source get the right value
> +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
> +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.
> +.ifexists module-console-kit.so
> +load-module module-console-kit
> +.endif
> +.ifexists module-systemd-login.so
> +load-module module-systemd-login
> +.endif
> +
> +### Enable positioned event sounds
> +load-module module-position-event-sounds
> +
> +### Cork music/video streams when a phone stream is active
> +load-module module-role-cork
> +
> +### Modules to allow autoloading of filters (such as echo cancellation)
> +### on demand. module-filter-heuristics tries to determine what filters
> +### make sense, and module-filter-apply does the heavy-lifting of
> +### loading modules and rerouting streams.
> +load-module module-filter-heuristics
> +load-module module-filter-apply
> +
> +### Load DBus protocol
> +.ifexists module-dbus-protocol.so
> +load-module module-dbus-protocol
> +.endif
> +
> +# 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/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
> index b9acb36..95b955d 100644
> --- a/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
> +++ b/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
> @@ -1,4 +1,24 @@
>   
>   CACHED_CONFIGUREVARS_append_mx6 = " ax_cv_PTHREAD_PRIO_INHERIT=no"
>   
> +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
> +IMX_PATCHES = " file://daemon.conf \
> +                file://default.pa \
> +"
> +SRC_URI_append_mx6 = "${IMX_PATCHES}"
> +SRC_URI_append_mx7 = "${IMX_PATCHES}"
> +
> +do_install_append() {
> +    install -m 0644 ${WORKDIR}/daemon.conf ${D}${sysconfdir}/pulse/daemon.conf
> +    install -m 0644 ${WORKDIR}/default.pa ${D}${sysconfdir}/pulse/default.pa
> +
> +    #Fix me: Remove the kde desktop, because there are two destop in default
> +    #        (pulseaudio-kde.destop, pulseaudio.destop), then the pulseaudio server
> +    #        will be started twice, pulseaudio will have issue to switch to default input/output.
> +    if [ -e ${D}${sysconfdir}/xdg/autostart/pulseaudio-kde.desktop ]
> +    then
> +        rm ${D}${sysconfdir}/xdg/autostart/pulseaudio-kde.desktop
> +    fi
> +}
> +
>   PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}"



More information about the meta-freescale mailing list