[aravis] How to capture the most recent frame only

  • From: Seth Nickell <seth@xxxxxxxxxxxxxxxx>
  • To: aravis@xxxxxxxxxxxxx
  • Date: Sat, 3 Mar 2018 12:05:49 -0800

Hi!

We have a non-hw-triggerable genicam that continuously outputs 30fps, but
we only need to capture a small subset of those frames in response to a
software trigger condition.

Could you suggest the best way to approach this problem with Aravis
API-usage wise? Basically precise timing is most important to this
application, I'd like to as-predictably-as-possible capture the very next
frame after the moment I try to trigger.

I tried setting up an ArvStream with only two ArvBuffers, but there seems
to be some latency in the pipeline because I'm getting frames 250ms delayed
through this approach (=10 frames late at 30fps).

Ideally I don't want to do network transfer on frames that are NOT
triggered, is there some way to accomplish this by using low-level Aravis
APIs to capture frames directly?

thanks,
-Seth Nickell

-- 
VP Engineering @ Ceres Imaging

Other related posts: