On Sat, 2005-07-16 at 10:11 +0200, Dirk Meyer wrote: > You are playing with libxine?
Indeed I am. The API is actually pretty nice. You can construct arbitrarily complex filter trees at runtime (while the stream is playing, even), which I sort of already knew, but it's nice to see this at the API level. I was also playing with porting the functionality of vf_outbuf and vf_osd to xine. Because we have in-process control over xine's API, vf_outbuf can be more like vf_canvas, and it can talk directly to an evas image object. Emotion (an xine movie object for evas, part of the E libs) implements this as a video output plugin, rather than a postprocessing (filter) plugin. In theory, this is obviously much better. But in practice, rendering the video to the canvas is only for certain situations like EPG or navigating the menus while a movie is running (MCE style). When the movie goes fullscreen, I want a nice transition effect, an animated zoom until the movie goes fullscreen. When the movie goes fullscreen, it should switch to Xv. And as you pointed out, there is no Xv engine for evas. So the movie needs the ability to render to both a window using Xv and to the canvas (via a buffer) at the same time for a brief period during this transition. Yesterday I spent a lot of time trying to figure out how to do this with libxine. :) Well, specifically, I was trying to figure out how to switch the output between buffer (canvas), Xv, and both like the way vf_outbuf works. Having a filter stop the frame from proceeding down the filter chain to the video output is actually a lot more straightforward with mplayer. In practice, displaying the movie fullscreen using evas for the opengl engine will work fine, as there's no tearing. It might also be the case with directfb. But the common case is going to be X/Xv, so we need this ability. xine isn't all great though. It doesn't seem to pick up the aspect ratio flag in any of my movies, and pretty much all my DVD rips have non-square pixels. As a result, even the standard xine ui does not display my movies properly. Kaa can work around this in the api, but I'm quite surprised that xine fails at such an obvious thing. Maybe I'm missing something. Any xine gurus listening? My main motivation for Mebox is to use xine for DVD playback primarily. I've no desire not to use mplayer. MPlayer has a very rich set of filters and particularly playing back xvid rips with -vf fspp,noise=8ah:5ah makes it practically indistinguishable from the original DVD. This is magic pixie dust. :) Of course that magic has steep CPU requirements, but if your cpu is fast enough, it's an appreciable improvement. So I would like a kaa-xine and kaa-mplayer. kaa-canvas would use these for CanvasMovie, and try to provide a uniform API for both these video backends. The technical details aren't fleshed out in my head, but the general premise is something I'd like to see. As for kaa-mplayer, it'd just call MPlayer via popen and tie into notifier and basically do the same stuff both our MPlayer classes currently do. It would also detect if vf_outbuf and vf_osd is available on the host's mplayer and offer suitable APIs to manipulate those special filters. When I say kaa-mplayer, I don't know if that's really what it should be. We're creating a lot of modules which is good, but I don't think each of those should be packaged together. As a user, it's pretty annoying to have to install 10 different packages when all I want is "this thing called kaa." Jason.
signature.asc
Description: This is a digitally signed message part