- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear all,
For a new project in the company i work for, I would like to check out the option to use Cypress CX3 SoC.
One of the requirements of the project is to stream a video from the CX3 via USB UVC class to a host PC @ 30fps.
In addition, there is a need to add a timestamp for each video frame by utilizing the PTS field (Presentation Time Stamp) of the UVC payload header.
Is there a way to support this requirement without compromising system performance (i.e. stream video frame @ 30fps)
Please advise,
Nissim.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Nissim,
You can use CyU3PGetTime() API to fill the time stamp field. But there are few limitations as discussed in the below thread:
Please go through this thread and let me know if this suits your application.
Regards,
Hemanth
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Hemanth,
Thanks for you quick replay.
After reading the CX3 timestamp thread, additional question is required:
Is there a possibility to update the 'Presentation time stamp' field in the UVC payload header during the streaming operation without compromising system performance (i.e. stream video frame @ 30fps)?
If so how this could be achieved?
Please advise,
Nissim
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Nissim,
System performance will be affected since CPU needs to do this additional task but it may not hurt your streaming @30fps. You can test it out by modifying CyFxUVCAddHeader() function to change the PTS field of glUVCHeader. It also depends on the resolution you are streaming.
Regards,
Hemanth
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Hemanth,
Can you please be more clear regrading your sentence 'System performance will be affected since CPU needs to do this additional task but it may not hurt your streaming @30fps.'?
The resolution should be one of the following:
a. 1280x800
b. 1600x1300
Do you mean that CPU will interfere the autonomous MIPI-USB chain by updating the UVC header for every captured frame?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Nissim,
Cypress default UVC firmware adds UVC header to every payload (every DMA buffer produced from GPIF). CPU does this header addition. In your case, you also perform CyU3PGetTime() and then copy the value to the header. So, doing this will consume some CPU time. This is what I meant by 'performance being affected'.
Regards,
Hemanth
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Hemanth,
If i understand you correctly it a matter of latency (should be tested of course).
Is there a possibility to change the resolution of the tick timer to feet my 30fps requirements?
Thanks,
Nissim.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10x