[Openal] Unqueuing all buffers from a stream

Daniel PEACOCK dpeacock at creativelabs.com
Tue Nov 28 10:31:41 PST 2006





Hi,

You are quite right - you can only unqueue buffers that have been
processed.   When you stop a source, this marks all the buffers in the
queue as processed.  So if your Source is stopped, you should definitely be
able to unqueue all the buffers.  (However, it seems that the nVidia
implementation is incorrectly failing this operation).   What OpenAL device
are you using (and on which platform) ?

Dan

Notice
The information in this message is confidential and may be legally
privileged.  It is intended solely for the addressee.  Access to this
message by anyone else is unauthorized.  If you are not the intended
recipient,  any disclosure,  copying or distribution of the message,  or
any action taken by you in reliance on it,  is prohibited and may be
unlawful.  If you have received this message in error,  please delete it
and contact the sender immediately.  Thank you.



                                                                           
             Nolan Darilek                                                 
             <nolan at thewordner                                             
             d.info>                                                    To 
             Sent by:                  openal at opensource.creative.com      
             openal-bounces at op                                          cc 
             ensource.creative                                             
             .com                                                  Subject 
                                       [Openal] Unqueuing all buffers from 
                                       a stream                            
             11/28/2006 09:52                                              
             AM                                                            
                                                                           
                                                                           
                                                                           
                                                                           




I'm working on my streaming implementation and am confused about
something. I'm trying to implement random music on levels, so at some
point my code needs to unqueue everything associated with a stream
and queue new music. At the moment I'm getting an invalid operation
on my alUnqueueBuffers() call.

Based on what I've read in the programmer's manual, I'm guessing that
this is because I'm iterating through the list of AL_QUEUED_BUFFERS
and attempting to unqueue all of them, but because some/none of them
have been processed, the code is failing.

So, is there any way to unqueue all buffers from a stream, even those
that have not yet been processed? AFAIK the source has been stopped,
which I'd have thought was all that'd be necessary to yank
unprocessed buffers from the queue. Or am I missing/misunderstanding
something?

Thanks in advance.

_______________________________________________
Openal mailing list
Openal at opensource.creative.com
http://opensource.creative.com/mailman/listinfo/openal

ForwardSourceID:NT000399CE



More information about the Openal mailing list