Пример фильтра Grabber

Примечание

[Не рекомендуется. Этот API можно удалить из будущих выпусков Windows.]

 

Фильтр Sample Grabber позволяет получить образцы по мере их передачи через граф фильтров. Это фильтр преобразования с одним входным контактом и одним выходным контактом. Он передает все примеры вниз по течению без изменений, поэтому его можно вставить в граф фильтра, не изменяя поток данных. Затем приложение может получить отдельные примеры из фильтра, вызвав методы в интерфейсе ISampleGrabber .

Если вы хотите получить образцы без отрисовки данных, подключите фильтр Sample Grabber к фильтру отрисовщика NULL .

Метка Значение
Фильтры интерфейсов IBaseFilter, ISampleGrabber
Типы носителей входных контактов Любой тип носителя.
Интерфейсы закрепления ввода IMemInputPin, IPin, IQualityControl
Выходные типы носителей контактов Любой тип носителя. Соответствует типу входного носителя.
Интерфейсы закрепления выходных данных IMediaPosition, IMediaSeeking, IPin, IQualityControl
Фильтрация CLSID CLSID_SampleGrabber
CLSID страницы свойств Страница свойств отсутствует.
Исполняемый объект Qedit.dll
Заслуга MERIT_DO_NOT_USE
Категория фильтра CLSID_LegacyAmFilterCategory

 

Remarks

Чтобы использовать этот фильтр, добавьте его в граф фильтров и вызовите ISampleGrabber::SetMediaType с нужным типом мультимедиа. Этот метод задает тип носителя для входных и выходных подключений фильтра. Затем подключите фильтр к другим фильтрам в графе.

При вызове ISampleGrabber::SetBufferSamples со значением TRUE фильтр помещает в буфер каждый образец, который он получает перед передачей ниже. Вызовите метод ISampleGrabber::GetCurrentBuffer , чтобы получить текущее содержимое буфера. Кроме того, можно вызвать ISampleGrabber::SetCallback , чтобы фильтр вызывал функцию обратного вызова при получении примера.

Фильтр имеет следующие ограничения для форматов видео:

  • Он не поддерживает типы видео с ориентацией сверху вниз (отрицательная двунаправленная ориентация).
  • Она не поддерживает структуру формата VIDEOINFOHEADER2 (тип формата, равный FORMAT_VideoInfo2).
  • Он отклоняет любой тип видео, в котором шаг поверхности не соответствует ширине видео.

В результате пример Grabber не будет подключаться к отрисовщику видео (VMR) для некоторых типов видео.

Требования

Требование Значение
Заголовок
Qedit.h

См. также раздел

DirectShow редактируемые объекты служб

Использование примера Grabber