 +
 +/* initialize the plugin's class */
 +static void
-+gst_kate_class_init (GstKateClass * klass)
++gst_kate_dec_class_init (GstKateDecClass * klass)
 +{
 +  GObjectClass *gobject_class;
 +  GstElementClass *gstelement_class;

+    GstBuffer *buffer;
+    size_t len;
+
+    /* no pango markup yet, escape text */
+    escaped = g_markup_printf_escaped("%s", ev->text);
+    len = strlen(escaped);
+
+    GST_DEBUG_OBJECT(kd, "kate event: %s, escaped %s", ev->text, escaped);
+    buffer = gst_buffer_new_and_alloc(len+1);
+    if (buffer) {

+    GstCaps *caps;
+    case 0x80: // ID header
+      GST_INFO_OBJECT(kd, "Parsed ID header: language %s, category %s", kd->k.ki->language, kd->k.ki->category);
+      caps = gst_caps_new_simple(kd->remove_markup ? "text/plain" : "text/x-pango-markup", NULL);
+      gst_pad_set_caps(kd->srcpad, caps);
+      gst_caps_unref(caps);
+      if (kd->k.ki->language) {
+        GstTagList *tags = gst_tag_list_new();
+        if (tags) {
+          gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_LANGUAGE_CODE, kd->k.ki->language, NULL);
+          gst_element_found_tags_for_pad(GST_ELEMENT_CAST(kd), kd->srcpad, tags);
+          gst_tag_list_free(tags);
+        }
+      }
+      break;
+    default:
+      break;
+  }
+
