From 26ec5862b3edff2d41726fec0619cdee07967b67 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 16 Feb 2020 23:59:21 +0100 Subject: demux: update file-size property even when paused While paused, the decoders typically stop reading data from the demuxer. But for some reason, the file size is returned as a public field in struct demuxer (wat...), and updated only when the packet reading function is called. This caused the file size property to always return the same value when paused, even though the demuxer thread was reading new data, and the internal file size was updated. Fix with a simple hack. --- demux/demux.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'demux') diff --git a/demux/demux.c b/demux/demux.c index 8360b9069f..f6c7679220 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -3078,6 +3078,9 @@ void demux_update(demuxer_t *demuxer, double pts) if (!in->threading) update_cache(in); + // This implies this function is actually called from "the" user thread. + in->d_user->filesize = in->stream_size; + pts = MP_ADD_PTS(pts, -in->ts_offset); struct timed_metadata *prev = lookup_timed_metadata(in, in->last_playback_pts); -- cgit v1.2.3