Ludovic RESLINGER <[EMAIL PROTECTED]> wrote: > If fmit works when you add --disable-alsa, it is probably > because it is an alsa bug.
Of course! The fact that it selects different capturing code in fmit couldn't have anything to do with it! One or more of these obvious errors might be involved: 1. CaptureThread uses volatile bool flags for communication between threads, but there's no guarantee that a volatile bool is or even can be updated atomically. 2. CaptureThread::m_packet_size needs to be consistent with CaptureThread::m_values (I think) but it is written without the lock held in CaptureThreadImplALSA::capture_loop() and CaptureThreadImplJACK::jackProcess(). 3. CaptureThreadImplALSA::capture_finished() uses delete to free an array; it must use delete[] instead. 4. CaptureThreadImplALSA::set_params() will continue if it can't set the format as requested (however the logs posted to this bug report indicate that this hasn't happened). The format could use 32-bit samples, which would overflow the buffer in captureLoop(). Someone who cares about this program could try to fix them. Ben. -- Ben Hutchings It is easier to write an incorrect program than to understand a correct one.
signature.asc
Description: This is a digitally signed message part