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.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to