Что означает код HRESULT 0xC00D4653 (MF_E_FLUSH_NEEDED)?

 
Предыдущий Следующий
MF_E_LATE_SAMPLE MF_E_INVALID_PROFILE

MF_E_FLUSH_NEEDED

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

MF_E_FLUSH_NEEDED (0xC00D4653) относится к жизненному циклу IMFASFMultiplexer: после последнего входного сэмпла внутри мультиплексора ещё могут оставаться данные, из которых нужно сформировать окончательные ASF-пакеты.

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

После последнего ProcessSample вызовите Flush, затем забирайте пакеты через GetNextPacket, пока очередь не опустеет. Только после этого вызывайте End, чтобы сведения ASF Header Object соответствовали реально сформированному Data Object.

Повтор End без Flush не исправляет состояние. Он может оставить количество пакетов, длительность и другие поля заголовка несогласованными с данными. Проверка исправления — последовательность Flush → GetNextPacket до опустошения → End после последнего входного сэмпла.

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


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