From a1785493b20b4bd95cebe0364502a543a8a0d835 Mon Sep 17 00:00:00 2001 From: Dan Dennedy Date: Thu, 10 Oct 2024 14:26:24 -0700 Subject: [PATCH] fix recursive resize in new python examples --- src/swig/python/play_gtk.py | 11 +++++++---- src/swig/python/play_pyqt6.py | 20 +++++++++++++------- src/swig/python/play_pyside6.py | 20 +++++++++++++------- 3 files changed, 33 insertions(+), 18 deletions(-) mode change 100644 => 100755 src/swig/python/play_gtk.py mode change 100644 => 100755 src/swig/python/play_pyqt6.py mode change 100644 => 100755 src/swig/python/play_pyside6.py diff --git a/src/swig/python/play_gtk.py b/src/swig/python/play_gtk.py old mode 100644 new mode 100755 index 572e896ca..e3f0c2a58 --- a/src/swig/python/play_gtk.py +++ b/src/swig/python/play_gtk.py @@ -1,3 +1,6 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + import gi import sys import mlt7 as mlt @@ -8,7 +11,7 @@ VIDEO = 'video.mp4' class VideoPlayer(Gtk.Window): - def __init__(self): + def __init__(self, filename): super().__init__(title="MLT Video Player") self.set_default_size(800, 600) self.connect("destroy", self.on_destroy) @@ -20,10 +23,10 @@ def __init__(self): self.profile = mlt.Profile() # Create a producer for the video - self.producer = mlt.Producer(self.profile, VIDEO) + self.producer = mlt.Producer(self.profile, filename) if self.producer.is_valid(): self.profile.from_producer(self.producer) - self.producer = mlt.Producer(self.profile, VIDEO) + self.producer = mlt.Producer(self.profile, filename) # Create the consumer for rendering using SDL2 self.consumer = mlt.Consumer(self.profile, "sdl2") @@ -137,6 +140,6 @@ def on_destroy(self, widget): Gtk.init(sys.argv) # Create and run the video player - player = VideoPlayer() + player = VideoPlayer(sys.argv[1] if len(sys.argv) > 1 else VIDEO) player.show_all() Gtk.main() diff --git a/src/swig/python/play_pyqt6.py b/src/swig/python/play_pyqt6.py old mode 100644 new mode 100755 index 4775b4d12..fcf9fde1f --- a/src/swig/python/play_pyqt6.py +++ b/src/swig/python/play_pyqt6.py @@ -1,3 +1,6 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + import mlt7 as mlt import sys @@ -8,7 +11,7 @@ class VideoPlayer(QWidget): - def __init__(self): + def __init__(self, filename): super().__init__() self.setWindowTitle("MLT Video Player") @@ -19,11 +22,14 @@ class video_viewer(QWidget): def __init__(self): super().__init__() self.setMinimumSize(380, 260) + self.blockResize = False def resizeEvent(self, event): - self.window().consumer.set('window_width', self.width()) - self.window().consumer.set('window_height', self.height()) - event.accept() + if not self.blockResize: + self.window().consumer.set('window_width', self.width()) + self.window().consumer.set('window_height', self.height()) + event.accept() + self.blockResize = not self.blockResize self.video_viewer = video_viewer() layout.addWidget(self.video_viewer, 1) @@ -69,13 +75,13 @@ def resizeEvent(self, event): self.profile = mlt.Profile() # Create the producer - self.producer = mlt.Producer(self.profile, VIDEO) + self.producer = mlt.Producer(self.profile, filename) if self.producer.is_valid(): # Derive a profile based on the producer self.profile.from_producer(self.producer) # Reload the producer using the derived profile - self.producer = mlt.Producer(self.profile, VIDEO) + self.producer = mlt.Producer(self.profile, filename) # Create the consumer self.consumer = mlt.Consumer(self.profile, "sdl2") @@ -137,7 +143,7 @@ def closeEvent(self, event): if __name__ == "__main__": app = QApplication(sys.argv) - player = VideoPlayer() + player = VideoPlayer(sys.argv[1] if len(sys.argv) > 1 else VIDEO) player.show() sys.exit(app.exec()) diff --git a/src/swig/python/play_pyside6.py b/src/swig/python/play_pyside6.py old mode 100644 new mode 100755 index 611626c5f..42502041c --- a/src/swig/python/play_pyside6.py +++ b/src/swig/python/play_pyside6.py @@ -1,3 +1,6 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + import mlt7 as mlt import sys @@ -8,7 +11,7 @@ class VideoPlayer(QWidget): - def __init__(self): + def __init__(self, filename): super().__init__() self.setWindowTitle("MLT Video Player") @@ -18,11 +21,14 @@ class video_viewer(QWidget): def __init__(self): super().__init__() self.setMinimumSize(380, 260) + self.blockResize = False def resizeEvent(self, event): - self.window().consumer.set('window_width', self.width()) - self.window().consumer.set('window_height', self.height()) - event.accept() + if not self.blockResize: + self.window().consumer.set('window_width', self.width()) + self.window().consumer.set('window_height', self.height()) + event.accept() + self.blockResize = not self.blockResize self.video_viewer = video_viewer() layout.addWidget(self.video_viewer, 1) @@ -68,13 +74,13 @@ def resizeEvent(self, event): self.profile = mlt.Profile() # Create the producer - self.producer = mlt.Producer(self.profile, VIDEO) + self.producer = mlt.Producer(self.profile, filename) if self.producer.is_valid(): # Derive a profile based on the producer self.profile.from_producer(self.producer) # Reload the producer using the derived profile - self.producer = mlt.Producer(self.profile, VIDEO) + self.producer = mlt.Producer(self.profile, filename) # Create the consumer self.consumer = mlt.Consumer(self.profile, "sdl2") @@ -138,7 +144,7 @@ def closeEvent(self, event): app = QApplication(sys.argv) - player = VideoPlayer() + player = VideoPlayer(sys.argv[1] if len(sys.argv) > 1 else VIDEO) player.show() sys.exit(app.exec()) \ No newline at end of file