summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cfg-common-opts.h2
-rw-r--r--cfg-common.h1
-rw-r--r--libmpcodecs/vf.c5
-rw-r--r--libmpcodecs/vf.h3
-rw-r--r--m_option.h1
-rw-r--r--mencoder.c2
-rw-r--r--mplayer.c8
-rw-r--r--options.h1
8 files changed, 13 insertions, 10 deletions
diff --git a/cfg-common-opts.h b/cfg-common-opts.h
index 6401bf566b..36e43f65c8 100644
--- a/cfg-common-opts.h
+++ b/cfg-common-opts.h
@@ -203,7 +203,7 @@
{"af-adv", audio_filter_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
{"vop", "-vop has been removed, use -vf instead.\n", CONF_TYPE_PRINT, CONF_NOCFG ,0,0, NULL},
- {"vf*", &vf_settings, CONF_TYPE_OBJ_SETTINGS_LIST, 0, 0, 0, &vf_obj_list},
+ OPT_SETTINGSLIST("vf*", vf_settings, 0, &vf_obj_list),
// select audio/video codec (by name) or codec family (by number):
// {"afm", &audio_family, CONF_TYPE_INT, CONF_MIN, 0, 22, NULL}, // keep ranges in sync
// {"vfm", &video_family, CONF_TYPE_INT, CONF_MIN, 0, 29, NULL}, // with codec-cfg.c
diff --git a/cfg-common.h b/cfg-common.h
index 0e5bc60abc..ae786c6242 100644
--- a/cfg-common.h
+++ b/cfg-common.h
@@ -223,7 +223,6 @@ extern int mf_w;
extern int mf_h;
extern double mf_fps;
extern char * mf_type;
-extern m_obj_settings_t* vf_settings;
extern m_obj_list_t vf_obj_list;
const m_option_t mfopts_conf[]={
diff --git a/libmpcodecs/vf.c b/libmpcodecs/vf.c
index d5281c4737..cdc6ff6352 100644
--- a/libmpcodecs/vf.c
+++ b/libmpcodecs/vf.c
@@ -195,7 +195,6 @@ static const vf_info_t* const filter_list[]={
};
// For the vf option
-m_obj_settings_t* vf_settings = NULL;
const m_obj_list_t vf_obj_list = {
(void**)filter_list,
M_ST_OFF(vf_info_t,name),
@@ -692,7 +691,9 @@ void vf_next_draw_slice(struct vf_instance* vf,unsigned char** src, int * stride
//============================================================================
-vf_instance_t* append_filters(vf_instance_t* last){
+vf_instance_t *append_filters(vf_instance_t* last,
+ struct m_obj_settings *vf_settings)
+{
struct MPOpts *opts = last->opts;
vf_instance_t* vf;
int i;
diff --git a/libmpcodecs/vf.h b/libmpcodecs/vf.h
index 68b4fb468f..58cb74188a 100644
--- a/libmpcodecs/vf.h
+++ b/libmpcodecs/vf.h
@@ -118,7 +118,8 @@ int vf_next_query_format(struct vf_instance* vf, unsigned int fmt);
int vf_next_put_image(struct vf_instance* vf,mp_image_t *mpi, double pts);
void vf_next_draw_slice (struct vf_instance* vf, unsigned char** src, int* stride, int w,int h, int x, int y);
-vf_instance_t* append_filters(vf_instance_t* last);
+struct m_obj_settings;
+vf_instance_t* append_filters(vf_instance_t* last, struct m_obj_settings *vf_settings);
void vf_uninit_filter(vf_instance_t* vf);
void vf_uninit_filter_chain(vf_instance_t* vf);
diff --git a/m_option.h b/m_option.h
index 83d7596e79..f72b223516 100644
--- a/m_option.h
+++ b/m_option.h
@@ -505,5 +505,6 @@ m_option_free(const m_option_t* opt,void* dst) {
#define OPT_INTRANGE(optname, varname, flags, min, max) {optname, NULL, &m_option_type_int, (flags)|CONF_RANGE, min, max, NULL, 1, offsetof(struct MPOpts, varname)}
#define OPT_FLOATRANGE(optname, varname, flags, min, max) {optname, NULL, &m_option_type_float, (flags)|CONF_RANGE, min, max, NULL, 1, offsetof(struct MPOpts, varname)}
#define OPT_STRING(optname, varname, flags) {optname, NULL, &m_option_type_string, flags, 0, 0, NULL, 1, offsetof(struct MPOpts, varname)}
+#define OPT_SETTINGSLIST(optname, varname, flags, objlist) {optname, NULL, &m_option_type_obj_settings_list, flags, 0, 0, objlist, 1, offsetof(struct MPOpts, varname)}
#endif /* MPLAYER_M_OPTION_H */
diff --git a/mencoder.c b/mencoder.c
index b02111c1d5..54dc1c0776 100644
--- a/mencoder.c
+++ b/mencoder.c
@@ -893,7 +893,7 @@ default: {
char* vf_args[] = { "osd", "1", NULL };
sh_video->vfilter=vf_open_filter(&opts, sh_video->vfilter,"expand",vf_args);
}
- sh_video->vfilter=append_filters(sh_video->vfilter);
+ sh_video->vfilter=append_filters(sh_video->vfilter, opts.vf_settings);
mp_msg(MSGT_CPLAYER,MSGL_INFO,"==========================================================================\n");
init_best_video_codec(sh_video,video_codec_list,video_fm_list);
diff --git a/mplayer.c b/mplayer.c
index d2bee07ce4..73b5a18995 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -2170,9 +2170,9 @@ int reinit_video_chain(struct MPContext *mpctx)
if(ass_enabled) {
int i;
int insert = 1;
- if (vf_settings)
- for (i = 0; vf_settings[i].name; ++i)
- if (strcmp(vf_settings[i].name, "ass") == 0) {
+ if (opts->vf_settings)
+ for (i = 0; opts->vf_settings[i].name; ++i)
+ if (strcmp(opts->vf_settings[i].name, "ass") == 0) {
insert = 0;
break;
}
@@ -2189,7 +2189,7 @@ int reinit_video_chain(struct MPContext *mpctx)
}
#endif
- sh_video->vfilter=(void*)append_filters(sh_video->vfilter);
+ sh_video->vfilter=(void*)append_filters(sh_video->vfilter, opts->vf_settings);
#ifdef USE_ASS
if (ass_enabled)
diff --git a/options.h b/options.h
index cafe93fc7b..3665383a46 100644
--- a/options.h
+++ b/options.h
@@ -28,6 +28,7 @@ typedef struct MPOpts {
int video_id;
int sub_id;
float playback_speed;
+ struct m_obj_settings *vf_settings;
int softzoom;
float movie_aspect;
float screen_size_xy;