| Предыдущий | Следующий |
| 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 поддерживается, но ещё остаётся заблокированным.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.