This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Very slow rockbox/ipod loading in Amarok

Tags: None
(comma "," separated)
Brouwer2
Registered Member
Posts
22
Karma
0
OS
Hello,

I have a 5th gen ipod video running rockbox, when trying to use it with Amarok it takes about 10 minutes before Amaork starts loading the list of tracks, and then it takes about five minutes for it to complete adding all the tracks to the list (it has about 29GB of music). Amarok recognises the rockbox right away and adds it to the media sources list as soon as it is mounted, but it just sits there (apparently) doing nothing for 10 minutes. I haven't used Amarok all much so I can't say whether this is related to any recent updates, but this does not happen with other players or other devices, for instance Banshee starts loading the rockbox/ipod immediately and takes only a minute or two to scan all the music, on the other hand a sansa clip, running rockbox, connected to Amarok starts loading the track list immediately.

Has anyone had similar problems? Is this normal behavior?


PS: On a semi-related issue (connecting media to Amarok), if a device is already mounted and Amarok is launched the device does not show up in the media sources list. A device only shows up in the media sources list if it is mounted after launching Amarok. Is this normal?
User avatar
Mamarok
Manager
Posts
6071
Karma
16
OS
It would be quite useful to us to know which exact Amarok version you use...


Running Kubuntu 22.10 with Plasma 5.26.3, Frameworks 5.100.0, Qt 5.15.6, kernel 5.19.0-23 on Ryzen 5 4600H, AMD Renoir, X11
FWIW: it's always useful to state the exact Plasma version (+ distribution) when asking questions, makes it easier to help ...
User avatar
strohel
KDE Developer
Posts
54
Karma
0
OS
Brouwer2 wrote:I have a 5th gen ipod video running rockbox, when trying to use it with Amarok it takes about 10 minutes before Amaork starts loading the list of tracks, and then it takes about five minutes for it to complete adding all the tracks to the list (it has about 29GB of music). Amarok recognises the rockbox right away and adds it to the media sources list as soon as it is mounted, but it just sits there (apparently) doing nothing for 10 minutes. I haven't used Amarok all much so I can't say whether this is related to any recent updates, but this does not happen with other players or other devices, for instance Banshee starts loading the rockbox/ipod immediately and takes only a minute or two to scan all the music, on the other hand a sansa clip, running rockbox, connected to Amarok starts loading the track list immediately.
Well, Amarok has no explicit support for Rockbox database, therefore it depends on parsing all the tracks. However, the culprit here is IMO Amarok thinking your device should be accessed as an iPod, so the track parsing you see could be in fact searching for stale tracks, which could be slow.

It is easy to to verify this, please attach a screenshot of a config dialog that shows up when you click a little wrench on the collection.

Brouwer2 wrote:PS: On a semi-related issue (connecting media to Amarok), if a device is already mounted and Amarok is launched the device does not show up in the media sources list. A device only shows up in the media sources list if it is mounted after launching Amarok. Is this normal?
This is a known and already reported KDE's Solid udisks2 backend bug that I'm debugging right now for Alex Fiestas to solve.
Brouwer2
Registered Member
Posts
22
Karma
0
OS
Many thanks for your replies.

Mamarok wrote:It would be quite useful to us to know which exact Amarok version you use...


My apologies, I'm running Amarok 2.7.1 (from the packman repo), KDE 4.10.3, openSUSE 12.3.


strohel wrote:Well, Amarok has no explicit support for Rockbox database, therefore it depends on parsing all the tracks. However, the culprit here is IMO Amarok thinking your device should be accessed as an iPod, so the track parsing you see could be in fact searching for stale tracks, which could be slow.

It is easy to to verify this, please attach a screenshot of a config dialog that shows up when you click a little wrench on the collection.


Here is the screenshot.

http://i40.tinypic.com/167w6jt.jpg

I have wondered if this might the issue. I've tried deleting the ipod database and other files in the 'ipod control' folder, but that did not make a difference. It is true some time ago when I mounted the device it would show up as 'Rockbox device' (or something like that) in all applications, like Dolphin and Banshee etc. At some point it started being mounted as 'Ipod' - that is the label that showed up in all applications. This happens even when the ipod plugin in Amarok or Banshee is unchecked. It works just like Rockbox should, it's just what the device is labeled as. I don't know if this is relevant. For what it is worth I also renamed the device as 'RockBox'. Note that there are no tracks in the ipod side, I deleted all the music when I installed rockbox and re-imported everything into rockbox.


This is a known and already reported KDE's Solid udisks2 backend bug that I'm debugging right now for Alex Fiestas to solve.


Thanks, that's good to know.
User avatar
strohel
KDE Developer
Posts
54
Karma
0
OS
Hmm, from the screenshot it is apparent that UmsCollection is used, which is correct.

