On Thu, 2006-11-30 at 12:25 +0100, Dirk Meyer wrote:
> That is not a good idea. STATE_SHUTDOWN means that the player is
> shutting down right now to release the audio and video driver. So
> while a player is shutting down, you should not start a new one, it
> may not be possible to get all devices you need. You need to wait for
> STATE_NOT_RUNNING.

Ok, that logic sounds sensible.  Then we'll have to find another way to
fix the problem this change attempted to fix.  The problem is that say
we want to play two videos in sequence, and each mrl will be played with
a different player.  The problem is the second mrl will get played with
the wrong player -- it will just use the first player, because:

     1. First movie is playing, STATE_PLAYING.
     2. We call open(mrl) and mrl requires new player class, so stop()
        and release() is called on current player, then
        _create_player(), then _open(mrl)
     3. Either stop() or release() (depending on the backend)
        immediately causes STATE_SHUTDOWN
     4. Player closes and its state begins STATE_NOT_RUNNING, so we go
        from STATE_SHUTDOWN -> STATE_NOT_RUNNING
     5. get_state() however returns STATE_IDLE, but because STATE_IDLE
        is not in one of the required states for _create_player() it
        never gets called.

So we fix this by adding STATE_IDLE to the state list for
_create_player, instead of STATE_SHUTDOWN.  (I've already done this
locally, need to commit, but I'm chasing down another bug.)


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to