Index: gst/id3demux/id3v2frames.c
===================================================================
RCS file: /cvs/gstreamer/gst-plugins-good/gst/id3demux/id3v2frames.c,v
retrieving revision 1.29
diff -u -r1.29 id3v2frames.c
--- gst/id3demux/id3v2frames.c	12 Mar 2007 13:28:29 -0000	1.29
+++ gst/id3demux/id3v2frames.c	13 Jun 2007 05:35:06 -0000
@@ -38,6 +38,7 @@
 #define GST_CAT_DEFAULT (id3demux_debug)
 
 static gboolean parse_comment_frame (ID3TagsWorking * work);
+static gchar *parse_url_link_frame (ID3TagsWorking * work);
 static GArray *parse_text_identification_frame (ID3TagsWorking * work);
 static gchar *parse_user_text_identification_frame (ID3TagsWorking * work,
     const gchar ** tag_name);
@@ -164,6 +165,9 @@
       /* Text identification frame */
       tag_fields = parse_text_identification_frame (work);
     }
+  } else if (work->frame_id[0] == 'W' && strcmp(work->frame_id,"WXXX")) {
+    /* URL link frame -- ISO-8859-1 encoded, one frame per tag */
+    tag_str = parse_url_link_frame(work);
   } else if (!strcmp (work->frame_id, "COMM")) {
     /* Comment */
     result = parse_comment_frame (work);
@@ -300,6 +304,16 @@
 }
 
 static gchar *
+parse_url_link_frame (ID3TagsWorking * work)
+{
+  if (work->parse_size < 1)
+    return NULL;
+
+  return g_strndup((gchar*)work->parse_data,work->parse_size);
+}
+
+
+static gchar *
 parse_user_text_identification_frame (ID3TagsWorking * work,
     const gchar ** tag_name)
 {
