Quote Originally Posted by SourceChild View Post
What do you mean "done by you?" I am aware of the aspects of the graphics card delays but how does Catalyst delay?
every IO subsystem of a computer typically has to be double of triple buffered ( or more ) ( in computers terms its called a queue or fifo )- depending on the nature of the source and the output-

its a standard engineering problem- with systems that operate at subtely different speeds.

nothing is exactly 25fps or 30 or whatever.

anything that connects to anything else needs to be buffered-

no 2 computer systems ever have exact clocks- usually 60parts per million.

with the decklink drivers- they buffer frames up to 2 secs- so they have a buffer which can hold say 60 frames - this is what causes the "huge" delays with decklink. decklink is designed to get sdi onto a disc which no frame drops- so they have big long buffers of frames in case of slow disc speeds. Decklink uses a long FIFO buffer.

with phoenix card- i double buffer the input into my software- and the graphics card is double buffered - so 2-4 frames - i dont need to write to disc.

---

its a classic engineering problem...
http://en.wikipedia.org/wiki/Double_buffering
http://en.wikipedia.org/wiki/FIFO_(computing)

The easiest way to explain how double buffering works is to take a real world example. It is a nice sunny day and you have decided to get the paddling pool out, only you can not find your garden hose. You'll have to fill the pool with buckets. So you fill one bucket (or buffer) from the tap, turn the tap off, walk over to the pool, pour the water in, walk back to the tap to repeat the exercise. This is analogous to single buffering. The tap has to be turned off while you "process" the bucket of water.
Now consider how you would do it if you had two buckets. You would fill the first bucket and then swap the second in under the running tap. You then have the length of time it takes for the second bucket to fill in order to empty the first into the paddling pool. When you return you can simply swap the buckets so that the first is now filling again, during which time you can empty the second into the pool. This can be repeated until the pool is full. It is clear to see that this technique will fill the pool far faster as there is much less time spent waiting, doing nothing, while buckets fill. This is analogous to double buffering. The tap can be on all the time and does not have to wait whilst the processing is done.
In computer science the situation of having a running tap that cannot be, or should not be, turned off is common (such as a stream of audio). Also, computers typically prefer to deal with chunks of data rather than streams. In such situations double buffering is often employed.