I tried to write a gstreamer plugin, that exports (video) filters from libavfilter as gstreamer elements (only a selected set for now). This implementation should support filters that match the following criteria:
- filter has 1 static input and 1 static output
- filter takes video as input and produces video as output
- filter works purely in software (no hardware textures or fancy stuff)
- filter only changes either the pixel format, or the frame content
For now, the following libavfilter filters are whitelisted / were tested:
I tried to derive how to properly implement a
GstBaseTransform-plugin from documentation / tutorials and other existing implementations. I'm sorry if there are any grave mistakes.
The pieces of code, where I was not able deduce the proper inner workings or have other questions are marked with
As discussed with __tim on IRC: My GNU indent version is newer (2.2.12), thus the MR unfortunately contains a bit of unwanted re-styling, and the gst indent CI pipeline is failing. How should we best go about this?