=== frametype.c
==================================================================
--- frametype.c	(revision 58258)
+++ frametype.c	(local)
@@ -1,4 +1,4 @@
-/* C code produced by gperf version 3.0.1 */
+/* C code produced by gperf version 3.0.4 */
 /* Command-line: gperf -tCcTonD -K id -N id3_frametype_lookup -s -3 -k '*' frametype.gperf  */
 
 #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -48,7 +48,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- * Id: frametype.gperf,v 1.7 2004/01/23 09:41:32 rob Exp 
+ * $Id: /sd/opensource/trunk/Audio-Scan/libid3tag/patches/v2.3-xsop.patch 58528 2009-09-09T17:49:19.200663Z andy  $
  */
 
 # ifdef HAVE_CONFIG_H
@@ -300,7 +300,7 @@
 FRAMETYPE(unknown,      unknown, PRESERVE, "Unknown frame");
 FRAMETYPE(obsolete,     unknown, OBSOLETE, "Obsolete frame");
 
-#define TOTAL_KEYWORDS 84
+#define TOTAL_KEYWORDS 85
 #define MIN_WORD_LENGTH 4
 #define MAX_WORD_LENGTH 4
 #define MIN_HASH_VALUE 7
@@ -326,10 +326,10 @@
       156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
       156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
       156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
-       43,   4,  47,  49, 156, 156, 156, 156, 156, 156,
-      156, 156, 156, 156, 156,  31,  53,   3,  15,   3,
-       24,  25,  10,  52,  69,  34,  23,  30,   1,   5,
-       10,  62,  20,   0,  28,  28,  22,  19,  47,   3,
+       47,   4,  13,  34, 156, 156, 156, 156, 156, 156,
+      156, 156, 156, 156, 156,  31,  63,   3,  15,   3,
+       24,  25,  10,  52,  69,   5,  23,  30,   1,   5,
+       10,  62,  20,   0,  28,  28,  22,  19,  25,  62,
        10, 156, 156, 156, 156, 156, 156, 156, 156, 156,
       156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
       156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
@@ -353,7 +353,10 @@
 
 #ifdef __GNUC__
 __inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
 #endif
+#endif
 const struct id3_frametype *
 id3_frametype_lookup (str, len)
      register const char *str;
@@ -389,8 +392,8 @@
       {"ETCO", FRAME(ETCO), DISCARD,  "Event timing codes"},
 #line 332 "frametype.gperf"
       {"TPE2", FRAME(text), PRESERVE, "Band/orchestra/accompaniment"},
-#line 301 "frametype.gperf"
-      {"SYTC", FRAME(SYTC), DISCARD,  "Synchronised tempo codes"},
+#line 320 "frametype.gperf"
+      {"TKEY", FRAME(text), PRESERVE, "Initial key"},
 #line 313 "frametype.gperf"
       {"TENC", FRAME(text), DISCARD,  "Encoded by"},
 #line 309 "frametype.gperf"
@@ -405,8 +408,8 @@
       {"TSSE", FRAME(text), PRESERVE, "Software/hardware and settings used for encoding"},
 #line 339 "frametype.gperf"
       {"TRSN", FRAME(text), PRESERVE, "Internet radio station name"},
-#line 300 "frametype.gperf"
-      {"SYLT", FRAME(SYLT), DISCARD,  "Synchronised lyric/text"},
+#line 333 "frametype.gperf"
+      {"TPE3", FRAME(text), PRESERVE, "Conductor/performer refinement"},
 #line 354 "frametype.gperf"
       {"WOAR", FRAME(url),  PRESERVE, "Official artist/performer webpage"},
 #line 346 "frametype.gperf"
@@ -447,8 +450,8 @@
       {"TMOO", FRAME(text), PRESERVE, "Mood"},
 #line 338 "frametype.gperf"
       {"TRCK", FRAME(text), PRESERVE, "Track number/position in set"},
-#line 320 "frametype.gperf"
-      {"TKEY", FRAME(text), PRESERVE, "Initial key"},
+#line 334 "frametype.gperf"
+      {"TPE4", FRAME(text), PRESERVE, "Interpreted, remixed, or otherwise modified by"},
 #line 308 "frametype.gperf"
       {"TDLY", FRAME(text), PRESERVE, "Playlist delay"},
 #line 296 "frametype.gperf"
@@ -465,32 +468,28 @@
       {"SIGN", FRAME(SIGN), PRESERVE, "Signature frame"},
 #line 355 "frametype.gperf"
       {"WOAS", FRAME(url),  PRESERVE, "Official audio source webpage"},
-#line 331 "frametype.gperf"
-      {"TPE1", FRAME(text), PRESERVE, "Lead performer(s)/soloist(s)"},
+#line 314 "frametype.gperf"
+      {"TEXT", FRAME(text), PRESERVE, "Lyricist/text writer"},
 #line 302 "frametype.gperf"
       {"TALB", FRAME(text), PRESERVE, "Album/movie/show title"},
-#line 341 "frametype.gperf"
-      {"TSOA", FRAME(text), PRESERVE, "Album sort order"},
 #line 321 "frametype.gperf"
       {"TLAN", FRAME(text), PRESERVE, "Language(s)"},
-#line 333 "frametype.gperf"
-      {"TPE3", FRAME(text), PRESERVE, "Conductor/performer refinement"},
+#line 331 "frametype.gperf"
+      {"TPE1", FRAME(text), PRESERVE, "Lead performer(s)/soloist(s)"},
 #line 352 "frametype.gperf"
       {"WCOP", FRAME(url),  PRESERVE, "Copyright/legal information"},
