IMediaControl.Stop зависает на втором мониторе

«Почему IMediaControl.Stop зависает», кажется, часто задаваемый вопрос. Теперь я испытал это с особенностью: если приложение, которое запускает filtergraph, находится на первом мониторе, все идет как по маслу. Также остановка filtergraph работает без проблем. Но когда приложение перемещается на второй монитор, вызов IMediaControl.Stop() никогда не возвращается, и программа зависает.
Любая подсказка, в чем может быть причина?


person Matthias    schedule 09.09.2016    source источник


Ответы (1)


Фильтр Video Mixing Renderer (VMR-7) можно настроить с помощью IVMRMonitorConfig< /a> интерфейс для конкретного монитора. Если вы эффективно используете его на другом мониторе, он перезапускает график, чтобы он мог перенастроить себя во время такого перезапуска. То есть есть цикл Stop/Pause/Run. Ваше зависание происходит во время этого перехода из-за другого неисправного фильтра. По сути, это та же самая проблема, которую часто задают, и применяется тот же рецепт: вам нужно проверить стеки вызовов во время зависания, определить причину взаимоблокировки и неисправные фильтры, решить найденную проблему. То же относится и к фильтру ВМР-9.

То есть вызов Stop является ожидаемым поведением. Stop Freeze не так сильно отличается от других стоп-фризов: зависает не видеорендерер, а другой фильтр, который неправильно обрабатывает стоп-переход.

Смотрите также:

person Roman R.    schedule 09.09.2016