Site icon EfmSoft

Что означает код HRESULT 0xC00D6D77 (MF_E_TRANSFORM_ASYNC_LOCKED)?

 
Предыдущий Следующий
MF_E_UNSUPPORTED_D3D_TYPE MF_E_TRANSFORM_CANNOT_INITIALIZE_ACM_DRIVER

MF_E_TRANSFORM_ASYNC_LOCKED

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

MF_E_TRANSFORM_ASYNC_LOCKED (0xC00D6D77) — Асинхронное преобразование Media Foundation найдено, но его асинхронная модель ещё не разблокирована клиентом.

Асинхронный MFT сообщает MF_TRANSFORM_ASYNC = TRUE в хранилище атрибутов. Такой компонент работает не по обычной схеме постоянного опроса ProcessOutput: клиент должен явно разрешить асинхронный режим через MF_TRANSFORM_ASYNC_UNLOCK и реагировать на события о потребности во входных данных и наличии выхода.

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

  • Получите атрибуты MFT и проверьте MF_TRANSFORM_ASYNC; если он установлен, запишите MF_TRANSFORM_ASYNC_UNLOCK = TRUE до начала обычной обработки.
  • Убедитесь, что хост принимает METransformNeedInput и METransformHaveOutput, а не использует цикл, рассчитанный только на синхронный MFT.
  • Если преобразование работает внутри стандартного конвейера Media Foundation, проверьте, не извлекается ли оно из конвейера и не вызывается ли вручную до автоматической разблокировки.
  • Не путайте этот HRESULT с MF_E_TRANSFORM_ASYNC_MFT_NOT_SUPPORTED: здесь асинхронный MFT поддерживается, но ещё остаётся заблокированным.

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


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

Exit mobile version