Commit d6e400f2 authored by Tristan Matthews's avatar Tristan Matthews

swscale: all 4 planes must be set, even if alpha is dropped

Fixes #15140
parent 3a37abef
......@@ -661,8 +661,13 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
else if( p_sys->b_copy )
SwapUV( p_dst, p_src );
else
{
/* Even if alpha is unused, swscale expects the pointer to be set */
const int n_planes = !p_sys->ctxA && (p_src->i_planes == 4 ||
p_dst->i_planes == 4) ? 4 : 3;
Convert( p_filter, p_sys->ctx, p_dst, p_src, p_fmti->i_visible_height,
3, p_sys->b_swap_uvi, p_sys->b_swap_uvo );
n_planes, p_sys->b_swap_uvi, p_sys->b_swap_uvo );
}
if( p_sys->ctxA )
{
/* We extract the A plane to rescale it, and then we reinject it. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment