Parallel playback of frame sequences from single preloaded movie file

Hello, I am wondering if this is possible with TD - I’m trying to port one of my Max Jitter patches that does the following using VIDDLL engine:

a) Load a movie file (no audio) into RAM.
b) Output in parallel 3 different loops of movie frames with different start points from the preloaded movie.

(Each of the 3 sub movies runs with 1920x1080 60fps.
Start points can be changed during playback without noticeable frame drops.
In Max this is done using the jit.movie object. You send the indices of the required frames for a movie output to the object via a grab object and the grab object fills a texture with these frames. You can use multiple grab objects that reference the same movie and output to different textures.)

In TD you can use a Cache TOP to put a movie(*) in GPU memory. You can use multiple Cache Select TOP to playback from different starting points and change the playback positions as fast as you wish. See some examples under Help-Operators snippets, Cache TOP.

(*) As GPU memory is pretty limited, this is usually a short movie :wink:

Thanks a lot for pointing to Cache and Cache Select TOPs.
Seems like my intended use case can not be implemented with simple operators as I would have to handle the MoviefileIn to Cache logic for movies bigger than my GPU RAM. (In my Max patch the entire movie is in CPU RAM and I don’t have to handle the transfer to GPU RAM).

I recommend to encode your movies to HAPQ and start experimenting with using 3 Movie File In TOPs, where you set changing cue points during playback. Pretty sure you’ll be able to get this running without framedrops if you have a fast drive, like a NVME M.2 SSD.