Mercurial > mplayer.hg
changeset 22757:6c3b8d7724f7
allows to de- and reactivate kerndeint on the fly
author | cehoyos |
---|---|
date | Thu, 22 Mar 2007 10:06:34 +0000 |
parents | 3d6a64f3d28f |
children | 4bd9ae216640 |
files | libmpcodecs/vf_kerndeint.c |
diffstat | 1 files changed, 22 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpcodecs/vf_kerndeint.c Thu Mar 22 10:01:20 2007 +0000 +++ b/libmpcodecs/vf_kerndeint.c Thu Mar 22 10:06:34 2007 +0000 @@ -43,6 +43,7 @@ int thresh; int sharp; int twoway; + int do_deinterlace; }; @@ -97,11 +98,15 @@ 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 @@ 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 @@ vf->priv->thresh = 10; vf->priv->sharp = 0; vf->priv->twoway = 0; + vf->priv->do_deinterlace=1; if (args) {