On Wed, 22 Feb 2023 at 13:24, Scooter Willis <
will...@gmail.com> wrote:
> I would be interested in getting more involved.
Great! But could you be more specific? Where do you think you could
contribute? Where do you think priorities should be?
> That said it does appear that Java is working to replace JNI.
>
> Would be interesting to try Foreign Function and Memory API to see if it makes support l/maintenance easier for interfacing to c/c++ code. In particular to get access to memory related to images without the JNI overhead.
Yes, definitely aware of Panama and related JDK projects. It remains
to be seen what benefit it would offer for GStreamer interaction in
practice. I've had a quite detailed conversation with one of the
developers around the foreign thread management model (eg. GStreamer's
threads attaching to the VM) - that's a key crunch point for the
bindings.
Various threads on the JNA list possibly worth a read, including
https://groups.google.com/g/jna-users/c/xnbkfLFraWY
To be clear, I'll still be using GStreamer and the JDK together in
future. Over the last few years I've developed a number of bespoke
bindings for clients who for one reason or another didn't want to use
gst1-java-core. For a number of Codelerity's projects I may switch
away from the bindings to a bespoke integration.
I've also looked again at automatic generation of lowlevel code using
Gir files again, partly with the thought of targeting both JNA and
Panama. That would be to replace the current lowlevel package mapping
code. The hard part would be switching the main API of the bindings
to this, particularly if the aim is to keep it (fairly) compatible.
There is also the current one-to-one mapping of Java and GObject
references, including memory tracking on both sides. That's one of
the useful aspects of the bindings, but also one of the more difficult
to maintain, and judging from some client work, difficult to
understand!
The key question for me is whether to invest much more of mine or my
company's own time into developing and maintaining the higher level
bindings for the future. Particularly when our current work is
focused elsewhere. The disconnect between the growing number of
commercial users I'm aware of, with their reliance on free support,
and their unwillingness to invest either time or money into the
maintenance of the project, make the answer to that, at least with a
business hat on, no.
> I would propose moving up a level and have Java gstreamer for deep learning related gstreamer development.
>
> Could be a way to get Nvidia or Google to bring in Java support. Amazon has put in significant resources for Java interfaces/abstraction to the various deep learning stacks. Yet they can't process video. Java Deep Learning library.
That's not an area of work we're currently focused on. I'd certainly
be happy to see development in this area though, and would possibly be
interested in assisting with.
Thanks. Am aware of RidgeRun, and looked at integration with elements
of theirs for a client a few years back.
Our business model is not that dissimilar, really - our scale and
areas of focus are.
Thanks and best wishes,