Re: alcCaptureSamples crashes on stereo capturing

Philipp Kraus <[email protected]> Thu, 9 Aug 2012 20:52:40 +0200
Newsgroups gmane.comp.lib.openal
Message-ID <[email protected]>
On 2012-08-09 16:14:09 +0200, Philipp Kraus said:

> Hello,
> 
> I have got this code for capturing mono 8 bit data, the code works 
> without any error:
> 
> m_device = alcCaptureOpenDevice( p_device.c_str(),  
> static_cast<ALCuint>(p_sampingfrequency),  AL_FORMAT_MONO8,     
> static_cast<ALCsizei>(p_buffersize));
> 
> ublas::vector<ALubyte> l_buffer(m_buffersize);
> alcCaptureStart(m_device);
> while(m_capturing)
> {
>         alcGetIntegerv(...)
>         l_samplesread = std::min( 
> static_cast<std::size_t>(l_samplesread), l_buffer.size()-i);
>         alcCaptureSamples(m_device, (ALCvoid*)(&l_buffer[i]), l_samplesread);
> }
> 
> If I switch the the AL_FORMAT_MONO8 to AL_FORMAT_STEREO8 and change the 
> p_buffersize to 2*p_buffersize & m_buffersize to 2*m_buffersize the 
> code crashes
> on the alcCaptureSamples line and the buffer is not filled. IMHO the 
> left channel should be the even elements in the l_buffer and the right 
> the odd ones, so if I create
> a double size buffer each l_buffer block should be started with the 
> left channel data. If I disable the alcCaptureSample call, the correct 
> number of samples are received.

The error message is: incorrect checksum for freed object - object was 
probably modified after being freed


_______________________________________________
Openal mailing list
[email protected]
http://opensource.creative.com/mailman/listinfo/openal