Пример фильтра Grabber
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Примечание
[Не рекомендуется. Этот 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 |
Комментарии
Чтобы использовать этот фильтр, добавьте его в граф фильтра и вызовите метод ISampleGrabber::SetMediaType с нужным типом мультимедиа. Этот метод задает тип носителя для входных и выходных соединений закрепления фильтра. Затем подключите фильтр к другим фильтрам в графе.
При вызове метода ISampleGrabber::SetBufferSamples со значением TRUE фильтр буферизовает каждый полученный образец перед передачей его вниз. Вызовите метод ISampleGrabber::GetCurrentBuffer , чтобы получить текущее содержимое буфера. Кроме того, можно вызвать метод ISampleGrabber::SetCallback , чтобы фильтр вызывал функцию обратного вызова при каждом получении примера.
Фильтр имеет следующие ограничения для форматов видео:
- Он не поддерживает типы видео с ориентацией сверху вниз ( отрицательное значение biHeight).
- Он не поддерживает структуру формата VIDEOINFOHEADER2 (тип формата, равный FORMAT_VideoInfo2).
- Он отклоняет любой тип видео, в котором шаг поверхности не соответствует ширине видео.
В результате пример Grabber не будет подключаться к отрисовщику смешанного видео (VMR) для некоторых типов видео.
Требования
Требование | Значение |
---|---|
Заголовок |
|
См. также раздел