Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

HOt to UnLockInputBuffer ?

dzhou_tac
Beginner
337 Views

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
1 Solution
Ying_H_Intel
Employee
337 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
Ying_H_Intel
Employee
338 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

0 Kudos
Reply