Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
7 Views

HOt to UnLockInputBuffer ?

Jump to solution

Hi,

I uses DataReader, Spiltter, and Decoder. But I don't want to have Render. The Audio Media Buffer is created as LinearBuffer. and Decoder is DSAudioCodec. I called DSAudioCodec->LockInputBuffer, after data moved into decoder buffer, I called DSAudioCodec->UnLockInputBuffer. Everything works ok. But after a while, the InputBuffer is full. It seems to me DSAudioCodec->UnlockInputBuffer still keeps the SampleList and Buffer is still on hold. I guess it is freeed after Rendering. But I use other way to rendering. So there is any way to release LinearBuffer for the inputBuffer.

Thanks

David

0 Kudos

Accepted Solutions
Employee
7 Views

Hello david,

Seeingfrom the UMC documentation, the linearBuffer sizeare set by the Init() method and cannot be changed . The object tracks amount of free or filled bytes, and provides appropriate pointers to callers. If available amount of bytes is less than the required amount, the object immediately returns one of predefined
return values. So the caller code has to organize a special waiting code around an object
call. Despite the set reading and writing granulations, the object returns the entire amount
of bytes available for reading or writing. The granulations values have a meaning of
minimal acceptable values.

"After a while, the InputBuffer is full". So does it mean the read data into buffer too much, but no datawrite out? How about increate the Buffer size? or check the data writeout-in pipeline so the buffer is always ok as pseudo-infinite region?

Regards,

Ying

View solution in original post

0 Kudos
1 Reply
Employee
8 Views

Hello david,

Seeingfrom the UMC documentation, the linearBuffer sizeare set by the Init() method and cannot be changed . The object tracks amount of free or filled bytes, and provides appropriate pointers to callers. If available amount of bytes is less than the required amount, the object immediately returns one of predefined
return values. So the caller code has to organize a special waiting code around an object
call. Despite the set reading and writing granulations, the object returns the entire amount
of bytes available for reading or writing. The granulations values have a meaning of
minimal acceptable values.

"After a while, the InputBuffer is full". So does it mean the read data into buffer too much, but no datawrite out? How about increate the Buffer size? or check the data writeout-in pipeline so the buffer is always ok as pseudo-infinite region?

Regards,

Ying

View solution in original post

0 Kudos