У меня есть пользовательский элемент управления в WinForm, который я использую для отображения потокового видео с помощью VMR9 / DirectShow.Net. Я передаю декодированные кадры в пользовательский фильтр PushSource. Я вижу странное поведение, когда компьютер заблокирован, а затем разблокирован
- Если я сделаю это достаточно быстро, видео начнет воспроизводиться, как только я разблокирую компьютер.
- Иногда возникает задержка в 5 - 60 секунд, прежде чем видео снова начинает отображаться
- Иногда отображение видео никогда не восстанавливается.
Я должен также добавить, что я могу записывать видео с помощью FFMpeg, пока компьютер заблокирован, а также подтвердил, что кадры вставляются в фильтр источника, но не отображаются (после разблокировки)
Я добавил поток, использующий IMediaEvent для мониторинга событий графика. Когда я запускаю потоковую передачу / график, я вижу события ClockChanged и Paused (даже если он воспроизводится). Когда я разблокирую свой компьютер, я вижу событие VMRRenderDeviceSet param1 = 2, param2 = 0 и Paused (param1 = 0, param2 = 0).
Моя топология графика (Пользовательская) Push Source Filter -> Преобразователь цветового пространства -> Ds .Net Grabber -> Преобразователь цветового пространства 0001 -> Рендеринг микширования видео 9.
Также я могу захватить правильный кадр, пока дисплей заморожен, поэтому, похоже, проблема в VMR9.
С предоставленной информацией кто-нибудь может пролить свет на то, что может быть не так? Я могу предоставить любые другие детали по мере необходимости.