Как предотвратить рисование QT на экране? (предотвратить мерцание при воспроизведении видео с помощью gstreamer)

Это QT5. Он находится на встроенной системе Yocto, с QT, рисующей в кадровый буфер, без X11. Проблема в этом. Я хочу воспроизвести видео с помощью gstreamer. Итак, я попытался запустить gstreamer с gst-launch-1.0, связанным с событием касания в QT. Проблема в том, что он мигает, так как QT также пытается рендерить кадры.

Далее мы попробовали Q media player. Однако этот проприетарный gstreamer не поддерживает playbin, поэтому я вошел в QGstreamerPlayerSession и изменил конструктор, чтобы использовать gst_parse_launch для настройки моего конвейера вместо playbin.

Это работает, в том, что мое видео играет. Однако мерцание все равно остается! Я пытался выбросить белый прямоугольник перед запуском видео, но оно все еще мигает.

Как я могу предотвратить перерисовку QT? Нужна ли пустая сцена перед воспроизведением видео? Или есть вызов функции, чтобы приостановить перерисовку?

Конечно, я мог бы отправить SIGSTOP на QT, воспроизвести видео во внешнем приложении, а затем продолжить с SIGCONT. Это работает, но, очевидно, является очень не элегантным и ограничительным решением (мне нужно, чтобы приложение обрабатывалось в фоновом режиме, а также контролировало другие вещи).

0 ответов

Другие вопросы по тегам