vlc | branch: master | Francois Cartegnie <[email protected]> | Mon Mar 23 23:38:12 2015 +0100| [039c69d648bd9bb481fbd29868b8565952098d70] | committer: Francois Cartegnie
demux: avi: improve broken index offset heuristic (fix #14120) Avoids using movi position as offset when the broken index refers to beginning of file and the first sample size is exactly movi's offset. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=039c69d648bd9bb481fbd29868b8565952098d70 --- modules/demux/avi/avi.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c index 0a35b42..34a3362 100644 --- a/modules/demux/avi/avi.c +++ b/modules/demux/avi/avi.c @@ -2321,11 +2321,22 @@ static int AVI_IndexFind_idx1( demux_t *p_demux, *pi_offset = 0; else *pi_offset = i_movi_content; + + if( p_idx1->i_entry_count ) + { + /* Invalidate offset if index refers past the data section to avoid false + positives when the offset equals sample size */ + size_t i_dataend = *pi_offset + p_idx1->entry[p_idx1->i_entry_count - 1].i_pos + + p_idx1->entry[p_idx1->i_entry_count - 1].i_length; + if( i_dataend > p_movi->i_chunk_pos + p_movi->i_chunk_size ) + *pi_offset = 0; + } } else { *pi_offset = 0; } + return VLC_SUCCESS; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
