Index: loader/dshow/DS_Filter.c =================================================================== --- loader/dshow/DS_Filter.c.orig 2007-02-15 09:48:12.000000000 -0800 +++ loader/dshow/DS_Filter.c 2007-02-15 09:49:04.000000000 -0800 @@ -251,13 +251,19 @@ This->m_pOurOutput = COutputPinCreate(This->m_pDestType); - result = This->m_pOutputPin->vt->ReceiveConnection(This->m_pOutputPin, + result = This->m_pOutputPin->vt->QueryAccept(This->m_pOutputPin, + This->m_pDestType); + // Only connect if we can. Otherwise delay the connection until + // DS_VideoDecoder_SetDestFmt is called + if (! result) { + result = This->m_pOutputPin->vt->ReceiveConnection(This->m_pOutputPin, (IPin*) This->m_pOurOutput, This->m_pDestType); - if (result) - { - em = "could not connect to output pin"; - break; + if (result) + { + em = "could not connect to output pin"; + break; + } } init++;