[FFmpeg-devel] [PATCH 3/5] avfilter/scale: separate exprs parse and eval

Gyan ffmpeg at gyani.pro
Thu Dec 26 11:12:10 EET 2019



On 24-12-2019 11:39 am, Gyan wrote:
>
>
> On 24-12-2019 04:50 am, Michael Niedermayer wrote:
>> On Tue, Dec 17, 2019 at 02:55:06PM +0530, Gyan wrote:
>> [...]
>>> @@ -127,6 +204,22 @@ static av_cold int init_dict(AVFilterContext 
>>> *ctx, AVDictionary **opts)
>>>       if (!scale->h_expr)
>>>           av_opt_set(scale, "h", "ih", 0);
>>>   +    ret = av_expr_parse(&scale->w_pexpr, scale->w_expr,
>>> +                            names,
>>> +                            NULL, NULL, NULL, NULL, 0, ctx);
>>> +    if (ret < 0) {
>>> +        av_log(ctx, AV_LOG_ERROR, "Cannot parse width expression: 
>>> '%s'\n", scale->w_expr);
>>> +        return ret;
>>> +    }
>>> +
>>> +    ret = av_expr_parse(&scale->h_pexpr, scale->h_expr,
>>> +                            names,
>>> +                            NULL, NULL, NULL, NULL, 0, ctx);
>>> +    if (ret < 0) {
>>> +        av_log(ctx, AV_LOG_ERROR, "Cannot parse height expression: 
>>> '%s'\n", scale->h_expr);
>>> +        return ret;
>>> +    }
>>> +
>>> +        if (w) {
>>> +            ret = av_expr_parse(&scale->w_pexpr, scale->w_expr,
>>> +                            names,
>>> +                            NULL, NULL, NULL, NULL, 0, ctx);
>>> +            if (ret < 0) {
>>> +                av_log(ctx, AV_LOG_ERROR, "Cannot parse width 
>>> expression: '%s'\n", scale->w_expr);
>>> +                goto revert;
>>> +            }
>>> +        }
>>> +
>>> +        if (h) {
>>> +            ret = av_expr_parse(&scale->h_pexpr, scale->h_expr,
>>> +                            names,
>>> +                            NULL, NULL, NULL, NULL, 0, ctx);
>>> +            if (ret < 0) {
>>> +                av_log(ctx, AV_LOG_ERROR, "Cannot parse height 
>>> expression: '%s'\n", scale->h_expr);
>>> +                goto revert;
>>> +            }
>>> +        }
>> Duplicate code
>
> init_dict() is not called during command processing since we don't 
> reset any other parameter except for one of width or height. Do you 
> want me to reinit all parameters after a command?

Ping.


More information about the ffmpeg-devel mailing list