| Предыдущий | Следующий |
| MF_E_BANDWIDTH_OVERRUN | MF_E_FLUSH_NEEDED |
MF_E_LATE_SAMPLE
Что означает MF_E_LATE_SAMPLE
MF_E_LATE_SAMPLE (0xC00D4652) — Образец передан слишком поздно для корректной обработки.
Это ошибка времени при формировании ASF. IMFASFMultiplexer::ProcessSample получает медиасэмпл, чьё время представления уже меньше текущего времени отправки, рассчитанного мультиплексором; такой медиасэмпл пришёл слишком поздно для текущего окна пакетизации.
Что проверить и как подтвердить исправление
Запишите номер потока, временную метку и длительность каждого медиасэмпла, а также значение корректировки времени, передаваемое в ProcessSample. Для нескольких потоков проверяйте одну шкалу в 100-наносекундных единицах и отсутствие регрессии времени.
Отличайте этот HRESULT от MF_E_BANDWIDTH_OVERRUN: запоздавший медиасэмпл находится позади уже продвинувшегося расписания отправки, тогда как MF_E_BANDWIDTH_OVERRUN означает, что заданные битрейт и окно буферизации не вмещают поток данных.
Ищите первую устаревшую временную метку или неправильную корректировку времени. Увеличение заявленного битрейта не исправляет медиасэмпл, переданный с уже прошедшим временем представления.
Документация для результата 0xC00D4652: ProcessSample timing contract · ASF send window and late samples · FFmpeg ASF muxer source.
Нужно найти другой код? Найти другой код состояния или ошибки.