Поделиться через


Написание фильтров преобразования

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

В этом разделе описывается, как написать фильтр преобразования, определенный как фильтр, имеющий ровно один входной и выходной контакт. Чтобы проиллюстрировать шаги, в этом разделе описывается гипотетический фильтр преобразования, который выводит видео в формате RLE. Он не описывает сам алгоритм кодирования RLE, а только задачи, относящиеся к DirectShow. (DirectShow уже предоставляет кодек RLE через фильтр AVI Filter .)

В этом разделе предполагается, что для создания фильтров будет использоваться библиотека базовых классов DirectShow. Хотя вы можете написать фильтр без него, настоятельно рекомендуется использовать библиотеку базовых классов.

Примечание

Перед написанием фильтра преобразования подумайте, соответствует ли объект мультимедиа DirectX (DMO) вашим требованиям. МДО могут выполнять те же действия, что и фильтры, а модель программирования для МДО проще. МДО размещаются в DirectShow с помощью фильтра-оболочки DMO , но их также можно использовать за пределами DirectShow. МДО теперь являются рекомендуемыми решениями для кодировщиков и декодеров.

 

Этот раздел содержит следующие подразделы:

Создание фильтров DirectShow

Базовые классы DirectShow

Написание фильтров DirectShow