Написание пользовательского MFT
В этом разделе описывается создание пользовательского преобразования Media Foundation (MFT).
Контрольный список MFT
При реализации настраиваемого MFT используйте следующий контрольный список, чтобы определить требования:
MFT | Требования |
---|---|
Все MFT | Все MFT должны реализовывать IMFTransform. Дополнительные сведения о реализации этого интерфейса приведены в следующих разделах: |
Кодировщики и декодеры | Требования: см. раздел Реализация кодека MFT. Рекомендуется: внедрить IMFQualityAdvise или IMFQualityAdvise2 для поддержки уведомлений о качестве обслуживания (QoS). |
Декодеры и видеопроцессоры | Необязательно: поддержка ускорения видео DirectX. |
Аппаратные кодеки | См. раздел Аппаратные MFT. |
Чтобы сделать MFT обнаруживаемым с помощью приложений... | См. раздел Регистрация и перечисление MFT. |
Асинхронная обработка данных | Модель MFT по умолчанию использует синхронные (блокирующие) вызовы для обработки данных. Для некоторых MFT асинхронная обработка может быть более эффективной. Однако его реализация также сложнее. Дополнительные сведения см. в разделе Асинхронные MFT. |
Управление скоростью, режим трюка или обратное воспроизведение | См . раздел Реализация управления скоростью. |
Если MFT создает потоки... | Реализация интерфейса IMFRealTimeClient . |
Если у вашего MFT есть ограничения лицензирования... | Рассмотрите возможность использования механизма в области использования. См. раздел Ограничения области использования. |
Если вы переносите существующий объект мультимедиа DirectX (DMO)... | См. статью Сравнение MFT и dmos. |
В этом разделе рассматриваются следующие вопросы.
- Метки времени и длительности
- Обработка изменений потока
- Реализация кодека MFT
- MFT с поддержкой Direct3D
- Аппаратные MFT
- Заслуги кодека