Что означает код HRESULT 0xC00D3E8A (MF_E_NO_DURATION)?

 
Предыдущий Следующий
MF_E_MP3_NOTSUPPORTED MF_E_INVALID_FORMAT

MF_E_NO_DURATION

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

MF_E_NO_DURATION (0xC00D3E8A) — Для медиапотока не задана длительность.

В подсистеме «COM/WinRT» результат 0xC00D3E8A относится к области «контракт вызываемого interface, аргументы и state объекта». Описание «для медиапотока не задана длительность» сужает проверку до темы «mf, отсутствие, duration».

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

Не начинайте с общего сброса компонента: сопоставьте первый отказ с фактическими параметрами операции. При 0xC00D3E8A и условии «для медиапотока не задана длительность» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.

Чтобы локализовать 0xC00D3E8A, соберите IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите IMFByteStream::GetLength. Затем для 0xC00D3E8A сравните исправный и неуспешный запуск в части «mf, отсутствие, duration», меняя одно условие за раз.

Коррекция для 0xC00D3E8A должна быть предметной: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Для 0xC00D3E8A и сообщения «для медиапотока не задана длительность» общий сброс допустим лишь как контроль, но не как доказательство причины.

После исправления повторите тот же вызов на прежних данных; у результата 0xC00D3E8A должен измениться первый неуспешный этап, а не только последующее сообщение.

Документация для результата 0xC00D3E8A: MP3 File Source · IMFByteStream::GetLength · FFmpeg: MP3 duration and seek implementation.


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