Using An OpenCL Kernel In GStreamer
Phoronix: Using An OpenCL Kernel In GStreamer
There's now a GStreamer plug-in to utilize OpenCL within this popular Linux video framework so that an OpenCL kernel can be applied against a video stream...
Of course, to me, the real awesome part is that it was written in Vala, not that you can apply OpenCL to your gst pipeline. That's cool, too, but nowhere near as cool as writing it in Vala.
Way to go!
Keep bringing it on, many applications will benefit from GPGPU acceleration.
There is nothing special of "this OpenCL support was written in Vala" as there are quite a lot of bindings for OpenCL. And these bindings are just for setting up OpenCL while the actualy OpenCL code (the kernels) is still in OpenCL C.
Nonetheless I think it is a great thing to utilise OpenCL in more areas.
I'm interested in using opencl for frame interpolation
Just read the wikipedia article about Vala. That's pretty cool! I will definitely have to try it out.
It doesn't matter that the OpenCL ultimately runs in C. Vala code becomes C at build-time anyway. The reason I thought it neat is that I'm a big proponent of Vala as a programming language, for its own sake, due to its featureset. I'm the maintainer of a Rhythmbox plugin written in Vala so anything related to Vala makes me perk up. I want to see Vala used more often, acquire better bindings, and more mindshare in the community. I think it's a great language because it combines the performance and code reuse benefits of C (that is to say, C is fast, and C can use almost any other program written in any other language) with the object-oriented high-level ease of a C#-like language. It vastly improves maintainability and makes things like GLib type inheritance much, MUCH simpler, without sacrificing performance like scripting languages or Java, or adding runtime dependencies like virtually every other non-C language does. It also maintains the traditional strong typing system, which is somewhat useful for people who don't like to let their users figure out in production that some method isn't defined for some object. ;-)
Originally Posted by mat69
Also, it's very encouraging to know that you can write a gstreamer plugin entirely in Vala. That alone is an accomplishment.
You missunderstood what I said.
Originally Posted by allquixotic
The reference implementation for _setting_  up OpenCL is in C. Now there is a Vala binding for this setup process.
The code (kernels) that runs on the devices (GPU, CPU, ...) in paralell is in OpenCL C.
Nothing is changed there by the Vala binding, i.e. you still write kernels in OpenCL C and not in Vala.
 Which device to use, which parameters to send to the kernels etc.