I am researching machine vision software possibilities and am excited with the promise that the genicam standard is stating of camera interaction, regardless of interface.
For these two a genTL library is needed. This can come from the camera manufacturer or found online to work with multiple cameras.
Reading the limited documentation of Aravis I am getting the impression that it does not need such a library.
From the docs I also found “it does not try to be a complete implementation of the Genicam API as described in the GenAPI GenICam document.”
What is the advantage of using Aravis over the standard genicam approach (as shown below)?
You are right, Aravis tries to implement everything needed for the camera control and the video stream reception.
It should even say « Aravis does not try to implement the Genicam API ». What Aravis is using in the Genicam specification is the XML data description.
The main advantage is you get a full open source stack. No ties to a camera manufacturer or a single software vendor. The code is available and you can adapt it to suit your needs.
I am looking at the GenTL v1.6 header by EMVA, it seems to be quite straightforward for implementation. Would that be a welcome addition to Aravis?
The thing is that I sometimes have to use vendor’s SDKs, which mostly require 3rd party GenTL provider library & I would much prefer to have Aravis underneath (source access, installation ease, hackability, …).
And then, can the header by EMVA be used as-is, or does it need to be retyped or something like that? (The license is, as far as I see, modified BSD: allows redistribution without modifications and with attribution; is there a gotcha?)