ffmpeg based video input/output nodes.
I've ported two operations from gggl to GEGL now. Input and output operations
using ffmpeg's libavcodec and libavformat. The code basically works and provides
the basic infrastructure to make a video compositing/editing app. Some remarks
about the state of this code:
ff-load: just like an image input loader except it also takes the
frame number desired. It currently uses a very old-style ffmpeg API
for decoding, it should probably be updated/simplified according to
the following document at some point:
http://www.inb.uni-luebeck.de/~boehme/libavcodec_update.html
ff-load currently does a very inefficient form of seeking, it always
decodes from the previously decoded frame number to the desired frame
number, and if the frame number is smaller than the current decode
position in the video file it will start decoding from scratch. It
seems like ffmpeg provides the needed infrastructure to
aid a frame accurate random access that should be quite a bit faster
but at least we've got a proof of concept implementation that allows
doing some fun things with video.
ff-save includes the basic infrastructure to mix audio into the output
stream as well but this code is currently completely unused.
There is need for some code cleanup as well as checking of the memory
handling in both these plug-ins but I've committed them to the
workshop (the workshop operations are operations that are not built by
default), and successfully applied effect filters and applied overlays
to a video with a small script from rgegl.
/Øyvind K.