 +      katedec_reset();
 +    }
 +  }
++}
++
++#else
++
++void katedec_draw(unsigned int dxs, unsigned int dys, void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)) {}
++int katedec_decode(sh_sub_t *sh, sh_video_t *sh_video, subtitle *subs, int nbytes, unsigned char *data) {}
++void katedec_reset() {}
++void katedec_tick(sh_sub_t *sh, double pts) {}
++
 +#endif
-+}
-+
 diff -ruN -x 'config.*' -x configure.log -x '*.o' -x allformats.c -x vidix -x codecs.conf.h -x version.h -x help_mp.h mplayer-svn/katedec.h mplayer-svn-with-kate/katedec.h
 --- mplayer-svn/katedec.h	1970-01-01 01:00:00.000000000 +0100
 +++ mplayer-svn-with-kate/katedec.h	2008-09-06 18:22:35.000000000 +0100

+                             draw_alpha_proxy);
+#endif
+  }
+#endif
+}
+
+int katedec_decode(sh_sub_t *sh, sh_video_t *sh_video, subtitle *subs, int nbytes, unsigned char *data)
+{
+#ifdef HAVE_OGGKATE
+    kate_packet kp;
+    const kate_event *ev;
+    int ret;

+    katedec_has_kin=0;
+    vo_osd_changed(OSDTYPE_KATE);
+  }
+}
+
+void katedec_tick(sh_sub_t *sh, double pts)
+{
+  if (katedec_has_kin) {
+    /* if an event has an end time equal to its start time, we keep it till
+       the next one arrives (some DVDs have that kind of end-less SPUs).
