In my world slow motion is something going with different speed, the patch I posted is really just delaying the renderer, so I think we have a little definition issue going on here ;).
The Delay (Animation) is only doing this: get an input value, store it for X seconds, and than release it. You don’t want to delay a value, you want to delay video frames.
The only way to do that is put them in a video buffer. The Queue (EX9.texture) can be that buffer. The Queue will remember all the frames it receives, and when it reaches the amount off frames as set in the frame count pin, it drops old frames and make room for new frames. That is what you see in the helpfile for Queue (EX9.texture).
Now, with Getslice (Node) you can select what frame of the video buffer you want to show. And since the buffer is changing constantly, selecting one slice will actually output an animation, and selecting any other slice than slice 0 will delay the video.
The trouble we are going to get is this: you think in time, vvvv thinks in frames/sec. 2 Seconds for you could be 120 vvvv frames, or 8 vvvv frames, and this depends on your patch and computer combination.
So, if you want to delay something for 2 seconds, you need to know the vvvv framerate, but a webcam doesn’t go faster than 30fps any way I think. You can use Mainloop (vvvv) for that.
So if I set vvvv to run with 30 frames per second, and I buffer 5 seconds, but I get slice number 60 (2 times 30) than I have delayed my renderer exactly 2 seconds.
Hope you understand this.
If you delay video, all the previous frames are stored in the video card memory (I think), so once your video card runs out off memory, the buffer is full and it will not work any more. So test what YOUR maximum delay is with your video resolution.
Was typing some explanation, and this story came up, hope it is not too much. ;)
DelayWithQueue.v4p (26.0 kB)