From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by yocto-www.yoctoproject.org (Postfix, from userid 118) id C8CDAE007D9; Tue, 29 Jul 2014 00:27:20 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on yocto-www.yoctoproject.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.1 X-Spam-HAM-Report: * -0.0 SPF_HELO_PASS SPF: HELO matches SPF record * -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no * trust * [207.46.163.189 listed in list.dnswl.org] * -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1blp0189.outbound.protection.outlook.com [207.46.163.189]) by yocto-www.yoctoproject.org (Postfix) with ESMTP id 38890E007D2 for ; Tue, 29 Jul 2014 00:27:16 -0700 (PDT) Received: from BLUPR03MB405.namprd03.prod.outlook.com (10.141.78.15) by BLUPR03MB296.namprd03.prod.outlook.com (10.141.48.23) with Microsoft SMTP Server (TLS) id 15.0.995.11; Tue, 29 Jul 2014 07:11:52 +0000 Received: from BY2PR03CA043.namprd03.prod.outlook.com (10.141.249.16) by BLUPR03MB405.namprd03.prod.outlook.com (10.141.78.15) with Microsoft SMTP Server (TLS) id 15.0.995.14; Tue, 29 Jul 2014 07:11:50 +0000 Received: from BN1AFFO11FD023.protection.gbl (2a01:111:f400:7c10::195) by BY2PR03CA043.outlook.office365.com (2a01:111:e400:2c5d::16) with Microsoft SMTP Server (TLS) id 15.0.995.14 via Frontend Transport; Tue, 29 Jul 2014 07:11:49 +0000 Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1AFFO11FD023.mail.protection.outlook.com (10.58.52.83) with Microsoft SMTP Server (TLS) id 15.0.990.10 via Frontend Transport; Tue, 29 Jul 2014 07:11:49 +0000 Received: from r01007-02.ap.freescale.net (R01007-02-010192241030.ap.freescale.net [10.192.241.30]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id s6T7BkTr022635; Tue, 29 Jul 2014 00:11:48 -0700 From: Jun Zhu To: Date: Tue, 29 Jul 2014 15:04:13 +0800 Message-ID: <1406617455-16372-1-git-send-email-R01007@freescale.com> X-Mailer: git-send-email 1.7.9.5 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:192.88.168.50; CTRY:US; IPV:CAL; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(6009001)(189002)(199002)(54014002)(4396001)(50226001)(50986999)(20776003)(87286001)(46102001)(47776003)(31966008)(26826002)(93916002)(74662001)(76482001)(48376002)(19580405001)(19580395003)(68736004)(6806004)(88136002)(87936001)(89996001)(92726001)(83072002)(81542001)(81342001)(85852003)(74502001)(97736001)(104166001)(64706001)(77156001)(92566001)(77982001)(80022001)(85306003)(95666004)(62966002)(105606002)(2351001)(36756003)(21056001)(102836001)(83322001)(84676001)(106466001)(110136001)(107046002)(104016003)(99396002)(229853001)(50466002)(44976005)(79102001)(2004002); DIR:OUT; SFP:; SCL:1; SRVR:BLUPR03MB405; H:tx30smr01.am.freescale.net; FPR:; MLV:ovrnspm; PTR:InfoDomainNonexistent; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Antispam: BCL:0;PCL:0;RULEID: X-Forefront-PRVS: 0287BBA78D Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=junzhu@freescale.com; X-Microsoft-Antispam: BCL:0;PCL:0;RULEID: X-OriginatorOrg: freescale.com Cc: Jun Zhu Subject: [meta-fsl-arm][PATCH 1/3] pulseaudio: Customize pulseaudio configuration for i.MX platforms X-BeenThere: meta-freescale@yoctoproject.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Usage and development list for the meta-fsl-* layers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jul 2014 07:27:20 -0000 Content-Type: text/plain on i.MX seriese boards, some pulseaudio defualt setting should be modified to improve the user experience: - Daemon's exit_idle_time: set value as -1 to make pulseaudio service never be terminated by any user-space app. - Resample mothed: switch to the build-in ffmpeg to improve the sound quality. - Flat_Volumes: set value as "no" to align with the normal use case. These customized configuration would be installed to overwrite the original version. Signed-off-by: Jun Zhu --- .../pulseaudio/pulseaudio/daemon.conf | 87 ++++++++++ .../pulseaudio/pulseaudio/default.pa | 170 ++++++++++++++++++++ .../pulseaudio/pulseaudio_5.0.bbappend | 23 +++ 3 files changed, 280 insertions(+) create mode 100644 recipes-multimedia/pulseaudio/pulseaudio/daemon.conf create mode 100644 recipes-multimedia/pulseaudio/pulseaudio/default.pa create mode 100644 recipes-multimedia/pulseaudio/pulseaudio_5.0.bbappend 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_5.0.bbappend b/recipes-multimedia/pulseaudio/pulseaudio_5.0.bbappend new file mode 100644 index 0000000..993c340 --- /dev/null +++ b/recipes-multimedia/pulseaudio/pulseaudio_5.0.bbappend @@ -0,0 +1,23 @@ +# As it can not overwrite the version in the layer meta-fsl-arm, we have to use +# another file extension for new patch to the append in the meta-fsl-arm + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append = " file://daemon.conf \ + file://default.pa \ +" + +do_install_append() { + # FIXME: Install the customized pulseaudio damon setting to overwrite the default one + install -m 0644 ${WORKDIR}/daemon.conf ${D}${sysconfdir}/pulse/daemon.conf + install -m 0644 ${WORKDIR}/default.pa ${D}${sysconfdir}/pulse/default.pa + + #FIXME: 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 +} + -- 1.7.9.5