Re: [Bug-gnupod] 4th generation iPod Nano

2009-05-29 Thread H. Langos
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

2009-05-29 Thread Richard van den Berg
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

2009-05-29 Thread H. Langos
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

2009-05-29 Thread H. Langos
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

2009-05-28 Thread Richard van den Berg

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

2009-05-28 Thread Richard van den Berg

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

2009-05-27 Thread Richard van den Berg
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

2009-05-27 Thread H. Langos
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

2009-05-26 Thread Richard van den Berg
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