I've played with DVSDK for some time now, and also read some documents. But I still don't have a big picture of how the whole package is organized, especially I have the following questions:
1. About libraries: why are there many different libraries? what are they for?
Under dvsdk_3_00_00_29/omap3530_dvsdk_combos_3_16/packages/ti/sdo/codecs, there is a folder for every type of codec, such as h264enc, h264dec, etc. Under each of these folders, there is a sub-folder called lib; in lib, there is a library such as h264vdec_ti_e_l64P. Then under dvsdk_3_00_00_29/omap3530_dvsdk_combos_3_16/packages/ti/sdo/servers/decode, there is big library called decodeCombo.x64P. My understanding is that decodeCombo.x64P is composed of all the l64P libraries. If my application only needs to run H.264 decoder, I can link with h264vdec_ti_e_l64P only; no need for decodeCombo.x64P. Is this correct?
Under dvsdk_3_00_00_29/codec_engine_2_20_01/packages/ti/sdo/ce/lib, there are eight different libraries: ce.a470uC, ce.a64P, ce.a86U, ce.av5T, and their debug versions. Then under dvsdk_3_00_00_29/codec_engine_2_20_01/packages/ti/sdo/ce/video/lib, there are video.a470uC, video.a64P, video.a86U, and video.av5T. There are other, similar folders, such as audio, video2, etc, each with their own libraries. What are these libraries for? Are these libraries the GPP counterparts for the DSP libraries mentioned above? If so, why is there an a64P library?
2. About test codes: why are there many different libraries? what are they for?
There are test codes in dvsdk_3_00_00_29/dvtb_3_00_012; there are some others in dvsdk_3_00_00_29/dmai_1_20_00_04/packages/ti/sdo/dmai/apps, such as audio_decode_io, video_deocde_io2, etc. Of course, there are also examples in dvsdk_3_00_00_29/codec_engine_2_20_01/examples. What purposes do these different test coeds serve? For example, if I want to measure the H.264 decoder performance, which test code(s) would be the most suitable to use?
3. About a specific test code:
If I understand correctly, the test code in dvsdk_3_00_00_29/dmai_1_20_00_04/packages/ti/sdo/dmai/apps/video_deocde_io2/appMain.c uses the timer on the DSP part to perform benchmarking, but the measured results are converted to time (us). Is this correct? If so, is there a way to get the cycle counts?
DVSDK gurus, please share your insights, or guide me to some documents. Thank you very much.
Happy holidays!