Escrevendo um MFT personalizado
Esta seção descreve como escrever uma MFT (Media Foundation Transform) personalizada.
Lista de verificação do MFT
Ao implementar um MFT personalizado, use a seguinte lista de verificação para determinar os requisitos:
MFT | Requisitos |
---|---|
Todos os MFTs | Todos os MFTs devem implementar IMFTransform. Os tópicos a seguir fornecem mais informações sobre como implementar essa interface: |
Codificadores e decodificadores | Requisitos: consulte Implementando um Codec MFT. Recomendado: implemente IMFQualityAdvise ou IMFQualityAdvise2 para dar suporte a notificações de QoS (qualidade de serviço). |
Decodificadores de vídeo e processadores de vídeo | Opcional: suporte à aceleração de vídeo DirectX. |
Codecs de hardware | Consulte MFTs de hardware. |
Para tornar o MFT detectável por aplicativos... | Consulte Registro e enumeração de MFTs. |
Processamento de dados assíncrono | O modelo de MFT padrão usa chamadas síncronas (bloqueio) para processar dados. Para alguns MFTs, o processamento assíncrono pode ser mais eficiente. No entanto, também é mais complexo implementar. Para obter mais informações, consulte MFTs assíncronos. |
Controle de taxa, modo de truque ou reprodução inversa | Consulte Implementando o controle de taxa. |
Se o MFT criar threads... | Implemente a interface IMFRealTimeClient . |
Se o MFT tiver restrições de licenciamento... | Considere usar o mecanismo de campo de uso. Confira Restrições de campo de uso. |
Se você estiver portando um DMO (Objeto de Mídia DirectX) existente... | Consulte Comparação de MFTs e DMOs. |
Esta seção contém os seguintes tópicos:
- Carimbos de Data/Hora e Durações
- Manipulando alterações de fluxo
- Implementando um Codec MFT
- MFTs com reconhecimento direct3D
- Hardware MFTs
- Mérito do Codec