Jason Tackaberry wrote: > On Mon, 2006-08-14 at 20:17 +0200, Dirk Meyer wrote: >> I came across a problem when writing kaa.player. When using xine it is >> possible to keep the vo open between two files. This is a nice feature > > It's also possible with mplayer too, using -fixed-vo. But only applies > to certain vo drivers. kaa.player uses -fixed-vo with mplayer.
Not anymore :) (see below) > This isn't a problem for xv. Freevo doesn't need xv except for playing > video. The main app is drawn to another x11 window, which can be raised > or lowered relative to the media player window (which uses xv). > > For fb this is a problem, yes. So we need to have a way around this. >> can we make it possible? Should the user call die() when he doesn't >> need the player? How can we notify the dead player to the user? The > > No, die() shouldn't be used for this. In fact I wonder if there's a > need for die() to be ever used at all. Yes. die() is an ugly way. > I think what we want is for the vo to be released when the stream is > stopped (by stop()) or when the stream ends on its own and there are no > further streams to be played (e.g. there is a callback connected to the > "end" signal that plays a new file). OK, so we call the 'end' callback and if we are still in STATE_IDLE we release the vo. That sounds fair (I'm not sure if this will work with freevo, but that is my problem). > Now, how to implement this. With mplayer, we use -idle, which keeps > mplayer alive even when it isn't playing. However, with -fixed-vo, it > will keep the vo alive. So I think we will have to remove -fixed-vo > from mplayer's args. I already did. I did it because I removed -idle. With -idle it is impossible to detect that mplayer was unable to play a file. And we always want to restart mplayer because you can't change the filter chain. > For xine, it will require rewiring to null vo driver when stop() is > called. For streams that end, we can just check the state after calling > self.signals["end"].emit() and if it's still STATE_IDLE, then rewire to > null vo. On a subsequent open() (or maybe play()?) we would reopen the > original (non-null) vo driver and rewire the chain again. Even simpler. generic can call stop() on a stream that is ended if no new mrl is played. > Ideally we wouldn't want to replace the kaa vo driver, but just the > passthrough driver. The kaa vo driver can't do this yet, but I think in > theory it's doable. I can add this feature to the driver control > function. That would be nice. Dischi -- "Gnus gives you all the opportunity you could possibly want for shooting yourself in the foot." (gnus-info)
pgpP2gSNEZ5kT.pgp
Description: PGP signature
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________ Freevo-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freevo-devel
