[FFmpeg-devel] [PATCH] lavf/matroskadec: drop indexes that appear broken

wm4 nfxjfg at googlemail.com
Thu Oct 8 23:23:15 CEST 2015


On Thu,  8 Oct 2015 15:34:59 -0500
Rodger Combs <rodger.combs at gmail.com> wrote:

> ---
>  libavformat/matroskadec.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> index 9db2b59..02cc6a5 100644
> --- a/libavformat/matroskadec.c
> +++ b/libavformat/matroskadec.c
> @@ -1521,10 +1521,11 @@ static void matroska_add_index_entries(MatroskaDemuxContext *matroska)
>  
>      index_list = &matroska->index;
>      index      = index_list->elem;
> -    if (index_list->nb_elem &&
> -        index[0].time > 1E14 / matroska->time_scale) {
> -        av_log(matroska->ctx, AV_LOG_WARNING, "Working around broken index.\n");
> -        index_scale = matroska->time_scale;
> +    if (index_list->nb_elem < 2)
> +        return;
> +    if (index[1].time > 1E14 / matroska->time_scale) {
> +        av_log(matroska->ctx, AV_LOG_WARNING, "Dropping apparently-broken index.\n");
> +        return;
>      }
>      for (i = 0; i < index_list->nb_elem; i++) {
>          EbmlList *pos_list    = &index[i].pos;

Seems ok. (Didn't this come up before?)


More information about the ffmpeg-devel mailing list