Re: [Libxine-java-devel] JNA and libxine
Status: Beta
Brought to you by:
freckle
From: Matthias R. <mri...@in...> - 2008-06-23 16:10:05
|
On 23.06.2008, at 11:35, Aekold Helbrass wrote: > Hi All! > > I have one idea and need a bit of your help. There is java.net project > https://jna.dev.java.net/, can we collaborate and use it instead of > jni? I have no C++ knowledge, but have enough java experience. And we > can put result into your sf.net project :) to attract more users to > both xine and libxine-java. Hi there I've had a look at JNA before, especially since gstreamer for java uses it. So far I don't see a real benefit of using JNA over the current SWIG-based approach. On an abstract level, JNA does the same as SWIG but at run-time instead of compile time, so a NOP-call using JNA is about 10x slower than one using SWIG which creates JNI C code. Switching from SWIG to JNA would require a major effort, since most part of libxine-java has to be rewritten. I've written the native code to integrate xine into java in C for the xcb/x11 backend and in Objective-C for Mac OS X. The native part is about 1200 lines of code which is similar to the Java part. The not-so-easy part of libxine-java is not its JNI use (which is actually quite straight forward, if you're used to C), but to figure out, how to interact with the native environment. This problem would be persist with JNA. For development/debugging, I have written C test code and used the gdb for source-level debugging. Doing the same from Java would introduce more risk as JNA might not doing its magic properly. What are your ideas? Why would you prefere a JNA solution over the JNI/ SWIG on? How does it help to attract more users? People would still need to install xine-lib. If they manage that, they can also manage to install libxine-java. If installation is a hurdle, packaging libxine-java for debian/red hat/etc.. might be an option. Happy to discuss anything, Matthias |