allows to de- and reactivate kerndeint on the fly

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22775 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
cehoyos 2007-03-22 10:06:34 +00:00
parent 65b9ac6426
commit 90a29e3ade
1 changed files with 22 additions and 2 deletions

View File

@ -43,6 +43,7 @@ struct vf_priv_s {
int thresh;
int sharp;
int twoway;
int do_deinterlace;
};
@ -97,11 +98,15 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi, double pts){
int map = vf->priv->map;
int sharp = vf->priv->sharp;
int twoway = vf->priv->twoway;
mp_image_t *dmpi, *pmpi;
mp_image_t *dmpi=vf_get_image(vf->next,mpi->imgfmt,
if(!vf->priv->do_deinterlace)
return vf_next_put_image(vf, mpi, pts);
dmpi=vf_get_image(vf->next,mpi->imgfmt,
MP_IMGTYPE_IP, MP_IMGFLAG_ACCEPT_STRIDE,
mpi->w,mpi->h);
mp_image_t *pmpi=vf_get_image(vf->next,mpi->imgfmt,
pmpi=vf_get_image(vf->next,mpi->imgfmt,
MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE,
mpi->w,mpi->h);
if(!dmpi) return 0;
@ -287,8 +292,22 @@ static int query_format(struct vf_instance_s* vf, unsigned int fmt){
return 0;
}
static int control(struct vf_instance_s* vf, int request, void* data){
switch (request)
{
case VFCTRL_GET_DEINTERLACE:
*(int*)data = vf->priv->do_deinterlace;
return CONTROL_OK;
case VFCTRL_SET_DEINTERLACE:
vf->priv->do_deinterlace = *(int*)data;
return CONTROL_OK;
}
return vf_next_control (vf, request, data);
}
static int open(vf_instance_t *vf, char* args){
vf->control=control;
vf->config=config;
vf->put_image=put_image;
vf->query_format=query_format;
@ -303,6 +322,7 @@ static int open(vf_instance_t *vf, char* args){
vf->priv->thresh = 10;
vf->priv->sharp = 0;
vf->priv->twoway = 0;
vf->priv->do_deinterlace=1;
if (args)
{