Hi all. In my application I have a number N of MPEG4 decoders to decode N video stream. Sometime the decoder are destroyed and reconstructed due to stream changes. I found that sometime, after this operation, I have the value of "Virtual Bytes", of the performance counter, increase without reason. I can reproduce this behavior if in a test application I use a VirtualAlloc to reserve memory without release it. Does some IPP or UMC function use the function VirtualAlloc to reserve memory? I already have the MemoryAllocator used externally to the decoder, so the allocator is not deleted when the decoder is re-created. I can't understand why but it seams that this wast of Virtual Memory is due to the Init of the decoder, or to the GetFrame. Someone has found this behavior?
Found the problem, was not a memory leak, but a wasted memory caused by frammentation. In my code, as I told you I have to allocate and deallocate decoders (for example MPEG4 decoders). This decoders allocate and deallocate all the times the memory that they need to decode the images.
I solved by using a external MemoryAllocator, so I can use take MemoryAllocator always allocated and give it to the decoder: this work fine. There's only few allocation in the MPEG4 decoder that do not use the MemoryAllocator is in InitVol() function: do you think that in the future version of decoder this allocation will use MemoryAllocator?
ps.Remember to FIX the IF code that let me to give an external MemoryAllocator to the decoder, I have to chenge the IF in the Init of the decoder, otherwise I could not use External MemoryAllocator