| Предыдущий | Следующий |
| MF_E_NOT_INITIALIZED | MF_E_NO_MORE_TYPES |
MF_E_UNSUPPORTED_REPRESENTATION
Что означает MF_E_UNSUPPORTED_REPRESENTATION
MF_E_UNSUPPORTED_REPRESENTATION (0xC00D36B7) — объект IMFMediaType не может выдать тип мультимедиа в структурном представлении, которое запросил вызывающий код.
Тип мультимедиа в Media Foundation обычно хранится как набор атрибутов. Метод IMFMediaType::GetRepresentation позволяет запросить альтернативное представление по GUID, например структуру DirectShow AM_MEDIA_TYPE или один из документированных вариантов видеоструктур. Поэтому этот HRESULT не означает, что файл невозможно декодировать или что отсутствует кодек: отказ происходит при преобразовании уже имеющегося описания формата в конкретную структуру.
Что проверить и как подтвердить исправление
Запишите точное значение guidRepresentation, а также MF_MT_MAJOR_TYPE и MF_MT_SUBTYPE исходного IMFMediaType. Сверьте GUID представления со списком, поддерживаемым GetRepresentation. Произвольный GUID или структура, для которой невозможно корректно выразить все параметры текущего типа, не становятся допустимыми после установки другого декодера.
Если потребителю не требуется именно DirectShow-совместимая структура, безопаснее оставить формат в виде атрибутов Media Foundation. Если представление требуется, используйте документированный GUID и проверяйте уже его собственные ограничения. Исправление подтверждается успешным получением нужной структуры из того же IMFMediaType.
Документация для результата 0xC00D36B7: IMFMediaType::GetRepresentation · Media Types.
Нужно найти другой код? Найти другой код состояния или ошибки.
