diff options
author | Paul B Mahol <onemda@gmail.com> | 2021-10-13 11:46:15 +0200 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2021-10-13 12:14:39 +0200 |
commit | 6384175d8c33989814f3a5ec9aeb54f1025044b6 (patch) | |
tree | fdfe4ff969fc03ee14862414e27b8966de5722fb /libavformat/dhav.c | |
parent | f14adb051697a6085bfa17980d6168bdca22692c (diff) | |
download | ffmpeg-6384175d8c33989814f3a5ec9aeb54f1025044b6.tar.gz |
avformat/dhav: check if timestamp matches when seeking
Diffstat (limited to 'libavformat/dhav.c')
-rw-r--r-- | libavformat/dhav.c | 7 |
1 files 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, }; |