[vlc-devel] [PATCH] Support VOUT_ASPECT_CHANGE in deinterlace filter

Marian Ďurkovič md at bts.sk
Fri Sep 12 20:54:00 CEST 2008


> You could probably simply use
>  p_sys->p_vout = vout_Request( p_vout, p_sys->p_vout, &p_vout->fmt_in )
> and everything should be done for you.
> 
> Could you test and report back ?

Hmm, it's behaves strange.

With:

    if( p_vout->i_changes & VOUT_ASPECT_CHANGE )
    {
        p_vout->i_changes &= ~VOUT_ASPECT_CHANGE;
        p_sys->p_vout = vout_Request( p_vout, p_sys->p_vout, &p_vout->fmt_in);
    }

it breaks AR for DISCARD and MEAN.

And with:

    if( p_vout->i_changes & VOUT_ASPECT_CHANGE )
    {
        p_vout->i_changes &= ~VOUT_ASPECT_CHANGE;
        p_sys->p_vout = vout_Request( p_vout, p_sys->p_vout, &p_vout->fmt_in);
        if( p_vout->p_sys->b_half_height )
        {
            p_vout->fmt_out.i_sar_den *= 2;
            p_sys->p_vout->fmt_in.i_sar_den *= 2;
        }
    }

it destroys and reopens new vout and thus triggers a crash.

Anyway, when I look at modules/video_output/x11/xcommon.c,
VOUT_ASPECT_CHANGE just modifies those variables I change in my patch
plus the variables that are changed in the next few lines of deinterlace
filter. So the vout_Request is probably unnecessarily complicated.


	With kind regards,

            M.



More information about the vlc-devel mailing list