Capturing from cameras on Windows

Hi Folks,

I’ve been playing around with the Aravis library for a couple weeks and have grown more familiar with it. It seems to be quite a well featured library! I’ve been able to successfully capture buffers from both the emulator and some real cameras on Linux but I am facing some issues on Windows. On Windows, the same code that works on Linux, fails to successfully acquire a valid buffer and callbacks tied to when a buffer is ready are never triggered. A simple repro on my side for this is to run the arv-test-0.8 tool. On Linux, it seems to communicate with the cameras nicely. Namely the SingleAcquisition, SoftwareTrigger, and MultipleAcquisition tests all succeed. On Windows, however, those same tests fail. I am able to enumerate and query properties of the cameras on Windows, I just can’t seem to acquire any buffers. On the windows side, I didn’t compile the Aravis project, I simply used the pre-compiled libraries available through Msys2 (in case that may be a factor).

Has anyone else had issues with capturing images from cameras on Windows? Is there perhaps some special setup required I may have missed?

Thanks!
Luke

I am having the same issue. These same tests fail on Windows and the arv-viewer tool recognizes the camera (a FLIR Oryx) but fails to acquire any images from it. I have jumbo packets enabled for the ethernet port the camera is plugged into and am using the msys2 libraries.

Hi Luke,

I will try to compile Aravis on Windows by myself, and test the conan and mingw packages.

Meanwhile, all I can say is the Windows port is under continuous integration, which has a test using the camera emulator. So at least the GigEVision protocol should work.

Did you try the camera emulator on Windows ?

What is the protocol of your camera ? GigEVision or USB3Vision ?

Also, what is the output of arv-camera-test -d all:3 ?

@Emmanuel, apologies for the delayed reply! I was attempting to keep an eye on this but work got crazy. I just recently had time to come back to this – and solved the problem (perhaps this will help @Ian_Strothers as well).

Emmanuel, to your question, yes, the emulator when running on the same machine worked properly. Turns out there were two factors at play-

1.) Window Firewall - Make sure it’s configured to allow your application using Aravis through (e.g. arv-test)
2.) It appears that the Teledyne Dalsa SaperaLT GigE network filter driver will break streaming to other SDKs. I discovered this when attempting to use both a Dalsa camera and Basler camera on the same system. The Basler camera stopped working once I installed the Sapera SDK. My earlier tests had the Sapera SDK installed, so the filter was already there causing problems. Once I uninstalled the SDK, the Aravis library started working!

The firewall and network filter driver aren’t in the mix for the loopback channel, hence why the emulator worked locally.

@Ian_Strothers, since you’re using FLIR, I suspect the firewall may be at play. I found that the FLIR Spinnaker SDK didn’t impact usage of Aravis (Neither does the Basler Pylon SDK, for what it’s worth)

2 Likes