New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch to GStreamer 1.0 and PyGI #225
Comments
http://lazka.github.io/pgi-docs/ for a very useful pgi reference doc. |
When you said 2013, you mean 2014? or later this year? |
That was written a year ago. I think the distro support is good enough now, so I'd port anytime if I wasn't in the middle of other stuff like pyspotify2. |
Any update? |
Porting to PyGI and GStreamer 1.x is still a high priority on our technical roadmap. Things that need to happen before porting:
Modules to port to PyGI:
After porting Mopidy proper, we should have a look at Mopidy-MPRIS:
@adamcik Is there anything I've forgotten? |
A question...can pygi and pygobject happily co-exist in the same way as gstreamer-1.0 and gstreamer-0.10? |
No, we have to switch everything in the same process from pygobject to pygi |
Can you tick off 'Reintroducing volume mixers'? |
@kingosticks Done :-) |
Blocked by #961. |
@jodal there's nothing stopping you from carrying on using python-dbus. It's one more dependency, but it doesn't hurt. |
@hadess You're saying that there's no conflict between PyGI and python-dbus in the same process, like there is between PyGI and PyGST? |
@jodal I don't know why there would be. PyGI would be wrapping GDBus in the GIO library, python-dbus wraps dbus-glib. 2 separate implementations of D-Bus. |
I guess the reason PyGST isn't compatible with PyGI is because PyGST use PyGObject, which PyGI replaces. If python-dbus has nothing to do with GObject, it should be quite independent. |
PR #1419 has been merged and develop now runs on GStreamer 1.x :-) |
GStreamer 1.0 was released a couple of months ago. As far as I know, it doesn't bring any new features that are important for Mopidy.
Though, in GStreamer 1.0 the GStreamer Python bindings have been replaced by PyGI, which is generic Python bindings for any library supporting GObject Introspection.
Switching to PyGI will remove our dependency on the Python bindings for GStreamer, GObject, and libindicate, and maybe even the DBus bindings. Replacing this pile of manually maintained Python 2.x bindings with PyGI, which works under both Python 2 and 3, is a huge step towards bringing Mopidy to Python 3, and is thus something we should do.
A spike for porting to PyGI using GStreamer 0.10 was done in #147. I wasn't that much work, but we hit some problems that will not be resolved in GStreamer 0.10, so we can't move to PyGI without moving to GStreamer 1.0 at the same time. https://wiki.ubuntu.com/Novacut/GStreamer1.0 is a great resource which explains most of what needs to be changed in the migration.
The question isn't if we should port to PyGI, but when.
The current status of GStreamer 1.0 is:
My current guess is that we don't want to port before some time in 2013.
The text was updated successfully, but these errors were encountered: