albertz/shairport — Issue #141: Pops/clicks on embedded system output (or: ever-increasing bf_est_err)
Author: timdoug
Created: 2012-03-07 05:44:05+00:00
State: open

Hey all,

I have a TP-LINK TL-WR703N (400 MHz Atheros MIPS SoC / 32 MB RAM / 4 MB flash) running OpenWrt trunk, using a Behringer UCA-202 USB sound card. I've verified that ALSA/libao work perfectly playing an mp3 (through mpg321), but shairport plays back music with audible pops and clicks, from one every few seconds to a few a second. Setting debug=1 in hairtunes.c gives this on stdout:

bf 497 err -0.000005 drift -0.000000 desiring 497.767000 ed -0.000000 estd -0.000000

...followed by a stream in which the err value is increasing (possibly monotonically) and the others change much less significantly. E.g., after 30 seconds the stream says:

bf 498 err 2.033673 drift 0.000011 desiring 497.231000 ed 0.000795 estd 0.000999

I don't really know where to go from here -- is this an issue with the algorithms in hairtunes.c? Or some side-effect of (the speed of) the MIPS architecture? I know that FP ops were minimized so shairport would work well on low-powered ARM chips, but maybe something else is at play?

Thanks!