summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/msg.c13
-rw-r--r--common/msg_control.h1
-rw-r--r--player/main.c5
3 files changed, 19 insertions, 0 deletions
diff --git a/common/msg.c b/common/msg.c
index 875d933822..cf2bd5c242 100644
--- a/common/msg.c
+++ b/common/msg.c
@@ -537,7 +537,20 @@ void mp_msg_force_stderr(struct mpv_global *global, bool force_stderr)
{
struct mp_log_root *root = global->log->root;
+ pthread_mutex_lock(&mp_msg_lock);
root->force_stderr = force_stderr;
+ pthread_mutex_unlock(&mp_msg_lock);
+}
+
+bool mp_msg_has_log_file(struct mpv_global *global)
+{
+ struct mp_log_root *root = global->log->root;
+
+ pthread_mutex_lock(&mp_msg_lock);
+ bool res = !!root->log_file;
+ pthread_mutex_unlock(&mp_msg_lock);
+
+ return res;
}
void mp_msg_uninit(struct mpv_global *global)
diff --git a/common/msg_control.h b/common/msg_control.h
index 56091fdc2d..4b67190155 100644
--- a/common/msg_control.h
+++ b/common/msg_control.h
@@ -9,6 +9,7 @@ void mp_msg_uninit(struct mpv_global *global);
void mp_msg_update_msglevels(struct mpv_global *global);
void mp_msg_force_stderr(struct mpv_global *global, bool force_stderr);
bool mp_msg_has_status_line(struct mpv_global *global);
+bool mp_msg_has_log_file(struct mpv_global *global);
void mp_msg_flush_status_line(struct mp_log *log);
diff --git a/player/main.c b/player/main.c
index 2045e3b40a..fa00f0a463 100644
--- a/player/main.c
+++ b/player/main.c
@@ -114,6 +114,8 @@ static bool cas_terminal_owner(struct MPContext *old, struct MPContext *new)
void mp_update_logging(struct MPContext *mpctx, bool preinit)
{
+ bool had_log_file = mp_msg_has_log_file(mpctx->global);
+
mp_msg_update_msglevels(mpctx->global);
bool enable = mpctx->opts->use_terminal;
@@ -128,6 +130,9 @@ void mp_update_logging(struct MPContext *mpctx, bool preinit)
}
}
+ if (mp_msg_has_log_file(mpctx->global) && !had_log_file)
+ mp_print_version(mpctx->log, false); // for log-file=... in config files
+
if (enabled && !preinit && mpctx->opts->consolecontrols)
terminal_setup_getch(mpctx->input);
}