Hi, On Fri, 24 May 2019 13:41:32 +0200 Christian Weisgerber wrote:
> Charlene Wendling: > > > - It doesn't build with ports-gcc (macppc [0], sparc64 [1]) > > > > The problem here is again a macro vs function issue. I've applied > > the same thing upstream still does on audacious proper [2]: > > undef'ing feof(3). > > That part is fine. > > > - At least on macppc, it does some white noise during playback > > > > After poking around, i've found out it was a bit depth issue when > > the related audio setting is on "automatic". Setting manually to > > 16 bit fixed the issue, but it's supposed to work... > > automatically. > > > > mpv does things differently [3] and i have no sound issues > > (excepted for CDDA) on macppc. So after comparing their work, and > > reading the sio_open(3) manpage, i've changed some parameters to > > make it work ootb. > > I object. This cannot be correct. fdata->bytes can't be wrong, > we're getting it from our own table, and otherwise you're nailing > everything to signed native endian, no matter what the actual input > format is. You are hiding the actual bug. You're right. In fact, it has been "fixed" again. After rebuilding audacious-plugins in my chroot where i do port works/tests, with your diff and without my sndio changes. It appears that it works. Since your diff add only debug infos, i was puzzled. What has changed between then and now? I have permanently disabled sndiod on my main install, instead starting it in my chroot. So i've stopped sndiod in the chroot, restarted sndiod on my main install, then started audacious in the chroot: the white noise issue is back. I run sndiod with no customised flags, sndiod_flags is really empty in /etc/rc.conf (just checked, in case i would have forgotten something). And the problem only occurs with audacious: mpv, ffplay, mpg321 and cmus work fine in the same conditions! > Since the output format in "automatic" always appears to be 32-bit > signed native endian (after falling back from float), I'm surprised > that your change actually changes any behavior. > > > + par.bits = fdata->bits; > > +- par.bps = fdata->bytes; > > +- par.sig = fdata->sign; > > +- par.le = fdata->le; > > ++ par.bps = SIO_BPS(par.bits); > > ++ par.sig = 1; > > ++ par.le = SIO_LE_NATIVE; > > Can you try audacious -VV with the patch below and tell us the > messages from [setup_output] and [open_audio]? > > --- src/sndio/sndio.cc.orig Fri May 24 03:14:01 2019 > +++ src/sndio/sndio.cc Fri May 24 04:27:30 2019 > @@ -168,6 +168,7 @@ > > bool SndioPlugin::open_audio (int format, int rate, int channels, > String & error) { > + AUDDBG("format=%d\n", format); > const FormatData * fdata = nullptr; > > for (const FormatData & f : format_table) > @@ -181,6 +182,8 @@ > error = String (str_printf (_("Sndio error: Unsupported > audio format (%d)"), format)); return false; > } > + AUDDBG("bits=%d bytes=%d sign=%d le=%d\n", > + fdata->bits, fdata->bytes, fdata->sign, fdata->le); > > String device = aud_get_str ("sndio", "device"); > const char * device2 = device[0] ? (const char *) device : > SIO_DEVANY; In any case the output is similar: INFO output.cc:175 [setup_output]: Setup output, format 0, 2 channels, 44100 Hz. DEBUG sndio.cc:171 [open_audio]: format=0 INFO output.cc:199 [setup_output]: Falling back to format 12. DEBUG sndio.cc:171 [open_audio]: format=12 DEBUG sndio.cc:186 [open_audio]: bits=32 bytes=4 sign=1 le=0 I'm sending a diff with that bit removed at least. Charlène. > -- > Christian "naddy" Weisgerber > na...@mips.inka.de > Index: Makefile =================================================================== RCS file: /cvs/ports/audio/audacious-plugins/Makefile,v retrieving revision 1.78 diff -u -p -u -p -r1.78 Makefile --- Makefile 20 May 2019 22:15:00 -0000 1.78 +++ Makefile 24 May 2019 14:52:21 -0000 @@ -4,11 +4,11 @@ COMMENT = input and output plugins for V = 3.9 DISTNAME = audacious-plugins-$V -REVISION = 2 +REVISION = 3 CATEGORIES = audio multimedia -HOMEPAGE = http://audacious-media-player.org/ +HOMEPAGE = https://audacious-media-player.org/ # BSD / GPL PERMIT_PACKAGE_CDROM = Yes Index: patches/patch-src_neon_neon_cc =================================================================== RCS file: patches/patch-src_neon_neon_cc diff -N patches/patch-src_neon_neon_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_neon_neon_cc 24 May 2019 14:52:21 -0000 @@ -0,0 +1,19 @@ +$OpenBSD$ + +Fix for ports gcc as feof() is a macro + +neon.cc:968:16: error: expected unqualified-id before '(' token +bool NeonFile::feof () + +Index: src/neon/neon.cc +--- src/neon/neon.cc.orig ++++ src/neon/neon.cc +@@ -45,6 +45,8 @@ + #define NEON_ICY_BUFSIZE (4096) + #define NEON_RETRY_COUNT 6 + ++#undef feof ++ + enum FillBufferResult { + FILL_BUFFER_SUCCESS, + FILL_BUFFER_ERROR,