From 6384175d8c33989814f3a5ec9aeb54f1025044b6 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Wed, 13 Oct 2021 11:46:15 +0200 Subject: [PATCH] avformat/dhav: check if timestamp matches when seeking --- libavformat/dhav.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/dhav.c b/libavformat/dhav.c index f67b0b89ac..4d45a258d8 100644 --- a/libavformat/dhav.c +++ b/libavformat/dhav.c @@ -439,11 +439,12 @@ static int dhav_read_seek(AVFormatContext *s, int stream_index, if (index < 0) return -1; + pts = sti->index_entries[index].timestamp; + if (pts < timestamp) + return AVERROR(EAGAIN); if (avio_seek(s->pb, sti->index_entries[index].pos, SEEK_SET) < 0) return -1; - pts = sti->index_entries[index].timestamp; - for (int n = 0; n < s->nb_streams; n++) { AVStream *st = s->streams[n]; DHAVStream *dst = st->priv_data; @@ -465,5 +466,5 @@ const AVInputFormat ff_dhav_demuxer = { .read_packet = dhav_read_packet, .read_seek = dhav_read_seek, .extensions = "dav", - .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_TS_DISCONT | AVFMT_TS_NONSTRICT, + .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_TS_DISCONT | AVFMT_TS_NONSTRICT | AVFMT_SEEK_TO_PTS, };