Tópicos e seções críticas
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Esta seção descreve o threading nos filtros DirectShow e as etapas que você deve seguir para evitar falhas ou bloqueios em um filtro personalizado.
Os exemplos nesta seção usam pseudocódigo para ilustrar o código que você precisará escrever. Eles assumem que um filtro personalizado está usando classes derivadas das classes base DirectShow, da seguinte maneira:
- CMyInputPin: Derivado de CBaseInputPin.
- CMyOutputPin: Derivado de CBaseOutputPin.
- CMyFilter: Derivado de CBaseFilter.
- CMyInputAllocator: O alocador do pino de entrada, derivado de CMemAllocator. Nem todo filtro precisa de um alocador personalizado. Para muitos filtros, a classe CMemAllocator é suficiente.
Esta seção contém os seguintes tópicos.
- Os threads de streaming e aplicativos
- Pausa
- Recebimento e entrega de amostras
- Entregando o fim do fluxo
- Flushing Data
- Parar
- Obter buffers
- threads de streaming e o Gerenciador de gráficos de filtro
- Resumo do de threading de filtro
Tópicos relacionados