mirror of
https://github.com/mpv-player/mpv
synced 2024-12-27 17:42:17 +00:00
Always keep a backup of the expand values from the command-line, so values
will be recalculated correctly e.g. after aspect change and -vf expand=aspect=4/3 command line. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29666 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
927afdcf6d
commit
d5d5bbbb35
@ -24,6 +24,13 @@
|
||||
#include "m_struct.h"
|
||||
|
||||
static struct vf_priv_s {
|
||||
// These four values are a backup of the values parsed from the command line.
|
||||
// This is necessary so that we do not get a mess upon filter reinit due to
|
||||
// e.g. aspect changes and with only aspect specified on the command line,
|
||||
// where we would otherwise use the values calculated for a different aspect
|
||||
// instead of recalculating them again.
|
||||
int cfg_exp_w, cfg_exp_h;
|
||||
int cfg_exp_x, cfg_exp_y;
|
||||
int exp_w,exp_h;
|
||||
int exp_x,exp_y;
|
||||
int osd;
|
||||
@ -194,6 +201,10 @@ static int config(struct vf_instance_s* vf,
|
||||
return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt);
|
||||
}
|
||||
if (outfmt == IMGFMT_IF09) return 0;
|
||||
vf->priv->exp_x = vf->priv->cfg_exp_x;
|
||||
vf->priv->exp_y = vf->priv->cfg_exp_y;
|
||||
vf->priv->exp_w = vf->priv->cfg_exp_w;
|
||||
vf->priv->exp_h = vf->priv->cfg_exp_h;
|
||||
// calculate the missing parameters:
|
||||
#if 0
|
||||
if(vf->priv->exp_w<width) vf->priv->exp_w=width;
|
||||
@ -432,10 +443,10 @@ static int open(vf_instance_t *vf, char* args){
|
||||
vf->get_image=get_image;
|
||||
vf->put_image=put_image;
|
||||
mp_msg(MSGT_VFILTER, MSGL_INFO, "Expand: %d x %d, %d ; %d, osd: %d, aspect: %lf, round: %d\n",
|
||||
vf->priv->exp_w,
|
||||
vf->priv->exp_h,
|
||||
vf->priv->exp_x,
|
||||
vf->priv->exp_y,
|
||||
vf->priv->cfg_exp_w,
|
||||
vf->priv->cfg_exp_h,
|
||||
vf->priv->cfg_exp_x,
|
||||
vf->priv->cfg_exp_y,
|
||||
vf->priv->osd,
|
||||
vf->priv->aspect,
|
||||
vf->priv->round);
|
||||
@ -444,10 +455,10 @@ static int open(vf_instance_t *vf, char* args){
|
||||
|
||||
#define ST_OFF(f) M_ST_OFF(struct vf_priv_s,f)
|
||||
static m_option_t vf_opts_fields[] = {
|
||||
{"w", ST_OFF(exp_w), CONF_TYPE_INT, 0, 0 ,0, NULL},
|
||||
{"h", ST_OFF(exp_h), CONF_TYPE_INT, 0, 0 ,0, NULL},
|
||||
{"x", ST_OFF(exp_x), CONF_TYPE_INT, M_OPT_MIN, -1, 0, NULL},
|
||||
{"y", ST_OFF(exp_y), CONF_TYPE_INT, M_OPT_MIN, -1, 0, NULL},
|
||||
{"w", ST_OFF(cfg_exp_w), CONF_TYPE_INT, 0, 0 ,0, NULL},
|
||||
{"h", ST_OFF(cfg_exp_h), CONF_TYPE_INT, 0, 0 ,0, NULL},
|
||||
{"x", ST_OFF(cfg_exp_x), CONF_TYPE_INT, M_OPT_MIN, -1, 0, NULL},
|
||||
{"y", ST_OFF(cfg_exp_y), CONF_TYPE_INT, M_OPT_MIN, -1, 0, NULL},
|
||||
{"osd", ST_OFF(osd), CONF_TYPE_FLAG, 0 , 0, 1, NULL},
|
||||
{"aspect", ST_OFF(aspect), CONF_TYPE_DOUBLE, M_OPT_MIN, 0, 0, NULL},
|
||||
{"round", ST_OFF(round), CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL},
|
||||
|
Loading…
Reference in New Issue
Block a user