Commit 039c69d6 authored by Francois Cartegnie's avatar 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.
parent b70d2acf
......@@ -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;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment