mirror of
https://github.com/mpv-player/mpv
synced 2025-02-09 08:27:18 +00:00
demux_lavf, stream_lavf: drop local buffers on time-seeks
There was chance that some data was left in various local buffers after time-seeks. Probably doesn't actually matter.
This commit is contained in:
parent
a77a171b7f
commit
6c469dc9d9
@ -189,8 +189,11 @@ static int64_t mp_read_seek(void *opaque, int stream_idx, int64_t ts, int flags)
|
|||||||
.flags = flags,
|
.flags = flags,
|
||||||
};
|
};
|
||||||
|
|
||||||
int ret = stream_control(stream, STREAM_CTRL_AVSEEK, &cmd);
|
if (stream_control(stream, STREAM_CTRL_AVSEEK, &cmd) == STREAM_OK) {
|
||||||
return ret < 1 ? AVERROR(ENOSYS) : 0;
|
stream_drop_buffers(stream);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return AVERROR(ENOSYS);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void list_formats(struct demuxer *demuxer)
|
static void list_formats(struct demuxer *demuxer)
|
||||||
|
@ -113,8 +113,10 @@ static int control(stream_t *s, int cmd, void *arg)
|
|||||||
case STREAM_CTRL_AVSEEK: {
|
case STREAM_CTRL_AVSEEK: {
|
||||||
struct stream_avseek *c = arg;
|
struct stream_avseek *c = arg;
|
||||||
int64_t r = avio_seek_time(avio, c->stream_index, c->timestamp, c->flags);
|
int64_t r = avio_seek_time(avio, c->stream_index, c->timestamp, c->flags);
|
||||||
if (r >= 0)
|
if (r >= 0) {
|
||||||
|
stream_drop_buffers(s);
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case STREAM_CTRL_HAS_AVSEEK:
|
case STREAM_CTRL_HAS_AVSEEK:
|
||||||
|
Loading…
Reference in New Issue
Block a user