The Video Multi-Scaler supports two modes of operation, which require two different programming models. They are:
- Auto Restart Mode (Default)
- The driver initialization routine configures the Video Multi-Scaler for the auto restart mode. In this mode, after processing the current frame, the core automatically triggers the start of the next frame. Consequently, the core can continue to process frames without any software intervention, with settings applied while starting the core. You can switch to the Auto Restart Mode at any time, by disabling the interrupts, using the XVMulti_scaler_InterruptDisable API.
- Interrupt Mode
- In this mode, the interrupt (IRQ) port of the core needs to be connected to a system
interrupt controller. When an interrupt is triggered, the core interrupt service routine
(ISR) checks to confirm if current frame processing is complete. It then calls a user
programmable callback function, if any. In the callback function, the register settings
for the next frame should be programmed, that is, what source memory buffer address a
frame should read next from. Finally, the interrupt service routine triggers the core to
start processing the next frame. An application must perform the following tasks to
configure the core for the Interrupt mode:
- Register the core ISR routine
XVMulti_scaler_InterruptHandler
with the system interrupt controller. - Register the application callback function that should be called
within the interrupt context. This can be done using the API
XVMulti_scaler_SetCallback
. - Enable the interrupts by calling
API XVMulti_scaler_InterruptEnable
.
- Register the core ISR routine