Что означает код HRESULT 0xC00D6D7A (MF_E_TRANSFORM_ASYNC_MFT_NOT_SUPPORTED)?

 
Предыдущий Следующий
MF_E_TRANSFORM_STREAM_INVALID_RESOLUTION MF_E_TRANSFORM_EXATTRIBUTE_NOT_SUPPORTED

MF_E_TRANSFORM_ASYNC_MFT_NOT_SUPPORTED

Что означает MF_E_TRANSFORM_ASYNC_MFT_NOT_SUPPORTED

MF_E_TRANSFORM_ASYNC_MFT_NOT_SUPPORTED (0xC00D6D7A) — Текущий хост или способ выбора преобразования не поддерживает асинхронную модель этого MFT.

Асинхронный MFT обрабатывает данные по событиям, а не как обычное синхронное преобразование. Поэтому недостаточно просто выставить один флаг: хост должен уметь получать события MFT, корректно завершать его через IMFShutdown и вообще выбирать асинхронные преобразования поддерживаемым способом.

Что проверить

  • Проверьте MF_TRANSFORM_ASYNC и способ перечисления MFT; для асинхронных преобразований используйте путь, поддерживающий MFT_ENUM_FLAG_ASYNCMFT.
  • Подтвердите, что вызывающий код реализует цикл событий METransformNeedInput/METransformHaveOutput.
  • Если приложение рассчитано только на синхронные преобразования, выберите синхронный MFT того же класса вместо попытки «разблокировать» неподдерживаемую модель.
  • Отделяйте этот код от MF_E_TRANSFORM_ASYNC_LOCKED: там хост способен работать с асинхронным MFT, но не выполнил обязательную разблокировку.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.