[vlc-commits] Added support for AVI with out of spec idx1 index.

Laurent Aimar git at videolan.org
Fri Oct 7 22:26:24 CEST 2011


vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Fri Oct  7 21:52:42 2011 +0200| [af0ac19f3090145c3077c847b17d00c2d4a35344] | committer: Laurent Aimar

Added support for AVI with out of spec idx1 index.

It closes #5389.

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

 modules/demux/avi/avi.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index 4e1e506..7096d8d 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -95,6 +95,8 @@ static char *FromACP( const char *str )
     return FromCharset(vlc_pgettext("GetACP", "CP1252"), str, strlen(str));
 }
 
+#define IGNORE_ES NAV_ES
+
 typedef struct
 {
     vlc_fourcc_t i_fourcc;
@@ -1951,6 +1953,9 @@ static void AVI_ParseStreamHeader( vlc_fourcc_t i_id,
             case AVITWOCC_sb:
                 SET_PTR( pi_type, SPU_ES );
                 break;
+            case AVITWOCC_pc:
+                SET_PTR( pi_type, IGNORE_ES );
+                break;
             default:
                 SET_PTR( pi_type, UNKNOWN_ES );
                 break;
@@ -2181,7 +2186,7 @@ static int AVI_IndexLoad_idx1( demux_t *p_demux,
                                &i_stream,
                                &i_cat );
         if( i_stream < p_sys->i_track &&
-            i_cat == p_sys->track[i_stream]->i_cat )
+            (i_cat == p_sys->track[i_stream]->i_cat || i_cat == UNKNOWN_ES ) )
         {
             avi_entry_t index;
             index.i_id     = p_idx1->entry[i_index].i_fourcc;



More information about the vlc-commits mailing list