Qt qmlglsink - разрыв потока вывода GStreamer - PullRequest
0 голосов
/ 27 марта 2020

Я работаю над приложениями Qt, которым нужно отображать видео с помощью GStreamer и элемента qmlglsink.

Работает нормально на ноутбуке с Ubuntu 18.04 со встроенной графикой, используя предоставленный пример, Единственным изменением в этом примере является установка «горизонтальной скорости» видеотестера c на 5.

Однако при запуске примера на ноутбуке с Ubuntu 19.04 с графикой Nvidia выходные данные начинают разрываться. Видно внизу видеотестср c. (Примечание: работает Ubuntu 19.04 на виртуальной машине, вывод в порядке)

videotestsrc tearing bottom

Это становится еще более понятным при замене videotestsr c на filer c (и добавление необходимых декодеров и т. д. c). По какой-то причине часть видео становится затемненной, а проблему с разрывом еще проще увидеть.

enter image description here enter image description here

Количество меняется в каждом кадре, на экране почти никогда не бывает одного полного кадра.

Я не совсем уверен, что я делаю что-то не так с синхронизацией между элементами, или это ошибка.

Я думаю, это может быть связано с этим и этим . Здесь они говорят об уже удаленных / перезаписывающих буферах, пока Qt все еще рисует их, что может объяснить видимые здесь артефакты.


Моя настройка:

  • Ubuntu 19.04 под управлением X- Сервер
  • Ноутбук Nvidia GTX1050 под управлением проприетарных драйверов версии 418
  • Gstreamer и плагинов сообщение об ошибке в GStreamer, пожалуйста, дайте мне знать!
...