wine + winamp: fixme:wave:OSS_AddRingMessage two fast
messages in the queue!!!!
su at rtme.net
Wed Mar 16 06:08:11 CST 2005
thanks a lot for this detail explanation.
good to know that this FIXME message is not the reason for our 15sec
pause, but bad for us because we have to search other problems which
could occure this pause.. ;-)
anyway thanks for this answer!
On Sat, 2005-03-12 at 14:50 +0100, Eric Pouech wrote:
> seut a écrit :
> > hello,
> > we are using winamp 2.95 with latest wine 0.0.20040914 and are wondering
> > what there is about these 'fixme:wave:OSS_AddRingMessage two fast
> > messages in the queue!!!!' messages dumped out at the console every few
> > seconds...
> > Same happens(but with 'ALSA_AddRingMessages' of course) if we're using
> > the wine alsa-driver.
> > Winamp normally works, but sometimes there is a 15sec pause at the
> > playback, so we are trying to search the problem.
> > I watched the wine source-code, but as my less C knowledge I didn't
> > really understand the part where this 'FIXME' message is implemented.
> > As I understand the code, why somebody added the 'FIXME' message to the
> > code, if the code can handle this problem(two fast messages)?
> > Or can somebody explain me the reason for this 'two fast messages'?
> basically, the playback thread can receive two kinds of messages:
> - header message, containing data to be played
> - control message (start, stop, pause...), which have to be handled before any
> header message, hence the "fast" notion
> what happens in your case is that two different threads in your program (winamp)
> are using APIs which need to send fast messages... we're not prepared for that
> yet (this would just mean adding the new "fast" message after the existing fast
> messages, and before the other ones). the code only assumes there's no existing
> fast message, and just piles the new fast message on top of the queue
> BTW, on a pure theoritical analysis, always putting the fast messages at the
> start of the buffer (and even before existing ones) shouldn't hurt, as there's
> no order to be assumed when two threads call the APIs (if the program needs to
> maintain the order, it has to do it at the thread level)
> to make a long story short, the FIXME is useless
> so, the issue you're seeing come from somewhere else
More information about the wine-devel