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
Trouble getting Gstreamer 1.0 to work properly on OSX 10.9.4 with MacPorts #2448
Comments
Small update: Replacing the contents of |
Hi, I guess our FAQ is misleading. The gi is not used, and deactivated for a purpose: There is no way to know which version you have installed prior the import. And as soon as we imported Gi, there is no going back. And it's not crossplatform yet. The latest decision was to create our own gstreamer player, which is available now. If you have any issues with it, then try first to activate the gstreamer debug, upload, and let us see what's going on for you on the default version we ship (not the version you changed, which can be a MESS if you don't fix rpath in the .so, shared deps that are copied, etc. The portable installation is not the same than the .so/.dylib you can find on your computer). So to start a video that fail:
If you use the |
Argh, it seems I broke being able to just use
The log is exactly the same either way =/ http://www.pasteall.org/53801 EDIT: I found it weird using the |
The paste doesn't contains any gstreamer debug :( Can you try |
Yeah, I can't get anything using just
[1.1] Formatted .rtf |
Hey Tito, Did you happen to get a moment to take a look at this by any chance? =) |
Interesting. When modifying Kivy's No idea if this is useful info, but figured I'd post it here. |
It's bad. There is a mix between the plugins / library we ship within Kivy, and the one in your system:
It should never do that. A: did you ever manually replaced files from your system/gstreamer and the one in the portable package? |
Argh, I didn't of that - how stupid. I haven't set up being able to use Plain-text paste: http://www.pasteall.org/54144/bash |
Same yep: 0:00:00.000140000 9005 0x7fbef640ea00 INFO GST_INIT gst.c:500:gboolean init_pre(GOptionContext , GOptionGroup *, gpointer, GError *): Using library installed in /opt/local/lib So why the kivy doesn't use its own library? |
I just see that we don't set the GST_REGISTRY path in OSX while we set it in Windows. So what can happen is when you use the system gstreamer, it will mess up (or reuse) the kivy gstreamer, because both shared the same registry. Can you try to add in your kivy script: export GST_REGISTRY=${SCRIPT_PATH}/registry.bin ? And ensure this works by checking the line that contains: "reading registry cache:".
|
Adding the export does seem to change the registry path to Kivy's:
But unfortunately it also still seems to be using
|
Can you dump the env (just add |
Did you mean like so?
If so, that doesn't give me anything other than the regular Kivy INFO output. Apologies I'm so terrible at this by the way; it's just a little out of my depth. ;) EDIT: Ah, gotcha! Here's my env: http://www.pasteall.org/54178/bash |
You have something weird. Your DYLD_FALLBACK_LIBRARY_PATH includes /usr/lib. Did you added it manually in your .profile? Also, everytime you do a change on the env, for the tests / debugging of this issue, manually remove the registry.bin please. Did you changed any of the kivy.app contents? (except the kivy script) |
Ah, yes, that was to get PyBonjour to work! Removing it makes my environment look like this: http://www.pasteall.org/54179/bash I also deleted registry.bin, but no change yet. What is interesting however, is the following warnings I now got right after the regular Kivy INFO block: http://www.pasteall.org/54180/bash I'm guessing it shouldn't even reach the system SDL here. |
Just started playing with this again and found what seemed to be remnants of earlier testing in the /lib folder. After downloading the official 1.8 distribution and copying over it's lib folder, I got the segfault again. Here's a log of that with |
There is still a conflict, f*ck! At the start: And then: Same issue, mixing system library with the one within the Kivy.app. Different ABI = crash. |
Ok, ok. I tried on my computer, guess what, it uses my system library first. At the time of doing the initial OSX package, i have changed all the RPATH to libraries with relative path within the Kivy.app. But the current release explicitely rely on the system (/usr/local/ on my side) one. I would like to test 2 things with you. First, could you add in the kivy script:
And share the whole output. Then, add one more line:
And share the whole output too. Normally, the second one should work as expected, as it explicitly enforce the library to be loaded within the script path, if exists first. So gstreamer-kivy version will be used, and the Gstreamer version printed should be
But to be sure it works on another computer than mine, i need both log (with the DYLD debug, and without/with DYLD_LIBRARY_PATH). Thanks! |
Hey, glad to hear you were able to reproduce the problem! I mean, not glad for you/ Kivy, but glad it's not just me messing up. ;) Unfortunately it still doesn't work though; adding it the Here are the logs: Note that these are both without the explicit |
Ok, here we are:
Now we just need to find out why it doesn't want to load for you :) Can i get the output of |
You sure can! http://www.pasteall.org/54385/bash (yaaay, more local files!) |
Did you copy your own compiled Kivy within the Kivy.app somehow? |
Yes, I'm using a (slightly older) 1.8.1 build (straight git clone from master). |
Just to be sure, could you try a fresh 1.8.0 version with an example that load a video? To determine if it's about rpath within the compiled kivy version or not. :) |
This looks pretty darn promising! The video doesn't actually load though; the callbacks ( Here's my example app: http://www.pasteall.org/54392/python (messy, stripped-down code, sorry) |
Ok, then it's really an issue with rpath, at minimum. |
Hmm, alright! What should I do to proceed? =) |
A-ha! Simply having the video (auto)play fixes that issue. Awesome! Now all that's needed for me is to get it working with version 1.8.1. Can you share what needs to be changed in order for this to work? I'm guessing something in the makefile? |
It's not something missing in the makefile, it's something missing during the packaging. But i need to be able to fully reproduce it in order to patch it correctly. |
Ah, ok. Please let me know if you need me to test/ log anything then. =) |
Tito, is there any chance there's a make-shift solution I could apply myself in the meanwhile? I'd really like to start using video in my 1.8.1 project. Or if it helps I could attach a small bounty to this issue? |
"The night is dark, and full of terrors" and on this Old Hallow's Eve I'd like to bring your attention to this dreaded bug once more. ;) Or, in non Halloween-speak: Any progress/ suggestions for me to try yet? =) |
Hey Mathieu, Any progress on this yet? I hate to keep bumping this, but it's really starting to hold me back right now =/ |
Monthly bump |
Hi @SenshiSentou, i didn't forget you. This month, i worked on a new packaging approach and tools that resolve this. A new tool, extracted from the build toolchain of gstreamer and repackaged for standalone execution have been pushed: osxrelocator. Have a look at: https://pypi.python.org/pypi/osxrelocator Second, i tried a complete new approach for the OSX packaging. There is various issue with GStreamer, and mostly pyinstaller after. My goal was to think more as an SDK: you have a Kivy.app on which you can try your software, or use it as a base to make your own app. Then the repo https://github.com/kivy/kivy-osx is born. Internally, it uses official packages for SDL2/_image/_ttf and GStreamer. The end package is bigger, but work and should be more sandboxed. (ie, no mess with the System). I shared the concept and preliminary packages with the teams, seems to works, but not on all osx version. Contact me directly by email if you wanna test too. |
This is fixed with the new kivy/kivy-osx packaging tools. Next packaged version will contain the fixes :) |
Hello!
I posted about this issue earlier, but the response was, well, non-existent. I'm guessing this is more of a support-thing rather than a bug report, but filing it here too, just in case!
A synopsis of my situation:
pygobject3
,gstreamer
andgst-plugins-[base | good | bad | ugly]
using MacPortsimport gi
just fine from both a Python process, and a Kivy oneGst.version()
from within my Kivy appnull
I found that if I uncommented line 210 in kivy/core/video/init.py (
video_providers += [('gi', 'video_gi', 'VideoGi')]
) I actually getgstplayer
as my video provider; huzzah!Then though, it starts complaining about a segfault in Resources/lib/gst-plugins/___so. Removing that file (as suggested by the error message) just shifts the error to the next one, so I just emptied the entire folder. \0/
Ok, so now the app starts, and we don't get any errors (just a few warnings RE SDL_xxx classes being implemented in both Kivy's and SDL's
libSDL-1.2.0.dylib
). However, my video files still don't load. I've tried binding my test callback to bothloaded
andon_load
, but no dice. Does anyone have any ideas on how to proceed? Video support is rather crucial in this specific app, so it would be great to see this resolved. =)Thanks,
Patrick
The text was updated successfully, but these errors were encountered: