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.
This commit is contained in:
wm4 2020-02-16 23:59:21 +01:00
parent aafc434f00
commit 26ec5862b3
1 changed files with 3 additions and 0 deletions

View File

@ -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);