Будучи новичком в DS Мне нужен SampleGrabber, который может обрабатывать VIDEOINFOHEADER2, который IMediaDet не может.Образец DirectShowGrabber извлекает ошибочный образец
Итак, я взял SampleGrabber из образцов DX8.1, которые, в отличие от захватчиков, позволяют использовать все виды носителей. я использовал образец кода достаточно, как есть, и захватывая один единственный кадр все, кажется, работает хорошо: график построен без возврата errorcodes и т.д. Затем вызова
hr = pSeeking->SetPositions(
&Seek,
AM_SEEKING_AbsolutePositioning,
NULL,
AM_SEEKING_NoPositioning);
с Seek = 2
обратного вызова называются:
HRESULT Обратного вызов (IMediaSample * pSample, REFERENCE_TIME * время_запуск, REFERENCE_TIME * конечный момент время, BOOL TypeChanged)
проблема с буфером: Он имеет нужный размер (GetSize() == 691200 = 3 байт * 640 * 320) , но его содержимое - все «205», которого не может быть (в каком формате когда-либо).
Подозрительные об этом: Параметры "Обратный звонок" являются время_запуска = 834168, 1251251 = конечным моментом и TypeChanged = 1.
Я попытался показывая график на GraphEdit https://msdn.microsoft.com/en-us/library/windows/desktop/dd390650%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 , но не был успешным ("приложение занят "из GraphEdit).
Где может быть проблема?
Я ничего не знаю о DirectShow, кроме некоторых вопросов, как 20 лет назад. Единственное, что я увидел, это ключ 0xCD. Да, согласен, удаляю вопрос, поскольку он не имеет ничего общего с DirectShow. –
Я буду. Но - еще раз указать - ваш намек был действительно полезен. Спасибо! :-) – nji9