GRECORD sets the incorrect channel (mono/stereo) when recording mono. the problem is a local variable that is the same name as a global. the global channel value is corrupted with the ESD_STEREO definition (bit field not a binary 0/1 value). problem appears after playing back recorded data, the audio is distorted. patch for grec.c in GRECORD 0.3.4: --- grec.c Mon Sep 18 10:13:54 2000 +++ grec.c.fix Mon Sep 18 10:13:45 2000 @@ -528,7 +528,7 @@ gint length = 0; gint bits = ESD_BITS16; - gint channels = ESD_STEREO; + gint esd_channels = ESD_STEREO; gint mode = ESD_STREAM; gint func = ESD_RECORD; esd_format_t format = 0; @@ -551,7 +551,7 @@ rate = atoi (samplerate); - format = bits | channels | mode | func; + format = bits | esd_channels | mode | func; sock = esd_record_stream_fallback (format, rate, host, name); if (sock <= 0)
grecord is in gnome-media :)
fixed in gnome-media-1.2.0-10