| Предыдущий | Следующий |
| MF_E_SAMPLEALLOCATOR_CANCELED | MF_E_SINK_ALREADYSTOPPED |
MF_E_SAMPLEALLOCATOR_EMPTY
Что означает MF_E_SAMPLEALLOCATOR_EMPTY
MF_E_SAMPLEALLOCATOR_EMPTY (0xC00D4A3E) — Распределитель образцов пуст из-за незавершённых запросов.
MF_E_SAMPLEALLOCATOR_EMPTY означает, что в текущем пуле нет видеосэмпла, который можно немедленно вернуть вызывающему коду. Это не равнозначно нехватке системной памяти: все выделенные видеосэмплы могут просто оставаться занятыми модулем вывода, микшером, декодером или другой асинхронной стадией.
Что проверить и как подтвердить исправление
Сопоставьте число успешных вызовов AllocateSample с фактическим возвратом видеосэмплов в пул для одного поколения распределителя. Особенно проверяйте очереди и дополнительные COM-ссылки, которые продолжают удерживать IMFSample или его поверхность Direct3D после завершения показа кадра.
Если реализация предоставляет уведомление о возврате видеосэмпла, используйте его для подтверждения момента, когда ресурс снова становится доступен. Простое увеличение размера пула может скрыть утечку ссылки или зависшего потребителя, но не исправить её.
Кратковременное исчерпание пула возможно при нормальной нагрузке; постоянный MF_E_SAMPLEALLOCATOR_EMPTY при отсутствии возвратов указывает уже на нарушенный жизненный цикл видеосэмплов.
Документация для результата 0xC00D4A3E: AllocateSample · allocator initialization · sample release notification.
Нужно найти другой код? Найти другой код состояния или ошибки.