 +      strncpy((char*)GST_BUFFER_DATA (buffer)+48, kt->category, 15);
 +      GST_BUFFER_DATA (buffer)[63] = 0;
 +    }
++    if (kt->original_canvas_width >= 0) {
++      guint16 v = encode_canvas_size(kt->original_canvas_width);
++      GST_BUFFER_DATA (buffer)[16] = v&0xff;
++      GST_BUFFER_DATA (buffer)[17] = (v>>8)&0xff;
++    }
++    if (kt->original_canvas_height >= 0) {
++      guint16 v = encode_canvas_size(kt->original_canvas_height);
++      GST_BUFFER_DATA (buffer)[18] = v&0xff;
++      GST_BUFFER_DATA (buffer)[19] = (v>>8)&0xff;
++    }
 +  }
 +
 +  /*  rewrite the comments packet */

+  ARG_0,
+  ARG_LANGUAGE,
+  ARG_CATEGORY,
+};
+
+static void gst_kate_tag_base_init (gpointer g_class);

+      g_param_spec_string ("category", "Category", "Set the category of the stream",
+          "", G_PARAM_READWRITE));
+
+  g_object_class_install_property (gobject_class, ARG_ORIGINAL_CANVAS_WIDTH,
+      g_param_spec_int ("original-canvas-width", "Original canvas width",
+          "Set the width of the canvas this stream was authored for (0 is unspecified)",
+          0, G_MAXINT, 0, G_PARAM_READWRITE));
+
+  g_object_class_install_property (gobject_class, ARG_ORIGINAL_CANVAS_HEIGHT,
+      g_param_spec_int ("original-canvas-height", "Original canvas height",
+          "Set the height of the canvas this stream was authored for (0 is unspecified)",
+          0, G_MAXINT, 0, G_PARAM_READWRITE));
+
+  gstkateparse_class->parse_packet = GST_DEBUG_FUNCPTR (gst_kate_tag_parse_packet);
+}
+
