* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_process_ext_content_desc):
+ Erm, lets properly fix it. The only non-text tag that we support is
+ the track-number and that is an UINT. asfdemux was returning a GValue
+ initialized as INT. Further the Track and not the TrackNumber tag
+ (the latter is a string too).
+
+2006-09-07 Stefan Kost <ensonic@users.sf.net>
+
+ * gst/asfdemux/gstasfdemux.c:
+ (gst_asf_demux_get_gst_tag_from_tag_name),
+ (gst_asf_demux_process_ext_content_desc):
Skip tags that are unknown (was producing an uninialized GValue).
2006-09-01 Michael Smith <msmith@fluendo.com>
"WM/Genre", GST_TAG_GENRE}, {
"WM/AlbumTitle", GST_TAG_ALBUM}, {
"WM/AlbumArtist", GST_TAG_ARTIST}, {
- "WM/TrackNumber", GST_TAG_TRACK_NUMBER}, {
+ "WM/Track", GST_TAG_TRACK_NUMBER}, {
"WM/Year", GST_TAG_DATE}
/* { "WM/Composer", GST_TAG_COMPOSER } */
};
return NULL;
}
- GST_DEBUG ("map tagname '%s'", name_utf8);
-
for (i = 0; i < G_N_ELEMENTS (tags); ++i) {
if (strncmp (tags[i].asf_name, name_utf8, out) == 0) {
+ GST_LOG ("map tagname '%s' -> '%s'", name_utf8, tags[i].gst_name);
g_free (name_utf8);
return tags[i].gst_name;
}
}
+ GST_LOG ("unhandled tagname '%s'", name_utf8);
g_free (name_utf8);
return NULL;
}
* WM/ProviderRating = 8
* WM/ProviderStyle = Rock (similar to WM/Genre)
* WM/GenreID (similar to WM/Genre)
+ * WM/TrackNumber (same as WM/Track but as a string)
*
* Other known (and unused) 'non-text' metadata available :
*
- * WM/Track (same as WM/TrackNumber but starts at 0)
* WM/EncodingTime
* WM/MCDI
* IsVBR
goto not_enough_data;
gst_tag_name = gst_asf_demux_get_gst_tag_from_tag_name (name, name_len);
- if (datatype && (gst_tag_name != NULL)) {
+ if (gst_tag_name != NULL) {
switch (datatype) {
case ASF_DEMUX_DATA_TYPE_UTF16LE_STRING:{
gchar *value_utf8;
break;
}
case ASF_DEMUX_DATA_TYPE_DWORD:{
- g_value_init (&tag_value, G_TYPE_INT);
- g_value_set_int (&tag_value, (gint) GST_READ_UINT32_LE (value));
+ /* this is the track number */
+ g_value_init (&tag_value, G_TYPE_UINT);
+ g_value_set_uint (&tag_value, (guint) GST_READ_UINT32_LE (value));
break;
}
default:{