[vlc-commits] AVI: use Windows ANSI code page rather than ISO 8859-1 (fixes #4678)

Rémi Denis-Courmont git at videolan.org
Wed Apr 13 20:14:48 CEST 2011


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Wed Apr 13 21:10:49 2011 +0300| [4b07339900792ca7bc122992bc2dae538ac512aa] | committer: Rémi Denis-Courmont

AVI: use Windows ANSI code page rather than ISO 8859-1 (fixes #4678)

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

 modules/demux/avi/avi.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index dbb88fa..df525ad 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;



More information about the vlc-commits mailing list