FreeFrame classic (again)
Posted: Fri Jul 03, 2009 15:22
I've been puzzling over the issue of using old-style FreeFrame plugins in Resolume Avenue, have made a bit of progress, but have probably reached the limit of my technical abilities.
One approach doesn't need any changes in Res Ave, but is slow:
Basically, create an FFGL "wrapper" for old school FreeFrame plugins. Have it do a readback from the GPU, apply the FreeFrame transformation, and then send it back to the GPU. I realize that readback operations are potentially slow, but for SD video it should be feasible. (I used to use a program that did this, and was able to get nice frame rates on 640x480 video with FF applied AND hardware acceleration.) I haven't quite got to grips with the GUI possibilities of FFGL, but it looks like you might be able to use a prefs file to point the FFGL plugin at a directory full of FreeFrame plugins, and then use a slider to select one. Then use Avenue's preset mechanism to make a preset for each FF you want to use.
Another approach would be for Res Ave to open up a stage in the video processing pipeline after a frame has been decoded, but before it is sent to the GPU. (I realize that this might cause problems with the DXV codec...) In the UI, this would appear as a separate slot for legacy FF plugins, that would always execute before the FFGL plugins.
I really, really miss being able to use my library of FF plugins, and it looks like FFGL plugin development is kind of stalled. So I am going to keep working on the first approach (plugin wrapper), to the extent that I can. However, if somehow the second approach is implemented, that would make life soooooo much easier...
One approach doesn't need any changes in Res Ave, but is slow:
Basically, create an FFGL "wrapper" for old school FreeFrame plugins. Have it do a readback from the GPU, apply the FreeFrame transformation, and then send it back to the GPU. I realize that readback operations are potentially slow, but for SD video it should be feasible. (I used to use a program that did this, and was able to get nice frame rates on 640x480 video with FF applied AND hardware acceleration.) I haven't quite got to grips with the GUI possibilities of FFGL, but it looks like you might be able to use a prefs file to point the FFGL plugin at a directory full of FreeFrame plugins, and then use a slider to select one. Then use Avenue's preset mechanism to make a preset for each FF you want to use.
Another approach would be for Res Ave to open up a stage in the video processing pipeline after a frame has been decoded, but before it is sent to the GPU. (I realize that this might cause problems with the DXV codec...) In the UI, this would appear as a separate slot for legacy FF plugins, that would always execute before the FFGL plugins.
I really, really miss being able to use my library of FF plugins, and it looks like FFGL plugin development is kind of stalled. So I am going to keep working on the first approach (plugin wrapper), to the extent that I can. However, if somehow the second approach is implemented, that would make life soooooo much easier...