Отправка eos в gstreamer по истечении заданного времени с помощью new_single_shot_id
У меня есть приложение gstreamer, где я создаю видео с изображениями. Мне нужно создать видео за определенное время. Я хотел бы отправить EOS через определенное время. Я знаю, что это может быть достигнуто с помощью new_single_shot_id в gstClock. Но я не смог найти ни одного примера того, как использовать new_single_shot_id для создания триггера, связанного с функцией, которая отправляет eos в конвейер.
Мой упрощенный конвейерный код выглядит следующим образом.
class Main(object):
def __init__(self, location):
self.pipeline = Gst.Pipeline()
self.img = Gst.ElementFactory.make("uridecodebin", "img1")
self.img.set_property("uri", location)
self.pipeline.add(self.img)
self.freeze = Gst.ElementFactory.make("imagefreeze", "freeze")
self.pipeline.add(self.freeze)
self.sink = Gst.ElementFactory.make("autovideosink", "sink0")
self.pipeline.add(self.sink)
self.img.link(self.freeze)
self.freeze.link(self.sink)
self.clock = self.pipeline.get_clock()
#self.trigger = Gst.SystemClock.new_single_shot_id(self.clock, 10)
def send_eos():
#code to send eos
pass
def run(self):
self.pipeline.set_state(Gst.State.PLAYING)
GObject.MainLoop().run()
Я новичок в gstreamer и не опыт в программировании. Примеры в Python будут очень полезны.