diff --git a/libswscale/utils.c b/libswscale/utils.c index eebd40c79a..eb690740fd 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1566,17 +1566,17 @@ struct SwsContext *sws_getCachedContext(struct SwsContext *context, if (!param) param = default_param; - if (context) { - if (context->srcW != srcW || context->srcH != srcH || + if (context && + (context->srcW != srcW || context->srcH != srcH || context->srcFormat != srcFormat || context->dstW != dstW || context->dstH != dstH || context->dstFormat != dstFormat || context->flags != flags || - context->param[0] != param[0] || context->param[1] != param[1]) + context->param[0] != param[0] || context->param[1] != param[1])) { sws_freeContext(context); context = NULL; } - } + if (!context) { return sws_getContext(srcW, srcH, srcFormat, dstW, dstH, dstFormat, flags,