summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/en/options.rst3
-rw-r--r--core/mplayer.c28
2 files changed, 21 insertions, 10 deletions
diff --git a/DOCS/man/en/options.rst b/DOCS/man/en/options.rst
index 516d485c7e..2d50da0045 100644
--- a/DOCS/man/en/options.rst
+++ b/DOCS/man/en/options.rst
@@ -2119,6 +2119,9 @@
Set the window title. Properties are expanded on playback start.
(See property_expansion_.)
+ *NOTE*: There is a danger of this causing significant CPU usage,
+ depending on the properties used and the window manager.
+
--tv=<option1:option2:...>
This option tunes various properties of the TV capture module. For
watching TV with mpv, use ``tv://`` or ``tv://<channel_number>`` or
diff --git a/core/mplayer.c b/core/mplayer.c
index 4d6afd656c..b6d2923818 100644
--- a/core/mplayer.c
+++ b/core/mplayer.c
@@ -1117,6 +1117,22 @@ static bool mp_get_cache_idle(struct MPContext *mpctx)
return idle;
}
+static void vo_update_window_title(struct MPContext *mpctx)
+{
+ if (!mpctx->video_out)
+ return;
+ char *title = mp_property_expand_string(mpctx, mpctx->opts.wintitle);
+ if (!mpctx->video_out->window_title ||
+ strcmp(title, mpctx->video_out->window_title))
+ {
+ talloc_free(mpctx->video_out->window_title);
+ mpctx->video_out->window_title = talloc_steal(mpctx, title);
+ vo_control(mpctx->video_out, VOCTRL_UPDATE_WINDOW_TITLE, title);
+ } else {
+ talloc_free(title);
+ }
+}
+
#define saddf(var, ...) (*(var) = talloc_asprintf_append((*var), __VA_ARGS__))
// append time in the hh:mm:ss format (plus fractions if wanted)
@@ -1164,6 +1180,8 @@ static void print_status(struct MPContext *mpctx)
struct MPOpts *opts = &mpctx->opts;
sh_video_t * const sh_video = mpctx->sh_video;
+ vo_update_window_title(mpctx);
+
if (opts->quiet)
return;
@@ -2358,16 +2376,6 @@ static int fill_audio_out_buffers(struct MPContext *mpctx, double endpts)
return -partial_fill;
}
-static void vo_update_window_title(struct MPContext *mpctx)
-{
- if (!mpctx->video_out)
- return;
- char *title = mp_property_expand_string(mpctx, mpctx->opts.wintitle);
- talloc_free(mpctx->video_out->window_title);
- mpctx->video_out->window_title = talloc_steal(mpctx, title);
- vo_control(mpctx->video_out, VOCTRL_UPDATE_WINDOW_TITLE, title);
-}
-
static void update_fps(struct MPContext *mpctx)
{
#ifdef CONFIG_ENCODING