Hi,
On Fri, Feb 18, 2011 at 6:39 PM, Robert Fekete robert.fekete@linaro.org wrote:
To make a long story short: Different vendors provide custom OpenMax solutions for say Camera/ISP. In the Linux eco-system there is V4L2 doing much of this work already and is evolving with mediacontroller as well. Then there is the integration in Gstreamer...Which solution is the best way forward. Current discussions so far puts V4L2 greatly in favor of OMX. Please have in mind that OpenMAX as a concept is more like GStreamer in many senses. The question is whether Camera drivers should have OMX or V4L2 as the driver front end? This may perhaps apply to video codecs as well. Then there is how to in best of ways make use of this in GStreamer in order to achieve no copy highly efficient multimedia pipelines. Is gst-omx the way forward?
Let the discussion continue...
We are talking about 3 different layers here which don't necessarily overlap. You could have a v4l2 driver, which is wrapped in an OpenMAX IL library, which is wrapped again by gst-openmax. Each layer is different. The problem here is the OMX layer, which is often ill-conceived.
First of all, you have to remember that whatever OMX is supposed to provide, that doesn't apply to camera; you can argue that there's some value in audio/video encoding/decoding, as the interfaces are very simple and easy to standardize, but that's not the case with camera. I haven't worked with OMX camera interfaces, but AFAIK it's very incomplete and vendors have to implement their own interfaces, which defeats the purpose of OMX. So OMX provides nothing in the camera case.
Secondly, there's no OMX kernel interface. You still need something between kernel to user-space, the only established interface is v4l2. So, even if you choose OMX in user-space, the sensible choice in kernel-space is v4l2, otherwise you would end up with some custom interface which is never good.
And third, as Laurent already pointed out; OpenMAX is _not_ open. The community has no say in what happens, everything is decided by a consortium, you need to pay money to be in it, to access their bugzilla, to subscribe to their mailing lists, and to get access to their conformance test.
If you forget all the marketing mumbo jumbo about OMX, at the of the day what is provided is a bunch of headers (and a document explaining how to use them). We (the linux community) can come up with a bunch of headers too, in fact, we already do much more than that with v4l2, the only part missing is encoders/decoders, which if needed could be added very easily (Samsung already does AFAIK). Right?
Cheers.