build: add rules to generate preprocessed source files

This is useful for debugging.  Dependencies for these files are not
generated due to limitations in many compilers.

Signed-off-by: Mans Rullgard <mans@mansr.com>
mpegvideo: simplify dxy calculation in hpel_motion()

Signed-off-by: Mans Rullgard <mans@mansr.com>
av_memcpy_backptr: optimise some special cases

- Add special cases for offsets of 2, 3, or 4 bytes.  This means the
  offset is always >4 in the generic case, allowing 32-bit copies to
  be used there.
- Don't use memcpy() for sizes less than 16 bytes.

Signed-off-by: Mans Rullgard <mans@mansr.com>
configure: properly support DEC/Compaq compiler

Signed-off-by: Mans Rullgard <mans@mansr.com>
configure: sort cpuflags section by architecture

Signed-off-by: Mans Rullgard <mans@mansr.com>
riff: Make ff_riff_tags static and move under appropriate #ifdef

The table is not used outside the file.
configure: suncc: Add compiler arch support for Nehalem & Sandy Bridge

GCC does not appear to have a -march= string for Westmere, which is a
bit surprising as it has a few more instructions than a Nehalem, but
a few less than a Sandy Bridge.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
doc: avtools-common-opts: Fix terminology concerning metric prefixes

'k', 'M', and 'G' are SI (unit) prefixes or metric prefixes,
not 'number postfixes'. Also, the statement regarding binary
prefixes ("powers of 2 are used instead of powers of 10")
might be misinterpreted (1 kB = 10^3 B, but 1 KiB != 2^3 B).

Signed-off-by: Diego Biurrun <diego@biurrun.de>
avconv: fix copying per-stream metadata.

It is handled separately from other types because it uses stream
specifiers and currently that triggers an assert in SET_DICT.

CC:libav-stable@libav.org
yop: fix typo

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
x86: h264_chromamc: port to cpuflags
x86: h264: Remove 3dnow QPEL code

The only CPUs that have 3dnow and don't have mmxext are 12 years old.
Moreover, AMD has dropped 3dnow extensions from newer CPUs.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
x86: h264: Convert 8-bit QPEL inline assembly to YASM

Signed-off-by: Diego Biurrun <diego@biurrun.de>
remove #defines to prevent use of discouraged external functions

Preventing the use of discouraged or 'insecure' external functions
through defines in an internal header is not a good solution. The
header is not guaranteed to be included universally which makes
overlooking bad use of said functions during review more likely.

There are cases were those functions either are the most straight
forward solution or even have to be used. Using malloc or free is
required if the allocation or release is done by other libraries.
x86: h264 qpel: use the correct number of utilized xmm regs in cglobal

Fixes xmm register clobbering on win64.
mpegaudiodec: use planar sample format for output unless packed is requested
lavc: clarify get_buffer() documentation

This is needed for the AAC decoder, which may need to call get_buffer()
more than once if the channel configuration changes.
aacdec: use float planar sample format for output
x86: fix build without inline asm

The qpel functions referenced here are not related to h264 and should
thus never have been under CONFIG_H264QPEL.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
h264: enable low delay only if no delayed frames were seen

Dropping frames is undesirable but that is the only way by which the
decoder could return to low delay mode. Instead emit a warning and
continue with delayed frames.
Fixes a crash in fuzzed sample nasa-8s2.ts_s20033 caused by a larger
than expected has_b_frames value. Low delay keeps getting re-enabled
from a presumely broken SPS.

CC: libav-stable@libav.org