Template:GStreamer Qt Overlay for Embedded Systems/Examples-Template1

From RidgeRun Developer Wiki
import sys
import gi
import time
import random

from datetime import date
from datetime import datetime

gi.require_version('Gst', '1.0')

from gi.repository import GLib, Gst

Gst.init(sys.argv)


class Pipeline:
    def __init__(self) -> None:
        self.overlay = None

    def pipeline_init(self):
        pipeline = "videotestsrc ! video/x-raw,height=500,width=600 ! qtoverlay qml=main.qml name=my_overlay ! videoconvert ! ximagesink"
        pipeline = Gst.parse_launch(pipeline)
        self.overlay = pipeline.get_by_name('my_overlay')
        pipeline.set_state(Gst.State.PLAYING)

pipe = Pipeline()
pipe.pipeline_init()

stamp = date.today().strftime("%d/%m/%y")
pipe.overlay.set_property("qml-attribute", "label_date.text:{}".format(stamp))

while True:
    input("Update?")
    now = datetime.now().strftime("%H:%M:%S")
    pipe.overlay.set_property("qml-attribute", "label_time.text:{}".format(now))
    x_pos = random.random()
    y_pos = random.random()
    value = "{:.2f},{:.2f}".format(x_pos, y_pos)
    pipe.overlay.set_property("qml-attribute", "label_pos.text:{}".format(value))