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