On Tue, 2005-08-02 at 15:17 +0200, Dirk Meyer wrote: > We need to add filters. And if I start mplayer with '-vf foo -vf bar', > foo will be droped. That's why Freevo searches the filter chain and > replaces that line with '-vf-add foo,bar'.
Right, knew about that one. Easy enough. > Back to the features. It would be great if there would be a similar > interface for xine and mplayer. My plan was to abstract that at the CanvasMovie level. This class would provide a unified API for both backends. You just tell it which one you want to use, or let it auto-detect (i.e. dvd:// will use xine, foo.avi will use mplayer). Perhaps CanvasMovie is a misnomer. > So no '-vf' stuff visible to the > outside. I could say 'use software scaler' and mplayer and xine do > without me knowing how. And maybe 'use deinterlacer tvtime,lavc'. Xine Something like that. I haven't really thought about what the api would look like yet, but that's the general idea. It may be necessary to abstract things even further, like "use medium quality deinterlacer" and it choose the appropriate settings for each backend. BTW, I asked in xine-devel about software scaling. > But this is only needed for the mevas stuff, I guess I don't want to > see that in Freevo at all. And I also need the elapsed time. That's > all (right now). No, CanvasMovie will take care of resolution and everything. You can get the elapsed time by calling get_position(). Or you can hook the "tick" signal and have a callback called for every 200 or so ms, if you need that precision. :) > Maybe support low power cpus? They can't use the swscaler. Or should > be say Freevo 2.0 needs at least 1 GHz? Well, the osd of CanvasMovie will just be another Canvas. I want to add support for relative positions and sizes, so you can specify a percentage. So you can position an item at (-100, 50%) which will be 100 pixels from the right edge of the canvas and centered vertically. Or have an item of size (100%, 75) so it will fill the width of the canvas and be 75 pixels high. The idea is to have canvas elements position and scale properly based on a canvas size which is arbitrary. The main reason is so you behave properly on both 4/3 and 16/9 displays, but the same approach should work for OSD on non-swscaled video. The big problem here is aspect ratio. If it's a widescreen DVD, the canvas size is 720x480, but those aren't square pixels. When it gets drawn to the screen those pixels will get stretched. This is obviously solved by software scaling, but if I can't do that in xine, I'll have to find a way to scale things at the canvas level. Jason.
signature.asc
Description: This is a digitally signed message part
