| Предыдущий | Следующий |
| MF_E_ASF_INDEXNOTLOADED | MF_E_ASF_UNSUPPORTED_STREAM_TYPE |
MF_E_ASF_TOO_MANY_PAYLOADS
Что означает MF_E_ASF_TOO_MANY_PAYLOADS
MF_E_ASF_TOO_MANY_PAYLOADS (0xC00D3A9F) означает, что в одном ASF-пакете достигнут предел числа полезных нагрузок (payload).
Полезная нагрузка (payload) — это часть медиаданных внутри ASF-пакета. Один входной сэмпл может быть разделён между несколькими пакетами, а один пакет — содержать данные нескольких сэмплов, поэтому их число определяется упаковкой контейнера, а не количеством кодеков или потоков приложения.
Что проверить
- Запишите номер потока, размер и timestamp входных сэмплов, размер ASF-пакета и количество сэмплов, поданных перед первым отказом.
- Проверьте цикл
IMFASFMultiplexer::ProcessSample/GetNextPacket: готовые пакеты нужно своевременно забирать из мультиплексора. - Не подавайте тот же сэмпл повторно без понимания состояния мультиплексора: часть его данных уже могла быть удержана для текущего пакета.
- Если ASF формируется сторонним кодом, проверьте поля, описывающие число полезных нагрузок, и соответствие фактической структуры пакета заявленным длинам.
Это ограничение компоновки пакетов на уровне ASF-контейнера. Замена аудио- или видеодекодера не меняет число полезных нагрузок, которое мультиплексор пытается разместить в пакете.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.