Что означает код HRESULT 0xC00D36C5 (MF_E_UNSUPPORTED_TIME_FORMAT)?

 
Предыдущий Следующий
MF_E_UNSUPPORTED_BYTESTREAM_TYPE MF_E_NO_SAMPLE_TIMESTAMP

MF_E_UNSUPPORTED_TIME_FORMAT

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

MF_E_UNSUPPORTED_TIME_FORMAT (0xC00D36C5) — объект Media Foundation не поддерживает формат времени, в котором вызывающий код задал позицию.

У IMFMediaSource::Start формат определяется отдельным GUID, а сама позиция передаётся в PROPVARIANT. Стандартный формат Media Foundation — время представления в 100-наносекундных единицах; для него используется GUID_NULL. Источник может дополнительно поддерживать другие шкалы, например номера кадров или тайм-код, но это не является универсальной возможностью.

Что проверить и как подтвердить исправление

Зафиксируйте GUID формата времени, тип PROPVARIANT и его значение в вызове, который вернул 0xC00D36C5. Для обычного запуска или позиционирования сначала проверьте путь с GUID_NULL и корректным значением в 100-нс единицах. В примере собственного источника Media Foundation Microsoft при неизвестном GUID прямо возвращает MF_E_UNSUPPORTED_TIME_FORMAT.

Не путайте эту ошибку с MF_E_INVALID_POSITION: там формат уже понятен компоненту, но недопустимо само значение позиции или операция над текущей позицией. Исправление подтверждается тем, что тот же источник принимает позицию после перевода её в поддерживаемую временную шкалу.

Документация для результата 0xC00D36C5: Writing a custom media source · IMFMediaSource::Start.


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