Description: Part of the content from the TI website forum
1) Hdvpss seems to provide some interface API to configure the register of dm816x, but also put all kinds of card types as to which, even the video decoder chip drivers are put in the inside, the feeling is very limited, the user how to use these things according to their own cards, if it is to add new chip driver, Will involve a lot of changes, in this case, how can users open it?
Answer: About question 1 Here is the history of the reason in the inside, the earliest time the ad driver is in the M3 is the driver of the ad you see in the HDVPSS drive, so the problem of the architecture is to modify the need to understand M3 code, for everyone, the difficulty increased. To solve this problem DVR RDK follow-up will move the ad driver to A8, so that you can not need to understand M3 can be developed, for Capturelink can directly define the appropriate format, to ensure that the ad interface to peer.
2) What is the Hdvpss compiled file and how is it used in the application? should not see in makefile, perhaps, but did not find, makefile do have compiled HDVPSS, but should be unclear software architecture, do not understand what is the use of compiling HDVPSS?
Reply:
HDVPSS is a video processing subsystem (sub-system), for the integrated VPSS hardware coprocessor in the chip, compiled VPSS driver Library for the RDK layer to invoke its interface to achieve video data in the VPSS coprocessor processing, such as acquisition, Zoom, display. So it can be understood as the driving layer between the RDK and the hardware coprocessor.
3) Look at the next DVR_RDK\MCFW\SRC_BIOS6\LINKS_M3VPSS code, it seems that the use of HDVPSS interface (FVID2_) is not that this part is in the HDVPSS run the driver? If the user needs to modify the Vport configuration, only need to modify this part of the code, without having to change the code under Ti_tools\hdvpss\hdvpss_01_00_01_37_patched\packages?
Answer: As you can understand, the part that calls the FVID2 interface is running in HDVPSS. Customers are not advised to modify any of the files in the HDVPSS directory, you can provide TI technical support your specific requirements, most of which should be implemented through the RDK configuration. If the feature is not yet supported in the HDVPSS driver, TI will be added in subsequent releases.
4) about the DVR_RDK\MCFW\SRC_BIOS6\LINKS_M3VPSS after the compilation of what is the file, and finally through the fw_load.out load it?
Reply: Compiled by the HDVPSS Media Controller (M3) run firmware, is loaded through fw_load.out, you can see load.sh script for more detailed information.
5) How is the dvr_rdk_fw_m3vpss.xem3 generated, and what functions are basically implemented?
Reply: The inside mainly contains the code of VPSS link layer in RDK and Hdvpss Drive, in RDK can see in the LINKS_M3VPSS directory of the function is realized here.
6) How to debug the code written based on the Hdvpss interface (fvid2_)?
Answer: Rules.make inside the dvr_rdk_fw_m3vpss.xem3 compiled into debug mode, through the emulator can be debugged.
7) What is HDVCIP2? What is IVAHD?
Hdvcip:high definition video and image coprocessor;
8) What is the difference between ISS and HDVPSS (high Definition Video processing Subsystem)?
Answer: With cameralink words, is to call ISS thing, Cameralink is related to ISS, Capturelink is and VPSS related, this is my understanding;
ISS is directly connected to the camera, VPSS need to convert chips like TVP5158 and so on to connect with the camera;
Iss:imaging sub-system
Hdvpss:high definition video processing subsystem;
What is TVP5158? Video decoding chip;
9) What is FVID2?
FVID2 is the set of APIs or framework specifically designed for the video class of devices.
Ten) FVID2 API
10.1) Fvid2_init
Int32 fvid2_init (Ptr args);
Int32 fvid2_deinit (Ptr args);
10.2) Fvid2_create
Fvid2_handle fvid2_create (UInt32 drvid,uint32 instanceid,ptr createargs,ptr createstatusargs,const FVID2_CbParams * Cbparams);
10.3) Fvid2_start
Int32 Fvid2_start (Fvid2_handle Handle, Ptr Cmdargs)
10.4) Fvid2_stop
Int32 fvid2_stop (Fvid2_handle Handle, Ptr Cmdargs)
10.5) Fvid2_dequeue
Int32 fvid2_dequeue (fvid2_handle handle,fvid2_framelist *framelist,uint32 streamid,uint32 timeout);
10.6) Fvid2_queue
Int32 fvid2_queue (fvid2_handle handle,fvid2_framelist *framelist,uint32 streamid);
10.7) Fvid2_control
Int32 Fvid2_control (fvid2_handle handle,uint32 cmd,ptr cmdargs,ptr Cmdstatusargs);
10.8) Fvid2_delete
Int32 Fvid2_delete (Fvid2_handle Handle, Ptr Deleteargs)
10.9) Fvid2_setformat
Int32 Fvid2_setformat (Fvid2_handle Handle, Fvid2_format *fmt)
10.10) Fvid2_getformat
Int32 Fvid2_getformat (Fvid2_handle Handle, Fvid2_format *fmt)
10.11) FVID2 Processframes
Int32 fvid2_processframes (Fvid2_handle Handle, fvid2_processlist * processlist)
10.12) Fvid2_getprocessedframes
Int32 fvid2_getprocessedframes (fvid2_handle handle,fvid2_processlist *processlist,uint32 Timeout)
10.13) Fvid2_getstandardinfo
Int32 Fvid2_getstandardinfo (Fvid2_standardinfo *stdinfo)
Callback
A user callback can be registered during driver create which are then called by the driver whenever data are available at
Any of the channels, streams associated with the driver. User would typicall set a semaphore to wake up a task. The
Woken up task would then call Dequeue API to get the newly captured frames. Dequeue should is called for every
Stream associated with the driver to get the captured frames, since the callback just indicates there are data but the data
Could is in any of the streams that is valid for the driver instance.
Fvid2_cbparams
Fvid2_format
Fvid2_sliceinfo
Fvid2_frame
FVID2 framelist
Fvid2_processlist
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
dm8148 HDVPSS Finishing