Что означает код HRESULT 0xC00D6D60 (MF_E_TRANSFORM_TYPE_NOT_SET)?

 
Предыдущий Следующий
MF_E_NO_SOURCE_IN_CACHE MF_E_TRANSFORM_STREAM_CHANGE

MF_E_TRANSFORM_TYPE_NOT_SET

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

MF_E_TRANSFORM_TYPE_NOT_SET (0xC00D6D60) — Для одного из выбранных потоков MFT ещё не установлен обязательный совместимый тип мультимедиа.

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

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

  • Получите кандидатов через GetInputAvailableType и GetOutputAvailableType, где эти методы поддерживаются.
  • Если установка одной стороны возвращает этот код, задайте требуемый тип на другой стороне и продолжите согласование в порядке, который требует MFT.
  • Не вызывайте ProcessInput/ProcessOutput, пока все обязательные выбранные потоки не имеют совместимых типов.
  • Логируйте идентификатор потока и уже установленные входные и выходные типы мультимедиа: отсутствующий формат может находиться на зависимом потоке, а не на том, который первым заметило приложение.

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


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