Насколько я знаю, чтобы проверить, является ли кадр ключевым, или нет, я должен проверить метод IMediaSample :: IsSyncPoint (), который возвращает 0 (S_OK), если кадр является ключевым, false в другом случае.
Но метод IsSyncPoint () просто возвращает 0 в каждом кадре, который захватывается и передается методу обратного вызова ISampleGrabberCB :: SampleCB ().
Код, который включает в себя мой обратный вызов, прост:
public int SampleCB ( double sampleTime, IMediaSample mediaSample )
{
Console.WriteLine ( "SampleCB Callback" );
Console.WriteLine ( mediaSample.IsSyncPoint ( ) + " " );
Marshal.ReleaseComObject ( mediaSample );
return 0;
}
Что мне здесь не хватает?