[FFmpeg-devel] [PATCH 1/3] lavf/matroskadec: resync if cluster parsing fails while seeking

Nicolas George george at nsup.org
Sun Dec 10 16:08:54 EET 2017


Rodger Combs (2017-12-08):
> ---
>  libavformat/matroskadec.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
> index 496499b553..b51f67af00 100644
> --- a/libavformat/matroskadec.c
> +++ b/libavformat/matroskadec.c
> @@ -3528,9 +3528,13 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index,
>                    SEEK_SET);
>          matroska->current_id = 0;
>          while ((index = av_index_search_timestamp(st, timestamp, flags)) < 0 || index == st->nb_index_entries - 1) {
> +            int ret;
> +            int64_t pos = avio_tell(matroska->ctx->pb);
>              matroska_clear_queue(matroska);
> -            if (matroska_parse_cluster(matroska) < 0)
> -                break;
> +            if ((ret = matroska_parse_cluster(matroska)) < 0) {

> +                if ((ret == AVERROR_EOF) || matroska_resync(matroska, pos) < 0)

This is discarding the actual error code from matroska_resync().

> +                    break;
> +            }
>          }
>      }
>  

Regards,

-- 
  Nicolas George
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20171210/fe80986e/attachment.sig>


More information about the ffmpeg-devel mailing list