Hi, The following diff from upstream fixes 24-bit/32-bit output support for cmus (I'm the maintainer).
Thanks to Tobias Kortkamp for the patch! (I've also changed a pre-configure to pre-build, otherwise the first sed(1) could be applied twice if "make configure" is interrupted. Dunno if it's a really good idea.) Tested on loongson. Index: Makefile =================================================================== RCS file: /cvs/ports/audio/cmus/Makefile,v retrieving revision 1.12 diff -u -p -r1.12 Makefile --- Makefile 12 Sep 2016 11:45:57 -0000 1.12 +++ Makefile 22 Sep 2016 17:08:18 -0000 @@ -7,6 +7,7 @@ V= 2.7.1 DISTNAME= cmus-${V} PKGNAME-main= ${PKGNAME} PKGNAME-ffmpeg= cmus-ffmpeg-${V} +REVISION= 0 GH_ACCOUNT= cmus GH_PROJECT= cmus @@ -78,7 +79,7 @@ WANTLIB-main+= vorbis>=0 vorbisfile>=1 NO_TEST= Yes -pre-configure: +pre-build: sed -i s,/usr,${LOCALBASE}, ${WRKSRC}/Doc/cmus.txt sed -i s,doc/cmus/examples,examples/cmus, ${WRKSRC}/Doc/cmus.txt Index: patches/patch-sndio_c =================================================================== RCS file: patches/patch-sndio_c diff -N patches/patch-sndio_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-sndio_c 22 Sep 2016 17:08:18 -0000 @@ -0,0 +1,29 @@ +$OpenBSD$ + +Support 32-bit/24-bit encoding + +84f33584be91 upstream + +--- sndio.c.orig Mon Jul 13 12:00:56 2015 ++++ sndio.c Thu Sep 22 18:54:45 2016 +@@ -20,7 +20,6 @@ + + #include <sys/types.h> + #include <sys/ioctl.h> +-#include <sys/audioio.h> + #include <sys/stat.h> + #include <errno.h> + #include <fcntl.h> +@@ -82,6 +81,12 @@ static int sndio_set_sf(sample_format_t sf) + par.le = 1; + + switch (sf_get_bits(sndio_sf)) { ++ case 32: ++ par.bits = 32; ++ break; ++ case 24: ++ par.bits = 24; ++ break; + case 16: + par.bits = 16; + break;