Help with fake camera and python

Hello,

I’m totally new to Aravis, but it seems like an interesting project. I’m looking to set up SWIR gige camera, and currently coding it in Python. However I miss some Python documentation. Can someone guide to any documents?
Or maybe a simple example of how to connect and retrieve data from the fake camera would be a great help. I’m assuming the fake camera is supposed to send back some specific (random) image.

PS: Im currently running my code in a docker container, so i don’t have a gui to look at.

Thanks

Looking a bit more into the problem I’m facing, is running the fake camera and tester in a docker container, even within the same container:

arv-fake-gv-camera-0.8 -s fake_cam &
arv-camera-test-0.8 -d all

Running it this way yields the following output:

Looking for the first available camera
vendor name            = Aravis
model name             = Fake
device serial number   = fake_cam
image width            = 512
image height           = 512
horizontal binning     = 1
vertical binning       = 1
exposure               = 10000 µs
gain                   = 0 dB
payload                = 262144 bytes
gv n_stream channels   = 1
gv current channel     = 0
gv packet delay        = 0 ns
gv packet size         = 1400 bytes
  0 frame/s  -       0 MiB/s
  0 frame/s  -       0 MiB/s
  0 frame/s  -       0 MiB/s
  0 frame/s  -       0 MiB/s
  0 frame/s  -       0 MiB/s
  0 frame/s  -       0 MiB/s
...

So it looks like control is working, but streaming is not. Running the fake camera and the test outside of the container works just fine.

Indeed, I have faced the same issue running the fake gige camera in a Docker container.
From my debugging, the fake camera do send the packets, they are queued by the Linux kernel but aravis app does not get them. While the same app works perfectly with a real camera inside a container or with when ran outside of Docker.
This might be related to the loopback interface and Docker iptables?
But I did have the time to debug further.

For what it’s worth, the Aravis CI pipeline uses the fake camera in some of the tests. I don’t know how CI is implemented on GitHub, but I guess Docker is involved somehow.

But is it using the fake GV camera?
Yes, Github Actions run on Docker.

fakegv test is using the GV fake camera:

 7/9 aravis:network / fakegv      OK             14.75s
――――――――――――――――――――――――――――――――――――― ✀  ―――――――――――――――――――――――――――――――――――――
TAP version 13
# random seed: R02S2f5c0f868be73840fba87f4dab755d8a
1..5
# Start of fakegv tests
ok 1 /fakegv/discovery
# slow test /fakegv/discovery executed in 6.02 secs
ok 2 /fakegv/device_registers
ok 3 /fakegv/acquisition
ok 4 /fakegv/stream
# slow test /fakegv/stream executed in 3.38 secs
ok 5 /fakegv/dynamic_roi
# slow test /fakegv/dynamic_roi executed in 4.19 secs
# End of fakegv tests
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Thanks for your inputs. I can confirm that the fake camera does send all the packets, so it’s the exact same situation as you @rreignier. For some reason they are not being received by my application code. Thanks for confirming that you have it working with a real camera.