# Can I test libusb async branch?

**URL:** <https://aravis-project.discourse.group/t/can-i-test-libusb-async-branch/308>\
**Category:** Using Aravis\
**Created:** [July 28, 2021, 6:07am UTC](https://aravis-project.discourse.group/t/can-i-test-libusb-async-branch/308 "2021-07-28T06:07:35Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![iitaku](https://yyz2.discourse-cdn.com/free1/user_avatar/aravis-project.discourse.group/iitaku/32/109_2.png) [@iitaku](https://aravis-project.discourse.group/u/iitaku)\
**Post date:** [July 28, 2021, 6:07am UTC](https://aravis-project.discourse.group/t/can-i-test-libusb-async-branch/308/1 "2021-07-28T06:07:35Z")

</div>

Hi Emmanuel and Folks,

Recently I started to look into Aravis to utilize USB3 vision devices only with the OSS software stack.  
Aravis has done great work!

At the same time, I’ve faced a performance issue for Mono12 FullHD at 60fps.  
It only runs at ~50fps even though some proprietary userland-based libraries can transfer with 60fps.

I’ve found some USB async branches and topics on this forum, and I want to try it to improve performance.  
Where can I start it?

Thanks

---

<div class="post-metadata">

**Author:** ![Emmanuel](https://yyz2.discourse-cdn.com/free1/user_avatar/aravis-project.discourse.group/emmanuel/32/198_2.png) [@Emmanuel](https://aravis-project.discourse.group/u/Emmanuel)\
**Post date:** [July 30, 2021, 3:43pm UTC](https://aravis-project.discourse.group/t/can-i-test-libusb-async-branch/308/2 "2021-07-30T15:43:41Z")

</div>

Hi,

On which hardware are you running Aravis ? On a regular laptop, the USB performance should not be an issue.

> I’ve found some USB async branches and topics on this forum, and I want to try it to improve performance.

It is just a proof of concept, meant for testing. It has shown it improves performance greatly on underpowered platform like raspberry pi or nvidia jetson boards.

I would be more than happy if someone could resume this work.

---

<div class="post-metadata">

**Author:** ![Emmanuel](https://yyz2.discourse-cdn.com/free1/user_avatar/aravis-project.discourse.group/emmanuel/32/198_2.png) [@Emmanuel](https://aravis-project.discourse.group/u/Emmanuel)\
**Post date:** [July 30, 2021, 3:48pm UTC](https://aravis-project.discourse.group/t/can-i-test-libusb-async-branch/308/3 "2021-07-30T15:48:44Z")

</div>

By the way, the branch is: [GitHub - AravisProject/aravis at wip/async-usb](https://github.com/AravisProject/aravis/tree/wip/async-usb)

---

<div class="post-metadata">

**Author:** ![iitaku](https://yyz2.discourse-cdn.com/free1/user_avatar/aravis-project.discourse.group/iitaku/32/109_2.png) [@iitaku](https://aravis-project.discourse.group/u/iitaku)\
**Post date:** [July 30, 2021, 6:09pm UTC](https://aravis-project.discourse.group/t/can-i-test-libusb-async-branch/308/4 "2021-07-30T18:09:06Z")

</div>

Hi,

Currently, I’m running on a powerful x86 desktop, but eventually, we will test on some embedded board.  
Additionally, our camera device is something special, high-fps/resolution and stereo devices.  
That’s why we need to improve the performance.

> By the way, the branch is: [GitHub - AravisProject/aravis at wip/async-usb](https://github.com/AravisProject/aravis/tree/wip/async-usb)

Thanks for the pointer.  
I do want to test it and I would like to contribute to this work.  
Can I ask your opinions what is the rest of the items we need to achieve?  
And how is that branch related to these PRs (#328, #334)?

Thanks,  
Takuro

---

<div class="post-metadata">

**Author:** ![Emmanuel](https://yyz2.discourse-cdn.com/free1/user_avatar/aravis-project.discourse.group/emmanuel/32/198_2.png) [@Emmanuel](https://aravis-project.discourse.group/u/Emmanuel)\
**Post date:** [August 2, 2021, 1:26pm UTC](https://aravis-project.discourse.group/t/can-i-test-libusb-async-branch/308/5 "2021-08-02T13:26:27Z")

</div>

> [@iitaku](#):
>
> I do want to test it and I would like to contribute to this work.

That would be great.

> [@iitaku](#):
>
> Can I ask your opinions what is the rest of the items we need to achieve?  
> And how is that branch related to these PRs (#328, #334)?

I don’t remember the difference between the 2 PRs :frowning, but #334 should be the most recent, and probably more up to date than the branch I have mentioned.

I think, thanks to [makelinux](https://github.com/makelinux) most of the work is done. What I would like before the integration to the main branch is:

- obviously a port to the current main branhc state
- an API for async/sync mode selection, sync by default for now
- some sanity check at stream thread destruction the UBS async commands are done (I’m not sure something is needed)

Do you plan to work on this in the near future ?

Emmanuel.

---

<div class="post-metadata">

**Author:** ![iitaku](https://yyz2.discourse-cdn.com/free1/user_avatar/aravis-project.discourse.group/iitaku/32/109_2.png) [@iitaku](https://aravis-project.discourse.group/u/iitaku)\
**Post date:** [August 3, 2021, 4:59pm UTC](https://aravis-project.discourse.group/t/can-i-test-libusb-async-branch/308/6 "2021-08-03T16:59:41Z")

</div>

> Do you plan to work on this in the near future?

Yes, I’m planning to be involved in the next few months.  
I will make PR on GitHub it will be ready.

Thanks,  
Takuro
