[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