rem: guint year; res = gst_tag_list_get_uint (bvw->priv->tagcache, GST_TAG_DATE, &year); string = g_strdup_printf ("%u", year);
add: guint julian; if (res = gst_tag_list_get_uint (bvw->priv->tagcache, GST_TAG_DATE, &julian)) { GDate *d = g_date_new_julian (julian); string = g_strdup_printf ("%s", g_date_get_year (d)); }
context: bacon_video_widget_get_metadata_string (BaconVideoWidget * bvw,					BaconVideoWidgetMetadataType type,					GValue * value){  char *string = NULL;  gboolean res = FALSE;  g_value_init (value, G_TYPE_STRING);  if (bvw->priv->play == NULL || bvw->priv->tagcache == NULL)    {      g_value_set_string (value, NULL);      return;    }  switch (type)    {    case BVW_INFO_TITLE:      res = gst_tag_list_get_string_index (bvw->priv->tagcache,					   GST_TAG_TITLE, 0, &string);      break;    case BVW_INFO_ARTIST:      res = gst_tag_list_get_string_index (bvw->priv->tagcache,					   GST_TAG_ARTIST, 0, &string);      break;    case BVW_INFO_YEAR: {      guint year;      res = gst_tag_list_get_uint (bvw->priv->tagcache,				   GST_TAG_DATE, &year);      string = g_strdup_printf ("%u", year);      break;    }    case BVW_INFO_ALBUM:      res = gst_tag_list_get_string_index (bvw->priv->tagcache,					   GST_TAG_ALBUM, 0, &string);      break;    case BVW_INFO_VIDEO_CODEC:      res = gst_tag_list_get_string (bvw->priv->tagcache,				     GST_TAG_VIDEO_CODEC, &string);      break;    case BVW_INFO_AUDIO_CODEC:      res = gst_tag_list_get_string (bvw->priv->tagcache,				     GST_TAG_AUDIO_CODEC, &string);      break;    case BVW_INFO_CDINDEX:      res = gst_tag_list_get_string (bvw->priv->tagcache,				     "discid", &string);      break;    default:      g_assert_not_reached ();    }  if (res)    g_value_take_string (value, string);  else    g_value_set_string (value, NULL);  return;}