summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip Langdale <philipl@overt.org>2021-03-06 16:08:17 -0800
committerJan Ekström <jeebjp@gmail.com>2021-03-28 19:46:32 +0300
commitc8f474e3e5005373796f2a9fea77aa57ffcd7637 (patch)
treea834ea488c4b0bc2c60d620fbbd2baca3c22d213
parent3f006eced47b35b7d752fdc19c22a7f39f970975 (diff)
downloadmpv-c8f474e3e5005373796f2a9fea77aa57ffcd7637.tar.bz2
mpv-c8f474e3e5005373796f2a9fea77aa57ffcd7637.tar.xz
demux: Move demuxer help to new standard mechanism
Previously, demux help was handled as a special case in main.c and this is no longer necessary.
-rw-r--r--demux/demux.c5
-rw-r--r--demux/demux.h2
-rw-r--r--options/options.c7
-rw-r--r--player/main.c8
4 files changed, 9 insertions, 13 deletions
diff --git a/demux/demux.c b/demux/demux.c
index 348d665d49..5fa0528d3d 100644
--- a/demux/demux.c
+++ b/demux/demux.c
@@ -2827,7 +2827,7 @@ done:
return out_pkt;
}
-void demuxer_help(struct mp_log *log)
+int demuxer_help(struct mp_log *log, const m_option_t *opt, struct bstr name)
{
int i;
@@ -2837,6 +2837,9 @@ void demuxer_help(struct mp_log *log)
mp_info(log, "%10s %s\n",
demuxer_list[i]->name, demuxer_list[i]->desc);
}
+ mp_info(log, "\n");
+
+ return M_OPT_EXIT;
}
static const char *d_level(enum demux_check level)
diff --git a/demux/demux.h b/demux/demux.h
index 80c9a80fc7..ed414f1816 100644
--- a/demux/demux.h
+++ b/demux/demux.h
@@ -293,7 +293,7 @@ void demuxer_select_track(struct demuxer *demuxer, struct sh_stream *stream,
void demuxer_refresh_track(struct demuxer *demuxer, struct sh_stream *stream,
double ref_pts);
-void demuxer_help(struct mp_log *log);
+int demuxer_help(struct mp_log *log, const m_option_t *opt, struct bstr name);
int demuxer_add_attachment(struct demuxer *demuxer, char *name,
char *type, void *data, size_t data_size);
diff --git a/options/options.c b/options/options.c
index 8aadc87ab9..2a168da4e5 100644
--- a/options/options.c
+++ b/options/options.c
@@ -46,6 +46,7 @@
#include "player/core.h"
#include "player/command.h"
#include "stream/stream.h"
+#include "demux/demux.h"
#if HAVE_DRM
#include "video/out/drm_common.h"
@@ -514,9 +515,9 @@ static const m_option_t mp_opts[] = {
#endif
// demuxer.c - select audio/sub file/demuxer
- {"demuxer", OPT_STRING(demuxer_name)},
- {"audio-demuxer", OPT_STRING(audio_demuxer_name)},
- {"sub-demuxer", OPT_STRING(sub_demuxer_name)},
+ {"demuxer", OPT_STRING(demuxer_name), .help = demuxer_help},
+ {"audio-demuxer", OPT_STRING(audio_demuxer_name), .help = demuxer_help},
+ {"sub-demuxer", OPT_STRING(sub_demuxer_name), .help = demuxer_help},
{"demuxer-thread", OPT_FLAG(demuxer_thread)},
{"demuxer-termination-timeout", OPT_DOUBLE(demux_termination_timeout)},
{"demuxer-cache-wait", OPT_FLAG(demuxer_cache_wait)},
diff --git a/player/main.c b/player/main.c
index 71f5d14b53..58be00b6d8 100644
--- a/player/main.c
+++ b/player/main.c
@@ -54,7 +54,6 @@
#include "input/input.h"
#include "audio/out/ao.h"
-#include "demux/demux.h"
#include "misc/thread_tools.h"
#include "sub/osd.h"
#include "test/tests.h"
@@ -202,13 +201,6 @@ static bool handle_help_options(struct MPContext *mpctx)
{
struct MPOpts *opts = mpctx->opts;
struct mp_log *log = mpctx->log;
- if ((opts->demuxer_name && strcmp(opts->demuxer_name, "help") == 0) ||
- (opts->audio_demuxer_name && strcmp(opts->audio_demuxer_name, "help") == 0) ||
- (opts->sub_demuxer_name && strcmp(opts->sub_demuxer_name, "help") == 0)) {
- demuxer_help(log);
- MP_INFO(mpctx, "\n");
- return true;
- }
if (opts->ao_opts->audio_device &&
strcmp(opts->ao_opts->audio_device, "help") == 0)
{