[FFmpeg-devel] [PATCH] avfilter/metadata: add intuitive labels for metadata values

Gyan Doshi ffmpeg at gyani.pro
Sat May 15 10:03:17 EEST 2021


Plan to push tonight.

On 2021-05-14 15:53, Gyan Doshi wrote:
> ---
>   doc/filters.texi         | 4 ++--
>   libavfilter/f_metadata.c | 8 ++++++--
>   2 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/doc/filters.texi b/doc/filters.texi
> index ed0ffe91fc..1a8843fe4f 100644
> --- a/doc/filters.texi
> +++ b/doc/filters.texi
> @@ -25296,10 +25296,10 @@ The expression is evaluated through the eval API and can contain the following
>   constants:
>   
>   @table @option
> - at item VALUE1
> + at item VALUE1, FRAMEVAL
>   Float representation of @code{value} from metadata key.
>   
> - at item VALUE2
> + at item VALUE2, USERVAL
>   Float representation of @code{value} as supplied by user in @code{value} option.
>   @end table
>   
> diff --git a/libavfilter/f_metadata.c b/libavfilter/f_metadata.c
> index 5fec7c3c56..e7c7b00118 100644
> --- a/libavfilter/f_metadata.c
> +++ b/libavfilter/f_metadata.c
> @@ -61,12 +61,16 @@ enum MetadataFunction {
>   static const char *const var_names[] = {
>       "VALUE1",
>       "VALUE2",
> +    "FRAMEVAL",
> +    "USERVAL",
>       NULL
>   };
>   
>   enum var_name {
>       VAR_VALUE1,
>       VAR_VALUE2,
> +    VAR_FRAMEVAL,
> +    VAR_USERVAL,
>       VAR_VARS_NB
>   };
>   
> @@ -172,8 +176,8 @@ static int parse_expr(MetadataContext *s, const char *value1, const char *value2
>       if (sscanf(value1, "%lf", &f1) + sscanf(value2, "%lf", &f2) != 2)
>           return 0;
>   
> -    s->var_values[VAR_VALUE1] = f1;
> -    s->var_values[VAR_VALUE2] = f2;
> +    s->var_values[VAR_VALUE1] = s->var_values[VAR_FRAMEVAL] = f1;
> +    s->var_values[VAR_VALUE2] = s->var_values[VAR_USERVAL]  = f2;
>   
>       return av_expr_eval(s->expr, s->var_values, NULL);
>   }



More information about the ffmpeg-devel mailing list