What does DirectShow use for data transfer between filters? (pipes or what)
DirectShow handles data chunks in "media samples", which are simply buffers, implemented through the IMediaSample
COM interface. To allocate samples is used a COM-based memory manager, the IMemAllocator
interface, that should be implement by filters. To transfer samples is used the method IMemAllocator::GetBuffer
.
Fully documented there: Data Flow in the Filter Graph