1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-12 19:18:44 +02:00
Commit Graph

92 Commits

Author SHA1 Message Date
Stefano Sabatini
999495734b lavu/eval: add if() and ifnot() eval functions
They allow to implement the if/then/else logic, which cannot be
implemented otherwise.

For example the expression:
A*B + not(A)*C

always evaluates to NaN if B is NaN, even in the case where A is 0.
2012-01-17 12:03:30 +01:00
Reimar Döffinger
d086c1203c Add coverage exclusions for test code.
For some of the code e.g. doing timing measurements there is no
real point in running regression testing on it, thus it should
not be counted against coverage.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2011-12-05 20:05:44 +01:00
Nicolas George
40963ea9e9 eval: add mathematical constants (PI, E, PHI).
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-13 16:50:20 +02:00
Michael Niedermayer
085ea85c2e eval: fix () bug in not.
Found-by: Oded Shimon
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-09 02:04:54 +02:00
Michael Niedermayer
1339702540 eval: add gcd()
example: -vf 'scale=256:256,mp=geq=gcd(X\,Y)-2:128:128'

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-08 04:38:17 +02:00
Michael Niedermayer
9e5e086b7e eval:add hypot()
useage example: -vf 'scale=256:256,mp=geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128'

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-08 04:38:01 +02:00
Michael Niedermayer
ac7cda9e14 eval: add random()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-08 03:13:21 +02:00
Michael Niedermayer
8fd56f7b12 eval: make variables persistent so they can be used between evaluations.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-08 03:13:21 +02:00
Michael Niedermayer
28d3738428 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Add LATM demuxer
  avplay: flush audio decoder with empty packets at EOF if the decoder has CODEC_CAP_DELAY set.
  8svx/iff: fix decoding of compressed stereo 8svx files.
  8svx: log an error message if output buffer is too small
  8svx: check packet size before reading the initial sample value.
  8svx: output 8-bit samples instead of 16-bit.
  8svx: split delta decoding into a separate function.
  mp4: Don't read an empty Decoder Config Descriptor
  fate.sh: Ignore errors from rm command during cleanup.
  fate.sh: Run git-pull in quiet mode to avoid console spam.
  Apple ProRes decoder
  rtmp: Make the input FLV parser handle data cut at any point
  rv34: Check for invalid slices offsets
  eval: test isnan(sqrt(-1)) instead of just sqrt(-1)

Conflicts:
	Changelog
	libavcodec/8svx.c
	libavcodec/proresdec.c
	libavcodec/version.h
	libavformat/iff.c
	libavformat/version.h
	tests/ref/fate/eval

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-23 00:35:31 +02:00
Anton Khirnov
775af761a0 eval: test isnan(sqrt(-1)) instead of just sqrt(-1)
sqrt(-1) returns "some NaN", it's not specified which exactly.
2011-09-22 08:13:55 +02:00
Stefano Sabatini
8cee38a298 eval: implement not() expression 2011-09-19 12:38:34 +02:00
Stefano Sabatini
9bc393908a eval: add sqrt function for computing the square root 2011-09-19 12:38:14 +02:00
Michael Niedermayer
c3b6cc61e5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ffserver: remove unused variable.
  Remove unused and outdated TODO file.
  gitignore: Drop individual .d ignore; it is already covered by a wildcard.
  lavf: deprecate AVStream.quality.
  bink: pass Bink version to audio decoder through extradata instead of codec_tag.
  libpostproc: Remove disabled code.
  flashsv: improve some comments and fix some wrong ones
  flashsv: Eliminate redundant variable indirection.
  flashsv: set reference frame type to full frame
  flashsv: replace bitstream description by a link to the specification
  flashsv: convert a debug av_log into av_dlog
  flashsv: simplify condition
  flashsv: return more meaningful error values
  flashsv: cosmetics: break some overly long lines
  flashsv: cosmetics: drop some unnecessary parentheses
  swscale: amend documentation to mention use of native depth for scaling.
  eval: add missing comma to tests.
  eval: fix memleak.
  H.264: make loopfilter bS const where applicable

Conflicts:
	libavcodec/binkaudio.c
	libavformat/bink.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-06 23:57:11 +02:00
