Add the capability for video class to handle a bulk endpoint in the streaming interface.#1985
Add the capability for video class to handle a bulk endpoint in the streaming interface.#1985hathach merged 6 commits intohathach:masterfrom
Conversation
|
If you have time, could you try this PR for the your project. |
|
Wow, thanks, that would be fantastic. I will try it soon! I am currently a bit caught up in another project and my day job, so I cannot promise that I get to it before Easter, but my fingers are definitely itching to test it. |
|
look great, though I am on the run for other things, will review and test this as soon as I could |
|
Short sign of live: Other project finally finished and I will try it this week. Sorry for the long dealy. |
|
I think this is one of those good new / bad news situations... Good news: Bad news: I first suspected that I miss a few chances to transfer data while Anyhow, that's only a problem for my project. Generally speaking your code seems to work properly, so thanks! |
|
About that rate: I did not test with a minimal project, but I suspect that this is an issue particular to my project as the rp2040 has quite a lot to do in that case and probably misses a few chances to transmit data when Point is: I would not rule out that the bulk implementation here could yield higher rates. |
|
Great, thank you for your update and explanation. |
|
Sorry, just another addendum (doesn't change anything, but might prevent someone coming from Google drawing the wrong conclusions): Anyhow, with even fewer resources available while encoding MJPEG I found that bulk works better than isochronous, so @kkitayam's bulk implementation is part of why I can soon publish a 60fps beta version :) Thanks a lot! |
|
I tried to use bulk transport, but I couldn't get the video stream on Linux, and the picture could be produced normally in Windows |
You will have to give more details like dmesg after connecting, software used to access the stream, the log of this software and ideally some code of yours. I have developed my project using TinyUSB's UVC primarily under Linux and had no problems with bulk transfer. |
|
thank you @Staacks for more update, glad you get it all working. GB Inteceptor is a great project. @rrrrrrobot Let keep the problem within your own issue, since you already opened one. |
Describe the PR
Add handling bulk endpoints in streaming interface. This feature is only compatible with streaming, and the still image capture function is not yet implemented.
Using bulk endpoints may allow for more bandwidth utilization than isochronous endpoints. It may also enable higher image sizes and frame rates.
Additional context
I have tested this PR on Raspberry Pi Pico and Windows 11.
I have confirmed that the
video_capturecan display color bars up to 128x96 60fps.