hrhr. Den Quelltext hab' ich wohl :)

Ich bin überrascht, daß Du das ganze immer direkt in der unixinout.c eingesetzt hast. Ich hab dann doch lieber erstmal sox selbst ein paar mal aufgerufen.

Das Problem ist m.E. tatsächlich die sox Version die man einsetzt. Da muss man auf jeden Fall zwischen 12, 14.0 und 14.x unterscheiden.

In der 14.0 (ubuntu8) nimmt er folgendes Kommando auf jeden Fall mal an:

Code:
sox -v1.000 -t raw -r 22050 -s -2 -c 2  -c1  mixer -l
Statt -2 nimmt er z.B. nicht das -b 16. Ebenso kennt die 14.0 noch nicht das -e signed-integer Kommando. Man muss mit -s auf den Datentyp signed-integer stellen.

Mangels realer Aufnahme kann ich nur nicht prüfen, ob dann auch etwas "hörbares" rauskommt.

Der relevante Teil im Source-Code findet sich hier:
Code:
sprintf(cmdline, "%s -v%f %s %s %s %s%s -%c", rec.cmd, (float)rec.volume / 100, rec.in_args, rec.file,
rec.out_args, rec.file, rec.suff, rec.chan);
Gilt es also noch rec.in_args und rec.out_args anzupassen und vor das -%c noch das Codewort mixer packen.


in_args und outargs. Werden auch in unixinout.c gesetzt.