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