From 4b07339900792ca7bc122992bc2dae538ac512aa Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Wed, 13 Apr 2011 21:10:49 +0300 Subject: [PATCH] AVI: use Windows ANSI code page rather than ISO 8859-1 (fixes #4678) --- modules/demux/avi/avi.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c index dbb88fa196..df525ad225 100644 --- a/modules/demux/avi/avi.c +++ b/modules/demux/avi/avi.c @@ -90,6 +90,11 @@ static int Demux_UnSeekable( demux_t * ); #define __ABS( x ) ( (x) < 0 ? (-(x)) : (x) ) +static char *FromACP( const char *str ) +{ + return FromCharset(vlc_pgettext("GetACP", "CP1252"), str, strlen(str)); +} + typedef struct { vlc_fourcc_t i_fourcc; @@ -592,7 +597,7 @@ static int Open( vlc_object_t * p_this ) continue; } if( p_strn ) - fmt.psz_description = FromLatin1( p_strn->p_str ); + fmt.psz_description = FromACP( p_strn->p_str ); if( tk->p_out_muxed == NULL ) tk->p_es = es_out_Add( p_demux->out, &fmt ); TAB_APPEND( p_sys->i_track, p_sys->track, tk ); @@ -2494,7 +2499,7 @@ static void AVI_MetaLoad( demux_t *p_demux, avi_chunk_STRING_t *p_strz = AVI_ChunkFind( p_info, p_dsc[i].i_id, 0 ); if( !p_strz ) continue; - char *psz_value = FromLatin1( p_strz->p_str ); + char *psz_value = FromACP( p_strz->p_str ); if( !psz_value ) continue; @@ -2609,7 +2614,7 @@ static void AVI_ExtractSubtitle( demux_t *p_demux, i_size -= 6; if( !psz_description ) - psz_description = p_strn ? FromLatin1( p_strn->p_str ) : NULL; + psz_description = p_strn ? FromACP( p_strn->p_str ) : NULL; char *psz_name; if( asprintf( &psz_name, "subtitle%d.srt", p_sys->i_attachment ) <= 0 ) psz_name = NULL; -- 2.39.2