私の知る限り、フレームがキー フレームかどうかを確認するには、IMediaSample::IsSyncPoint() メソッドを確認する必要があります。このメソッドは、フレームがキー フレームの場合は 0 (S_OK) を返します。その他の場合。
しかし、IsSyncPoint() メソッドは、取得されて ISampleGrabberCB::SampleCB() コールバック メソッドに渡されるすべてのフレームで 0 を返すだけです。
私のコールバックに含まれるコードは単純です:
public int SampleCB ( double sampleTime, IMediaSample mediaSample )
{
Console.WriteLine ( "SampleCB Callback" );
Console.WriteLine ( mediaSample.IsSyncPoint ( ) + " " );
Marshal.ReleaseComObject ( mediaSample );
return 0;
}
ここで何が欠けていますか?