GNOME Bugzilla – Bug 614058
GStreamer registry and plugins path should not be relative
Last modified: 2011-02-04 14:08:32 UTC
Relative paths are not going to work on Windows as we can't assume that the application is always launched with a cwd corresponding to the installed application directory. For example when associating the app to some media types like .mp3 the application will be launched with a different cwd. GStreamer plugins won't be found in that case and the registry will be invalidated. Additionally we can't create the registry in cwd as the UAC on Windows might not let us do that in C:\Program Files
I just ran into this while testing the new installer maker. When launching Nereid from Windows Explorer, it tries to create the registry in the working directory, which is C:\Program Files (x86)\Banshee, to which normal users do not have write access. I think %LOCALAPPDATA%\banshee-1 would be an appropriate location for this stuff. I'll look into creating a patch this weekend.
I think something like this would work well: var path = Hyena.Paths.Combine (Hyena.Paths.ApplicationData, "gstreamer-registry.bin");
Created attachment 179850 [details] [review] Store GStreamer Registry in ApplicationData
Created attachment 179851 [details] [review] Use absolute path for GStreamer plugins path I believe this will work for the plugins path; it needs to be the absolute path name of the installation directory plus "gst-plugins." If this isn't right or doesn't work, let me know.
Created attachment 179852 [details] [review] Store GStreamer Registry in ApplicationData Sorry, I failed at following conventions again...
Created attachment 179853 [details] [review] Use absolute path for GStreamer plugins path
Committed both, thanks Dustin!