Bug 172897

Summary: Playback stops after every track
Product: [Applications] amarok Reporter: Mikko C. <mikko.cal>
Component: PlaylistAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED FIXED    
Severity: normal Keywords: needs_verification
Priority: NOR    
Version: 2.0-SVN   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Mikko C. 2008-10-15 21:51:32 UTC
Version:           2.0-SVN (using 4.1.68 (KDE 4.1.68 (KDE 4.2 >= 20081001)), Gentoo)
Compiler:          x86_64-pc-linux-gnu-gcc
OS:                Linux (x86_64) release 2.6.27

I've had this for quite some times now.

- Drag and drop an album folder from the "Files" tab
- Start playing a song.
- Playback stops as the track ends:

emitting prefinishMarkReached( 2116 )
################################ Event:  MediaFinished
MediaFinishedEvent m_useGaplessPlayback =  true
################################ Event:  GaplessSwitch
no GaplessSwitch
reached  1  after  2
amarok: BEGIN: virtual void Amarok::PlayPauseAction::engineStateChanged(Phonon::State, Phonon::State)
amarok:    NEWSTATE:  1 OLDSTATE:  2
amarok: END__: virtual void Amarok::PlayPauseAction::engineStateChanged(Phonon::State, Phonon::State) - Took 0.00017s
amarok: BEGIN: virtual void Context::ContextView::engineStateChanged(Phonon::State, Phonon::State)
amarok: BEGIN: virtual void CurrentEngine::message(const Context::ContextState&)
amarok: END__: virtual void CurrentEngine::message(const Context::ContextState&) - Took 7.9e-05s
amarok: END__: virtual void Context::ContextView::engineStateChanged(Phonon::State, Phonon::State) - Took 0.00024s
amarok: BEGIN: virtual void StatusBarNG::engineStateChanged(Phonon::State, Phonon::State)
amarok: END__: virtual void StatusBarNG::engineStateChanged(Phonon::State, Phonon::State) - Took 0.0002s
emit finished()
amarok: BEGIN: void EngineController::slotTrackEnded()
amarok: END__: void EngineController::slotTrackEnded() - Took 0.00078s
amarok: BEGIN: void CurrentEngine::stoppedState()
amarok: END__: void CurrentEngine::stoppedState() - Took 0.00054s
amarok: BEGIN: void CurrentTrack::dataUpdated(const QString&, const QHash<QString, QVariant>&)
amarok(6739) CurrentTrack::dataUpdated: CurrentTrack::dataUpdated
amarok: END__: void CurrentTrack::dataUpdated(const QString&, const QHash<QString, QVariant>&) - Took 0.00035s
amarok: BEGIN: void CurrentEngine::resultReady(const QString&, const Meta::AlbumList&)
amarok: END__: void CurrentEngine::resultReady(const QString&, const Meta::AlbumList&) - Took 8.1e-05s
Comment 1 Mikko C. 2008-10-17 12:59:19 UTC
It also happens with dynamic playlist. Playback stops after every track.
This is actually kind of major for me... Nobody else gets this?

