diff --git a/ext/kate/gstkatespu.c b/ext/kate/gstkatespu.c index 13f561941a..ad2a0386ff 100644 --- a/ext/kate/gstkatespu.c +++ b/ext/kate/gstkatespu.c @@ -62,10 +62,10 @@ gst_kate_spu_decode_alpha (GstKateEnc * ke, const guint8 * ptr) static void gst_kate_spu_decode_area (GstKateEnc * ke, const guint8 * ptr) { - ke->spu_left = ((((guint16) ptr[0]) & 0x3f) << 4) | (ptr[1] >> 4); - ke->spu_top = ((((guint16) ptr[3]) & 0x3f) << 4) | (ptr[4] >> 4); - ke->spu_right = ((((guint16) ptr[1]) & 0x03) << 8) | ptr[2]; - ke->spu_bottom = ((((guint16) ptr[4]) & 0x03) << 8) | ptr[5]; + ke->spu_left = ((((guint16) ptr[0]) & 0xff) << 4) | (ptr[1] >> 4); + ke->spu_top = ((((guint16) ptr[3]) & 0xff) << 4) | (ptr[4] >> 4); + ke->spu_right = ((((guint16) ptr[1]) & 0x0f) << 8) | ptr[2]; + ke->spu_bottom = ((((guint16) ptr[4]) & 0x0f) << 8) | ptr[5]; GST_DEBUG_OBJECT (ke, "SPU area %u %u -> %u %d", ke->spu_left, ke->spu_top, ke->spu_right, ke->spu_bottom); }