[aravis] Re: how to remove input-queue buffer in v0.5.x (2nd try now in plain text)

  • From: Emmanuel Pacaud <emmanuel.pacaud@xxxxxxxxxxxxx>
  • To: aravis@xxxxxxxxxxxxx
  • Date: Mon, 23 Jul 2018 10:18:26 +0200

Hi Werner,

Le lun. 23 juil. 2018 à 9:00, Werner Zeindl-Nagele <werner.zeindl@xxxxxxxx> a écrit :

here once again my questions now in text format (not using IBM worse ;-)

There was no problem with the format of your message, it just takes time before you get an answer...

we are currently using aravis v0.3.1 for a Basler GigE cam. For some
reasons we want now upgrade to aravis v0.5.x. As I've recognized the
arv_stream_pop_input_buffer() has become private since v0.3.5. So
what I want to know is how I can now remove(free) an input buffer? In
our current application we have to handle frequent changes of the
read-out-region for a grab in a grab-preparation phase some time
before the effective image aquisition starts (e.g. in movement phases
of our machine). Some times it can happen that a already prepared
snap is aborted before capture and in this case I used the
arv_stream_pop_input_buffer() to remove the buffer which never will
be grabbed in. How can I handle this use case now in newer aravis
versions to avoid a buffer grow on the input queue?

There is still a lot of API that should be made private.

Regarding this one, I don't see a legitimate external use of this API, because during the acquisition, one or several buffers may be owned by the streaming thread, and are not stored in any buffer queues.

In your case, I guess what is needed is a way to free all the buffers (probably a function named arv_stream_free_buffers), not only the one in the input and output queues, but also the one handled by the packet receiving htread.

Would such a function fulfill your need ?

I'm planning to release a stable aravis version soon. I will try to implement this function before, but I would be pleased if someone could propose a pull request.



Other related posts: