hi again,
I did a port of your shoutcast~ to linux, but I didn't use any "black magic" ( like adding a counter ), I rather did the following modifications to your first posted version :
a/ make the port to linux, including the makefile. You might to fix the path to your libmp3lame.so in the makefile.
b/ change the code for allocation which might have been responsible for the crashes. In lame documentation, it is said that when you encode N samples, your mp3 buffer must be 1,25*N+7200 bytes !!! I guess it's not science here, but rather taken from experiment. I declared the requested buffers accordingly.
c/ change (short) *in1++*32768 to (short) (*in1++*32768) yes, that's why you had zeros , because the cast was made BEFORE multiplication !!!!
d/ make a -DSHOUTCAST or -DICECAST toggle for compilation, it seems that they are not using the same port number.
e/ change some more code to follow the rules of external writing HOWTO ( to read first for anyone who wants to make externals )
The remaining problems are :
a/ I haven't tried to compile it for windows, I don't have such a compilation environment. So, you could get some errors.
b/ there are some clicks in the sound received, I don't know the reason, it seems to happen for each buffer boundary ( 65536 samples ). I'll check this later.
cheers,
Yves/
PS : from this external, an mp3 file encoder must be rather straightforward, I'll try to do it.