Потоки и критические разделы
[Функция, связанная с этой страницей 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 .
Этот раздел содержит следующие подразделы.
- Потоки потоковой передачи и приложений
- Переход в режим приостановки
- Получение и доставка примеров
- Доставка конца потока
- Очистка данных
- Остановка
- Получение буферов
- Потоки потоковой передачи и диспетчер графа фильтров
- Сводка по потоку фильтра
Связанные темы