1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-08 17:19:20 +00:00

pulseaudio: 10.0 -> 11.1

11.0 release notes:
https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/11.0/

Additional changes in 11.1:
 * Fix a crash in filter modules related to flat volumes and volume
   sharing
 * Fix a crash when the bluetooth adapter reports weird MTU size
 * Disable bluetooth MTU autodetection by default
 * Add mixer handling back for hardware that doesn't have any alsa-lib
   configuration
 * Prioritize USB devices over built-in sound cards (11.0 was supposed
   to have this feature, but the implementation turned out to be
   incomplete)

Dropped backported patch:
pulseaudio-discuss-iochannel-don-t-use-variable-length-array-in-union.patch

(From OE-Core rev: c6d7d89d9a6bbe2de62fa1a91b833bf1c03693ac)

Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Tanu Kaskinen
2017-11-27 18:39:29 +02:00
committed by Richard Purdie
parent 10865f77b9
commit 7e1ee95d1a
2 changed files with 2 additions and 62 deletions
@@ -1,59 +0,0 @@
From patchwork Sat Feb 4 12:19:01 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [pulseaudio-discuss] iochannel: don't use variable length array in
union
From: Tanu Kaskinen <tanuk@iki.fi>
X-Patchwork-Id: 136885
Message-Id: <20170204121901.17428-1-tanuk@iki.fi>
To: pulseaudio-discuss@lists.freedesktop.org
Date: Sat, 4 Feb 2017 14:19:01 +0200
Clang didn't like the variable length array:
pulsecore/iochannel.c:358:17: error: fields must have a constant size:
'variable length array in structure' extension will never be supported
uint8_t data[CMSG_SPACE(sizeof(int) * nfd)];
^
Commit 451d1d6762 introduced the variable length array in order to have
the correct value in msg_controllen. This patch reverts that commit and
uses a different way to achieve the same goal.
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=99458
---
Upstream-Status: Backport
Signed-off-by: Khem Raj <raj.khem@gmail.com>
src/pulsecore/iochannel.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/pulsecore/iochannel.c b/src/pulsecore/iochannel.c
index 8ace297ff..897337522 100644
--- a/src/pulsecore/iochannel.c
+++ b/src/pulsecore/iochannel.c
@@ -355,7 +355,7 @@ ssize_t pa_iochannel_write_with_fds(pa_iochannel*io, const void*data, size_t l,
struct iovec iov;
union {
struct cmsghdr hdr;
- uint8_t data[CMSG_SPACE(sizeof(int) * nfd)];
+ uint8_t data[CMSG_SPACE(sizeof(int) * MAX_ANCIL_DATA_FDS)];
} cmsg;
pa_assert(io);
@@ -382,7 +382,13 @@ ssize_t pa_iochannel_write_with_fds(pa_iochannel*io, const void*data, size_t l,
mh.msg_iov = &iov;
mh.msg_iovlen = 1;
mh.msg_control = &cmsg;
- mh.msg_controllen = sizeof(cmsg);
+
+ /* If we followed the example on the cmsg man page, we'd use
+ * sizeof(cmsg.data) here, but if nfd < MAX_ANCIL_DATA_FDS, then the data
+ * buffer is larger than needed, and the kernel doesn't like it if we set
+ * msg_controllen to a larger than necessary value. The commit message for
+ * commit 451d1d6762 contains a longer explanation. */
+ mh.msg_controllen = CMSG_SPACE(sizeof(int) * nfd);
if ((r = sendmsg(io->ofd, &mh, MSG_NOSIGNAL)) >= 0) {
io->writable = io->hungup = false;
@@ -3,11 +3,10 @@ require pulseaudio.inc
SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
file://0001-padsp-Make-it-compile-on-musl.patch \
file://0001-client-conf-Add-allow-autospawn-for-root.patch \
file://pulseaudio-discuss-iochannel-don-t-use-variable-length-array-in-union.patch \
file://volatiles.04_pulse \
"
SRC_URI[md5sum] = "4950d2799bf55ab91f6b7f990b7f0971"
SRC_URI[sha256sum] = "a3186824de9f0d2095ded5d0d0db0405dc73133983c2fbb37291547e37462f57"
SRC_URI[md5sum] = "390de38231d5cdd6b43ada8939eb74f1"
SRC_URI[sha256sum] = "f2521c525a77166189e3cb9169f75c2ee2b82fa3fcf9476024fbc2c3a6c9cd9e"
do_compile_prepend() {
mkdir -p ${S}/libltdl