Bug 299654 - Amarok hangs at the two second mark, while playing random tracks
Summary: Amarok hangs at the two second mark, while playing random tracks
Status: RESOLVED UPSTREAM
Alias: None
Product: amarok
Classification: Applications
Component: general (show other bugs)
Version: 2.5.90 (2.6 beta)
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Amarok Developers
URL:
Keywords:
: 301218 (view as bug list)
Depends on: 302652
Blocks:
  Show dependency treegraph
 
Reported: 2012-05-08 21:24 UTC by Brian Smith
Modified: 2012-07-19 07:11 UTC (History)
9 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Brian Smith 2012-05-08 21:24:06 UTC
I'm using Ubuntu Studio 12.04 AMD64.

I've got my music library (flac) loaded into Amarok, and have created a few different playlists. I like to load a playlist and choose the Random Tracks option, available in the Track Progression menu. Sometimes, when Amarok moves to the next track...it hangs at the 0.02 mark. If I click on the 0.04 second mark, playback continues.

Before Ubuntu Studio 12.04 was released, I was using Linux Mint 12 with Amarok installed...and this never happened. I loaded my music collection from the same back-up source, so I can't see how the data could have been corrupted.

Reproducible: Sometimes

Steps to Reproduce:
1. Open Amarok
2. Press Play
3. Wait

I've noticed that it usually happens when tracks from a certain artist begin playing...but Amarok has never had this problem before. I've used this same copy from my external HDD on Ubuntu Studio, Ubuntu, Linux Mint, and even Fedora...all with Amarok, of course. However, this is the first time that these tracks hang at the two second mark. I can only assume that this is a bug associated with the 12.04 release of Ubuntu.
Actual Results:  
Sometimes, it happens...and sometimes it doesn't

