vlc | branch: master | Francois Cartegnie <[email protected]> | 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 _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