Ronald S. Bultje
dfd8116986 eval: add missing comma to tests. 2011-07-05 18:18:11 -07:00
Ronald S. Bultje
fe277b16f0 eval: fix memleak. 2011-07-05 18:18:10 -07:00
Michael Niedermayer
16a565d0cb eval/fate: try to fix nan printing format failures.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-05 10:46:11 +02:00
Michael Niedermayer
5d4fd1d1ad Merge remote-tracking branch 'qatar/master'
* qatar/master: (36 commits)
  ARM: allow unaligned buffer in fixed-point NEON FFT4
  fate: test more FFT etc sizes
  dca: set AVCodecContext frame_size for DTS audio
  YASM: Shut up unused variable compiler warning with --disable-yasm.
  x86_32: Fix build on x86_32 with --disable-yasm.
  iirfilter: add fate test
  doxygen: Add qmul docs.
  ogg: propagate return values and return more meaningful error values
  H.264: fix overreads of qscale_table
  Remove unused static tables and static inline functions.
  eval: clear Parser instances before using
  dct-test: remove 'ref' function pointer from tables
  build: Remove deleted 'check' target from .PHONY list.
  oggdec: Abort Ogg header parsing when encountering a data packet.
  Add LGPL license boilerplate to files lacking it.
  mxfenc: small typo fix
  doxygen: Fix documentation for some VP8 functions.
  sha: use AV_RB32() instead of assuming buffer can be cast to uint32_t*
  des: allow unaligned input and output buffers
  aes: allow unaligned input and output buffers
  ...

Conflicts:
	libavcodec/dct-test.c
	libavcodec/libvpxenc.c
	libavcodec/x86/dsputil_mmx.c
	libavcodec/x86/h264_qpel_mmx.c
	libavfilter/x86/gradfun.c
	libavformat/oggdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-05 02:26:17 +02:00
Mans Rullgard
94350ab986 eval: clear Parser instances before using
This prevents random values from the stack being used as
"variables" in expressions.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-04 12:31:47 +01:00
Mans Rullgard
6da812e4ee eval: make timing optional in test program
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-04 10:26:21 +01:00
Michael Niedermayer
976a8b2179 Merge remote-tracking branch 'qatar/master'
* qatar/master: (40 commits)
  H.264: template left MB handling
  H.264: faster fill_decode_caches
  H.264: faster write_back_*
  H.264: faster fill_filter_caches
  H.264: make filter_mb_fast support the case of unavailable top mb
  Do not include log.h in avutil.h
  Do not include pixfmt.h in avutil.h
  Do not include rational.h in avutil.h
  Do not include mathematics.h in avutil.h
  Do not include intfloat_readwrite.h in avutil.h
  Remove return statements following infinite loops without break
  RTSP: Doxygen comment cleanup
  doxygen: Escape '\' in Doxygen documentation.
  md5: cosmetics
  md5: use AV_WL32 to write result
  md5: add fate test
  md5: include correct headers
  md5: fix test program
  doxygen: Drop array size declarations from Doxygen parameter names.
  doxygen: Fix parameter names to match the function prototypes.
  ...

Conflicts:
	libavcodec/x86/dsputil_mmx.c
	libavformat/flvenc.c
	libavformat/oggenc.c
	libavformat/wtv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-04 00:45:21 +02:00
Mans Rullgard
abc78a5a7c Do not include log.h in avutil.h
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 21:42:07 +01:00
Michael Niedermayer
940a55ccf4 eval: Fix 32bit unsigned parsing
Fixes ticket264

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-20 01:58:18 +02:00
Michael Niedermayer
d552f616a2 Merge remote-tracking branch 'qatar/master'
* qatar/master: (28 commits)
  Remove some non-compiling debug messages.
  ffplay: Fix non-compiling debug printf and replace it by av_dlog.
  H264: x86 predict init cosmetics.
  ac3enc: Fix linking of AC-3 encoder without the E-AC-3 encoder.
  Move E-AC-3 encoder functions to a separate eac3enc.c file.
  ac3enc: remove convenience macro, #define DEBUG
  ac3enc: remove unused #define
  vc1: re-initialize tables after width/height change.
  APIchanges: fill-in git commit hash for av_get_bytes_per_sample() addition
  samplefmt: add av_get_bytes_per_sample()
  iirfilter: fix biquad filter coefficients.
  swscale: remove duplicate conversion routine in swScale().
  swscale: add yuv2planar/packed function typedefs.
  swscale: integrate yuv2nv12X_C into yuv2yuvX() function pointers.
  swscale: reindent x86 init code.
  swscale: extract SWS_FULL_CHR_H_INT conditional into init code.
  swscale: cosmetics.
  swscale: remove alp/chr/lumSrcOffset.
  swscale: un-special-case yuv2yuvX16_c().
  shorten: Remove stray DEBUG #define and corresponding av_dlog statement.
  ...

