On 2012/06/09 19:23, Alexandr Shadchin wrote: > > $ pgrep -lf sndio > > 14709 /usr/bin/sndiod -v 109 -b 47040 -a off -fsun:1 -L - > > May be need use -frsnd/1 ?
I tried this, it doesn't change anything (also other programs work OK with sun:1). On 2012/06/09 15:04, Alexandre Ratchov wrote: > On Sat, Jun 09, 2012 at 12:58:16PM +0100, Stuart Henderson wrote: > > > > Any idea about this? Does it seem more likely to be a problem with > > deadbeef or with sndiod? It's not too important whether the resampling > > is done in sndiod or in deadbeef but it doesn't work anywhere for me. > > > > File is 22KHz stereo (though I get the same with any non-48KHz files > > that I've tried). > > > > does this help? Here, it fixes playback of stereo, 22050Hz, u8 > files. At least on the command line, the GUI still crashes when I > load such a file through File->Open dialog. Nope, same thing. sndio.c is checking the actual parameters coming back from sndio and comparing against the requested params, when they don't match it exits with an error. e.g. if I print par.bits and askpar.bits and other settings near the par.rate != askpar.rate check, I get bps 2 2, sig 1 1, pchan 2 2, rate 48000 44100 (askpar.bits==44100, par.bits==48000). Comment out that check completely and I get streamer_set_output_format 16bit int 2ch 44100Hz channelmask=3 streamer_set_output_format 16bit int 2ch 44100Hz channelmask=3, bufferfill: 0 aucat_open: host= unit=0 devnum=0 opt=default /tmp/aucat-1000/aucat0: No such file or directory aucat_rmsg: eof aucat_init: mode refused sio_sun_setpar: 0: trying pars = 48000/16/6 sio_sun_setpar: bpf = (1, 4) sio_sun_setpar: 0: trying round = 600 -> (9600, 600) sio_sun_setpar: blocksize ok sio_sun_setpar: 0: trying pars = 44100/16/6 sio_sun_setpar: bpf = (1, 4) sio_sun_setpar: 0: trying round = 6000 -> (9600, 6000) sio_sun_setpar: blocksize ok 0.000233: sio_write: wrote 24000 bytes of 24000 in 15us Program received signal SIGSEGV, Segmentation fault. [Switching to thread 1004030] 0x00000000004106ed in streamer_read_async (bytes=0x834fc0 "", size=Variable "size" is not available. ) at streamer.c:1876 1876 int tempsize = pcm_convert (&fileinfo->fmt, input, &dspfmt, tempbuf, inputsize); (gdb) bt #0 0x00000000004106ed in streamer_read_async (bytes=0x834fc0 "", size=Variable "size" is not available. ) at streamer.c:1876 #1 0x0000000000411b9c in streamer_thread (ctx=Variable "ctx" is not available. ) at streamer.c:1411 #2 0x000000020111768e in _rthread_start (v=Variable "v" is not available. ) at /usr/src/lib/librthread/rthread.c:113 #3 0x000000020863107e in __tfork_thread () from /usr/lib/libc.so.64.1 Cannot access memory at address 0x205b9c000