w32pthreads: move from lavc to compat/

It will be used in other places than lavc.
Move get_logical_cpus() from lavc/pthread to lavu/cpu.

It will be useful in lavfi, and could conceivably be useful to the user
applications as well.
lavfi: add a slice threading infrastructure

Mostly based on libavcodec's
vf_yadif: support slice threading
vf_fade: support slice threading
cpu: Include common.h for av_popcount64

This fixes build failures on windows since 2a6eaeaa8.

Signed-off-by: Martin Storsjö <martin@martin.st>
configure: Fix check_exec_crash for ICL support

Change the check_exec_crash test to use a function pointer instead of
simply calling the function. The EBP availability test will crash when
compiled with ICL likely due to compiler optimization shenanigans.

Originally the check_exec_crash code was moved out of main to fix a
problem with gcc's treatment of non-leaf main on x86_32. Libav already
moved the code out of main but the addition of the function pointer will
prevent any inlining which fixes the remaining problem.

A function pointer is used since it is compiler agnostic (as opposed to
say __attribute__ ((noinline)) which would only work with gcc compatible
compilers).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
msvc/icl: Intel Compiler support on Windows

Initial support for the ICL compiler on windows. Requires a new
c99wrap with ICL support (1.0.2+).

Currently not much different speed wise compared to msvc. In the
future with a few changes it can be made to support the inline asm.
This would be the primary reason for using it.

Passed all fate tests, versions tested:
    13.1.1.171 (2013 Update 3) x86 and x64
    12.1.5.344 (2011 Update 11) x86 and x64

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
fix scalarproduct_and_madd_int16_altivec() for orders > 16

the second and third sources were incremented only by half of the needed size
arm: Only output eabi attributes if building for ELF

This matches the other eabi attribute in the same file. This is
required in order to build for arm/hardfloat with other object
file formats than ELF.

Signed-off-by: Martin Storsjö <martin@martin.st>
Revert "smackaud: clip output samples"

Smacker audio uses overflows instead of clipping.

This reverts commit 375ca0aca81be2951d9ba4731196e70e490d3cdf.
smacker: fix off-by-one error in palette expanding code
matroskadec: silently skip CodecState element.

mkvmerge apparrently uses it for mpeg1/2 video, but it contains the same
information as CodecPrivate, so it can be ignored.
avconv: make -aspect work with streamcopy
configure: make jack depend on pthreads
smacker: add a clarification notice about audio decoding
lavf: preserve side data when parsing packets.
wavpack: remove the subframes codec cap

The decoder always consumes full packets.
wavpack: drop redundant if/else blocks
wavpack: switch to planar output

This simplifies the code and makes it faster.