chromium/third_party/ffmpeg/libavutil/eval.c

/*
 * Copyright (c) 2002-2006 Michael Niedermayer <[email protected]>
 * Copyright (c) 2006 Oded Shimon <[email protected]>
 *
 * This file is part of FFmpeg.
 *
 * FFmpeg is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * FFmpeg is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with FFmpeg; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 */

/**
 * @file
 * simple arithmetic expression evaluator.
 *
 * see http://joe.hotchkiss.com/programming/eval/eval.html
 */

#include <float.h>
#include "attributes.h"
#include "avutil.h"
#include "common.h"
#include "eval.h"
#include "ffmath.h"
#include "log.h"
#include "mathematics.h"
#include "mem.h"
#include "sfc64.h"
#include "time.h"
#include "avstring.h"
#include "reverse.h"

Parser;

static const AVClass eval_class =;

static const struct {} si_prefixes['z' - 'E' + 1] =;

static const struct {} constants[] =;

double av_strtod(const char *numstr, char **tail)
{}

#define IS_IDENTIFIER_CHAR(c)

static int strmatch(const char *s, const char *prefix)
{}

struct AVExpr {};

static double etime(double v)
{}

static double eval_expr(Parser *p, AVExpr *e)
{}

static int parse_expr(AVExpr **e, Parser *p);

void av_expr_free(AVExpr *e)
{}

static int parse_primary(AVExpr **e, Parser *p)
{}

static AVExpr *make_eval_expr(int type, int value, AVExpr *p0, AVExpr *p1)
{}

static int parse_pow(AVExpr **e, Parser *p, int *sign)
{}

static int parse_dB(AVExpr **e, Parser *p, int *sign)
{}

static int parse_factor(AVExpr **e, Parser *p)
{}

static int parse_term(AVExpr **e, Parser *p)
{}

static int parse_subexpr(AVExpr **e, Parser *p)
{}

static int parse_expr(AVExpr **e, Parser *p)
{}

static int verify_expr(AVExpr *e)
{}

int av_expr_parse(AVExpr **expr, const char *s,
                  const char * const *const_names,
                  const char * const *func1_names, double (* const *funcs1)(void *, double),
                  const char * const *func2_names, double (* const *funcs2)(void *, double, double),
                  int log_offset, void *log_ctx)
{}

static int expr_count(AVExpr *e, unsigned *counter, int size, int type)
{}

int av_expr_count_vars(AVExpr *e, unsigned *counter, int size)
{}

int av_expr_count_func(AVExpr *e, unsigned *counter, int size, int arg)
{}

double av_expr_eval(AVExpr *e, const double *const_values, void *opaque)
{}

int av_expr_parse_and_eval(double *d, const char *s,
                           const char * const *const_names, const double *const_values,
                           const char * const *func1_names, double (* const *funcs1)(void *, double),
                           const char * const *func2_names, double (* const *funcs2)(void *, double, double),
                           void *opaque, int log_offset, void *log_ctx)
{}