summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libspudvb/xine_spudvb_decoder.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libspudvb/xine_spudvb_decoder.c b/src/libspudvb/xine_spudvb_decoder.c
index 9da4607c8..dcccf6988 100644
--- a/src/libspudvb/xine_spudvb_decoder.c
+++ b/src/libspudvb/xine_spudvb_decoder.c
@@ -370,10 +370,10 @@ void process_CLUT_definition_segment(dvb_spu_decoder_t *this) {
Cb_value=dvbsub->buf[dvbsub->i++];
T_value=dvbsub->buf[dvbsub->i++];
} else {
- Y_value=(dvbsub->buf[dvbsub->i]&0xfc)>>2;
- Cr_value=(dvbsub->buf[dvbsub->i]&0x2<<2)|((dvbsub->buf[dvbsub->i+1]&0xc0)>>6);
- Cb_value=(dvbsub->buf[dvbsub->i+1]&0x2c)>>2;
- T_value=dvbsub->buf[dvbsub->i+1]&2;
+ Y_value = dvbsub->buf[dvbsub->i] & 0xfc;
+ Cr_value = (dvbsub->buf[dvbsub->i] << 6 | dvbsub->buf[dvbsub->i + 1] >> 2) & 0xf0;
+ Cb_value = (dvbsub->buf[dvbsub->i + 1] << 2) & 0xf0;
+ T_value = (dvbsub->buf[dvbsub->i + 1] & 3) * 0x55; /* expand only this one to full range! */
dvbsub->i+=2;
}
set_clut(this, CLUT_id,CLUT_entry_id,Y_value,Cr_value,Cb_value,T_value);