On Mon, Oct 27, 2003 at 04:43:21PM +0100, Dirk Meyer wrote:
> It's only needed if you skip to the playlist too fast. 

That's not when this is happening. The problem arises for basic
playback. I play a folder full of music (it plays a track, and then
when the first finishes, just before the second starts it raises this
problem)

> Current cvs should return and not raise an error. But we still need to
> figure out _why_ the systems wants to stop.

Presumably it's because the first song is finished; it's trying to
stop that, but it stops the next one.

> OK, this only happens when we got the event AUDIO_PLAY_END. So the player
> stopped and send this event.
> 
> |   # inform Freevo that the app stopped itself
> |   if self.mode == 'play' and not self.manual_stop:
> |       if hasattr(self.app, 'stopped'): 
> |           self.app.stopped()
> |       else:
> |           _debug_('app has no stopped function, send PLAY_END')
> |           rc.post_event(PLAY_END)
> 
> Here we send AUDIO_PLAY_END because of mplayer.py:
> 
>     def stopped(self):
>         rc.post_event(AUDIO_PLAY_END)
> 
> 
> |   if not freevo_shutdown:
> |       while self.mode == 'play':
> |           _debug_('waiting for main to be ready for the killing', 2)
> |           time.sleep(0.1)
> 
> This should block because self.mode is play. Since you don't use
> DEBUG=2, there is no way to go any deeper. Please try to reproduce
> with DEBUG=2. 
> 
> |
> |       # kill the app
> |       self.app.kill()
> |
> |       # Ok, we can use the OSD again.
> |       if self.stop_osd and config.STOP_OSD_WHEN_PLAYING:
> |           osd.restart()
> |
> |       if self.stop_osd:       # Implies a video file
> |           rc.post_event(Event(VIDEO_END))
> |
> |   self.mode = 'idle'
> 
> 
> >   File "/usr/lib/python2.3/site-packages/freevo/util/misc.py", line 481, in 
> > __call__
> >     return self.__method(self.__obj, *args, **kwargs)
> >   File "/usr/lib/python2.3/site-packages/freevo/audio/plugins/mplayer.py", line 
> > 205, in eventhandler
> >     self.playerGUI.stop()
> >   File "/usr/lib/python2.3/site-packages/freevo/audio/player.py", line 107, in stop
> >     self.player.stop()
> >   File "/usr/lib/python2.3/site-packages/freevo/util/misc.py", line 481, in 
> > __call__
> >     return self.__method(self.__obj, *args, **kwargs)
> >   File "/usr/lib/python2.3/site-packages/freevo/audio/plugins/mplayer.py", line 
> > 180, in stop
> >     self.thread.stop('quit\n')
> >   File "/usr/lib/python2.3/site-packages/freevo/childapp.py", line 391, in stop
> >     traceback.print_stack()
> 
> And that's strange. There has to be a child waiting. We got a
> AUDIO_PLAY_END and we only get it when fds to the child are closed and
> they can only be closed when we have a child. 

Aubin


-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/
_______________________________________________
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to