Version: (using KDE KDE 3.5.4) Installed from: Ubuntu Packages OS: Linux When using the AudioCD feature, after you start playing a track plays for like a second, then the sound hangs for a second or two, then the track plays through to the end. The bug will occur again on the next track. It *does* happen on Kubuntu using unofficial 1.4.2 packages from http://imbrandon.com/packages It does *not* happen on Archlinux using the official 1.4.1 packages (no 1.4.2 around yet), so it might be due to a change in 1.4.2 (probably dynamic collections, as markey suggestes). It also does *not* happen using xine-ui so it's probably not a xine-lib Problem.
I can confirm this. Also, playlist population takes extremely long, and in the meantime Amarok prints messages like these: amarok: ERROR: : couldn't create slave : Unable to create io-slave: klauncher said: Unknown protocol 'cdda'.
SVN commit 578458 by markey: Fix: AudioCD playback with xine-engine would stutter and freeze Amarok. The problem was that Engine::metaDataForUrl() was called repeatedly (3 times) in CollectionDB::bundleForUrl(), while playback was already started. This blocked xine. BUG: 133015 M +1 -0 ChangeLog M +0 -22 src/collectiondb.cpp --- trunk/extragear/multimedia/amarok/ChangeLog #578457:578458 @@ -12,6 +12,7 @@ * Don't report "/dev/hd" style devices as new media devices. (BR 127831) BUGFIXES: + * AudioCD playback would stutter and sometimes freeze Amarok. (BR 133015) * DAAP client shows connection errors to the user and no longer says "Loading" perpetually. After a failed connection, the user can now try again. --- trunk/extragear/multimedia/amarok/src/collectiondb.cpp #578457:578458 @@ -3463,28 +3463,6 @@ bundle->copyFrom( peb ); valid = true; } - else if( bundle->url().protocol() == "audiocd" || bundle->url().protocol() == "cdda" ) - { - // try to see if the engine has some info about the - // item (the intended behaviour should be that if the - // item is an AudioCD track, the engine can return - // CDDB data for it) - Engine::SimpleMetaBundle smb; - if ( EngineController::engine()->metaDataForUrl( bundle->url(), smb ) ) - { - valid = true; - bundle->setTitle( smb.title ); - bundle->setArtist( smb.artist ); - bundle->setAlbum( smb.album ); - bundle->setComment( smb.comment ); - bundle->setGenre( smb.genre ); - bundle->setBitrate( smb.bitrate.toInt() ); - bundle->setSampleRate( smb.samplerate.toInt() ); - bundle->setLength( smb.length.toInt() ); - bundle->setYear( smb.year.toInt() ); - bundle->setTrack( smb.tracknr.toInt() ); - } - } } return valid;