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_InterruptDisableAPI. - 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 need to be programmed, that is, what source memory
buffer address a frame needs to ead 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_InterruptHandlerwith the system interrupt controller. - Register the application callback function that needs to 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