Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
I am using a image-collecting system based on the Cypress 68013. But I am not the hardware person, this is my partner's work. I just need to do the PC application.
Now when I only receive data and not do other things in my app, I can receive stable data rates up to 22Mbytes/s.
However if I do some data processing in another thread, the data rates will be not stable that in fact the data sometimes can't be received completely(the waitForDataXfer is timeout). I use your "streamer" application as an example to design my app. My experimental desk computer is not a new one with winxp system and old i3 cpu. In other hand, my app can work stably on my PC with i5 cpu and win8.1 system.
The last, I want to say the imaging-collecting system I used doesn't have a ram buffer to store one frame from the cmos imaging sensor. It will transmit a frame to the PC if it gets PC's request code for a simple agreement. That is to say sometimes I can't receive a frame in time and completely with the asynchronous method （BeginDataXfer/WaitForXfer/FinishDataXfer）that Cypress offered. My image frame is 1280 * 720.
The C++ Streamer has a feature of displaying the data while simultaneously grabbing the data. You can refer how this feature is implemented in the Streamer and may adopt the same in your application. (i.e doing some other task while transferring data)