Howdy - I'm running madplay on an iPaq3670/Familiar0.8 (ARM arch) with
a CF ethernet card. I play Shoutcast MP3 streams by piping wget -o -
<stream-url> | madplay - , and it works really well - realtime decoding,
full sound, no fan, otherwise useless HW :). But every 10-30 minutes or
so, I get a net/Inet hiccup that interrupts the stream connection. wget
hangs, and no data gets to madplay. I want to set up another process to
watch madplay, and kill it when it stops playing, then restart it - this
always works manually. But madplay doesn't seem to reliably emit output
status info. the --verbose flag sends an updated "seconds" counter, but,
since it doesn't send any newlines, it can't be parsed by piping it to a
"read" in a shell script. And redirecting it to a file doesn't reliably
update the file's ctime, either. If I "madplay -o wave:- | tee >/dev/dsp
|watchdog", the system performance grinds to a halt, unlistenable.
I just want any technique that keeps my wget | madplay pipeline
restarted all the time, with a minimum of restarts, which make an
audible "clunk". Short of recoding (and cross-compiling) libmad with
extra status hooks, is there any way to keep this little engine
churning?
--
(C) Matthew Rubenstein