2

GraphEditを使用すると、フィルターをエディターに追加し、それを使用してビデオをレンダリングできます。COMを介して(DirectShow.NETを使用して)インスタンスを作成すると、メソッドEnumPins(次のチェックが続く)はピンを返しません。

GraphEditがピンを表示し、COMインターフェイスを介してピンへの参照を取得できない理由はありますか?

編集:これは私が最初に利用可能なピン(任意のタイプ)を取得するために使用している方法です。このフィルターには何も返されませんが、グラフ編集で4つのピン(2つ入力、2つ出力)を確認できます。

public static IPin GetPins(IBaseFilter vSource, int iIndex)
{
    IEnumPins pins;
    var ppPins = new IPin[1];
    if (vSource == null)
        return null;
    DsError.ThrowExceptionForHR(vSource.EnumPins(out pins));
    try
    {
        while (pins.Next(1, ppPins, IntPtr.Zero) == 0)
        {
            return ppPins[0];
        }
    }
    finally
    {
        Marshal.ReleaseComObject(pins);
    }
    return null;
}
4

0 に答える 0