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

Zhu Carol B54851 at freescale.com
Wed Aug 5 23:51:29 PDT 2015


Hi Carlos,

    Yes, it's a workaround to force pulseaudio not to exit.

B.R.
Yuqing Zhu

-----Original Message-----
From: meta-freescale-bounces at yoctoproject.org [mailto:meta-freescale-bounces at yoctoproject.org] On Behalf Of Carlos Rafael Giani
Sent: Thursday, August 06, 2015 2:46 AM
To: meta-freescale at yoctoproject.org
Subject: Re: [meta-freescale] [meta-fsl-arm][PATCH v5] pulseaudio: Add PulseAudio configuration

Regarding the exit-idle-time change, am I right to assume that this is a workaround for the problem that otherwise, pulseaudio will quit after an application stops using it? One link about this: 
https://bbs.archlinux.org/viewtopic.php?id=92851

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}"

--
_______________________________________________
meta-freescale mailing list
meta-freescale at yoctoproject.org
https://lists.yoctoproject.org/listinfo/meta-freescale


More information about the meta-freescale mailing list