In order to get the most out of it the decoder can decode frames in advance (the thread does not block in flipPage). This way the one or other decoding cycle can even last longer than refreshRate without the need of dropping a frame.

vdpau decodes, then does deinterlacing. de-interlacing needs 4 past and 2 future frames. Hence there's quite a couple of frames in the queue.

When doing de-interlacing it is better just to skip a deinterlaced frame instead of dropping in decoder. The decoder signals with this flag that it just skipped a deinterling cycle. This can't be determined by pts.