-#line 334 "frametype.gperf"
-      {"TPE4", FRAME(text), PRESERVE, "Interpreted, remixed, or otherwise modified by"},
 #line 323 "frametype.gperf"
       {"TMCL", FRAME(text), PRESERVE, "Musician credits list"},
-#line 303 "frametype.gperf"
-      {"TBPM", FRAME(text), PRESERVE, "BPM (beats per minute)"},
+#line 360 "frametype.gperf"
+      {"XSOP", FRAME(text), PRESERVE, "Performer sort order (v2.3)"},
 #line 311 "frametype.gperf"
       {"TDRL", FRAME(text), PRESERVE, "Release time"},
 #line 326 "frametype.gperf"
       {"TOAL", FRAME(text), PRESERVE, "Original album/movie/show title"},
 #line 342 "frametype.gperf"
       {"TSOP", FRAME(text), PRESERVE, "Performer sort order"},
-#line 363 "frametype.gperf"
-      {"ZOBS", FRAME(ZOBS), OBSOLETE, "Obsolete frame"},
+#line 341 "frametype.gperf"
+      {"TSOA", FRAME(text), PRESERVE, "Album sort order"},
 #line 283 "frametype.gperf"
       {"EQU2", FRAME(EQU2), DISCARD,  "Equalisation (2)"},
 #line 306 "frametype.gperf"
@@ -501,12 +500,16 @@
       {"GRID", FRAME(GRID), PRESERVE, "Group identification registration"},
 #line 294 "frametype.gperf"
       {"PRIV", FRAME(PRIV), PRESERVE, "Private frame"},
+#line 303 "frametype.gperf"
+      {"TBPM", FRAME(text), PRESERVE, "BPM (beats per minute)"},
 #line 315 "frametype.gperf"
       {"TFLT", FRAME(text), PRESERVE, "File type"},
 #line 289 "frametype.gperf"
       {"MLLT", FRAME(MLLT), DISCARD,  "MPEG location lookup table"},
-#line 314 "frametype.gperf"
-      {"TEXT", FRAME(text), PRESERVE, "Lyricist/text writer"},
+#line 301 "frametype.gperf"
+      {"SYTC", FRAME(SYTC), DISCARD,  "Synchronised tempo codes"},
+#line 364 "frametype.gperf"
+      {"ZOBS", FRAME(ZOBS), OBSOLETE, "Obsolete frame"},
 #line 348 "frametype.gperf"
       {"UFID", FRAME(UFID), PRESERVE, "Unique file identifier"},
 #line 278 "frametype.gperf"
@@ -515,20 +518,22 @@
       {"ASPI", FRAME(ASPI), DISCARD,  "Audio seek point index"},
 #line 318 "frametype.gperf"
       {"TIT2", FRAME(text), PRESERVE, "Title/songname/content description"},
-#line 359 "frametype.gperf"
-      {"WXXX", FRAME(WXXX), PRESERVE, "User defined URL link frame"},
+#line 300 "frametype.gperf"
+      {"SYLT", FRAME(SYLT), DISCARD,  "Synchronised lyric/text"},
 #line 288 "frametype.gperf"
       {"MCDI", FRAME(MCDI), PRESERVE, "Music CD identifier"},
 #line 316 "frametype.gperf"
       {"TIPL", FRAME(text), PRESERVE, "Involved people list"},
+#line 319 "frametype.gperf"
+      {"TIT3", FRAME(text), PRESERVE, "Subtitle/description refinement"},
+#line 359 "frametype.gperf"
+      {"WXXX", FRAME(WXXX), PRESERVE, "User defined URL link frame"},
+#line 295 "frametype.gperf"
+      {"RBUF", FRAME(RBUF), PRESERVE, "Recommended buffer size"},
 #line 347 "frametype.gperf"
       {"TXXX", FRAME(TXXX), PRESERVE, "User defined text information frame"},
-#line 295 "frametype.gperf"
-      {"RBUF", FRAME(RBUF), PRESERVE, "Recommended buffer size"},
 #line 317 "frametype.gperf"
-      {"TIT1", FRAME(text), PRESERVE, "Content group description"},
-#line 319 "frametype.gperf"
-      {"TIT3", FRAME(text), PRESERVE, "Subtitle/description refinement"}
+      {"TIT1", FRAME(text), PRESERVE, "Content group description"}
     };
 
   static const short lookup[] =
@@ -539,12 +544,12 @@
       10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
       24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
       38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-      52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
-      66, 67, 68, 69, -1, 70, 71, -1, 72, 73, 74, -1, 75, -1,
-      76, -1, -1, -1, 77, 78, -1, -1, 79, -1, -1, -1, -1, 80,
-      81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-      -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1,
-      -1, 83
+      52, 53, -1, 54, 55, 56, -1, 57, 58, 59, 60, 61, 62, 63,
+      64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, 75, -1,
+      76, 77, -1, -1, -1, 78, -1, -1, 79, 80, -1, -1, -1, -1,
+      -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, 82, -1, -1, -1,
+      83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+      -1, 84
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
=== frametype.gperf
==================================================================
--- frametype.gperf	(revision 58258)
+++ frametype.gperf	(local)
@@ -357,6 +357,7 @@
 WPAY, FRAME(url),  PRESERVE, "Payment"
 WPUB, FRAME(url),  PRESERVE, "Publishers official webpage"
 WXXX, FRAME(WXXX), PRESERVE, "User defined URL link frame"
+XSOP, FRAME(text), PRESERVE, "Performer sort order (v2.3)"
 #
 # Special frames
 #