| Summary: | Audio CD playing hangs for a short while on each track | ||
|---|---|---|---|
| Product: | [Applications] amarok | Reporter: | Christoph Neuroth <delmonico> |
| Component: | general | Assignee: | Amarok Bugs <amarok-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | 1.4.2 | ||
| Target Milestone: | --- | ||
| Platform: | Ubuntu | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Christoph Neuroth
2006-08-26 11:38:07 UTC
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;
|