"  -w            file format Wave\n"
                "  -r            file format Raw\n"
                "  -S            stereo\n"
+               "  -o <voices>   voices (1-N)\n"
                "  -s <Hz>       speed (Hz)\n"
                "  -f <format>   data format\n"
                "  -m            set CD-ROM quality (44100Hz,stereo,16-bit linear,little endian)\n"
                                fprintf(stderr, "Error: value %i for voices is invalid\n", tmp);
                                return 1;
                        }
+                       rformat.voices = tmp;
                        break;
                case 'q':
                        quiet_mode = 1;
                fprintf(stderr, "capture channel status error\n");
                exit(1);
        }
+       if (status.status == SND_PCM_STATUS_RUNNING)
+               return;         /* everything is ok, but the driver is waiting for data */
        if (status.status == SND_PCM_STATUS_OVERRUN) {
                printf("overrun at position %u!!!\n", status.scount);
                if (snd_pcm_plugin_prepare(pcm_handle, SND_PCM_CHANNEL_CAPTURE)<0) {
                                }
                                count -= c;
                        }
-                       if (l == -EAGAIN)
+                       if (l == -EAGAIN) {
+                               capture_read_error();
                                l = 0;
+                       }
                        if (l < 0) {
                                fprintf(stderr, "read error: %s\n", snd_strerror(l));
                                exit(-1);