protected void AddAndConnectNullRendererForWPF()
{
if (useWPF)
{
// In order to keep the audio/video synchro, we need the NullRenderer
IBaseFilter nullRenderer = new NullRenderer() as IBaseFilter;
int hr = graphBuilder.AddFilter(nullRenderer, "NullRenderer");
ThrowExceptionForHR("Adding the NullRenderer: ", hr);
IPin pinOutFromFilterOut = DsFindPin.ByDirection(this.videoRenderer, PinDirection.Output, 0);
if (pinOutFromFilterOut != null)
{
try
{
IPin pinInFromFilterOut = DsFindPin.ByDirection(nullRenderer, PinDirection.Input, 0);
if (pinInFromFilterOut != null)
{
try
{
hr = this.graphBuilder.Connect(pinOutFromFilterOut, pinInFromFilterOut);
}
finally
{
Marshal.ReleaseComObject(pinInFromFilterOut);
}
}
}
finally
{
Marshal.ReleaseComObject(pinOutFromFilterOut);
}
}
//IPin pinOutFromFilterOut = DsFindPin.ByDirection(this.videoRenderer, PinDirection.Output, 0);
//if (pinOutFromFilterOut != null)
//{
// hr = this.graphBuilder.Render(pinOutFromFilterOut);
// Marshal.ReleaseComObject(pinOutFromFilterOut);
//}
}
}