From 0885f4e5b560ced9e2a37f3057f8167510195750 Mon Sep 17 00:00:00 2001 From: Uoti Urpala Date: Fri, 25 Apr 2008 13:58:12 +0300 Subject: Move vf_settings to options struct --- cfg-common-opts.h | 2 +- cfg-common.h | 1 - libmpcodecs/vf.c | 5 +++-- libmpcodecs/vf.h | 3 ++- m_option.h | 1 + mencoder.c | 2 +- mplayer.c | 8 ++++---- options.h | 1 + 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; -- cgit v1.2.3