summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/en/input.rst5
-rw-r--r--core/command.c22
2 files changed, 25 insertions, 2 deletions
diff --git a/DOCS/man/en/input.rst b/DOCS/man/en/input.rst
index 0422b0b4d3..ae887a2080 100644
--- a/DOCS/man/en/input.rst
+++ b/DOCS/man/en/input.rst
@@ -289,6 +289,11 @@ Input Commands that are Possibly Subject to Change
refer to filters by name in all of the filter chain modification commands.
For ``add``, using an already used label will replace the existing filter.
+ The ``vf`` command shows the list of requested filters on the OSD after
+ changing the filter chain. This is roughly equivalent to
+ ``show_text ${vf}``. Note that auto-inserted filters for format conversion
+ are not shown on the list, only what was requested by the user.
+
.. admonition:: Example for input.conf
- ``a vf set flip`` turn video upside-down on the ``a`` key
diff --git a/core/command.c b/core/command.c
index a9620990a5..e50121fede 100644
--- a/core/command.c
+++ b/core/command.c
@@ -2096,6 +2096,22 @@ static int edit_filters(struct MPContext *mpctx, enum stream_type mediatype,
return r >= 0 ? 0 : -1;
}
+static int edit_filters_osd(struct MPContext *mpctx, enum stream_type mediatype,
+ const char *cmd, const char *arg, bool on_osd)
+{
+ int r = edit_filters(mpctx, mediatype, cmd, arg);
+ if (on_osd) {
+ if (r >= 0) {
+ const char *prop = filter_opt[mediatype];
+ show_property_osd(mpctx, prop, MP_ON_OSD_MSG);
+ } else {
+ set_osd_tmsg(mpctx, OSD_MSG_TEXT, 1, mpctx->opts->osd_duration,
+ "Changing filters failed!");
+ }
+ }
+ return r;
+}
+
static void change_video_filters(MPContext *mpctx, const char *cmd,
const char *arg)
{
@@ -2623,11 +2639,13 @@ void run_command(MPContext *mpctx, mp_cmd_t *cmd)
break;
case MP_CMD_AF:
- edit_filters(mpctx, STREAM_AUDIO, cmd->args[0].v.s, cmd->args[1].v.s);
+ edit_filters_osd(mpctx, STREAM_AUDIO, cmd->args[0].v.s,
+ cmd->args[1].v.s, msg_osd);
break;
case MP_CMD_VF:
- edit_filters(mpctx, STREAM_VIDEO, cmd->args[0].v.s, cmd->args[1].v.s);
+ edit_filters_osd(mpctx, STREAM_VIDEO, cmd->args[0].v.s,
+ cmd->args[1].v.s, msg_osd);
break;
case MP_CMD_COMMAND_LIST: {