Here are some facts about my player that mey help finding a resolution for my problem. Some are answers to questions asked elsewhere in this thread.
database structure
My songs are structured in playlists this way:
/first letter of artist name/artist name/album name/song name So the root playlists contains just playlists called A to Z and one playlist containing all the artists my girlfriend likes.
I rebuilt the database putting all artists in the root and discarding the A-Z playlists. It did not help.
database
The size of the database on the player is 1.136.456 bytes. I've made the the database available for download
here. You can find an XML export of same database there too.
non-beta player versions
Non-beta versions play the root playlist just fine. I reverted back to 1.03 and I had no problem playing the root playlist. No resync was necessary. Reverting to 1.03 and the upgrading back to 2.00-beta7 is not fun. I lost a lot of settings among which all tuner station frequencies.
I was considering staying at 1.03, but then I would suffer the "reboot on tuning to Dutch radio 1" bug. And of course, there would be no way to fix the problem.
resync
Resyncing the player under 2.00-beta7 does not help. I already did that; it is what I meant with "rebuilding the database".
not fully dead
When my player hangs, it is not fully dead; the thread that is shifting track titles left and right because they're to long to fit keeps working.
player messages
My player produces error messages on the serial console. This message usually pops up at the same time the player starts to play:
! mp3_decoder.cpp :1052:Failed to seek to offset 5214899, error=0xc0044000
! mp3_decoder.cpp :1047:Failed to find valid sync after seeking to offset 5214899, error=0xc0044000
This message seems to appear all the time. Sometimes the player hesitates when these messages occur. The last number (31 in this example) varies.
spindown_chunk_cache_runner.cpp: 292:Filling up space (31)
my MP3's are not perfect
I use
Jack to rip my CD's. Older versions of jack (actually older versions of the ID3.py python module) had a bug that would overwrite the tail of a non-tagged MP3 file rather than append the ID3 tag.
Technically these files are corrupt, but the corruption is inaudible. But it might be the new player MP3 codec barfs on these MP3's.
determining maximum playlist size
Now this was the hard part. I tried to create lots of playlists with different sizes at once to see how big they could get. I created playlists called A-B containing A and B, playlist A-C containg A, B and C, playlist A-D containing A, B, C and D and so on. I was thinking I could just try to play all of them until the player would crash, without the need for doing resyncs, which takes a lot of time with 60 GB of data.
But having this many nested playlists makes the player very unstable. It would crash almost immediately at the very first keypress. The console reported the player was killed by VM. It did not look like a memory shortage; adding swap did not help.
So I deleted all these playlists and created one playlist that I continued to add "letters" to until the player would crash playing it. I came to "R" until the player crahed, but unfortunately this crash was not a player hang, but a harddisk crash. One of my Travelstar 30GB's would refuse to spin up after making some ugly noise. This happened just after one of many power cycles.
One strange thing I noticed was that after adding more one-letter-playlists to my test playlist and resyncing, the player seemed to play the old playlist with the old number of songs in it. Only after re-selecting the playlist would it show the correct number of songs.
My Travelstar was still under warranty, I sent it to IBM using the warranty procedure on
http://www.storage.ibm.com/hdd/support/pre_rma.htm
When I get a replacement drive, I will be able to continue my tests. So far, I have come to a playlist of some 6800 songs without hanging the player.
BTW, I was considering buying the new 60 GB Travelstar, which costs only a couple of Euro's more than the 48 GB model. Has anyone tried the
IBM Travelstar 60GH?
Pim