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

Zhu Carol B54851 at freescale.com
Thu Aug 6 01:43:06 PDT 2015


Ok, thanks for your helpful suggestion.

B.R.
Yuqing Zhu

-----Original Message-----
From: Carlos Rafael Giani [mailto:dv at pseudoterminal.org] 
Sent: Thursday, August 06, 2015 2:54 PM
To: Zhu Yuqing-B54851; meta-freescale at yoctoproject.org
Subject: Re: [meta-freescale] [meta-fsl-arm][PATCH v5] pulseaudio: Add PulseAudio configuration

Right, ok. Its just minor, but rephrase it please to say: "Normally, PulseAudio exits after an application finishes using it. Set exit-idle-time to -1 in the daemon.conf to force PulseAudio to not exit then."
Its a lot clearer :)

Am 2015-08-06 um 08:51 schrieb Zhu Carol:
> 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