Conflicts:
	doc/APIchanges
	libavcodec/ac3enc.c
	libavutil/avutil.h
	libavutil/samplefmt.c
	libswscale/swscale.c
	libswscale/swscale_internal.h
	libswscale/x86/swscale_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-06-08 05:25:28 +02:00
Diego Biurrun
dc25d79f49 Drop unnecessary directory prefixes from #include directives. 2011-06-07 10:31:26 +02:00
Stefano Sabatini
d58ed64a89 eval: add support for pow() function
It is a more search-friendly alternative to the ^ operator.
2011-06-07 00:37:00 +02:00
Stefano Sabatini
3c2c52baec eval: implement not() expression 2011-05-25 12:42:19 +02:00
Michael Niedermayer
9132f2ad0c eval: opensolaris strtod() cannot handle 0x1234
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-18 00:01:40 +02:00
Stefano Sabatini
e5272e729e eval: add sqrt function for computing the square root 2011-05-05 18:38:35 +02:00
Anton Khirnov
516fb5e40c lavu: remove FF_API_OLD_EVAL_NAMES cruft 2011-04-19 19:03:44 +02:00
Stefano Sabatini
5ae4251c3b eval: add support for trunc, ceil, and floor functions
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-04-10 09:24:21 +02:00
Stefano Sabatini
25601bc564 eval: add support for trunc, ceil, and floor functions
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
2011-04-05 15:34:16 +02:00
Mans Rullgard
2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Stefano Sabatini
d2af7205a1 Use hierarchic names convention (prefix them with av_expr) for the
eval API.

More grep-friendly and more consistent with the rest of the FFmpeg
API.

Originally committed as revision 25708 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-08 14:06:49 +00:00
Stefano Sabatini
20fcd0797e Implement isnan() function evaluation.
Originally committed as revision 25666 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-03 19:44:00 +00:00
Stefano Sabatini
4cabef0a9d Make strmatch() return 1 only if the string compared against the
prefix does not contain other characters which may belong to an
identifier.

This allows to distinguish for example to have different constants
with the same prefix (e.g. "foo" and "foobar").

Originally committed as revision 25626 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-01 09:34:21 +00:00
Stefano Sabatini
2b59fbe9b1 Add st, ld, while examples/tests.
Originally committed as revision 25625 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-01 09:34:18 +00:00
Stefano Sabatini
8bb12e71af Add examples of unary operators.
Originally committed as revision 25624 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-01 09:34:15 +00:00
Stefano Sabatini
63b1630356 Fix evaluation of expressions of the form: E1;E2.
The pointer to the char ';' has to be increased before to evaluate
";E2".

Originally committed as revision 25623 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-01 09:34:12 +00:00
Stefano Sabatini
eb928286de Add more tests to eval, help detecting some of the more apparent
errors, far from being a complete test system.

Originally committed as revision 23635 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-16 22:36:52 +00:00
Stefano Sabatini
7ec9b9beca Make av_parse_expr() fail if there are trailing chars at the end of
the provided expression.

Allow detection of mistyped expressions.

Originally committed as revision 23629 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-16 18:27:55 +00:00
Stefano Sabatini
2f62224bc0 Improve av_parse_eval() error reporting.
Originally committed as revision 23627 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-16 18:27:46 +00:00
Stefano Sabatini
0b99215c0e Move eval.c and eval.h from libavcodec to libavutil, and make the eval
API public.

Originally committed as revision 23485 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-05 12:01:28 +00:00