[FFmpeg-devel] [PATCH] fftools/cmdutils: Allow expressions for opt_cpucount()

James Almer jamrial at gmail.com
Sat Jul 17 20:22:21 EEST 2021


On 7/17/2021 1:21 PM, Michael Niedermayer wrote:
> This allows for example
> "-cpucount cpu/2" to use half the available CPUs
> 
> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> ---
>   fftools/cmdutils.c | 9 ++++++---
>   1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
> index 6e875104fd..a902354669 100644
> --- a/fftools/cmdutils.c
> +++ b/fftools/cmdutils.c
> @@ -859,11 +859,12 @@ int opt_cpucount(void *optctx, const char *opt, const char *arg)
>       int ret;
>       int count;
>   
> -    static const AVOption opts[] = {
> -        {"count", NULL, 0, AV_OPT_TYPE_INT, { .i64 = -1}, -1, INT_MAX, NULL},
> +    AVOption opts[] = {
> +        {"count", NULL, 0, AV_OPT_TYPE_INT, { .i64 = -1}, -1, INT_MAX, 0, "val"},
> +        {"cpu", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = -1}, 0, 0, 0, "val"},
>           {NULL},
>       };
> -    static const AVClass class = {
> +    const AVClass class = {
>           .class_name = "cpucount",
>           .item_name  = av_default_item_name,
>           .option     = opts,
> @@ -871,6 +872,8 @@ int opt_cpucount(void *optctx, const char *opt, const char *arg)
>       };
>       const AVClass *pclass = &class;
>   
> +    opts[1].default_val.i64 = av_cpu_count();

You could set this directly as the default value instead of -1 above.

Should be ok either way.

> +
>       ret = av_opt_eval_int(&pclass, opts, arg, &count);
>   
>       if (!ret) {
> 



More information about the ffmpeg-devel mailing list