Что означает код HRESULT 0xC00D6D72 (MF_E_TRANSFORM_NEED_MORE_INPUT)?

 
Предыдущий Следующий
MF_E_TRANSFORM_CONFLICTS_WITH_OTHER_CURRENTLY_ENABLED_FEATURES MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_SPKR_CONFIG

MF_E_TRANSFORM_NEED_MORE_INPUT

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

MF_E_TRANSFORM_NEED_MORE_INPUT (0xC00D6D72) — MFT пока не может выдать следующий результат и ожидает дополнительные входные данные.

Это важный случай, который обычно не следует трактовать как сбой декодера. В синхронной модели MFT приложение передаёт данные через ProcessInput и забирает готовый результат через ProcessOutput. Когда внутреннего входа недостаточно для следующего выхода, ProcessOutput возвращает этот HRESULT.

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

  • При обычном воспроизведении вернитесь к ProcessInput и передайте следующий входной сэмпл.
  • После команды drain этот результат означает, что MFT уже выдал всё, что мог сформировать из накопленных данных.
  • Отделяйте его от MF_E_TRANSFORM_STREAM_CHANGE: при смене потока нужно пересогласовать формат, а не просто подать больше входа.
  • Для асинхронного MFT не стройте логику на этом HRESULT: потребность во входе там сообщается событием METransformNeedInput.

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


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