jvdec: check that the video_size fits in the packet.

Prevents use of out of array data and fate failure.

Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
yadif/x86: add prototypes for functions, make code valid C again.

Broken by: libav (a87b17f3283aada762820f1b797eeb7a2dff6c61)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tools: add bisect script

This script works like "git bisect" except that you can
specify with "bisect need ffmpeg|ffplay|ffserver|ffprobe" which tool(s)
are needed for testing a checkout

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
jvdec: stop reading partial palette

Signed-off-by: Paul B Mahol <onemda@gmail.com>
jvdec: remove buf_size

It is same as avpkt->size.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
jvdec: remove redundant check

Signed-off-by: Paul B Mahol <onemda@gmail.com>
jvdec: check if there is enough data

Signed-off-by: Paul B Mahol <onemda@gmail.com>
x86: lavfi: fix gradfun/yadif build with mmx/sse disabled

These functions are defined conditionally so any uses need to have
preprocessor guards.

Signed-off-by: Mans Rullgard <mans@mansr.com>
snow: remove a VLA used for edge emulation

Signed-off-by: Martin Storsjö <martin@martin.st>
avplay: fix write on freed memory for rawvideo

Do not assume avpacket and the decoded frames are independent.

To be absolutely sure and not sprinkle av_free_packet around the code
the call had been placed before getting the frame and on the error path.
flvdec: initial stream switch support

Codec change midstream gets mapped to a separate stream.
configure: do not disable av_always_inline with --enable-small

Currently, --enable-small turns av_always_inline into plain inline,
which is more or less ignored by the compiler.  While the intent of
this is probably to reduce code size by avoiding some inlining, it
has more far-reaching effects.

We use av_always_inline in two situations:

1. The body of a function is smaller than the call overhead.
   Instances of these are abundant in libavutil, the bswap.h
   functions being good examples.

2. The function is a template relying on constant propagation
   through inlined calls for sane code generation.  These are
   often found in motion compensation code.

Both of these types of functions should be inlined even if targeting
small code size.

Although GCC has heuristics for detecting the first of these types,
it is not always reliable, especially when the function uses inline
assembler, which is often the reason for having those functions in
the first place, so making it explicit is generally a good idea.

The size increase from inlining template-type functions is usually
much smaller than it seems due to different branches being mutually
exclusive between the different invocations.  The dead branches can,
however, only be removed after inlining and constant propagation have
been performed, which means the initial cost estimate for inlining
these is much higher than is actually the case, resulting in GCC
often making bad choices if left to its own devices.

Furthermore, the GCC inliner limits how much it allows a function to
grow due to automatic inlining of calls, and this appears to not take
call overhead into account.  When nested inlining is used, the limit
may be hit before the innermost level is reached.  In some cases, this
has prevented inlining of type 1 functions as defined above, resulting
in significant performance loss.

Signed-off-by: Mans Rullgard <mans@mansr.com>
attributes: drop pointless define guards

the av_-prefixed attributes must not be defined outside of this file
attributes: add av_noreturn

Also use it in the declaration of the various exit_program
implementations in avtools.

inspired by a clang-scan report.
misc typo and wording fixes
anm: fix a few Doxygen comments
cosmetics: Consistently use C-style comments with multiple inclusion guards
libavutil: add 12 and 14 bit planar colorspaces

Reviewed-by: Jean First <jeanfirst@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
imgconvert: add yuv 9,10,12,14 bit planar YUV formats to pix_fmt_info

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
imgconvert: add planar RGB formats to pix_fmt_info

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>