Following up my own post: The buffer handling logic in 'csi_isr(int irq, void *priv)' in file /drivers/media/video/sun4i_csi/csi0/sun4i_drv_csi.c doesn't handle the case where the output process is slower than the input process. It depletes the queue and just keeps updating the last remaining buffer. For some reason the output process doesn't return its buffers in this case. I changed the logic so when the output process is busy or the buffer count is depleted the interrupt routine just puts the new buffer back in the input queue thereby gracefully dropping the frame.
I'm not sure this is the best approach but it works better than the orignal approach. I can supply details if anybody is interested. Cheers, Steven -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.