Site icon EfmSoft

Что означает код HRESULT 0xC00D3A9F (MF_E_ASF_TOO_MANY_PAYLOADS)?

 
Предыдущий Следующий
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-контейнера. Замена аудио- или видеодекодера не меняет число полезных нагрузок, которое мультиплексор пытается разместить в пакете.

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


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

Exit mobile version