[FFmpeg-devel] [PATCH] avutil/eval: add function to track variable use

Gyan ffmpeg at gyani.pro
Tue Nov 12 15:52:47 EET 2019



On 09-11-2019 09:39 pm, Michael Niedermayer wrote:
> On Tue, Nov 05, 2019 at 06:35:54PM +0530, Gyan wrote:
>>
>> On 05-11-2019 03:55 pm, Michael Niedermayer wrote:
>>> On Tue, Nov 05, 2019 at 10:13:52AM +0530, Gyan wrote:
>>>> On 05-11-2019 04:35 am, Michael Niedermayer wrote:
>>>>> On Sun, Nov 03, 2019 at 11:14:25AM +0530, Gyan wrote:
>>>>>> Helps better identification of expr eval failures.
>>>>>>
>>>>>> Gyan
>>>>>>   eval.c    |   21 +++++++++++++++++++++
>>>>>>   eval.h    |   10 ++++++++++
>>>>>>   version.h |    4 ++--
>>>>>>   3 files changed, 33 insertions(+), 2 deletions(-)
>>>>>> 3dd142baa0144fd324eb9da8a9932cfd7ab2cd98  0001-avutil-eval-add-function-to-track-variable-use.patch
>>>>>>  From 19bce329464676f071707b99575f80e5abe1cd4c Mon Sep 17 00:00:00 2001
>>>>>> From: Gyan Doshi <ffmpeg at gyani.pro>
>>>>>> Date: Sat, 2 Nov 2019 20:16:42 +0530
>>>>>> Subject: [PATCH] avutil/eval: add function to track variable use
>>>>>>
>>>>>> Helps avoid multiple evals of cross-referenced expressions
>>>>>> and catch the use of non-applicable variables with respect
>>>>>> to eval or special mode in filters
>>>>> Maybe you should provide more details of the use case of this, maybe
>>>>> with an example. Because it seems not completely obvious
>>>> An example of a cross-referenced expression would be 'y=x+rand(10)'.
>>>> Normally in filters, X would be evaluated first, then Y, then X again. The
>>>> 2nd eval of X will overwrite the first and can generate a different value.
>>>> With this func, we can avoid the 2nd eval.
>>>>
>>>> I'm in the process of modifying the scale filter to allow 'n', 't', 'pos'
>>>> variables in frame eval mode (it already supports dynamic output based on
>>>> incoming frame changes) and I would like to catch their presence in init
>>>> mode, since av_expr_eval will fail. Now, it can also fail due to circularly
>>>> referenced expressions e.g. 'x=y+10' and 'y=x+10' and there's no way to
>>>> detect whether it's this case or if inapplicable variables have been used.
>>> please add this (or similar information) to the commit message
>> Done.
>>
>> Thanks,
>> Gyan
>>   eval.c    |   21 +++++++++++++++++++++
>>   eval.h    |   10 ++++++++++
>>   version.h |    4 ++--
>>   3 files changed, 33 insertions(+), 2 deletions(-)
>> 740f6166ddb4b1a581aee7c34edd05d328265df1  v2-0001-avutil-eval-add-function-to-track-variable-use.patch
>>  From 2931fa96b8e7f80581ded280907655753e54def0 Mon Sep 17 00:00:00 2001
>> From: Gyan Doshi <ffmpeg at gyani.pro>
>> Date: Sat, 2 Nov 2019 20:16:42 +0530
>> Subject: [PATCH v2 1/2] avutil/eval: add function to track variable use
> i think the patch is ok but i think nicolas wants to wait
> with pushing this until there is a 2nd patch which uses the new
> function

Scale patch posted -  https://patchwork.ffmpeg.org/patch/16222/

Gyan


More information about the ffmpeg-devel mailing list