2016-09-28 4 views
0

J'utilise gst-launch pour commencer à diffuser une caméra dans le framebuffer/dev/fb0 dans un système Linux embarqué. Je n'ai pas accès à ioctl.h ou fb.h pour faire un memset manuellement.Effacer la dernière image vidéo/dev/fb0 après l'utilisation de gst-launch en utilisant la ligne de commande ou l'API Qt

La commande est quelque chose comme ceci:

gst-launch-1.0 Nom du imxg2dcompositor = caméra background-color = 0x000000 sink_0 :: xpos = 200 sink_0 :: ypos = 90 sink_0 :: width = 450 sink_0 :: height = 350 ! video/x-raw, largeur = 800, hauteur = 480! imxg2dvideosink framebuffer =/dev/fb0 utiliser-vsync = true périphérique imxv4l2videosrc =/dev/video0 input = 4! camera.sink_0 -e

Je commence cette commande à l'aide d'un objet QProcess du framework Qt (5.6) et quand j'invoque la « tuer », « proche » ou « terminate » méthodes que je finis toujours avec l'écran montrant la dernière image prise de l'appareil photo et je voudrais avoir l'écran clair. Est-il possible d'effacer la commande /dev/fb0 en utilisant la commande gst-launch?

Répondre

0

Cela peut ne pas être possible avec la ligne de commande GStreamer puisque vous utilisez le tampon de trame et par défaut il reste ouvert lorsque vous arrêtez ou arrêtez le processus. Vous pouvez essayer d'exécuter une commande système avec elle essayez d'utiliser - echo 1 > /sys/class/graphics/fb0/blank qui le désactiverait.