#linux #gstreamer #framebuffer #arago
Вопрос:
У меня есть приложение EGLFS (QT/C ), работающее на встроенном устройстве Linux (Arago). Это приложение в какой-то момент должно воспроизвести видеофайл MP4 с помощью gstreamer, используя видеоприемник fbdevsink.
Однако по какой-то причине приложение EGLFS закрывает видео так, чтобы его нельзя было увидеть. т. Е. Если я запускаю gstreamer из командной строки, видео отлично воспроизводится на экране.
gst-launch-1.0 playbin uri=file:///usr/bin/myApp/videos/myVid.mp4 video-sink=fbdevsink audio-sink=fakesink
Однако, если я также запущу приложение, видео больше не будет видно. Если я закрою приложение, оно снова покажет видео.
На самом деле я хочу, чтобы само приложение воспроизводило видео, но, похоже, это дает тот же результат, т. Е. Если я запускаю воспроизведение видео, я его не вижу. Но если я закрою приложение, оно покажет последний кадр видео «за» ним, как если бы оно воспроизводилось все это время.
QWidget vidWidget; vidWidget.setStyleSheet( "color: rgb(0, 0, 0);" ); vidWidget.showFullScreen(); //Create a new dialog hwTestDialog testDialog( amp;vidWidget, QString( "Video Testn%1" ).arg( testType.at( i ) ) ); testDialog.showFullScreen(); qApp-gt;processEvents(); //Update the GUI //Play the media (external call) QProcess systemCall( amp;vidWidget); systemCall.start( QString( "gst-launch-1.0 playbin uri=file:///usr/bin/myApp/videos/myVid.mp4 video-sink=fbdevsink audio-sink=fakesink" ).toUtf8() );
Итак, fbdevsink, по-видимому, записывает данные непосредственно в буфер кадров, но разве приложения EGLFS этого не делают? Как и везде, где показано это приложение, графически имеет ли оно более высокий приоритет, чем буфер кадров для отображения? (Простите меня, я не слишком хорошо осведомлен о том, как работает графика для этой работы).
Как ни странно, у меня есть более старая сборка Arago со старой версией fbdevsink, и у нее нет этой проблемы. На нем gstreamer записывает на экран, запущено приложение EGLFS или нет.
Более новая версия fbdevsink-1.8.3 (т. Е. Там, где я сталкиваюсь с проблемами) и Arago 2017.12
Более старая версия (которая отлично работает) — fbdevsink 1.2.3 и Arago 2015.05
Я не настраивал ни одну из ОС, так что, возможно, есть разница в конфигурации, но я бы не знал, где это искать, чтобы информация тоже была полезной.