From d58ed64a8953d07f33259317a2ea5856d0c91dfd Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Mon, 6 Jun 2011 15:00:25 +0200 Subject: [PATCH] eval: add support for pow() function It is a more search-friendly alternative to the ^ operator. --- doc/eval.texi | 4 ++++ libavutil/avutil.h | 2 +- libavutil/eval.c | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/doc/eval.texi b/doc/eval.texi index 25c0ea6524..ac27750851 100644 --- a/doc/eval.texi +++ b/doc/eval.texi @@ -79,6 +79,10 @@ Compute the square root of @var{expr}. This is equivalent to @item not(expr) Return 1.0 if @var{expr} is zero, 0.0 otherwise. + +@item pow(x, y) +Compute the power of @var{x} elevated @var{y}, it is equivalent to +"(@var{x})^(@var{y})". @end table Note that: diff --git a/libavutil/avutil.h b/libavutil/avutil.h index 1912d20170..bd3ff706ea 100644 --- a/libavutil/avutil.h +++ b/libavutil/avutil.h @@ -41,7 +41,7 @@ #define LIBAVUTIL_VERSION_MAJOR 51 #define LIBAVUTIL_VERSION_MINOR 6 -#define LIBAVUTIL_VERSION_MICRO 0 +#define LIBAVUTIL_VERSION_MICRO 1 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ LIBAVUTIL_VERSION_MINOR, \ diff --git a/libavutil/eval.c b/libavutil/eval.c index 331221515e..5ae90f06d1 100644 --- a/libavutil/eval.c +++ b/libavutil/eval.c @@ -290,6 +290,7 @@ static int parse_primary(AVExpr **e, Parser *p) else if (strmatch(next, "trunc" )) d->type = e_trunc; else if (strmatch(next, "sqrt" )) d->type = e_sqrt; else if (strmatch(next, "not" )) d->type = e_not; + else if (strmatch(next, "pow" )) d->type = e_pow; else { for (i=0; p->func1_names && p->func1_names[i]; i++) { if (strmatch(next, p->func1_names[i])) { @@ -643,6 +644,10 @@ int main(void) "not(1)", "not(NAN)", "not(0)", + "pow(0,1.23)", + "pow(PI,1.23)", + "PI^1.23", + "pow(-1,1.23)", NULL };