Summary: | [PATCH] Metadata not updated in Ogg streams (metaDataChanged() not emitted by Xine backend) | ||
---|---|---|---|
Product: | [Frameworks and Libraries] Phonon | Reporter: | rangerGR <ranger.linux> |
Component: | Xine backend | Assignee: | Martin Sandsmark <martin.sandsmark> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | amarok-bugs-dist, sergeidanilov, yofel |
Priority: | NOR | ||
Version: | 4.3.0 (KDE 4.2.0) | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 4.4.1 | |
Sentry Crash Report: | |||
Attachments: | Patch to solve the metadate problem. |
Description
rangerGR
2009-07-07 19:42:57 UTC
I can confirm this with Amarok 2.2-GIT, KDE 4.3.0. The bug could be in Phonon or Amarok. Needs further analysis. On closer inspection it turns out that Phonon (xine backend) does not emit metaDataChanged() when the track changes in an Ogg Vorbis stream. Example stream: http://demovibes.de:8000/necta128.ogg KDE version: 4.3.0 I assume this is a Phonon bug, so I'm reassigning. Completing title. Created attachment 38891 [details]
Patch to solve the metadate problem.
The problem is caused because the backend expects a XINE_EVENT_UI_SET_TITLE to indicate the new Metadata though xine launchs a XINE_EVENT_UI_CHANNELS_CHANGED.
Adding the behaviour of the NewMetaData event to the UiChannelsChanged event works for kaffeine but fails randomly on amarok where the old metadata would be kept sometimes and fails always on the OSD of amarok which would display the old metadata.
*** Bug 218030 has been marked as a duplicate of this bug. *** commit 27f24b329bec74e2dc38ca4883ab68adb911b7f7 Author: Martin T. H. Sandsmark <sandsmark@samfundet.no> Date: Thu Apr 8 00:25:26 2010 +0200 fix emitting of metaDataChanged() in ogg streams. CCBUG: 199327 diff --git a/xine/xinestream.cpp b/xine/xinestream.cpp index dff7c5a..4817073 100644 --- a/xine/xinestream.cpp +++ b/xine/xinestream.cpp @@ -973,6 +973,9 @@ bool XineStream::event(QEvent *ev) m_currentTitle = currentTitle; emit titleChanged(m_currentTitle); } + //Check if the MetaData needs to be updated, bug#199327. -- klondike + getStreamInfo(); + updateMetaData(); } return true; case Event::Error: |