You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
avformat/utils: Also set io_repositioned for generic seeking
It allows demuxers to perform certain tasks after a successful generic seek. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@@ -2354,10 +2354,12 @@ static int seek_frame_generic(AVFormatContext *s, int stream_index,
|
|||||||
ie = &st->internal->index_entries[st->internal->nb_index_entries - 1];
|
ie = &st->internal->index_entries[st->internal->nb_index_entries - 1];
|
||||||
if ((ret = avio_seek(s->pb, ie->pos, SEEK_SET)) < 0)
|
if ((ret = avio_seek(s->pb, ie->pos, SEEK_SET)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
s->io_repositioned = 1;
|
||||||
avpriv_update_cur_dts(s, st, ie->timestamp);
|
avpriv_update_cur_dts(s, st, ie->timestamp);
|
||||||
} else {
|
} else {
|
||||||
if ((ret = avio_seek(s->pb, s->internal->data_offset, SEEK_SET)) < 0)
|
if ((ret = avio_seek(s->pb, s->internal->data_offset, SEEK_SET)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
s->io_repositioned = 1;
|
||||||
}
|
}
|
||||||
av_packet_unref(pkt);
|
av_packet_unref(pkt);
|
||||||
for (;;) {
|
for (;;) {
|
||||||
@@ -2392,6 +2394,7 @@ static int seek_frame_generic(AVFormatContext *s, int stream_index,
|
|||||||
ie = &st->internal->index_entries[index];
|
ie = &st->internal->index_entries[index];
|
||||||
if ((ret = avio_seek(s->pb, ie->pos, SEEK_SET)) < 0)
|
if ((ret = avio_seek(s->pb, ie->pos, SEEK_SET)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
s->io_repositioned = 1;
|
||||||
avpriv_update_cur_dts(s, st, ie->timestamp);
|
avpriv_update_cur_dts(s, st, ie->timestamp);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user