09-18-2018 12:46 AM
Hello. I'm working with Vivado 2018.2 and VPSS. I'm testing the IP as deinterlacer only. Configurating it I saw two type of base address in external memory that the IP needs. VpssPtr->FrameBufBaseaddr that is called "Frame buffer" used from internal VDMA and VpssPtr->CtxtData->DeintBufAddr that is called "Deinterlacer buffer". What is the function of these two buffer? Frame buffer stores input field and deinterlacer buffer stores output frame? Thank you.
09-21-2018 04:01 AM - edited 09-21-2018 04:08 AM
I do not think you are supposed to access these pointer directly. Make sure to use the drivers to do the VPSS configuration.
You might want to use the example design to see how to use the VPSS in deinterlacer only mode.
For information you can find some docuemention on the pointers in the driver doc:
You should need to care only about FrameBufBaseaddr which is the base address the VPSS will use in memory. In deinterlacer only, both address might match.
In other configuration, it will depends on which core are using the memory.
The function XVprocSs_CfgInitialize will set XVprocSs->CtxtData->DeintBufAddr for you based on FrameBufBaseaddr and the VPSS configuration
09-24-2018 01:29 AM - edited 09-24-2018 01:30 AM
09-24-2018 01:48 AM
You might want to use as well what is in periph.c and system.c.
Note that I was saying that you should use the example design as reference. When it is working, you might want to use other functions. My advice was to never modify the sturctures directly but always use the function from the driver.