I have some questions about DM6437 video port drivers and their documentation:
1. Where can I find a detailed explanation of all the API functions? The only document I've found is SPRA918A, which is for DM642 and doesn't cover all functions.
2. What are the functionalities of FVID_queue() and FVID_dequeue()? I see them used in TI examples but haven't found any documents about them.
3. What's the difference between FVID_alloc() and FVID_allcBuffer()? the former is explained in SPRA918A; the latter is not.
4. I tested two examples from TI on the DM6437 EVM. One is video_encdec; the other is vpbe_vpfe. Both use the video port drivers and both function correctly, but their performances differ significantly. I wonder what is causing such a difference.
Here is how I tested them: both examples call the function FVID_exchange() for video capture and display. FVID_exchange() seems to be a blocking call, so I can measure cycles around it. I first ran the video_encdec example, measured the capture cycles and the display cycles. The total is the video performance. Then I repeated the same test for the vpbe_vpfe example.
Here are my results: for video_encdec, the video performance is ~20,000 cycles per frame in most cases; the worst case scenario is less than 6 million cycles per frame. For vpbe_vpfe, it's ~20 million cycles per frame on average. That's one thousand times slower.
Why is there such a big difference in performance?