]> git.sesse.net Git - vlc/commitdiff
* ./plugins/spudec/spu_decoder.c: fixed endianness issue; subtitles colors
authorSam Hocevar <sam@videolan.org>
Wed, 15 May 2002 00:40:26 +0000 (00:40 +0000)
committerSam Hocevar <sam@videolan.org>
Wed, 15 May 2002 00:40:26 +0000 (00:40 +0000)
    should be OK now.

plugins/spudec/spu_decoder.c

index 134dc9dbf4ce0bec90a40009e98dd84cfe21e86e..7e8be22cfe7c1588f8953e61239b6a0ac2a9a1a5 100644 (file)
@@ -2,7 +2,7 @@
  * spu_decoder.c : spu decoder thread
  *****************************************************************************
  * Copyright (C) 2000-2001 VideoLAN
- * $Id: spu_decoder.c,v 1.19 2002/05/12 20:56:34 massiot Exp $
+ * $Id: spu_decoder.c,v 1.20 2002/05/15 00:40:26 sam Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *          Rudolf Cornelissen <rag.cornelissen@inter.nl.net>
@@ -374,8 +374,6 @@ static int ParseControlSequences( spudec_thread_t *p_spudec,
     u8  i_command;
     int i_date;
 
-    /* Dummy stuff */
-    u8 *pi_color;
     int i;
 
     /* XXX: temporary variables */
@@ -433,15 +431,18 @@ static int ParseControlSequences( spudec_thread_t *p_spudec,
                     if( p_spudec->p_config->p_demux_data &&
                          *(int*)p_spudec->p_config->p_demux_data == 0xBeeF )
                     {
+                        u32 i_color;
+
                         p_spu->p_sys->b_palette = 1;
                         for( i = 0; i < 4 ; i++ )
                         {
-                            pi_color = (void*)p_spudec->p_config->p_demux_data
-                                         + sizeof(int) + 4 * sizeof(u8) *
-                                          GetBits( &p_spudec->bit_stream, 4 );
-                            p_spu->p_sys->pi_yuv[3-i][0] = pi_color[2];
-                            p_spu->p_sys->pi_yuv[3-i][1] = pi_color[0];
-                            p_spu->p_sys->pi_yuv[3-i][2] = pi_color[1];
+                            i_color = ((u32*)((void*)p_spudec->p_config->
+                                        p_demux_data + sizeof(int)))[
+                                          GetBits(&p_spudec->bit_stream, 4) ];
+
+                            p_spu->p_sys->pi_yuv[3-i][0] = (i_color>>16) & 0xff;
+                            p_spu->p_sys->pi_yuv[3-i][1] = (i_color>>0) & 0xff;
+                            p_spu->p_sys->pi_yuv[3-i][2] = (i_color>>8) & 0xff;
                         }
                     }
                     else