In the "because we can" department, I'm working on some new things things for Video::Xine.
I've got text overlays working. (Journals can be very helpful-- I was just writing "but I need a way of specifying the font without giving a full path to a TrueType document", then realized I should try using just "serif".) That would seem enough for a release.
Implementing bitmap overlays will be a bit more interesting, because I'd need to specify an in-memory bitmap. I'll almost certainly need to implement it alongside a module to load and save bitmap images, such as Image::Magick, Imager, or Prima.
Xine frequently uses a callback architecture for things like delivering events and log messages. I currently work around this by using event queues, but it's worth a try to implement them properly.
Back when I tried this before (2002-2003), most perls were not compiled for multithreading, and I was desperately trying to get things done in time for BayCon.
How to call a specific named subroutine seems clear enough, but unless I start getting clever I don't see a way to call a method on a specific object without static storage-- and I don't want to use static storage, since I want to be able to run multiple Xines and streams at the same time.