From fb884fc3e97421c60e9ca5b10a4ff4e568b39e1e Mon Sep 17 00:00:00 2001 From: "P.M. Kuipers" Date: Mon, 26 Apr 2021 15:07:02 +0200 Subject: [PATCH] Mediaserver now based on X/GTK window. --- mediacore-mediaserver | 2 +- mediaserver/PKG_CONFIG.py | 51 ---- mediaserver/__init__.py | 8 +- mediaserver/basicplayer.py | 79 ++++--- mediaserver/images/background-base.png | Bin 0 -> 61096 bytes mediaserver/images/background-base.svg | 297 ++++++++++++++++++++++++ mediaserver/images/background-image.png | Bin 0 -> 76073 bytes mediaserver/images/background-image.svg | 296 +++++++++++++++++++++++ mediaserver/mediaserver.py | 188 +++++++++++---- mediaserver/monitoredplayer.py | 14 +- mediaserver/resources.py | 59 +++++ test_client.py | 4 +- 12 files changed, 851 insertions(+), 147 deletions(-) delete mode 100755 mediaserver/PKG_CONFIG.py create mode 100644 mediaserver/images/background-base.png create mode 100644 mediaserver/images/background-base.svg create mode 100644 mediaserver/images/background-image.png create mode 100644 mediaserver/images/background-image.svg create mode 100644 mediaserver/resources.py diff --git a/mediacore-mediaserver b/mediacore-mediaserver index 188a82e..2b047f6 100755 --- a/mediacore-mediaserver +++ b/mediacore-mediaserver @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 import mediaserver.mediaserver mediaserver.mediaserver.Run() \ No newline at end of file diff --git a/mediaserver/PKG_CONFIG.py b/mediaserver/PKG_CONFIG.py deleted file mode 100755 index 188b90e..0000000 --- a/mediaserver/PKG_CONFIG.py +++ /dev/null @@ -1,51 +0,0 @@ -# shared package configuration settings for applications in KHMedia -##### Common ##### - -# folder to store user specific configuration -user_cfg_folder = "~/.khmedia" - -# khmedia config file -config_file = "khmedia_config.xml" - -# khmedia example config resource -example_config_resource = "khmedia_config.example.xml" - -# location of the khsystem_need_config file -khsystem_need_config = "~/.khsystem_config_needed" - -##### Player ##### - -#default folders to look for song files (last in line is the fallback folder that will be created if none are existing) -default_song_folders = ["/usr/share/khmedia/songs","/usr/local/share/khmedia/songs","~/Songs"] - -#default folders to look for background music files (last in line is the fallback folder that will be created if none are existing) -default_music_folders = ["/usr/share/khmedia/music","/usr/local/share/khmedia/music","~/Music"] - -# files that are considered playable music files -music_extensions = [".mp3",".wav",".ogg",".m4b",".m4a"] - -# default volume for song playback (Linear 0.0 <= value <= 1.0 ) -default_song_volume = 0.5 - -# default volume for music playback (Linear 0.0 <= value <= 1.0 ) -default_music_volume = 0.12 - -##### Recorder ##### - -#default folder to store recordings -# You can use the following replacements -# {XDG_DESKTOP_DIR} -# {XDG_DOWNLOAD_DIR} -# {XDG_TEMPLATES_DIR} -# {XDG_PUBLICSHARE_DIR} -# {XDG_DOCUMENTS_DIR} -# {XDG_MUSIC_DIR} -# {XDG_PICTURES_DIR} -# {XDG_VIDEOS_DIR} - -# lowercase text between brackets is replaced by the corresponding text in the -# currently loaded translation table -# e.g. {something} can be replaced by "Something" or "Iets" if that is defined in the -# translation tabled -default_recordings_folder = "{XDG_DESKTOP_DIR}/{dir_recordings}" - diff --git a/mediaserver/__init__.py b/mediaserver/__init__.py index aee403e..64cd19c 100755 --- a/mediaserver/__init__.py +++ b/mediaserver/__init__.py @@ -9,7 +9,7 @@ from gi.repository import Gst GObject.threads_init() Gst.init(None) -""" -from mediaserver.basicplayer import BasicPlayer -player = BasicPlayer() -""" \ No newline at end of file +from . resources import Resources + +# set Resources to use resources from this package +Resources.SetPackage(__name__) diff --git a/mediaserver/basicplayer.py b/mediaserver/basicplayer.py index cd48c77..a549284 100755 --- a/mediaserver/basicplayer.py +++ b/mediaserver/basicplayer.py @@ -7,9 +7,11 @@ import sys, os # perform gstreamer imports (python3 style) import gi gi.require_version('Gst','1.0') +gi.require_version('GstGL', '1.0') +gi.require_version('GstVideo', '1.0') from gi.repository import GObject -from gi.repository import Gst +from gi.repository import Gst, GstGL, GstVideo class BasicPlayer(GObject.GObject): @@ -51,9 +53,9 @@ class BasicPlayer(GObject.GObject): def __init__(self): GObject.GObject.__init__(self) # setup gstreamer - self.pipeline_state = Gst.State.NULL; + self.pipeline_state = Gst.State.NULL + self.window_handle = 0 self.prepare_gstreamer() - self.buffering = False def __del__(self): @@ -63,17 +65,16 @@ class BasicPlayer(GObject.GObject): if property.name == 'volume': return self.pipeline.get_property('volume') else: - raise AttributeError, 'unknown property %s' % property.name + raise AttributeError("unknown property '{0}'".format(property.name_)) def do_set_property(self, property, value): if property.name == 'volume': volume = clamp(value,0.0,1.0) self.pipeline.set_property('volume', volume) - #print "Set volume to {0}, got {1}".format(volume,self.pipeline.get_property('volume')) + #print("Set volume to {0}, got {1}".format(volume,self.pipeline.get_property('volume'))) self.emit('volume-changed',volume) else: - raise AttributeError, 'unknown property %s' % property.name - + raise AttributeError("unknown property '{0}'".format(property.name_)) def play(self): # start playback ;) if self.player_state in ["READY","PAUSED",]: @@ -83,20 +84,20 @@ class BasicPlayer(GObject.GObject): def load(self,file): self.source = "file://" + file - #print "Attempting to load: '{0}'".format(file) - self.pipeline.set_state(Gst.State.NULL); + #print( "Attempting to load: '{0}'".format(file)) + self.pipeline.set_state(Gst.State.NULL) self.pipeline.set_property("uri", self.source) - self.pipeline.set_state(Gst.State.PAUSED); + self.pipeline.set_state(Gst.State.PAUSED) self.player_state = "LOADING" self.tags.clear() def load_uri(self,uri): self.source = uri - #print "Attempting to load: '{0}'".format(file) - self.pipeline.set_state(Gst.State.NULL); + #print("Attempting to load: '{0}'".format(file)) + self.pipeline.set_state(Gst.State.NULL) self.pipeline.set_property("uri", self.source) - self.pipeline.set_state(Gst.State.PAUSED); + self.pipeline.set_state(Gst.State.PAUSED) self.player_state = "LOADING" self.tags.clear() @@ -104,8 +105,7 @@ class BasicPlayer(GObject.GObject): def stop(self): if self.player_state in ["PLAYING","PAUSED",]: self._running = False - self.pipeline.set_state(Gst.State.READY) - self.player_state = "READY" + self.unload() self.emit('playback-stopped') def pause(self,notify=True): @@ -116,42 +116,49 @@ class BasicPlayer(GObject.GObject): if notify: self.emit('playback-paused') - def _finished(self): + def finished(self): self._running = False - self.pipeline.set_state(Gst.State.READY) - self.seek(0) - self.player_state = "PAUSED" + self.unload() self.emit('playback-finished') + def unload(self): + self.stop_gstreamer() + self.prepare_gstreamer() + def prepare_gstreamer(self): # bin containing the recorder stuff self.pipeline = Gst.ElementFactory.make("playbin", None) - videosink = Gst.ElementFactory.make("glimagesink", None) - alsasink = Gst.ElementFactory.make("alsasink", None) + self.videosink = Gst.ElementFactory.make("glimagesink", None) + self.videosink.set_window_handle(self.window_handle) + self.alsasink = Gst.ElementFactory.make("alsasink", None) # set output device #devicename = self.config["Devices.Output"].getStr('name') #if common.check_alsadev(devicename): # alsasink.set_property('device', devicename) - self.pipeline.set_property("video-sink", videosink) - self.pipeline.set_property("audio-sink", alsasink) + self.pipeline.set_property("video-sink", self.videosink) + self.pipeline.set_property("audio-sink", self.alsasink) # connect the bus listener to the message function self.bus = self.pipeline.get_bus() self.bus.add_signal_watch() - self.bus.connect("message", self.on_message) + self.busconnection = self.bus.connect("message", self.on_message) - self.player_state = "NONE" + self.player_state = "NULL" + + def link_to_window(self,window_handle): + self.window_handle = window_handle + self.videosink.set_window_handle(window_handle) def stop_gstreamer(self): try: self.pipeline.get_bus().disconnect(self.busconnection) self.pipeline.get_bus().remove_signal_watch() self.pipeline.set_state(Gst.State.NULL) - except GObject.GError, e: + except GObject.GError as e: self.set_sensitive(True) def seek(self,seconds): @@ -162,21 +169,21 @@ class BasicPlayer(GObject.GObject): if result is not None and result[0]: return float(result[1]) / Gst.SECOND else: - return -1; + return -1 def position(self): result = self.pipeline.query_position(Gst.Format.TIME) if result is not None and result[0]: return float(result[1]) / Gst.SECOND else: - return -1; + return -1 def on_message(self, bus, message): t = message.type # detect end of stream, and if t == Gst.MessageType.EOS: - self._finished() + self.finished() elif t == Gst.MessageType.ERROR: self.pipeline.set_state(Gst.State.NULL) err, debug = message.parse_error() @@ -185,23 +192,23 @@ class BasicPlayer(GObject.GObject): self._running = False self.emit('playback-finished') self.emit('playback-error', self.player_state, err, debug) - self.player_state = "NONE" + self.player_state = "NULL" elif t == Gst.MessageType.TAG: - tags = message.parse_tag(); + tags = message.parse_tag() for i in range(0,tags.n_tags()): key = tags.nth_tag_name(i) val = tags.get_value_index(key,0) - self.tags[key] = val; + self.tags[key] = val elif t == Gst.MessageType.ASYNC_DONE: if message.src == self.pipeline: pass elif t == Gst.MessageType.STREAM_STATUS: (status,owner) = message.parse_stream_status() -# print "Stream status: {0} (by {1})\n".format(status,owner) +# print("Stream status: {0} (by {1})\n".format(status,owner)) pass elif t == Gst.MessageType.BUFFERING: pct = message.parse_buffering() - print "Buffering: {0}%".format(pct) + print("Buffering: {0}%".format(pct)) self.emit('playback-buffering',pct) if pct != 100: if self.pipeline_state == Gst.State.PLAYING: @@ -212,13 +219,13 @@ class BasicPlayer(GObject.GObject): self.pipeline.set_state(Gst.State.PLAYING) self.buffering = False elif t == Gst.MessageType.DURATION_CHANGED: -# print "Stream duration changed: {0}\n".format(float(self.pipeline.query_duration(Gst.Format.TIME)[1])/Gst.SECOND) +# print("Stream duration changed: {0}\n".format(float(self.pipeline.query_duration(Gst.Format.TIME)[1])/Gst.SECOND)) pass elif t == Gst.MessageType.STATE_CHANGED: if message.src == self.pipeline: (old,new,pending) = message.parse_state_changed() self.pipeline_state = new -# print "State changed from '{0}' to '{1}' pending '{2}'\n".format(old,new,pending) +# print("State changed from '{0}' to '{1}' pending '{2}'\n".format(old,new,pending)) if old == Gst.State.READY and new == Gst.State.PAUSED and self.player_state == "LOADING": self.pipeline.set_state(Gst.State.PAUSED) self.player_state = "READY" diff --git a/mediaserver/images/background-base.png b/mediaserver/images/background-base.png new file mode 100644 index 0000000000000000000000000000000000000000..7ef6a9b9b7e73725cb4f067e2a44bb91f1040fd0 GIT binary patch literal 61096 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 literal 0 HcmV?d00001 diff --git a/mediaserver/images/background-base.svg b/mediaserver/images/background-base.svg new file mode 100644 index 0000000..cccc1f1 --- /dev/null +++ b/mediaserver/images/background-base.svg @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mediaserver/images/background-image.png b/mediaserver/images/background-image.png new file mode 100644 index 0000000000000000000000000000000000000000..cf323517a3ec3c20cb0d6897c15409c8adc66ecf GIT binary patch literal 76073 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 z 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mediaserver/mediaserver.py b/mediaserver/mediaserver.py index e24c760..9d07596 100755 --- a/mediaserver/mediaserver.py +++ b/mediaserver/mediaserver.py @@ -1,6 +1,6 @@ # License for this source file # -# Copyright (c) 2014 Miqra Engineering +# Copyright (c) 2021 Miqra Engineering # import sys, os @@ -9,12 +9,22 @@ import signal from optparse import OptionParser from collections import OrderedDict +from .resources import Resources + # perform gstreamer imports (python3 style) import gi -gi.require_version('Gst','1.0') +gi.require_version('Gst', '1.0') +gi.require_version('Gtk', '3.0') +gi.require_version('GstGL', '1.0') +gi.require_version('GstVideo', '1.0') +gi.require_version('GdkPixbuf', '2.0') from gi.repository import GObject -from gi.repository import Gst +from gi.repository import Gst, GstGL, GstVideo +from gi.repository import GdkPixbuf +from gi.repository import GLib, Gio, Gtk, Gdk +from gi.repository import GdkX11 + Gst.init(None) # perform dbus imports @@ -26,15 +36,19 @@ from dbus.mainloop.glib import DBusGMainLoop DBusGMainLoop(set_as_default=True) # imports from module -from monitoredplayer import MonitoredPlayer +from . monitoredplayer import MonitoredPlayer class MediaService(dbus.service.Object): def __init__(self): + bus_name = dbus.service.BusName('nl.miqra.MediaCore.Media', bus=dbus.SystemBus()) dbus.service.Object.__init__(self, bus_name, '/nl/miqra/MediaCore/Media') + self.window = Gtk.Window(title="MediaServer") + self.windowInit() + self.player = MonitoredPlayer() self.player.connect('playback-ready',self.onPlayerReady) # parameters: source_file tag_dict @@ -46,46 +60,110 @@ class MediaService(dbus.service.Object): self.player.connect('volume-changed',self.onPlayerVolumeChanged) # parameters: volume self.player.connect('playback-buffering',self.onPlayerBuffering) # parameters: volume - self.loadcount = 0; - self.loadmax = 1; + self.window.connect('show',self.onWindowShow) + + self.loadcount = 0 + self.loadmax = 1 self.quickplay = False self.quickplayduration = 0 self.quickplayloop = False + self.window.show() self.tick() # Keepalive timer to help react to Keyboard interrupts def tick(self): GObject.timeout_add(100, self.tick) + def windowInit(self): + self.window.set_name("mainwindow") + self.imagebox = Gtk.Box() + self.imagebox.set_name("imbox") + self.imagebox.set_hexpand(True) + self.imagebox.set_vexpand(True) + self.imagebox.set_halign(Gtk.Align.CENTER) + self.imagebox.set_valign(Gtk.Align.CENTER) + + css = b""" + #mainwindow + { + background-color: #000; + } + """ + css_provider = Gtk.CssProvider() + css_provider.load_from_data(css) + context = Gtk.StyleContext() + screen = Gdk.Screen.get_default() + context.add_provider_for_screen(screen, css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) + + self.window.add(self.imagebox) + + self.window.fullscreen() + pass + + def loadImage(self,image): + # remove any existing children + for child in self.imagebox.get_children(): + self.imagebox.remove(child) + + self.imagebox.add(image) + self.imagebox.show_all() + + def loadImageFile(self,imfile): + print("Loading image {0}".format(imfile)) + + image = Gtk.Image() + image.set_from_file(imfile) + self.loadImage(image) + + def loadImageData(self,data): + print("Loading image from data") + loader = GdkPixbuf.PixbufLoader.new() + loader.write(data) + pixbuf = loader.get_pixbuf() + loader.close() + image = Gtk.Image() + image.set_from_pixbuf(pixbuf) + self.loadImage(image) + + def onWindowShow(self,w): + xid = self.window.get_window().get_xid() + print("Retrieved XID for window: {0}".format(xid)) + self.player.link_to_window(xid) + self.loadBaseImage() + + def loadBaseImage(self): + self.loadImageFile(Resources.filename("images/background-base.svg")) + + @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='s', out_signature='') def QuickPlay(self, file,): """ Directly play back a local file """ if self.loadcount < self.loadmax: - print "Quickplaying file {0}".format(file) + print("Quickplaying file {0}".format(file)) self.quickplay = True self.quickplayduration = 0 self.quickplayloop = False self.player.load(file) - self.loadcount += 1; + self.loadcount += 1 else: - print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax); + print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax)) @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='sd', out_signature='') def QuickPlayFor(self, file, duration): """ Directly play back a local file """ if self.loadcount < self.loadmax: - print "Quickplaying file {0} for {1} seconds".format(file,duration) + print("Quickplaying file {0} for {1} seconds".format(file,duration)) self.quickplay = True self.quickplayduration = duration self.quickplayloop = False self.player.load(file) - self.loadcount += 1; + self.loadcount += 1 else: - print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax); + print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax)) # self.quickplayer.playfor(file,duration) @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='s', out_signature='') @@ -93,56 +171,56 @@ class MediaService(dbus.service.Object): """ Directly play back a url """ if self.loadcount < self.loadmax: - print "Quickplaying file {0}".format(file) + print("Quickplaying file {0}".format(file)) self.quickplay = True self.quickplayduration = 0 self.quickplayloop = False self.player.load_uri(file) - self.loadcount += 1; + self.loadcount += 1 else: - print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax); + print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax)) @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='sd', out_signature='') def QuickPlayUrlFor(self, url, duration): """ Directly play back a url """ if self.loadcount < self.loadmax: - print "Quickplaying file {0} for {1} seconds".format(file,duration) + print("Quickplaying file {0} for {1} seconds".format(file,duration)) self.quickplay = True self.quickplayduration = duration self.quickplayloop = False self.player.load_uri(file) - self.loadcount += 1; + self.loadcount += 1 else: - print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax); + print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax)) @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='s', out_signature='') def QuickLoop(self, file,): """ Directly play back a url """ if self.loadcount < self.loadmax: - print "Quickplaying file {0}".format(file) + print("Quickplaying file {0}".format(file)) self.quickplay = True self.quickplayduration = 0 self.quickplayloop = True self.player.load(file) - self.loadcount += 1; + self.loadcount += 1 else: - print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax); + print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax)) @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='s', out_signature='') def QuickLoopUrl(self, url,): """ Directly play back a url """ if self.loadcount < self.loadmax: - print "Quickplaying url {0}".format(uri) + print("Quickplaying url {0}".format(uri)) self.quickplay = True self.quickplayduration = 0 self.quickplayloop = True self.player.load_uri(url) - self.loadcount += 1; + self.loadcount += 1 else: - print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax); + print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax)) @@ -152,32 +230,32 @@ class MediaService(dbus.service.Object): """ Load a local file for playback """ if self.loadcount < self.loadmax: - print "Loading file {0}".format(file) + print("Loading file {0}".format(file)) self.quickplay = False self.player.load(file) - self.loadcount += 1; + self.loadcount += 1 self.OnLoading("file://{0}".format(file)) else: - print "Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax); + print("Skipping load of file {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(file,self.loadmax)) @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='s', out_signature='') def LoadUrl(self, uri): """ Load an url for playback """ if self.loadcount < self.loadmax: - print "Loading url {0}".format(uri) + print("Loading url {0}".format(uri)) self.quickplay = False self.player.load_uri(uri) self.loadcount += 1; self.OnLoading(uri) else: - print "Skipping load of url {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(uri,self.loadmax); + print("Skipping load of url {0} because maximum simultaneous loads ({1}) was reached. Wait until ready....".format(uri,self.loadmax)) @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='d', out_signature='') def PlayFor(self, duration): """ Starts playback for [duration] seconds """ - print "Starting playback for {0} seconds".format(duration) + print("Starting playback for {0} seconds".format(duration)) self.player.playfor(duration) @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='', out_signature='') @@ -185,7 +263,7 @@ class MediaService(dbus.service.Object): """ Starts/resumes playback """ pos = self.player.position() - print "Starting playback at timestamp {0}".format(pos) + print("Starting playback at timestamp {0}".format(pos)) self.player.play() @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='', out_signature='') @@ -193,21 +271,21 @@ class MediaService(dbus.service.Object): """ Starts/resumes playback """ pos = self.player.position() - print "Starting playback at timestamp {0}".format(pos) + print("Starting playback at timestamp {0}".format(pos)) self.player.loop() @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='', out_signature='') def Pause(self): """ Pauses playback """ - print "Pausing" + print("Pausing") self.player.pause() @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='', out_signature='') def Stop(self): """ Stops playback """ - print "Stopping" + print("Stopping") self.player.stop() @dbus.service.method(dbus_interface='nl.miqra.MediaCore.Media', in_signature='', out_signature='d') @@ -230,18 +308,26 @@ class MediaService(dbus.service.Object): ### Callback functions def onPlayerReady(self,player,filename,tags): - print "Loaded {0}".format(filename) - print "Tags:" + print("Loaded {0}".format(filename)) + print("Tags:") taglist = {} for tag in tags: try: taglist[tag] = str(tags[tag]) - print " {0}: {1}".format(tag,taglist[tag]) + print(" {0}: {1}".format(tag,taglist[tag])) except Exception as x: - print "Error converting value for '{0}':\n {1}".format(tag,x) + print("Error converting value for '{0}':\n {1}".format(tag,x)) + + # extract cover art from tags + if "image" in tags: + buffer = tags["image"].get_buffer() # Gst.Buffer + (result, mapinfo) = buffer.map(Gst.MapFlags.READ) + if result: + self.loadImageData(mapinfo.data) + # reset load counter - self.loadcount = 0; + self.loadcount = 0 if self.quickplay: if self.quickplayloop: @@ -261,21 +347,23 @@ class MediaService(dbus.service.Object): self.OnPlaying() def onPlayerStopped(self,player): + self.loadBaseImage() self.OnStopped() def onPlayerPaused(self,player): self.OnPaused() def onPlayerFinished(self,player): + self.loadBaseImage() self.OnFinished() def onPlayerError(self,player,state,error,debug): - print "Player state: {0}".format(state) + print("Player state: {0}".format(state)) if state == "LOADING": - print "Failure during LOAD: {0}".format(error) + print("Failure during LOAD: {0}".format(error)) self.OnLoadFail(error) else: - print "Failure during RUN: {0}".format(error) + print("Failure during RUN: {0}".format(error)) self.OnRunFail(error) def onPlayerVolumeChanged(self,player,volume): @@ -348,19 +436,27 @@ class MediaService(dbus.service.Object): pass def Run(): + + print("Initializing") + + # quick bugfix - set XDG runtime dir if it has not been set + if not 'XDG_RUNTIME_DIR' in os.environ: + os.environ['XDG_RUNTIME_DIR'] = "/run/user/{0}".format(os.getuid()) + mediaservice = MediaService() loop = GObject.MainLoop() loopcontext = loop.get_context() + def onsigint(signal,frame): - print "Quitting" + print("Quitting") loop.quit() signal.signal(signal.SIGINT, onsigint) - print "Starting..." + print("Starting..." ) try: loop.run() except KeyboardInterrupt: - print "Quitting" - loop.quit() \ No newline at end of file + print("Quitting") + loop.quit() diff --git a/mediaserver/monitoredplayer.py b/mediaserver/monitoredplayer.py index 0b47806..bcf648b 100755 --- a/mediaserver/monitoredplayer.py +++ b/mediaserver/monitoredplayer.py @@ -8,9 +8,9 @@ from threading import Thread import time # import from this module -from basicplayer import BasicPlayer +from . basicplayer import BasicPlayer -class MonitorThread:#(Thread): +class Monitor: def __init__(self,player): self.player = player #Thread.__init__(self) @@ -34,8 +34,8 @@ class MonitorThread:#(Thread): if self.player.playtime > 0: if (position - self.player.startpos) > self.player.playtime: #self._player.pause(notify=False) - print "Finished limited play" - self.player._finished() + print("Finished limited play") + self.player.finished() if self._running and time is not None: GObject.timeout_add(100, self.run) @@ -44,7 +44,7 @@ class MonitoredPlayer(BasicPlayer): def __init__(self): BasicPlayer.__init__(self) # setup monitor thread - self.monitor = MonitorThread(self) + self.monitor = Monitor(self) self.monitor.start() self.playtime = -1 self.looping=False @@ -82,7 +82,7 @@ class MonitoredPlayer(BasicPlayer): #self.monitor.stop() - def _finished(self): + def finished(self): if self.looping: print("Finished - looping") self.seek(0) @@ -90,7 +90,7 @@ class MonitoredPlayer(BasicPlayer): self.player_state = "PLAYING" self.pipeline.set_state(Gst.State.PLAYING) else: - BasicPlayer._finished(self) + BasicPlayer.finished(self) GObject.type_register(MonitoredPlayer) diff --git a/mediaserver/resources.py b/mediaserver/resources.py new file mode 100644 index 0000000..0eb022b --- /dev/null +++ b/mediaserver/resources.py @@ -0,0 +1,59 @@ +# License for this source file +# +# Copyright (c) 2014 Miqra Engineering +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE + +import os,sys +import pkg_resources + +class Resources(object): # needs to be explicitly subclassed from object to get the __new__ method to work + + PACKAGE = __name__ + + + @classmethod + def SetPackage(cls, package): + """ + Set the package from which to load localization data + """ + cls.PACKAGE = package + pass + + + @classmethod + def string_from(cls,path): + return pkg_resources.resource_string(cls.PACKAGE, path) + + @classmethod + def filename(cls,path): + return pkg_resources.resource_filename(cls.PACKAGE, path) + + @classmethod + def stream_from(cls,path): + return pkg_resources.resource_stream(cls.PACKAGE, path) + + @classmethod + def isdir(cls,path): + return pkg_resources.resource_isdir(cls.PACKAGE,path) + + @classmethod + def exists(cls,path): + return pkg_resources.resource_exists(cls.PACKAGE,path) + + @classmethod + def listdir(cls,path): + return pkg_resources.resource_listdir(cls.PACKAGE,path) diff --git a/test_client.py b/test_client.py index d6d17a5..6c4ae64 100755 --- a/test_client.py +++ b/test_client.py @@ -30,7 +30,7 @@ class TestController: GObject.timeout_add(10, self.tick) def tick(self): - self.player.QuickLoop("/opt/src/robotvideo/ogen open.mp4") + self.player.QuickPlay(sys.argv[1]) #GObject.timeout_add(3000, self.reboot) pass @@ -85,6 +85,6 @@ def signalSIGTERM(self,signum): signal.signal(signal.SIGTERM, signalSIGTERM) controller = TestController() -controller.Start(); +controller.Start()