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