[vlc-devel] [PATCH 2/3] swscale: do not initialize swscale again if only aspect-ratio is different
Rémi Denis-Courmont
remi at remlab.net
Fri Feb 21 20:14:50 CET 2014
This does not seem wrong per se, but why is this useful at all?
Le vendredi 21 février 2014, 19:49:39 Felix Abecassis a écrit :
> ---
> modules/video_chroma/swscale.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/modules/video_chroma/swscale.c b/modules/video_chroma/swscale.c
> index 1751131..11a8ecb 100644
> --- a/modules/video_chroma/swscale.c
> +++ b/modules/video_chroma/swscale.c
> @@ -250,6 +250,13 @@ static int GetSwsCpuMask(void)
> return i_sws_cpu;
> }
>
> +static bool IsFmtSimilar( const video_format_t *p_fmt1, const
> video_format_t *p_fmt2 ) +{
> + return p_fmt1->i_chroma == p_fmt2->i_chroma &&
> + p_fmt1->i_visible_width == p_fmt2->i_visible_width &&
> + p_fmt1->i_visible_height == p_fmt2->i_visible_height;
> +}
> +
> static void FixParameters( int *pi_fmt, bool *pb_has_a, bool *pb_swap_uv,
> vlc_fourcc_t fmt ) {
> switch( fmt )
> @@ -355,8 +362,9 @@ static int Init( filter_t *p_filter )
> const video_format_t *p_fmti = &p_filter->fmt_in.video;
> video_format_t *p_fmto = &p_filter->fmt_out.video;
>
> - if( video_format_IsSimilar( p_fmti, &p_sys->fmt_in ) &&
> - video_format_IsSimilar( p_fmto, &p_sys->fmt_out ) &&
> + /* If only aspect-ratio is different, do not initialize the module
> again. */ + if( IsFmtSimilar( p_fmti, &p_sys->fmt_in ) &&
> + IsFmtSimilar( p_fmto, &p_sys->fmt_out ) &&
> p_sys->ctx )
> {
> return VLC_SUCCESS;
--
Реми Денис-Курмон
http://www.remlab.net/
More information about the vlc-devel
mailing list