first commit

This commit is contained in:
David Rice
2026-03-12 13:27:02 +00:00
commit 69b2fe7e90
3 changed files with 61 additions and 0 deletions

2
README.md Normal file
View File

@@ -0,0 +1,2 @@
# Introduction
NEXIO DISPLAY TEST - PYTHON APP FOR NEXIO DISPLAY TESTING

59
arrive_vidplybck.py Normal file
View File

@@ -0,0 +1,59 @@
import gi
import sys
gi.require_version('Gst', '1.0')
from gi.repository import Gst, GLib
def play_kiosk_video():
Gst.init(None)
VIDEO_PATH = "file:///root/python/vid.mp4"
SINK_STR = (
"videoconvert ! "
"video/x-raw,format=BGRx ! "
"kmssink driver-name=mxsfb-drm connector-id=37 plane-id=31 can-scale=false" )
# Create the playbin element
pipeline = Gst.ElementFactory.make("playbin", "player")
pipeline.set_property("uri", VIDEO_PATH)
# Set the custom video sink
video_sink = Gst.parse_bin_from_description(SINK_STR, True)
pipeline.set_property("video-sink", video_sink)
# Set audio to fakesink (prevents errors if no audio hardware is found)
audio_sink = Gst.ElementFactory.make("fakesink", "audio-fake")
pipeline.set_property("audio-sink", audio_sink)
# --- LOOPING LOGIC ---
bus = pipeline.get_bus()
bus.add_signal_watch()
def on_message(bus, msg):
t = msg.type
if t == Gst.MessageType.EOS:
print("End of video. Looping...")
pipeline.seek_simple(Gst.Format.TIME, Gst.SeekFlags.FLUSH | Gst.SeekFlags.KEY_UNIT, 0)
elif t == Gst.MessageType.ERROR:
err, debug = msg.parse_error()
print(f"Error: {err}")
loop.quit()
return True
bus.connect("message", on_message)
# Start playback
print(f"Starting playback: {VIDEO_PATH}")
pipeline.set_state(Gst.State.PLAYING)
loop = GLib.MainLoop()
try:
loop.run()
except KeyboardInterrupt:
print("\nStopping player...")
finally:
pipeline.set_state(Gst.State.NULL)
if __name__ == "__main__":
play_kiosk_video()

BIN
vid.mp4 Normal file

Binary file not shown.