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


Потоки и критически важные разделы

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

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

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

  • CMyInputPin: производный от CBaseInputPin.
  • CMyOutputPin: производный от CBaseOutputPin.
  • CMyFilter: производный от CBaseFilter.
  • CMyInputAllocator: распределитель входных контактов, производный от CMemAllocator. Не каждый фильтр нуждается в пользовательском распределителе. Для многих фильтров достаточно класса CMemAllocator.

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

поток данных для разработчиков фильтров

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