Please run Amarok from console as `amarok --debug --nofork`, attach relevant part and mark the point where "nothing" happens with your Rockbox while you think it should be scanning tracks.
Brouwer2
Registered Member
Posts
22
Karma
0
OS
Apologies, busy weekend and couple of days.

Here is the terminal output from the point I mounted the device to when it starts scanning the collection, all up this was about 8 minutes:

Code: Select all
.
.
.
amarok: [MediaDeviceCache] accessibility of device  "/org/freedesktop/UDisks2/block_devices/sdc2"  has changed to accessible =  true
amarok: BEGIN: void MountPointManager::deviceAdded(const QString&)
amarok:   [MountPointManager] looking for udi  "/org/freedesktop/UDisks2/block_devices/sdc2"
amarok:   BEGIN: void MountPointManager::createHandlerFromDevice(const Solid::Device&, const QString&)
amarok:     [MountPointManager] Device added and mounted, checking handlers
amarok:     BEGIN: virtual bool MassStorageDeviceHandlerFactory::canHandle(const Solid::Device&) const
amarok:     END__: virtual bool MassStorageDeviceHandlerFactory::canHandle(const Solid::Device&) const [Took: 0s]
amarok:     [MountPointManager] found handler for  "/org/freedesktop/UDisks2/block_devices/sdc2"
amarok:     BEGIN: virtual DeviceHandler* MassStorageDeviceHandlerFactory::createHandler(const Solid::Device&, const QString&, SqlStorage*) const
amarok:       [MassStorageDeviceHandler] Found existing UUID config for ID  "5"  , uuid  "eb63-149e"
amarok:       BEGIN: MassStorageDeviceHandler::MassStorageDeviceHandler(int, const QString&, const QString&)
amarok:       END__: MassStorageDeviceHandler::MassStorageDeviceHandler(int, const QString&, const QString&) [Took: 0s]
amarok:     END__: virtual DeviceHandler* MassStorageDeviceHandlerFactory::createHandler(const Solid::Device&, const QString&, SqlStorage*) const [Took: 0.001s]
amarok:   END__: void MountPointManager::createHandlerFromDevice(const Solid::Device&, const QString&) [Took: 0.003s]
amarok: END__: void MountPointManager::deviceAdded(const QString&) [Took: 0.007s]
amarok: BEGIN: void MediaDeviceMonitor::deviceAdded(const QString&)
amarok:   BEGIN: void MediaDeviceMonitor::checkDevice(const QString&)
amarok:     BEGIN: virtual bool MtpConnectionAssistant::identify(const QString&)
amarok:       Not a PMP
amarok:     END__: virtual bool MtpConnectionAssistant::identify(const QString&) [Took: 0s]
amarok:   END__: void MediaDeviceMonitor::checkDevice(const QString&) [Took: 0s]
amarok: END__: void MediaDeviceMonitor::deviceAdded(const QString&) [Took: 0.002s]
amarok: BEGIN: void UmsCollectionFactory::createCollectionForSolidDevice(const QString&)
amarok:   [UmsCollection] Creating UmsCollection for device with udi:  "/org/freedesktop/UDisks2/block_devices/sdc2"
amarok:   [UmsCollection] Mounted at:  "/var/run/media/Computer/ROCKBOX" collection id: "eb63-149e"
amarok:   BEGIN: void CollectionManager::slotNewCollection(Collections::Collection*)
amarok:   END__: void CollectionManager::slotNewCollection(Collections::Collection*) [Took: 0.002s]
amarok: END__: void UmsCollectionFactory::createCollectionForSolidDevice(const QString&) [Took: 0.14s]
amarok: BEGIN: virtual void CollectionTreeItemModel::collectionAdded(Collections::Collection*)
amarok:   [CollectionTreeItemModel] Added collection id: "eb63-149e"
amarok: END__: virtual void CollectionTreeItemModel::collectionAdded(Collections::Collection*) [Took: 0s]
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]
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
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]
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type RVA.  It will be discarded from the tag.
TagLib: A frame of unsupported or unknown type 'RVA' has been discarded
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]
kmimetype filetype guessing failed for /var/run/media/Computer/ROCKBOX/Music/Bossypants/Bossypants.pdf
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
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: 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: ScannerJob: got count: 471
amarok: [UmsCollection] directory scanned:  "/var/run/media/Computer/ROCKBOX/Music/Erik Satie/Pavane_ Ravel, Satie & Fauré/"
amarok: [UmsCollection] directory scanned:  "/var/run/media/Computer/ROCKBOX/Music/NINO ROTA - Concerto per archi/NINO ROTA; RESPIGHI; ELGAR; BARBER/"
.
.
.


Bookmarks



Who is online

Registered users: abc72656, Bing [Bot], daret, Google [Bot], Sogou [Bot], Yahoo [Bot]