summaryrefslogtreecommitdiff
path: root/libavformat/dhav.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2021-10-13 11:46:15 +0200
committerPaul B Mahol <onemda@gmail.com>2021-10-13 12:14:39 +0200
commit6384175d8c33989814f3a5ec9aeb54f1025044b6 (patch)
treefdfe4ff969fc03ee14862414e27b8966de5722fb /libavformat/dhav.c
parentf14adb051697a6085bfa17980d6168bdca22692c (diff)
downloadffmpeg-6384175d8c33989814f3a5ec9aeb54f1025044b6.tar.gz
avformat/dhav: check if timestamp matches when seeking
Diffstat (limited to 'libavformat/dhav.c')
-rw-r--r--libavformat/dhav.c7
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,
};