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

  • From: "Werner Zeindl-Nagele" <werner.zeindl@xxxxxxxx>
  • To: aravis@xxxxxxxxxxxxx
  • Date: Fri, 27 Jul 2018 11:37:59 +0200

Hi Emmanuel

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...

I think it was a format problem, 'cause my first message was empty when 
looking to the aravis freelists archive, only the company logo was 
visible..

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.

I already implemented a workaround in our SW, but this introduces about 
100us time penalty to our system, which is ok for the moment but should be 
eliminated for the release.
So I'd prefer something like an arv_stream_free_buffers, I can try to 
implement this function in the next days and open a pull request. For us 
it is not necessary that this function is already available in the next 
release you're obviously preparing now.

Is there a developer channel for the aravis project in the case I have 
some questions about the SW architecture?

regards,
Werner



Confidentiality Notice:
This Email, and any attachments, may contain internal or confidential 
information and is intended solely for the individual to whom it is addressed. 
It may contain sensitive or protectively marked material and should be handled 
accordingly. If this Email has been misdirected, please notify the author 
immediately. If you are not the intended recipient you must not disclose, 
distribute, copy, print or rely on any of the information contained in it or 
attached, and all copies must be deleted immediately.

Other related posts: