Сводка по фильтрации потоков
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
В потоке потоковой передачи вызываются следующие методы:
- IMemInputPin::Receive
- IMemInputPin::ReceiveMultiple
- IPin::EndOfStream
- IPin::NewSegment
- IMemAllocator::GetBuffer
В потоке приложения вызываются следующие методы:
- Изменения состояния: IBaseFilter::JoinFilterGraph, IMediaFilter::P ause, IMediaFilter::Run, IMediaFilter::Stop, IQualityControl::SetSink.
- Справочные часы: IMediaFilter::GetSyncSource, IMediaFilter::SetSyncSource.
- Операции закрепления: IBaseFilter::FindPin, IPin::Connect, IPin::ConnectedTo, IPin::ConnectionMediaType, IPin::D isconnect, IPin::ReceiveConnection.
- Функции распределителя: IMemInputPin::GetAllocator, IMemInputPin::NotifyAllocator.
- Очистка: IPin::BeginFlush, IPin::EndFlush.
Этот список не является исчерпывающим. При реализации фильтра необходимо учитывать, какие методы изменяют состояние фильтра, а какие методы выполняют операции потоковой передачи.