[vlc-commits] demux: vobsub: don't use failed palette scan

Francois Cartegnie git at videolan.org
Tue Oct 8 19:15:13 CEST 2019


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Tue Oct  8 15:53:48 2019 +0200| [c1033e09f891bba4b0ea6ae7bc7ad1b51a612ce8] | committer: Francois Cartegnie

demux: vobsub: don't use failed palette scan

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c1033e09f891bba4b0ea6ae7bc7ad1b51a612ce8
---

 modules/demux/vobsub.h | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/modules/demux/vobsub.h b/modules/demux/vobsub.h
index 7ae5eb97d6..1d980bc0e6 100644
--- a/modules/demux/vobsub.h
+++ b/modules/demux/vobsub.h
@@ -20,35 +20,36 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-static inline void vobsub_palette_rgb2yuv( uint32_t *pu_palette )
+static inline void vobsub_palette_rgb2yuv( const uint32_t *src, uint32_t *dst )
 {
     int i;
     for( i = 0; i < 16; i++ )
     {
         uint8_t r, g, b, y, u, v;
-        r = (pu_palette[i] >> 16) & 0xff;
-        g = (pu_palette[i] >> 8) & 0xff;
-        b = (pu_palette[i] >> 0) & 0xff;
+        r = (src[i] >> 16) & 0xff;
+        g = (src[i] >> 8) & 0xff;
+        b = (src[i] >> 0) & 0xff;
         y = (uint8_t) __MIN(abs(r * 2104 + g * 4130 + b * 802 + 4096 + 131072) >> 13, 235);
         u = (uint8_t) __MIN(abs(r * -1214 + g * -2384 + b * 3598 + 4096 + 1048576) >> 13, 240);
         v = (uint8_t) __MIN(abs(r * 3598 + g * -3013 + b * -585 + 4096 + 1048576) >> 13, 240);
-        pu_palette[i] = (y&0xff)<<16 | (v&0xff)<<8 | (u&0xff);
+        dst[i] = (y&0xff)<<16 | (v&0xff)<<8 | (u&0xff);
     }
 }
 
 static inline int vobsub_palette_parse( const char *psz_buf, uint32_t *pu_palette )
 {
+    uint32_t palette[16];
     if( sscanf( psz_buf, "palette: "
                 "%" SCNx32", %" SCNx32 ", %" SCNx32 ", %" SCNx32 ", "
                 "%" SCNx32", %" SCNx32 ", %" SCNx32 ", %" SCNx32 ", "
                 "%" SCNx32", %" SCNx32 ", %" SCNx32 ", %" SCNx32 ", "
                 "%" SCNx32", %" SCNx32 ", %" SCNx32 ", %" SCNx32 "",
-                &pu_palette[0], &pu_palette[1], &pu_palette[2], &pu_palette[3],
-                &pu_palette[4], &pu_palette[5], &pu_palette[6], &pu_palette[7],
-                &pu_palette[8], &pu_palette[9], &pu_palette[10], &pu_palette[11],
-                &pu_palette[12], &pu_palette[13], &pu_palette[14], &pu_palette[15] ) == 16 )
+                &palette[0], &palette[1], &palette[2], &palette[3],
+                &palette[4], &palette[5], &palette[6], &palette[7],
+                &palette[8], &palette[9], &palette[10], &palette[11],
+                &palette[12], &palette[13], &palette[14], &palette[15] ) == 16 )
     {
-        vobsub_palette_rgb2yuv( pu_palette );
+        vobsub_palette_rgb2yuv( palette, pu_palette );
         return VLC_SUCCESS;
     }
     else



More information about the vlc-commits mailing list