diff --git a/libvo/vo_xvmc.c b/libvo/vo_xvmc.c index a9cc9884e8..735cd0f4ad 100644 --- a/libvo/vo_xvmc.c +++ b/libvo/vo_xvmc.c @@ -1383,10 +1383,7 @@ static int control(uint32_t request, void *data, ... ) *(int*)data = bob_deinterlace; return VO_TRUE; case VOCTRL_SET_DEINTERLACE: - if (*(int*)data == -1) - bob_deinterlace = !bob_deinterlace; - else - bob_deinterlace = *(int*)data; + bob_deinterlace = *(int*)data; return VO_TRUE; case VOCTRL_QUERY_FORMAT: return query_format(*((uint32_t*)data)); diff --git a/mplayer.c b/mplayer.c index d56bf8c36a..6386190e67 100644 --- a/mplayer.c +++ b/mplayer.c @@ -1934,7 +1934,7 @@ static int mp_property_fullscreen(m_option_t* prop,int action,void* arg) { } static int mp_property_deinterlace(m_option_t* prop,int action,void* arg) { - int toggle = -1; + int deinterlace; vf_instance_t *vf; if (!sh_video || !sh_video->vfilter) return M_PROPERTY_UNAVAILABLE; vf = sh_video->vfilter; @@ -1950,7 +1950,9 @@ static int mp_property_deinterlace(m_option_t* prop,int action,void* arg) { return M_PROPERTY_OK; case M_PROPERTY_STEP_UP: case M_PROPERTY_STEP_DOWN: - vf->control(vf, VFCTRL_SET_DEINTERLACE, &toggle); + vf->control(vf, VFCTRL_GET_DEINTERLACE, &deinterlace); + deinterlace = !deinterlace; + vf->control(vf, VFCTRL_SET_DEINTERLACE, &deinterlace); return M_PROPERTY_OK; } return M_PROPERTY_NOT_IMPLEMENTED;