vc1dec: Shuffle field MVs after decoding, not before

This simplifies the code since copying MVs to the reference is not needed
anymore (and maybe something about fixing artifacts).

Also remove the unused mv_f_last.

Fixes a small number of artifacts in black_screen_VC-1.mkv
and several more artifacts in other videos.

Signed-off-by: Martin Storsjö <martin@martin.st>
vc1dec: Redesign the intensity compensation

Use the intensity-compensated reference frame for subsequent
fields/B-frames.

Since we currently don't change the reference frame we have to
maintain lookup tables for intensity compensation in the following
dependent frames.

Signed-off-by: Martin Storsjö <martin@martin.st>
vc1dec: Implement intensity compensation for vc1_interp_mc()

Signed-off-by: Martin Storsjö <martin@martin.st>
vc1: Use shuffled use_ic instead of equally shuffled mv_mode

Signed-off-by: Martin Storsjö <martin@martin.st>
vc1dec: Drop old use_ic code from vc1_b_mc

Signed-off-by: Martin Storsjö <martin@martin.st>
vc1dec: Fix doxy for vc1_mc_4mv_chroma4()

Signed-off-by: Martin Storsjö <martin@martin.st>
vc1dec: Handle top and bottom blocks in vc1_mc_4mv_chroma4() differently if needed

Now it can use different references for those blocks and even use
averaging.

This fixes several chroma artifacts in several videos.

Signed-off-by: Martin Storsjö <martin@martin.st>
vc1dec: Match addressing between compensation and MC in vc1_mc_4mv_chroma4

Signed-off-by: Martin Storsjö <martin@martin.st>
vc1dec: Fix mixed field/frame intensity compensation

Signed-off-by: Martin Storsjö <martin@martin.st>
vc1dec: Remove interlaced warning

Also add a note about the feature in the changelog.

Signed-off-by: Martin Storsjö <martin@martin.st>
dxtory v2 support
indeo4: add missing Haar and slanted transforms

That involves fixing INV_HAAR4() macro and changing it to work with different
input and output like INV_HAAR8() instead of in-place transform.
indeo4: reuse context block VLC for band instead of defaulting

Currently if no custom block VLC is specified for band, a default block VLC
will be used, while the global block VLC stored in the context should be used
instead.

This fixes decoding of one sample I have.
fate: Don't use files from SRC_PATH in the actual tests

If building out of tree, make sure the filter scripts are copied
into the build tree before running tests. This makes sure that
SRC_PATH doesn't need to exist on the remote system (or doesn't
need to exist at the same path).

Signed-off-by: Martin Storsjö <martin@martin.st>
fate: Add a --target-samples path parameter

This allows having the samples accessible via different paths
on the target and on the host.

Signed-off-by: Martin Storsjö <martin@martin.st>
configure: support gcc-4.8 instrumentation

Since version 4.8 gcc sports asan and tsan integration that can
be leveraged when hunting bugs.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wavpack: extract sample rate from the bitstream

This way we don't require the caller to parse the block header. It also
allows the sample rate to change mid-stream.
wavpack: extract channel information from the bitstream

This way we don't require the caller to parse the block header. It also
allows the channel configuration to change mid-stream.
wavpack: check that there aren't too many blocks per packet
wavpack: check that all the channels were coded.