Что означает код HRESULT 0xC00D4658 (MF_E_MISSING_ASF_LEAKYBUCKET)?

 
Предыдущий Следующий
MF_E_CANNOT_INDEX_IN_PLACE MF_E_INVALID_ASF_STREAMID

MF_E_MISSING_ASF_LEAKYBUCKET

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

MF_E_MISSING_ASF_LEAKYBUCKET (0xC00D4658) — Для выполнения запроса необходимо задать параметры «дырявого ведра» ASF.

Для каждого ASF-потока конфигурация должна содержать параметры модели «дырявого ведра» (leaky bucket) — прежде всего битрейт и размер буферного окна. Мультиплексор использует их, чтобы назначать время отправки и строить пакеты в соответствии с заголовком ASF.

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

Проверьте MF_ASFSTREAMCONFIG_LEAKYBUCKET1/LEAKYBUCKET2 именно у потока, на котором возникла ошибка, до IMFASFMultiplexer::Initialize. Отсутствие значения у одного потока нельзя компенсировать параметрами другого.

Если поток создаёт кодировщик, берите фактические параметры после согласования его выходного типа мультимедиа: Microsoft отдельно отмечает, что реальный размер буферного окна может быть известен только после настройки кодировщика.

Не подставляйте произвольный битрейт только ради прохождения Initialize. Несогласованные параметры кодировщика и ASF-профиля позже проявятся как MF_E_BANDWIDTH_OVERRUN при пакетизации.

Документация для результата 0xC00D4658: multiplexer leaky-bucket initialization · bandwidth checks during packet generation · FFmpeg ASF muxer source.


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