Что означает код HRESULT 0x80040297 (VFW_E_VMR_NO_AP_SUPPLIED)?

 
Предыдущий Следующий
VFW_E_VMR_NOT_IN_MIXER_MODE VFW_E_VMR_NO_DEINTERLACE_HW

VFW_E_VMR_NO_AP_SUPPLIED

Практический смысл

VFW_E_VMR_NO_AP_SUPPLIED (0X80040297) относится к DirectShow. Это failure HRESULT. Исходный признак результата зафиксирован в документации как The application has not yet provided the VMR filter with a valid allocator-presenter object.

Практическая проверка начинается на владельце операции: зафиксируйте exact method, object identity и состояние до любых retry, reset или re-enumeration. Для этой страницы ключевая граница формулируется так: the VMR is used in renderless mode before the application supplies a valid allocator-presenter object.

Специфичные признаки исходного описания

  • AllStat: “The application has not yet provided the VMR filter with a valid allocator-presenter object”.
  • the VMR is used in renderless mode before the application supplies a valid allocator-presenter object.
  • Cause 1 for this result: renderless mode was selected without AdviseSurfaceAllocator.
  • Cause 2 for this result: the allocator-presenter object was released too early.
  • Cause 3 for this result: the presenter implements the wrong VMR interface generation.
  • Action 1 for this result: create and register the correct allocator-presenter before connection.

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

  • interface и method, на котором впервые появился HRESULT
  • CLSID и friendly name задействованных filters, pin names и negotiated media type
  • graph state/generation, renderer или capture device и первый предшествующий HRESULT
  • временные метки media sample, rate/clock state и фактические параметры вызова

Как локализовать границу

Проверяйте filter graph, negotiated media type, timing и состояние конкретного interface, а не наличие codec вообще. Сначала воспроизведите минимальный сценарий без параллельного изменения конфигурации; затем сравните сохранённые параметры с условием из исходного описания. Если состояние исчезает после re-enumeration или пересоздания объекта, отдельно проверьте lifetime/generation race.

Исправление и повторная проверка

После исправления повторите тот же минимальный сценарий и убедитесь, что изменился именно подтверждённый prerequisite, а не только порядок событий.

Дополнительные признаки конкретного сценария

  • Action 2 for this result: hold it for the renderer lifetime.
  • Action 3 for this result: match VMR-7 and VMR-9 interface families exactly.
  • Cause 1 for this result: renderless mode was selected without AdviseSurfaceAllocator.

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


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