Expected Results:  
A smooth transition from track to track, while the songs are played in random order.
Comment 1 Brian Smith 2012-05-17 18:15:02 UTC
The problem persists, but isn't isolated. It doesn't matter what file is playing, when the next track shows up on Random...it always freezes at the three second mark.
Comment 2 Matěj Laitl 2012-05-25 15:37:12 UTC
Reassigning to default component. Brian, what Amarok version is it? What phonon backend do you use? Both vlc and gstreamer backends are maintained, please try with the other one. (be sure to install needed packages: phonon-backend-gstreamer + gstreamer0.10-plugins-*, or phonon-backend-vlc)
Comment 3 Brian Smith 2012-05-25 16:17:57 UTC
I cannot remember which version of Amarok I was using. I just got it straight from the Ubuntu Software Center. I removed it and installed Clementine instead. Clementine doesn't seem to have that problem.
Comment 4 Matěj Laitl 2012-05-25 16:25:27 UTC
I cannot reproduce this and reporter is not interested in helping us, closing. (Brian, note that it took long for us to reply because you assigned this bug to entirely different product)
Comment 5 missive 2012-06-02 16:17:41 UTC
I have the same problem. Should I open a new report, or should we re-open this one?
Comment 6 Matěj Laitl 2012-06-02 16:23:57 UTC
(In reply to comment #5)
> I have the same problem. Should I open a new report, or should we re-open
> this one?

Definitely reopen this one, please add as much information as possible, it would be best if you could test recently released 2.6 beta and copy contents of its "Diagnostics" dialog. Please attach also the messages that `amaork --debug` emits when the problem occurs.
Comment 7 missive 2012-06-02 17:18:34 UTC
Ok. I don't see any way for me to re-open this bug...

Also... I see something called "project Neon" for nightly builds, but it looks to be several years out of date. I'm not sure exactly how I would get 2.6 beta running on my system. I've tried building various parts of KDE before without a whole lot of success...
Comment 8 Matěj Laitl 2012-06-02 17:27:34 UTC
(In reply to comment #7)
> Ok. I don't see any way for me to re-open this bug...
> 
> Also... I see something called "project Neon" for nightly builds, but it
> looks to be several years out of date.

2.6 beta is not a nightly build, it's a regular (or rather, beta) Amaork release.

> I'm not sure exactly how I would get 2.6 beta running on my system.

Good instructions are here http://blogs.fsfe.org/myriam/archives/87 but your distribution (tell us what you use!) may have already packaged beta for you. I suggest asking on #amarok on IRC.

> I've tried building various parts of KDE before without a whole lot of success...

Amarok is not a part of the, failure to build it doesn't affect other parts of your system.
Comment 9 robert marshall 2012-06-02 18:24:25 UTC
I reported something similar in https://bugs.kde.org/show_bug.cgi?id=299545 and worked around the problem by not using the gstreamer backend - though the beta looks worth an investigation!
Comment 10 missive 2012-06-10 00:01:16 UTC
I found one thing that seems to cause this problem:

I use a dynamic playlist, but sometimes I will manually insert a podcast in to the playlist. After the podcast plays, Amarok will reliably hang 2 seconds in to the next song.
Comment 11 Myriam Schweingruber 2012-06-15 07:32:25 UTC
*** Bug 301218 has been marked as a duplicate of this bug. ***
Comment 12 missive 2012-06-16 18:39:00 UTC
Here is the "amarok --debug" from when it gets stuck. As I said before, this is transitioning from a podcast that I put in to the playlist manually to a local collection song generated by the dynamic playlist.

Here the podcast is nearly over ...


About to finish
amarok: BEGIN: void EngineController::slotAboutToFinish()
amarok:   [EngineController] Track finished completely, updating statistics
amarok:   BEGIN: void Playlist::Actions::requestNextTrack()
amarok:     [Playlist::Actions] so far so good!
amarok:     BEGIN: void Playlist::Actions::play(quint64, bool)
amarok:       BEGIN: void EngineController::setNextTrack(Meta::TrackPtr)
amarok:         [EngineController] locking mutex
amarok:         [EngineController] locked!
amarok:       END__: void EngineController::setNextTrack(Meta::TrackPtr) [Took: 0s]
amarok:     END__: void Playlist::Actions::play(quint64, bool) [Took: 0s]
amarok:   END__: void Playlist::Actions::requestNextTrack() [Took: 0s]
amarok: END__: void EngineController::slotAboutToFinish() [Took: 0.001s]
Got next source. Waiting for end of current.
New source:  QUrl( "file:///home/lee/Music/ogg/simon_and_garfunkel/bridge_over_troubled_water/bye_bye_love.ogg" )
Finally got a source



Then the podcast ends and the next song loads ....

Stream changed to file:///home/lee/Music/ogg/simon_and_garfunkel/bridge_over_troubled_water/bye_bye_love.ogg
amarok: BEGIN: void EngineController::slotMetaDataChanged()
amarok:   [EngineController] Artist     :  ("Simon & Garfunkel")
amarok:   [EngineController] Album      :  ("Bridge over Troubled Water")
amarok:   [EngineController] Title      :  ("Bye Bye Love")
amarok:   [EngineController] Genre      :  ("Folk")
amarok:   [EngineController] Tracknumber:  ()
amarok:   [EngineController] Length     :  ()
amarok:   [EngineController] Track changed:  false current: 0xa0c346c url "file:///home/lee/Music/ogg/simon_and_garfunkel/bridge_over_troubled_water/bye_bye_love.ogg"
amarok: END__: void EngineController::slotMetaDataChanged() [Took: 0s]
amarok: BEGIN: void EngineController::slotNewTrackPlaying(const Phonon::MediaSource&)
amarok:   [EngineController] Using gain of -6.3 with relative peak of 0.164904
Fading to 0.484172
Fading to 0.484172
amarok:   BEGIN: void Context::ContextView::slotTrackChanged(Meta::TrackPtr)
amarok:   END__: void Context::ContextView::slotTrackChanged(Meta::TrackPtr) [Took: 0s]
amarok:   BEGIN: void RecentlyPlayedListWidget::trackChanged(Meta::TrackPtr)
amarok:   END__: void RecentlyPlayedListWidget::trackChanged(Meta::TrackPtr) [Took: 0s]
amarok:   Playlist properties changed; can go next: true ; can go previous: true
amarok:   BEGIN: void Amarok::Mpris2DBusHandler::updateTrackProperties()
QString::arg: Argument missing: /PendingTrack, /org/mpris/MediaPlayer2
amarok:   END__: void Amarok::Mpris2DBusHandler::updateTrackProperties() [Took: 0.002s]
amarok:   BEGIN: void TimecodeObserver::trackPlaying(Meta::TrackPtr)
amarok:     BEGIN: virtual bool TimecodeWriteCapabilityPodcastImpl::writeAutoTimecode(qint64)
amarok:       BEGIN: bool Capabilities::TimecodeWriteCapability::writeAutoTimecode(qint64, Meta::TrackPtr)
amarok:         deleting old auto timecodes
amarok:         BEGIN: TimecodeLoadCapabilityPodcastImpl::TimecodeLoadCapabilityPodcastImpl(Podcasts::PodcastEpisode*)
amarok:           episode:  "RC Today Show 020: This and That"
amarok:         END__: TimecodeLoadCapabilityPodcastImpl::TimecodeLoadCapabilityPodcastImpl(Podcasts::PodcastEpisode*) [Took: 0s]
amarok:         BEGIN: virtual BookmarkList TimecodeLoadCapabilityPodcastImpl::loadTimecodes()
amarok:         END__: virtual BookmarkList TimecodeLoadCapabilityPodcastImpl::loadTimecodes() [Took: 0.005s]
amarok:         BEGIN: AmarokUrl PlayUrlGenerator::createTrackBookmark(Meta::TrackPtr, qint64, QString)
amarok:           concocted url:  "amarok://play/ZmlsZTovLy9ob21lL2xlZS8ua2RlL3NoYXJlL2FwcHMvYW1hcm9rL3BvZGNhc3RzL1JDJTIwVG9kYXklMjBTaG93L1JDVG9kYXlTaG93XzAyMC5tcDM=?pos=5197.17"
amarok:           pos:  5197.17
amarok:         END__: AmarokUrl PlayUrlGenerator::createTrackBookmark(Meta::TrackPtr, qint64, QString) [Took: 0s]
amarok:         creating new auto timecode:  "RC Today Show 020: This and That - Stopped 16.06.2012"
amarok:         BEGIN: BookmarkGroup::BookmarkGroup(const QString&, const QString&)
amarok:           custom type:  "auto_markers"  named ' "Playback Ended Markers" '
amarok:           already exists, loading... ("1", "-1", "Playback Ended Markers", "")
amarok:           id:  1
amarok:         END__: BookmarkGroup::BookmarkGroup(const QString&, const QString&) [Took: 0s]
amarok:         BEGIN: bool AmarokUrl::saveToDb()
amarok:           Creating new bookmark in the db
amarok:         END__: bool AmarokUrl::saveToDb() [Took: 0s]
amarok:         BEGIN: bool AmarokUrl::saveToDb()
amarok:           Updating bookmark
amarok:         END__: bool AmarokUrl::saveToDb() [Took: 0s]
amarok:         BEGIN: void BookmarkModel::reloadFromDb()
amarok:         END__: void BookmarkModel::reloadFromDb() [Took: 0s]
amarok:         BEGIN: virtual BookmarkViewItem::~BookmarkViewItem()
amarok:         END__: virtual BookmarkViewItem::~BookmarkViewItem() [Took: 0s]
amarok:         BEGIN: virtual BookmarkViewItem::~BookmarkViewItem()
amarok:         END__: virtual BookmarkViewItem::~BookmarkViewItem() [Took: 0s]
amarok:       END__: bool Capabilities::TimecodeWriteCapability::writeAutoTimecode(qint64, Meta::TrackPtr) [Took: 0.012s]
amarok:     END__: virtual bool TimecodeWriteCapabilityPodcastImpl::writeAutoTimecode(qint64) [Took: 0.012s]
amarok:     current track name:  "Bye Bye Love"
amarok:     Track timecodeable
amarok:   END__: void TimecodeObserver::trackPlaying(Meta::TrackPtr) [Took: 0.012s]
amarok:   BEGIN: void Playlist::Actions::slotTrackPlaying(Meta::TrackPtr)
amarok:     BEGIN: void PlaylistInfoWidget::updateTotalPlaylistLength()
amarok:     END__: void PlaylistInfoWidget::updateTotalPlaylistLength() [Took: 0s]
amarok:     Active track changed; can go next: true ; can go previous: true
amarok:     BEGIN: void Playlist::PrettyListView::slotPlaylistActiveTrackChanged()
amarok:       BEGIN: void Playlist::PrettyListView::scrollToActiveTrack()
amarok:       END__: void Playlist::PrettyListView::scrollToActiveTrack() [Took: 0.002s]
amarok:     END__: void Playlist::PrettyListView::slotPlaylistActiveTrackChanged() [Took: 0.002s]
amarok:   END__: void Playlist::Actions::slotTrackPlaying(Meta::TrackPtr) [Took: 0.002s]
amarok:   BEGIN: void ProgressWidget::redrawBookmarks(const QString*)
amarok:     found  0  timecodes on this track
amarok:   END__: void ProgressWidget::redrawBookmarks(const QString*) [Took: 0.007s]
amarok:   BEGIN: void CurrentEngine::trackPlaying(Meta::TrackPtr)
amarok:     BEGIN: void CurrentEngine::update(Meta::TrackPtr)
amarok:       [CurrentEngine] updating track "Bye Bye Love"
amarok:     END__: void CurrentEngine::update(Meta::TrackPtr) [Took: 0.007s]
amarok:     BEGIN: void CurrentEngine::update(Meta::AlbumPtr)
amarok:     END__: void CurrentEngine::update(Meta::AlbumPtr) [Took: 0s]
amarok:   END__: void CurrentEngine::trackPlaying(Meta::TrackPtr) [Took: 0.009s]
amarok:   BEGIN: void OSDWidget::show(const QString&, const QImage&)
amarok:   END__: void OSDWidget::show(const QString&, const QImage&) [Took: 0.001s]
amarok: END__: void EngineController::slotNewTrackPlaying(const Phonon::MediaSource&) [Took: 0.059s]
amarok: BEGIN: void CurrentEngine::setupAlbumsData()
amarok:   [CurrentEngine] setting up 2 albums
amarok: END__: void CurrentEngine::setupAlbumsData() [Took: 0s]
amarok: BEGIN: void Albums::dataUpdated(const QString&, const Data&)
Stream changed to file:///home/lee/Music/ogg/simon_and_garfunkel/bridge_over_troubled_water/bye_bye_love.ogg
amarok: END__: void Albums::dataUpdated(const QString&, const Data&) [Took: 0.024s]
amarok: BEGIN: void CurrentTrack::dataUpdated(const QString&, const Data&)
amarok:   BEGIN: void CurrentTrack::resizeCover(const QPixmap&, qreal)
amarok:   END__: void CurrentTrack::resizeCover(const QPixmap&, qreal) [Took: 0.001s]
amarok: END__: void CurrentTrack::dataUpdated(const QString&, const Data&) [Took: 0.008s]
amarok: BEGIN: void EngineController::slotMetaDataChanged()
amarok:   [EngineController] Artist     :  ("Simon & Garfunkel")
amarok:   [EngineController] Album      :  ("Bridge over Troubled Water")
amarok:   [EngineController] Title      :  ("Bye Bye Love")
amarok:   [EngineController] Genre      :  ("Folk")
amarok:   [EngineController] Tracknumber:  ()
amarok:   [EngineController] Length     :  ()
amarok:   [EngineController] Track changed:  true current: 0x9686b28 url "file:///home/lee/Music/ogg/simon_and_garfunkel/bridge_over_troubled_water/bye_bye_love.ogg"
amarok: END__: void EngineController::slotMetaDataChanged() [Took: 0.001s]
amarok: BEGIN: void EngineController::slotNewTrackPlaying(const Phonon::MediaSource&)
amarok:   [EngineController] Using gain of -6.3 with relative peak of 0.164904
Fading to 0.484172
Fading to 0.484172
amarok:   BEGIN: void Context::ContextView::slotTrackChanged(Meta::TrackPtr)
amarok:   END__: void Context::ContextView::slotTrackChanged(Meta::TrackPtr) [Took: 0s]
amarok:   BEGIN: void RecentlyPlayedListWidget::trackChanged(Meta::TrackPtr)
amarok:   END__: void RecentlyPlayedListWidget::trackChanged(Meta::TrackPtr) [Took: 0s]
amarok:   Playlist properties changed; can go next: true ; can go previous: true
amarok:   BEGIN: void Amarok::Mpris2DBusHandler::updateTrackProperties()
amarok:   END__: void Amarok::Mpris2DBusHandler::updateTrackProperties() [Took: 0s]
amarok:   BEGIN: void TimecodeObserver::trackPlaying(Meta::TrackPtr)
amarok:   END__: void TimecodeObserver::trackPlaying(Meta::TrackPtr) [Took: 0s]
amarok:   BEGIN: void Playlist::Actions::slotTrackPlaying(Meta::TrackPtr)
amarok:     [WARNING] [Playlist::Actions] engineNewTrackPlaying: "Bye Bye Love" does not match what the playlist controller thought it should be
amarok:   END__: void Playlist::Actions::slotTrackPlaying(Meta::TrackPtr) [Took: 0s]
amarok:   BEGIN: void ProgressWidget::redrawBookmarks(const QString*)
amarok:     found  0  timecodes on this track
amarok:   END__: void ProgressWidget::redrawBookmarks(const QString*) [Took: 0.004s]
amarok:   BEGIN: void CurrentEngine::trackPlaying(Meta::TrackPtr)
amarok:     BEGIN: void CurrentEngine::update(Meta::AlbumPtr)
amarok:     END__: void CurrentEngine::update(Meta::AlbumPtr) [Took: 0s]
amarok:   END__: void CurrentEngine::trackPlaying(Meta::TrackPtr) [Took: 0s]
amarok:   BEGIN: void OSDWidget::show(const QString&, const QImage&)
amarok:   END__: void OSDWidget::show(const QString&, const QImage&) [Took: 0s]
amarok: END__: void EngineController::slotNewTrackPlaying(const Phonon::MediaSource&) [Took: 0.012s]
amarok: BEGIN: void CurrentEngine::setupAlbumsData()
amarok:   [CurrentEngine] setting up 2 albums
amarok: END__: void CurrentEngine::setupAlbumsData() [Took: 0s]
amarok: BEGIN: void Albums::dataUpdated(const QString&, const Data&)
amarok:   [Albums] albums view data unchanged, not updating
amarok: END__: void Albums::dataUpdated(const QString&, const Data&) [Took: 0s]


So, here is it is sitting at 2 seconds, with the interface indicating that it is playing, but it's not making any sound or moving.

I click a few seconds down the timeline and get this ...

amarok: BEGIN: void EngineController::seek(int)
amarok:   [EngineController] seek to:  5051
amarok: END__: void EngineController::seek(int) [Took: 0.014s]


... and it starts playing normally.


One strange thing that I notice is that any time it does this, it also creates a bookmark right near the end of the podcast.
Comment 13 John Kristensen 2012-07-12 05:44:00 UTC
I've been having a similar issue to this for a while now.

I seem to be able to replicate the problem by playing an mp3 and queuing up an ogg as the next song. When Amarok starts to play the ogg, it freezes at ~0:02 for quite a long time. Eventually (after a few minutes) it continue to play the last part of the ogg file.

I don't get this issue when I play and ogg followed by an mp3.

Amarok: v2.5.0 / KDE: v4.8.4 / Kubuntu: 12.04 LTS (it was a fresh install and all packages are up-to-date)
Comment 14 Myriam Schweingruber 2012-07-12 07:11:45 UTC
This is a bug with the phonon-backend-gstreamer, not an Amarok one, and a duplicate of bug 302652
Comment 15 Steve Murphy 2012-07-12 14:05:38 UTC
OK, I've been watching this. I just played (in random mode) 5 ogg's in a row, then an mp3, 
and the next song is an ogg, and it's stuck at 0:02. the right hand side is -4:12. I'm watching to see what happens.... It suddenly swiftly advanced to the end of the song, and started playing the next song... an ogg file.

So this fits with the previous comment.