summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cfg-common.h1
-rw-r--r--cfg-mencoder.h1
-rw-r--r--cfg-mplayer.h2
-rw-r--r--libmpcodecs/vf_pp.c5
-rw-r--r--m_option.c20
-rw-r--r--m_option.h2
6 files changed, 24 insertions, 7 deletions
diff --git a/cfg-common.h b/cfg-common.h
index a41e015614..bbacaa058f 100644
--- a/cfg-common.h
+++ b/cfg-common.h
@@ -141,6 +141,7 @@
{"oldpp", "MPlayer was compiled without opendivx library\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
#endif
{"npp", "-npp has been removed, use -vop pp and read the fine manual\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
+ {"pphelp", &pp_help, CONF_TYPE_PRINT_INDIRECT, CONF_NOCFG, 0, 0, NULL},
{"vop", &vo_plugin_args, CONF_TYPE_STRING_LIST, 0, 0, 0, NULL},
diff --git a/cfg-mencoder.h b/cfg-mencoder.h
index 51c694999c..1a87f99566 100644
--- a/cfg-mencoder.h
+++ b/cfg-mencoder.h
@@ -14,6 +14,7 @@ extern int use_old_pp;
extern int sws_flags;
extern int readPPOpt(void *, char *arg);
extern void revertPPOpt(void *conf, char* opt);
+extern char *pp_help;
#ifdef HAVE_DIVX4ENCORE
extern struct config divx4opts_conf[];
diff --git a/cfg-mplayer.h b/cfg-mplayer.h
index d28949e8b0..06baf818c3 100644
--- a/cfg-mplayer.h
+++ b/cfg-mplayer.h
@@ -160,7 +160,7 @@ struct config jpeg_conf[]={
extern int sws_flags;
extern int readPPOpt(void *conf, char *arg);
extern void revertPPOpt(void *conf, char* opt);
-
+extern char* pp_help;
/*
* CONF_TYPE_FUNC_FULL :
diff --git a/libmpcodecs/vf_pp.c b/libmpcodecs/vf_pp.c
index 982b4bbd86..16888e0221 100644
--- a/libmpcodecs/vf_pp.c
+++ b/libmpcodecs/vf_pp.c
@@ -152,11 +152,6 @@ static int open(vf_instance_t *vf, char* args){
if(!vf->priv->outfmt) return 0; // no csp match :(
if(args){
- if(!strcmp("help", args)){
- printf("%s", pp_help);
- exit(1);
- }
-
hex_mode= strtol(args, &endptr, 0);
if(*endptr){
name= args;
diff --git a/m_option.c b/m_option.c
index 14da9809c4..95f895ca04 100644
--- a/m_option.c
+++ b/m_option.c
@@ -765,7 +765,11 @@ m_option_type_t m_option_type_func = {
/////////////////// Print
static int parse_print(m_option_t* opt,char *name, char *param, void* dst, int src) {
- mp_msg(MSGT_CFGPARSER, MSGL_INFO, "%s", (char *) opt->p);
+ if(opt->type->flags&M_OPT_TYPE_INDIRECT)
+ mp_msg(MSGT_CFGPARSER, MSGL_INFO, "%s", *(char **) opt->p);
+ else
+ mp_msg(MSGT_CFGPARSER, MSGL_INFO, "%s", (char *) opt->p);
+
if(opt->priv == NULL)
exit(1); // Call something else instead ??
return 1;
@@ -784,6 +788,20 @@ m_option_type_t m_option_type_print = {
NULL
};
+m_option_type_t m_option_type_print_indirect = {
+ "Print",
+ "",
+ 0,
+ M_OPT_TYPE_INDIRECT,
+ parse_print,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
+
/////////////////////// Subconfig
#undef VAL
#define VAL(x) (*(char***)(x))
diff --git a/m_option.h b/m_option.h
index 1b0c4cde62..03cb3645c7 100644
--- a/m_option.h
+++ b/m_option.h
@@ -17,6 +17,7 @@ extern m_option_type_t m_option_type_string_list;
extern m_option_type_t m_option_type_position;
extern m_option_type_t m_option_type_print;
+extern m_option_type_t m_option_type_print_indirect;
extern m_option_type_t m_option_type_subconfig;
extern m_option_type_t m_option_type_imgfmt;
@@ -59,6 +60,7 @@ extern m_option_type_t m_option_type_span;
#define CONF_TYPE_FUNC (&m_option_type_func)
#define CONF_TYPE_FUNC_PARAM (&m_option_type_func_param)
#define CONF_TYPE_PRINT (&m_option_type_print)
+#define CONF_TYPE_PRINT_INDIRECT (&m_option_type_print_indirect)
#define CONF_TYPE_FUNC_FULL (&m_option_type_func_full)
#define CONF_TYPE_SUBCONFIG (&m_option_type_subconfig)
#define CONF_TYPE_STRING_LIST (&m_option_type_string_list)