Originally posted by: Peter
The problem isn't in the overlay method (that's pure hardware, lagging at most one frame).
Yes, but what I meant was, some video card's drivers, don't support that feature in hardware. If so, then the overlay has to be emulated in software, and they causes severe lag.
For an example of this, the W2K out-of-box stock drivers for the ATI RagePro (do not support hardware-overlay, and some versions supported overlay but not scaling), vs. ATI's newest drivers, which do support that.
Originally posted by: Peter
The problem is that most modern viewer applications do CPU-based filtering and deinterlacing - and THAT's what introduces the lag. Turn all the fancy image enhancers off, let the PCI card push the video feed directly into the graphics card's overlay buffer, and let the graphics card's filters do the best job they can without involving the CPU.
Which is why I suggested turning them off. Even if the capture card's drivers don't do any "fancy" de-interlacing (using software), they will often have a choice between capture modes, where they will return every individual (interlaced) field, vs. the driver grabbing two fields (one frame) before returning the capture data. Not quite sure how that interacts with overlay hardware support, I guess that depends on the video display card. That's also why I suggested trying the minimalist MS vid-capture apps, because they don't do any enhanced filtering at all, although the driver itself could still be doing it (as is the case with WinTV cards, if that option is set in the drivers).
For the OP:
Anyways, here's a rough rule-of-thumb for for disagnosing which is the issue:
1) capture display performance really bad, not just a frame lag, but an actual frame-rate degredation, as low as 5 fps, dependent on CPU power and card I/O bus bandwidth.
This indicates software-emulated overlay mode. (You can see a similar effect, when using a multi-mon setup, and play a video using overlay mode on the primary card with hardware-accelerated overlay support. When you drag the window to the other display, or span it across two displays, it will either slow down massively (software emulated), or not display at all (simply not supported).
2) No frame-rate degredation, but there appears to be a half-frame lag between the input source and the displayed output. There should NOT be any strange horizontal lines in the displayed output, for fast-moving (horizontal) objects. This is indicative that the driver is capturing two interlaced fields at a go, and returning only a single composite non-interlaced frame's worth of data. This is "simple" de-interlacing, because although there is a lag, the CPU isn't doing any of the work. This is a higher-quality display more, but it limits your effective frame-rate for moving objects to 30fps, which isn't usually suitable for playing video-games on a PC through a video-input card.
3) No frame-rate degredation, and also no lag, but every time something moves on-screen horizontally, everything looks like it is chopped up into horizontal stripes. This is basically no de-interlacing at all, and each interlaced field (half-frame) captured, is displayed immediately and directly on the (non-interlaced/progressive) PC screen. There is a variant of this mode, that will not show the horizontal line problem, but it also cuts the overall vertical resolution in half - so instead of 640x480, you end up with 640x240. Most over the time, the overlay feature stretches the display vertically back to an appropriate aspect-ration, but you may lose small details in the display.
This is generally the mode that you want to be running in, for playing video-games on a PC's video-in, as it offers the fastest response. However, if the overlay display is vcync'ed, then there may still be a (consistent) half-frame delay, as generally an entire field has to be captured in order to sent to the video card, updating it's display on the next vsync.
It's quite possible, that the ATI is defaulting to a VMRx display mode rather than just a pure overlay mode. I suggest downloading and installing "Media Player Classic", not only does it play back media files, and offers a full selection of different display modes, it also supports video-input devices as well. Set MPC to "Overlay" for video-output mode, and select "Open Device..." and your ATI card, and see what happens.