From: Nathan T. <na...@to...> - 2006-02-18 04:18:33
|
Please CC me on any response - I am not signed up with this list. I have found an odd issue with cover artwork not being shown on my ipod nan= o. =20 At first, I thought it was an amarok issue, but after investigation, it=20 appears to be a libgpod issue. When I add a song with artwork, the images do not appear. Through comparin= g=20 with files created by iTunes (and reading the docs on ipodlinux.org), I was= =20 able to pinpoint the issue. I am not sure if this is iPod Nano-specific, o= r=20 if it applies to all artwork-capable iPods. I added artwork using the "test-write-thumbnails" program in the tests=20 directory of libgpod. Here is a sample portion of my ArtworkDB after adding the artwork to the iP= od.=20 (specifically the mhii header) 00000140 6d 68 69 69 98 00 00 00 e0 01 00 00 02 00 00 00 |mhii..........= =2E.| 00000150 40 00 00 00 00 00 00 00 a8 84 38 5c 2c fb 76 0c |@.........8\,.= v.| 00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 00000170 00 00 00 00 a0 14 01 00 00 00 00 00 00 00 00 00 |..............= =2E.| 00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 000001d0 00 00 00 00 00 00 00 00 6d 68 6f 64 18 00 00 00 |........mhod..= =2E.| That is what libgpod wrote to the iPod. It does not display an image on th= e=20 iPod. However, changing it to the following *does* work (the iPod recogniz= es=20 the thumbnail): 00000140 6d 68 69 69 98 00 00 00 e0 01 00 00 02 00 00 00 |mhii..........= =2E.| 00000150 40 00 00 00 a8 84 38 5c 2c fb 76 0c 00 00 00 00 |@.....8\,.v...= =2E.| 00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 00000170 a0 14 01 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............= =2E.| 000001d0 00 00 00 00 00 00 00 00 6d 68 6f 64 18 00 00 00 |........mhod..= =2E.| =46rom what I can tell in the code, it appears that the field "mhii->image_= id"=20 is getting written as 64-bit, when it should only be written as 32-bit...so= =20 in my case, the song_id field should begin at offset 0x154 instead of 0x158= ,=20 and the orig_img_size should begin at 0x170 instead of 0x174. From what I= =20 can tell in looking through the code, all seems to be correct - but I must = be=20 missing something (I'm not the most experienced C programmer...) Also - the "01" following the orig_img_size field should probably be a zero= -=20 it doesn't seem to hurt the iPod if it's a 1, but in reading the=20 documentation on ipodlinux.org, it should all be zero-padding. I have been running these tests based off of an up-to-date CVS build (check= ed=20 out at 9:00 pm MST on 2/17) Again - thank you for your attention to this. Let me know if you need any= =20 more information. =2DNathan Toone |