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)      

Attachment: 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

Reply via email to