When a downstream pin accepts an upstream pin's ReceiveConnection request, a process of allocator negociation takes place. GetAllocatorRequirements solicits from the downstream pin what allocator properties it requires. The downstream pin fills in an ALLOCATOR_PROPERTIES structure, and this is returned to the upstream pin. Per the DirectShow documentation, the downstream pin should set any allocator properties it doesn't care about to the value -1. Here's the bug: if the downstream pin sets the cbAlign property to -1, the MP4 splitter rejects the connection with VFW_BAD_ALIGN. This is incorrect. The MP4 splitter must interpret any cbAlign value <= 0 to mean "downstream pin doesn't have any specific alignment requirements", and setting cbAlign value for the allocator to something sensible, e.g. cbAlign = 1. It should not return an error.