• Gyan Doshi's avatar
    avutil/eval: add function to track variable use · 1c23abc8
    Gyan Doshi authored
    1)Some filters allow cross-referenced expressions e.g. x=y+10. In
    such cases, filters evaluate expressions multiple times for
    successful evaluation of all expressions. If the expression for one or
    more variables contains a RNG, the result may vary across evaluation
    leading to inconsistent values across the cross-referenced expressions.
    
    2)A related case is circular expressions e.g. x=y+10 and y=x+10 which
    cannot be succesfully resolved.
    
    3)Certain filter variables may only be applicable in specific eval modes
    and lead to a failure of evaluation in other modes e.g. pts is only
    relevant for frame eval mode.
    
    At present, there is no reliable means to identify these occurrences and
    thus the error messages provided are broad or inaccurate. The helper
    function introduced - av_expr_count_vars - allows developers to identify
    the use and count of variables in expressions and thus tailor the error
    message, allow for a graceful fallback and/or decide evaluation order.
    1c23abc8
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
ffbuild Loading commit data...
fftools Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
configure Loading commit data...