Bug 300334 - Unknown Artist and Unknown Album when playing streams
Summary: Unknown Artist and Unknown Album when playing streams
Alias: None
Product: amarok
Classification: Applications
Component: Playback (show other bugs)
Version: 2.5-git
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: 2.6
Assignee: Amarok Developers
Keywords: regression, release_blocker
Depends on:
Reported: 2012-05-19 20:20 UTC by Elbin Pallimalil
Modified: 2012-05-30 16:53 UTC (History)
8 users (show)

See Also:
Latest Commit:
Version Fixed In:


Note You need to log in before you can comment on or make changes to this bug.
Description Elbin Pallimalil 2012-05-19 20:20:01 UTC
Amarok version : 2.5.0

When playing a stream eg:http://scfire-dtc-aa03.stream.aol.com:80/stream/1049, the current track applet displays Unknown Artist and Unknown Album.

Debug output shows amarok does receive the metadata from the phonon backend.

amarok: BEGIN: void EngineController::slotMetaDataChanged()
amarok:   [EngineController] Artist     :  ("")
amarok:   [EngineController] Album      :  ("Radio Paradise")
amarok:   [EngineController] Title      :  ("Nirvana - The Man Who Sold The World")
amarok:   [EngineController] Genre      :  ("Various")
amarok:   [EngineController] Tracknumber:  ("")
amarok:   [EngineController] Length     :  ()
amarok:   [EngineController] Track changed:  false current: 0x1953dd0 url "http://scfire-dtc-aa03.stream.aol.com:80/stream/1049"
amarok:   [EngineController] no spam
amarok:   BEGIN: void MetaStream::Track::Private::currentMetadataChanged(QVariantMap)
amarok:   END__: void MetaStream::Track::Private::currentMetadataChanged(QVariantMap) [Took: 0s]
amarok: END__: void EngineController::slotMetaDataChanged() [Took: 0s]
Metadata ready, sending to zeitgeist
Current state: 2
Sending "Nirvana - The Man Who Sold The World by " to zeitgeist
Zeitgeist mime type: "audio/raw"
Zeitgeist URL:  QUrl( "http://scfire-dtc-aa03.stream.aol.com:80/stream/1049" )
mediasource type: 1
amarok: BEGIN: void ScanManager::checkForDirectoryChanges()
amarok:   BEGIN: void DirWatchJob::setPaused(bool)
amarok:   END__: void DirWatchJob::setPaused(bool) [Took: 0s]
amarok: END__: void ScanManager::checkForDirectoryChanges() [Took: 0s]
amarok: BEGIN: virtual bool MainWindow::queryExit()
amarok:   BEGIN: void MainWindow::saveLayout()
amarok:   END__: void MainWindow::saveLayout() [Took: 0s]
amarok: END__: virtual bool MainWindow::queryExit() [Took: 0s]
amarok: BEGIN: virtual App::~App()
amarok:   [ScanManager] Abort scan:  "Abort requested from SqlCollection::stopScan()"
amarok:   BEGIN: void TimecodeObserver::stopped(qint64, qint64)
amarok:   END__: void TimecodeObserver::stopped(qint64, qint64) [Took: 0s]
amarok:   BEGIN: void WikipediaEnginePrivate::_stopped()
amarok:   END__: void WikipediaEnginePrivate::_stopped() [Took: 0s]
amarok:   BEGIN: void OSDWidget::show(const QString&, const QImage&)
amarok:   END__: void OSDWidget::show(const QString&, const QImage&) [Took: 0.007s]
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:     BEGIN: void RecentlyPlayedListWidget::updateWidget()
amarok:     END__: void RecentlyPlayedListWidget::updateWidget() [Took: 0s]
amarok:   END__: void RecentlyPlayedListWidget::trackChanged(Meta::TrackPtr) [Took: 0s]
amarok:   BEGIN: void WikipediaEnginePrivate::_checkRequireUpdate(Meta::TrackPtr)
amarok:   END__: void WikipediaEnginePrivate::_checkRequireUpdate(Meta::TrackPtr) [Took: 0s]
amarok:   BEGIN: void LyricsAppletPrivate::_trackDataChanged(Meta::TrackPtr)
amarok:   END__: void LyricsAppletPrivate::_trackDataChanged(Meta::TrackPtr) [Took: 0s]
amarok:   Playlist properties changed; can go next: true ; can go previous: false
amarok:   BEGIN: void Amarok::Mpris2DBusHandler::updateTrackProperties()
QString::arg: Argument missing: /PendingTrack, /org/mpris/MediaPlayer2
amarok:   END__: void Amarok::Mpris2DBusHandler::updateTrackProperties() [Took: 0s]
amarok:   BEGIN: virtual ScriptManager::~ScriptManager()
amarok:     BEGIN: virtual ScriptableServiceScript::~ScriptableServiceScript()
amarok:     END__: virtual ScriptableServiceScript::~ScriptableServiceScript() [Took: 0s]
amarok:     BEGIN: virtual ScriptableServiceScript::~ScriptableServiceScript()
amarok:     END__: virtual ScriptableServiceScript::~ScriptableServiceScript() [Took: 0s]
amarok:   END__: virtual ScriptManager::~ScriptManager() [Took: 0.011s]

Reproducible: Always
Comment 1 Myriam Schweingruber 2012-05-20 03:22:25 UTC
This is a problem with the phonon-backend-gstreamer, not reproducible with the phonon-backend-vlc.

*** This bug has been marked as a duplicate of bug 300189 ***
Comment 2 Elbin Pallimalil 2012-05-20 12:52:00 UTC
This is reproducible with phonon-backend-vlc. As you can see from the logs I posted above, amarok does receive metadata from the phonon-backend, it just does not display it.
Comment 3 Myriam Schweingruber 2012-05-20 14:26:14 UTC
Which version of the phonon-backend-vlc are you using? FWIW, I can't even use that stream, it crashes with a floating point exception in Pulseaudio, using the phonon-backend-vlc 0.5.0 and Amarok 2.5-git of today
Comment 4 Elbin Pallimalil 2012-05-20 14:42:40 UTC

I can run amarok GIT version of today if I remove the lyrics applet. Otherwise I get a crash.
Comment 5 Myriam Schweingruber 2012-05-20 17:15:31 UTC
Oh, now I also get it, removed the lyrics app. Confirmed and reassigning back to Amarok. Thank you very much for testing with git as well.
Comment 6 Elbin Pallimalil 2012-05-27 04:08:47 UTC

This bug was introduced with the above commit. The author Bart Cerneels<bart.cerneels@kde.org> would be the best person to fix this bug.
Comment 7 Myriam Schweingruber 2012-05-27 09:35:48 UTC
Bart, any ideas?
Comment 8 Bart Cerneels 2012-05-28 18:31:01 UTC
I'll look, at it tomorrow. Think I know how to fix it already.
Comment 9 Bart Cerneels 2012-05-29 20:27:01 UTC
Git commit b4c58f9eff09333ff4ba47681229737cb485e10c by Bart Cerneels.
Committed on 29/05/2012 at 22:21.
Pushed by shanachie into branch 'master'.

Fix stream metadata update via MetaProxy.

Do to thread affinity EngineController::currentMetadataChanged() signal
was never delivered to MetaStream::Track::Private.
Solved by forcing a direct slot connection.

Note: Stream metadata changes while playing is broken in Phonon-gstreamer
4.6.0 but it's fixed in 4.6.1 according to tdfisher.

M  +17   -18   src/core-impl/meta/stream/Stream_p.h

Comment 10 Elbin Pallimalil 2012-05-30 16:53:53 UTC
Yes, its fixed in GIT now.