lavfi/select: make select_frame() return void

Set select->select internally to the function, avoid lossy double->int
conversion causing spurious frame drop (e.g. in case the evaluation
result is positive and less than 1).
lavfi/select: add support for dynamic number of outputs
lavfi/select: factorize options definition between select and aselect
lavfi/aspect: restore ratio parsing

Allow to set a ratio as "a:b" (with proper escaping), and correctly
honour the max parameter.
lavfi/aspect: extend verbose feedback, show old SAR and DAR values
lavfi/testsrc: use int in place of unsigned

Avoid implicit int->unsigned conversion, causing invalid access in case
of negative linesize.

Fix crash with:
ffplay -f lavfi testsrc,vflip
lavfi/testsrc: fix style
lavfi/mptestsrc: reindent option constants
lavfi/mptestsrc: use AV_OPT_TYPE_DURATION

Simplify.
lavfi/mptestsrc: remove unused size field
avutil/intfloat_readwrite: include common.h for isinf()

Solution based on rational.c, which uses isinf() too

This should fix compilation with msvc

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
lavfi/setsar: remove spurious #if FF_API_OLD_FILTER_OPTS around init field
lavfi/setdar: fix num/den swapping in log message
lavfi/aspect: apply hot fix for NUM:DEN syntax
Cleanse GIF muxer and encoder.

This commit removes the badly duplicated code between the encoder and
the muxer. That may sound surprising, but the encoder is now responsible
from the encoding of the picture when muxing to a .gif file. It also
does not require anymore a manual user intervention such as a -pix_fmt
rgb24 to work properly. To summarize, output gif are now easier to
generate, code is saner and simpler, and files are smaller (thanks to
the lzw encoding which was unused so far with the default .gif output).
We can certainly make things even better, but this is the first step.

FATE is updated because of the output being produced by the encoder and
not the muxer (no lzw in the muxer), and in the seek test only the size
mismatches.

Fixes Ticket #2262
lavc/gif: crop image when possible.

Increase compression when pictures are similar.

-f lavfi testsrc=300: 61M -> 21M
gif: reindent after previous commits.
lavf/gif: simplify palette writing.
lavc/gif: merge two allocation checks.
lavc/gif: return more meaningful error code.