Hello,
I found the reason why the MEDIASUBTYPE_YUY2 was not accepted. The input pin, which is created thru a class CDeinterlaceInputPin inherited from CTransformInputPin, specifies a ALLOCATOR_PROPERTIES::cBuffers value greater than 1 after a call to its GetAllocatorRequirements() method. The next call to the GetAllocator() method of CTransformInputPin return without error, but the next call to NotifyAllocator() of CTransformInputPin gives a Actual.cBuffers value of 1 when the media subtype is MEDIASUBTYPE_YUY2 and this method considers this situation as an error. If i specify the cBuffers value = 1, then the connection works, but not the rest of the filter. With the MEDIASUBTYPE_RGB24 there is no problem.
So my question becomes, why the IMemAllocator transmitted in the NotifyAllocator() method of my CDeinterlaceInputPin() always give a ALLOCATOR_PROPERTIES::cBuffers of 1 for MEDIASUBTYPE_YUY2 (and not for MEDIASUBTYPE_RGB24 which is however more demanding)?
regards