Site icon EfmSoft

Что означает код HRESULT 0xC00D6D74 (MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING)?

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

MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING

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

MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING (0xC00D6D74) — MFT не может изменить тип мультимедиа, пока внутри него остаются данные, обрабатываемые по старому формату.

Тип мультимедиа описывает формат данных на входе или выходе MFT. Даже допустимый новый формат нельзя всегда установить немедленно: преобразование может ещё хранить сэмплы, декодированные или подготовленные по старому типу. Для безопасной смены формата накопленные данные либо сначала выводят командой drain, либо осознанно отбрасывают командой flush.

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

  • Для нормального перехода отправьте MFT_MESSAGE_COMMAND_DRAIN и вызывайте ProcessOutput, пока MFT не вернёт MF_E_TRANSFORM_NEED_MORE_INPUT.
  • Используйте MFT_MESSAGE_COMMAND_FLUSH только если потеря уже переданных, но ещё не выведенных данных допустима.
  • Проверьте MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE; без поддержки динамической смены формата входной тип меняют только после корректного завершения обработки старого.
  • Не продолжайте подавать новые сэмплы одновременно с попыткой сменить тип: иначе старые и новые параметры окажутся смешаны в одном внутреннем состоянии MFT.

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


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

Exit mobile version