emitting prefinishMarkReached( 2090 )                                                                                       
################################ Event:  MediaFinished                                                                      
MediaFinishedEvent m_useGaplessPlayback =  true                                                                             
################################ Event:  GaplessSwitch                                                                      
no GaplessSwitch                                                                                                            
reached  1  after  2                                                                                                        
amarok: BEGIN: virtual void Context::ContextView::engineStateChanged(Phonon::State, Phonon::State)                          
amarok: BEGIN: virtual void CurrentEngine::message(const Context::ContextState&)                                            
amarok: END__: virtual void CurrentEngine::message(const Context::ContextState&) - Took 5.2e-05s                            
amarok: END__: virtual void Context::ContextView::engineStateChanged(Phonon::State, Phonon::State) - Took 0.00017s          
amarok: BEGIN: virtual void Amarok::PlayPauseAction::engineStateChanged(Phonon::State, Phonon::State)                       
amarok:    NEWSTATE:  1 OLDSTATE:  2                                                                                        
amarok: END__: virtual void Amarok::PlayPauseAction::engineStateChanged(Phonon::State, Phonon::State) - Took 8.7e-05s       
amarok: BEGIN: virtual void StatusBarNG::engineStateChanged(Phonon::State, Phonon::State)                                   
amarok: END__: virtual void StatusBarNG::engineStateChanged(Phonon::State, Phonon::State) - Took 0.00013s                   
emit finished()
amarok: BEGIN: void EngineController::slotTrackEnded()
amarok: BEGIN: virtual void TrackToolTip::metadataChanged(Meta::Track*)
amarok: BEGIN: void TrackToolTip::setTrack()
amarok: BEGIN: void TrackToolTip::clear()
QString::arg: Argument missing: Amarok - No track playing., 0:00
amarok: END__: void TrackToolTip::clear() - Took 0.00021s
amarok: END__: void TrackToolTip::setTrack() - Took 0.0029s
amarok: END__: virtual void TrackToolTip::metadataChanged(Meta::Track*) - Took 0.003s
amarok: BEGIN: virtual void MainWindow::metadataChanged(Meta::Track*)
amarok: END__: virtual void MainWindow::metadataChanged(Meta::Track*) - Took 0.00011s
amarok: BEGIN: virtual void TrackToolTip::metadataChanged(Meta::Track*)
amarok: BEGIN: void TrackToolTip::setTrack()
amarok: BEGIN: void TrackToolTip::clear()
QString::arg: Argument missing: Amarok - No track playing., 0:00
amarok: END__: void TrackToolTip::clear() - Took 0.00021s
amarok: END__: void TrackToolTip::setTrack() - Took 0.0013s
amarok: END__: virtual void TrackToolTip::metadataChanged(Meta::Track*) - Took 0.0014s
amarok: BEGIN: virtual void MainWindow::metadataChanged(Meta::Track*)
amarok: END__: virtual void MainWindow::metadataChanged(Meta::Track*) - Took 7.1e-05s
amarok: END__: void EngineController::slotTrackEnded() - Took 0.0078s
amarok: BEGIN: void CurrentEngine::stoppedState()
amarok: END__: void CurrentEngine::stoppedState() - Took 0.03s
amarok: BEGIN: void CurrentTrack::dataUpdated(const QString&, const QHash<QString, QVariant>&)
amarok(7331) CurrentTrack::dataUpdated: CurrentTrack::dataUpdated
amarok: END__: void CurrentTrack::dataUpdated(const QString&, const QHash<QString, QVariant>&) - Took 0.00018s
amarok: BEGIN: void CurrentEngine::resultReady(const QString&, const Meta::AlbumList&)
amarok: END__: void CurrentEngine::resultReady(const QString&, const Meta::AlbumList&) - Took 8.9e-05s
Comment 2 Lydia Pintscher 2008-10-17 13:09:51 UTC
Nothing like this happened here lately.
Which Phonon backend are you using?
Tried an empty config?
Comment 3 Mikko C. 2008-10-17 13:17:22 UTC
Thanks lydia, an empty config solved the problem :)
I didn't think some settings could provoke such a bug...
I was using phonon-xine btw.
Comment 4 Mark Kretschmann 2008-10-17 13:28:26 UTC
That is very odd. I would have loved to see a diff between old config and new :)
Comment 5 Mikko C. 2008-10-17 14:39:08 UTC
Markey, I've made further investigation and I found out the cause of this.
The problem is when "Resume playback on start" is active AND you close amarok while a last.fm radio is playing.

I can reproduce it with the following:

- Activate "Resume playback on start"
- Clear the playlist
- Add a last.fm radio: I only tried "Global Tags"
- Start playing the stream
- Close Amarok

amarokrc now has an entry that looks like this:
Resume Time=143000
Resume Track[$e]=http://play.last.fm/user/07c13136c1557cc5fe8e61774cc1fcaa.mp3

- Start Amarok
- The stream obviously isn't resumed
- Append an album or any track to the playlist
- Start playing
- Playback stops after every track


Until this string is removed from amarokrc, the problem will persist, no matter what.
Resume Track[$e]=http://play.last.fm/user/07c13136c1557cc5fe8e61774cc1fcaa.mp3
Comment 6 Lydia Pintscher 2008-10-17 14:52:26 UTC
Thanks Mikko.
Reopening.
Comment 7 Mark Kretschmann 2008-10-17 19:28:30 UTC
Thanks Micco. I'm going to check this.
Comment 8 Mark Kretschmann 2008-10-20 12:21:16 UTC
Mikko, I could indeed reproduce the problem, following your steps exactly. Very very bizarre :)

I'm working on a fix, hold on.
Comment 9 Mark Kretschmann 2008-10-20 12:44:54 UTC
SVN commit 873843 by markey:

With "Resume Playback On Startup", only ever resume local tracks. When resuming e.g. Last.fm the result can be very grave side effects, like Amarok not progressing to the next track.

BUG: 172897


 M  +8 -3      EngineController.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=873843