Re: [Bug-gnupod] 4th generation iPod Nano
On Fri, May 29, 2009 at 02:38:31PM +0200, Richard van den Berg wrote: > On Fri, May 29, 2009 14:16, H. Langos wrote: > > It certainly wouldn't hurt to put some iTunesDB files away to have some > > data for verification if somebody sits down to reverse engineer that part > > of the iTunesDB format. > > I don't have the Nano anymore (it's on a plane to a sunny destination), > but I can always borrow it later and make the dumps you suggested (my own > approach was rather limited). It's rather interesting that the Nano didn't > seem to mind the type 32 mhods were missing from the iTunesDB. Sometimes apple actually tries to make its cash cow hardware product somewhat compatible with more than just one specific version of their cash cow software (or rather the software that dives the average user to their cash cow music shop). ... why do i get the picture of an abattoir in my head ? Well, actually it amazes me to a great extend that the iTunesDB and iTunesSD files created by gnupod are understood buy so many different iPod models. This means that most of the time an iPod has to be able to read iTunesDB files from several generations of iTunes software. Naturally it has to deal with new tags that it doesn't understand (if the iTunes software is younger than the iPod) and with tags that are missing (if the iTunes software is older than the iPod). Only when they do big changes, they break that compatibility. Back then when they introduced the first hash the new iPods didn't accept databases without the hash. Now last year with the ipod touch 2.x and iphone 3g they introduced another hash check that requires a new version of itunes. Also the new talking iPod shuffle seems to have a completely new iTunesSD format. It "requires iTues 8.1" while the current nano_4g, the current classic, and the touch _only_ require "iTunes 8". I've got a sample of the new iTunesSD here that looks pretty straight forward but I didn't have time to get into the details yet. cheers -henrik ___ Bug-gnupod mailing list Bug-gnupod@nongnu.org http://lists.nongnu.org/mailman/listinfo/bug-gnupod
Re: [Bug-gnupod] 4th generation iPod Nano
On Fri, May 29, 2009 14:16, H. Langos wrote: > It certainly wouldn't hurt to put some iTunesDB files away to have some > data for verification if somebody sits down to reverse engineer that part > of the iTunesDB format. I don't have the Nano anymore (it's on a plane to a sunny destination), but I can always borrow it later and make the dumps you suggested (my own approach was rather limited). It's rather interesting that the Nano didn't seem to mind the type 32 mhods were missing from the iTunesDB. Cheers, Richard ___ Bug-gnupod mailing list Bug-gnupod@nongnu.org http://lists.nongnu.org/mailman/listinfo/bug-gnupod
Re: [Bug-gnupod] 4th generation iPod Nano
On Thu, May 28, 2009 at 09:13:08PM +0200, Richard van den Berg wrote: > On 5/27/09 11:47 PM, Richard van den Berg wrote: >> I'll post a full patch including the documentation side later. >> > > Here is the patch to make the artwork work for the 4th generation iPod Nano. > Thank you very much! I tried to commit the patch to CVS but savannah seems to be down at this moment. cheers -henrik ___ Bug-gnupod mailing list Bug-gnupod@nongnu.org http://lists.nongnu.org/mailman/listinfo/bug-gnupod
Re: [Bug-gnupod] 4th generation iPod Nano
On Thu, May 28, 2009 at 09:38:12PM +0200, Richard van den Berg wrote: > On 5/27/09 11:48 AM, H. Langos wrote: >> On Wed, May 27, 2009 at 07:29:11AM +0200, Richard van den Berg wrote: >> >>> I temporarily have access to a 4th generation iPod Nano. During the >>> gnupod_INIT I see a bunch of: >>> >>> /usr/bin/tunes2pod: skipping unknown entry of type '32' >>> >>> Should I see where these warnings come from, or is that harmless? >>> >> >> Dunno. I'd look into it. And see how gtkpod/libgpod handles it. >> > > Type 32 mhod is related to video files (one appears for each file). This > is confirmed by some posts on ipodlinux.org I found in the google cache > (www.ipodlinux.org is down). > > It seems no one knows what type 32 mhod is exactly. Libgpod does not > have support for it. I don't know how it handles unknown mhod types > though. Gnupod removes them, which doesn't seem to bother my iPod Nano. > > I made some backups of the iTunesDB before and after loading video files > with iTunes. A hex editor doesn't give me much insight. Let me know if > you want to take a peek yourself. It certainly wouldn't hurt to put some iTunesDB files away to have some data for verification if somebody sits down to reverse engineer that part of the iTunesDB format. Best would be to have at least four complete dumps for the iPod. - One with only one audio file. - same with one video file added, - same with a different video file (but the same video format) - same with a radically different file (format,resolution,frame rate...). It is important to have the complete dump and not just the iTunesDB because you probably need to relate the video file's properties to data in the iTunesDB file. I suggest you take very short stuff that is under creative commons license. Here's a list of free sources: http://www.masternewmedia.org/video_internet_television/video-stock-footage/free-online-resources-stock-video-footage-20070828.htm Al jazeera also has an archive with cc content at http://cc.aljazeera.net/ but I guess we'll all show up on the amarican terror radar when we start using that footage :-) I can't promise that I'll have time to look into it, but if the data doesn't have copyright issues we could leave it in the mailing list archive till somebody with too much time on his hands comes along... cheers -henrik ___ Bug-gnupod mailing list Bug-gnupod@nongnu.org http://lists.nongnu.org/mailman/listinfo/bug-gnupod
Re: [Bug-gnupod] 4th generation iPod Nano
On 5/27/09 11:48 AM, H. Langos wrote: On Wed, May 27, 2009 at 07:29:11AM +0200, Richard van den Berg wrote: I temporarily have access to a 4th generation iPod Nano. During the gnupod_INIT I see a bunch of: /usr/bin/tunes2pod: skipping unknown entry of type '32' Should I see where these warnings come from, or is that harmless? Dunno. I'd look into it. And see how gtkpod/libgpod handles it. Type 32 mhod is related to video files (one appears for each file). This is confirmed by some posts on ipodlinux.org I found in the google cache (www.ipodlinux.org is down). It seems no one knows what type 32 mhod is exactly. Libgpod does not have support for it. I don't know how it handles unknown mhod types though. Gnupod removes them, which doesn't seem to bother my iPod Nano. I made some backups of the iTunesDB before and after loading video files with iTunes. A hex editor doesn't give me much insight. Let me know if you want to take a peek yourself. Cheers, Richard ___ Bug-gnupod mailing list Bug-gnupod@nongnu.org http://lists.nongnu.org/mailman/listinfo/bug-gnupod
Re: [Bug-gnupod] 4th generation iPod Nano
On 5/27/09 11:47 PM, Richard van den Berg wrote: I'll post a full patch including the documentation side later. Here is the patch to make the artwork work for the 4th generation iPod Nano. Cheers, Richard ? .gnupod_version ? Makefile ? autom4te.cache ? config.log ? config.status ? configure ? nano_4g Index: doc/gnupod.html === RCS file: /sources/gnupod/gnupod/doc/gnupod.html,v retrieving revision 1.34 diff -u -r1.34 gnupod.html --- doc/gnupod.html 17 Feb 2008 09:14:04 - 1.34 +++ doc/gnupod.html 28 May 2009 19:11:42 - @@ -943,7 +943,7 @@ -GNUpod can write cover artwork for video, nano and late 2007-nano iPods. The internal image format is model specific, so you should give +GNUpod can write cover artwork for video and nano iPods. The internal image format is model specific, so you should give GNUpod a hint about the image format it should use. @@ -954,6 +954,8 @@ model = nano Late 2007-nanos need this setting: model = nano_3g +Late 2008-nanos need this setting: + model = nano_4g To specify a cover while adding files you'd use the --artwork switch of gnupod_addsong.pl. Example: Index: doc/gnupod.info === RCS file: /sources/gnupod/gnupod/doc/gnupod.info,v retrieving revision 1.33 diff -u -r1.33 gnupod.info --- doc/gnupod.info 17 Feb 2008 09:14:04 - 1.33 +++ doc/gnupod.info 28 May 2009 19:11:42 - @@ -667,6 +667,8 @@ model = nano Late 2007-nanos need this setting: model = nano_3g + Late 2008-nanos need this setting: + model = nano_4g To specify a cover while adding files you'd use the `--artwork' switch of `gnupod_addsong.pl'. Example: Index: doc/gnupod.texi === RCS file: /sources/gnupod/gnupod/doc/gnupod.texi,v retrieving revision 1.41 diff -u -r1.41 gnupod.texi --- doc/gnupod.texi 24 Mar 2009 16:54:41 - 1.41 +++ doc/gnupod.texi 28 May 2009 19:11:43 - @@ -684,7 +684,7 @@ @node Adding cover artwork @section Adding cover artwork -GNUpod can write cover artwork for video, nano and late 2007-nano iPods. The internal image format is model specific, so you should give +GNUpod can write cover artwork for video and nano iPods. The internal image format is model specific, so you should give GNUpod a hint about the image format it should use. If you own a video (compatible) iPod, set: @@ -700,6 +700,10 @@ @example model = nano_3g @end example +Late 2008-nanos need this setting: +...@example +model = nano_4g +...@end example To specify a cover while adding files you'd use the @co...@w{--artwork}} switch of @co...@w{gnupod_addsong.pl}}. Example: Index: doc/gnupodrc.example === RCS file: /sources/gnupod/gnupod/doc/gnupodrc.example,v retrieving revision 1.6 diff -u -r1.6 gnupodrc.example --- doc/gnupodrc.example28 Nov 2007 06:21:19 - 1.6 +++ doc/gnupodrc.example28 May 2009 19:11:43 - @@ -19,6 +19,7 @@ ## * video (default) ## * nano(pre-2007 nanos) ## * nano_3g (the late 2007 nano) +## * nano_4g (the late 2008 nano) # model = video ## Let GNUpod call mktunes.pl itself. Index: src/ext/ArtworkDB.pm === RCS file: /sources/gnupod/gnupod/src/ext/ArtworkDB.pm,v retrieving revision 1.21 diff -u -r1.21 ArtworkDB.pm --- src/ext/ArtworkDB.pm2 Feb 2008 11:30:38 - 1.21 +++ src/ext/ArtworkDB.pm28 May 2009 19:11:43 - @@ -35,7 +35,10 @@ use constant MODE_PARSED=> 300; # Artwork profiles: - my $profiles = { 'nano_3g' => [ { height=>320, width=>320, storage_id=>1060, bpp=>16, }, { height=>128, width=>128, storage_id=>1055, bpp=>16, }, + my $profiles = { 'nano_4g' => [ { height=>128, width=>128, storage_id=>1055, bpp=>16, }, { height=>128, width=>128, storage_id=>1068, bpp=>16, }, + { height=>240, width=>240, storage_id=>1071, bpp=>16, }, { height=>50, width=>50, storage_id=>1074, bpp=>16, }, + { height=>80, width=>80, storage_id=>1078, bpp=>16, }, { height=>240, width=>240, storage_id=>1084, bpp=>16, }, ], +'nano_3g' => [ { height=>320, width=>320, storage_id=>1060, bpp=>16, }, { height=>128, width=>128, storage_id=>1055, bpp=>16, }, { height=>56, width=>56, storage_id=>1061, bpp=>16, drop=>112} ], 'classic' => [ { height=>320, width=>320, storage_id=>1060, bpp=>16, }, { height=>128, width=>128, storage_id=>1055, bpp=>16, }, { height=>56, width=>56, storage_id=>1061, bpp=>16, drop=>112}
Re: [Bug-gnupod] 4th generation iPod Nano
On 27-5-2009 11:48, H. Langos wrote: > Here's a commit email regarding new artwork formats for the nano4g from > libgpod: > > http://sourceforge.net/mailarchive/message.php?msg_id=E1LB8Vz-0005Dh-9Y%40d5vjzd1.ch3.sourceforge.com > which has been fixed a little later > http://gtkpod.svn.sourceforge.net/viewvc/gtkpod/libgpod/trunk/src/itdb_device.c?r1=2184&r2=2187 > Great research, thanks. I took the values from that last post and they worked just fine. The nano_4g is an awesome looking iPod.. too bad it's only 16GB. I'll post a full patch including the documentation side later. Cheers, Richard ___ Bug-gnupod mailing list Bug-gnupod@nongnu.org http://lists.nongnu.org/mailman/listinfo/bug-gnupod
Re: [Bug-gnupod] 4th generation iPod Nano
Hi Richard, On Wed, May 27, 2009 at 07:29:11AM +0200, Richard van den Berg wrote: > I temporarily have access to a 4th generation iPod Nano. During the > gnupod_INIT I see a bunch of: > > /usr/bin/tunes2pod: skipping unknown entry of type '32' > > Should I see where these warnings come from, or is that harmless? Dunno. I'd look into it. And see how gtkpod/libgpod handles it. > One thing I will look into is the artwork. Setting the model to nano_3g > makes the coverflow work (awesome!), but does not display the artwork > during all other views. In ArtworkDB.pm I see: Seems like your are not the first to run into this: http://www.nabble.com/4th-Gen-16GB-Nano-problem-(Cover-Art-not-uploading-at-all)-td20938019.html Maybe taking a look at the gtkpod documentation will get you somewhere: http://www.gtkpod.org/libgpod/docs/ > my $profiles = { 'nano_3g' => [ { height=>320, width=>320, ... > Is there an easy way to figure out the right values for the nano_4g ? Or > will I have to hexdump the ArtworkDB myself? Here's a commit email regarding new artwork formats for the nano4g from libgpod: http://sourceforge.net/mailarchive/message.php?msg_id=E1LB8Vz-0005Dh-9Y%40d5vjzd1.ch3.sourceforge.com which has been fixed a little later http://gtkpod.svn.sourceforge.net/viewvc/gtkpod/libgpod/trunk/src/itdb_device.c?r1=2184&r2=2187 cheers -henrik ___ Bug-gnupod mailing list Bug-gnupod@nongnu.org http://lists.nongnu.org/mailman/listinfo/bug-gnupod
[Bug-gnupod] 4th generation iPod Nano
I temporarily have access to a 4th generation iPod Nano. During the gnupod_INIT I see a bunch of: /usr/bin/tunes2pod: skipping unknown entry of type '32' Should I see where these warnings come from, or is that harmless? One thing I will look into is the artwork. Setting the model to nano_3g makes the coverflow work (awesome!), but does not display the artwork during all other views. In ArtworkDB.pm I see: # Artwork profiles: my $profiles = { 'nano_3g' => [ { height=>320, width=>320, storage_id=>1060, bpp=>16, }, { height=>128, width=>128, storage_id=>1055, bpp=>16, }, { height=>56, width=>56, storage_id=>1061, bpp=>16, drop=>112} ], 'classic' => [ { height=>320, width=>320, storage_id=>1060, bpp=>16, }, { height=>128, width=>128, storage_id=>1055, bpp=>16, }, { height=>56, width=>56, storage_id=>1061, bpp=>16, drop=>112} ], 'nano'=> [ { height=>100, width=>100, storage_id=>1027, bpp=>16, }, { height=> 42, width=> 42, storage_id=>1031, bpp=>16, }, ], 'video' => [ { height=>200, width=>200, storage_id=>1029, bpp=>16, }, { height=>100, width=>100, storage_id=>1028, bpp=>16, }, ], }; Is there an easy way to figure out the right values for the nano_4g ? Or will I have to hexdump the ArtworkDB myself? Cheers, Richard ___ Bug-gnupod mailing list Bug-gnupod@nongnu.org http://lists.nongnu.org/mailman/listinfo/bug-gnupod