summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2020-09-17 15:34:40 +0200
committerwm4 <wm4@nowhere>2020-09-17 15:34:40 +0200
commit9806e9f82b64b6c5336cbaaa7c8ce0ef12a56c4f (patch)
tree0d0643688521a10cec3c8a551e8a7d8a3f3369f6 /demux
parent602384348e718c772a2f0d1490d0f26d3578c373 (diff)
downloadmpv-9806e9f82b64b6c5336cbaaa7c8ce0ef12a56c4f.tar.bz2
mpv-9806e9f82b64b6c5336cbaaa7c8ce0ef12a56c4f.tar.xz
command, demux: make drop-buffers reset state even harder
Leave nothing left when it's executed.
Diffstat (limited to 'demux')
-rw-r--r--demux/demux.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/demux/demux.c b/demux/demux.c
index 8fcafec9df..e4dda43cf0 100644
--- a/demux/demux.c
+++ b/demux/demux.c
@@ -3487,12 +3487,19 @@ void demux_flush(demuxer_t *demuxer)
struct demux_internal *in = demuxer->in;
assert(demuxer == in->d_user);
- pthread_mutex_lock(&demuxer->in->lock);
+ pthread_mutex_lock(&in->lock);
clear_reader_state(in, true);
for (int n = 0; n < in->num_ranges; n++)
clear_cached_range(in, in->ranges[n]);
free_empty_cached_ranges(in);
- pthread_mutex_unlock(&demuxer->in->lock);
+ for (int n = 0; n < in->num_streams; n++) {
+ struct demux_stream *ds = in->streams[n]->ds;
+ ds->refreshing = false;
+ ds->eof = false;
+ }
+ in->eof = false;
+ in->seeking = false;
+ pthread_mutex_unlock(&in->lock);
}
// Does some (but not all) things for switching to another range.