-
Notifications
You must be signed in to change notification settings - Fork 85
Plugin for GStreamer #80
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
Comments
Seems like bundling the plugins (as a start, all the ones installed should be installed) and then setting an env var is enough. See ubuntu/snapcraft-desktop-helpers#49 and https://developer.gnome.org/gstreamer/stable/gst-running.html. Therefore: blocked by #81. |
Here is an example: |
Now that the feature is there in linuxdeploy, we could make such a plugin. Volunteers welcome, though; this needs some testing. Writing plugins for linuxdeploy is quite easy, as even shell scripts can be used. @probonopd wanna give it a try? |
To be honest I would not even know where to begin. |
I guess bundling all GStreamer plugins and then setting the two or three environment variables required to make GStreamer find them should do. Perhaps we'll find some user who needs GStreamer support and implements that then. I don't have a GStreamer app on hand that I could test this with, let's rather do it once there's someone who needs that. |
Also see strawberrymusicplayer/strawberry-buildbot@19cd165 where @jonaski has added GStreamer to the AppImage for the Strawberry music player. |
I was using the continuous builds of linuxdeploy previously, but had to compile my own now because the builds of linuxdeploy-plugin-qt switched to Xenial which has newer glibc than Centos 7. I use Centos 7 for the AppImages because it's the most suitable distro I found since it has older core libraries but still has acceptable versions of Qt and GStreamer. I only have to compile chromaprint and sqlite3 myself. The Dockerfile is here: https://github.com/jonaski/strawberry-buildbot/blob/master/worker-centos-7/Dockerfile |
Argh. Maybe we should not have switched then @TheAssassin? |
@jonaski just to be precise, do you want to bundle GStreamer and its plugins inside the AppImage or do you want the application in the AppImage to use GStreamer plugins that are installed on the system? (The latter is probably a sure recipe for disaster.) |
I want to bundle them in /usr/plugins/gstreamer inside the appimage, instead of having to put them directly in /usr/lib in the appimage like now. |
I see; you mean Regarding your question: @TheAssassin? |
Please open a separate bug, as I did in linuxdeploy-plugin-qt.
Can you please open an issue describing the problem? You know, without user feedback, bugs will live forever. We need your help there. I will have a look at making a plugin for this in the future, but it's not a priority right now. I'll check out what @jonaski does there, and perhaps he can help test that plugin then. Please open issues about the separate problems. It's annoying to have too much off-topic in an issue. Rather open too many issues than too few, I hate scrolling and I can close duplicates easily. |
After taking a look into the gstreamer code I found that the following environment configuration is required, yet some gstreamer plugins are really bad and must be manually excluded.
|
Which ones? Is there a list? |
Usually the ones from the grstreamer-plugins-bad package but the list varies depending on the version. And not all the plugins in that package cause a segfault |
You can still bundle those though, right? I mean, unless they're loaded, they should be harmless. |
There is a |
I can't find a tool called |
On Fedora: |
I'm not entirely sure how this binary is supposed to work. I think for now it should suffice to just copy over all plugins. If the app doesn't load them, nothing bad will happen, it's just additional bloat. We have to get started somewhere. |
The |
What do these two do?
|
The |
That's what There is another binary that gstreamer uses which is: Yet when gstreamer is embed into the AppImage the startup time increases considerably due the plugins cache being updated (and failing to load the plugins in the system). Yet, it works :) |
This comment has been minimized.
This comment has been minimized.
Experimental implementation can be found here: https://github.com/linuxdeploy/linuxdeploy-plugin-gstreamer There is the unsolved problem that the dependencies of these libraries aren't deployed. CC #68 |
This comment has been minimized.
This comment has been minimized.
Maybe the script could use an environment variable for what gstreamer plugins to bundle. I only want to bundle the required audio plugins. |
Working implementation provided in https://github.com/linuxdeploy/linuxdeploy-plugin-gstreamer. Feel free to open issues there. Contributions welcome! |
Looking at one issue seems to be that you find I have seen it at least in
Things like this are the reason why I am increasingly fond of using FreeBSD instead of "Linux". |
We need a plugin that bundles GStreamer related files and updates the AppDir so these files will be loaded by the bundled GStreamer libraries.
The big question is whether GStreamer supports relocation at all.
CC #12.
The text was updated successfully, but these errors were encountered: