From 593ad996e0621666d5c6d39c52f8119e5337af03 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 30 Jul 2014 00:22:25 +0200 Subject: player: fix time display wheen seeking past EOF with --keep-open Regression since commit 261506e3. Internally speaking, playback was often not properly terminated, and the main part of handle_keep_open() was just executed once, instead of any time the user tries to seek. This means playback_pts was not set, and the "current time" was determined by the seek target PTS. So fix this aspect of video EOF handling, and also remove the now unnecessary eof_reached field. The pause check before calling pause_player() is a lazy workaround for a strange event feedback loop that happens on EOF with --keep-open. --- player/command.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'player/command.c') diff --git a/player/command.c b/player/command.c index d0b310bade..eedbc0bbc7 100644 --- a/player/command.c +++ b/player/command.c @@ -1079,7 +1079,9 @@ static int mp_property_eof_reached(void *ctx, struct m_property *prop, int action, void *arg) { MPContext *mpctx = ctx; - return m_property_flag_ro(action, arg, mpctx->eof_reached); + bool eof = mpctx->video_status == STATUS_EOF && + mpctx->audio_status == STATUS_EOF; + return m_property_flag_ro(action, arg, eof); } static int mp_property_cache(void *ctx, struct m_property *prop, -- cgit v1.2.3