hevc: reorder loops

iterate over memory in a more continuous order

Signed-off-by: Anton Khirnov <anton@khirnov.net>
hevc: simplify rounding

Signed-off-by: Anton Khirnov <anton@khirnov.net>
hevc: derive partially amvp list

When the candidate has been found, no need to derive others.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
hevc: derive partial merge list

The merge list only needs to be derived up to the merge index.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
hevc: use intreadwrite

When dealing with MVs, both components may be processed at a time.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
hevc: wait proper position for tmvp

The position is either rounded or not checked, so delay the wait to
check the proper value.

Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>

Signed-off-by: Anton Khirnov <anton@khirnov.net>
hevc_mvs: avoid deriving tmvp in amvp

Reduces the number of calls to tmvp derivation from 933685 to 586271 on
a sequence.

Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
ffv1dec: check that global parameters do not change in version 0/1

Such changes are neither allowed nor supported

Found-by: ami_stuff
Bug-Id: CVE-2013-7020
CC: libav-stable@libav.org
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Merge commit 'd1b1c3bb5ef1bee409c06c3bcacfb8674e1cb574'

* commit 'd1b1c3bb5ef1bee409c06c3bcacfb8674e1cb574':
  hevc: reorder loops

Conflicts:
	libavcodec/hevc.c

See: eca1957c4cbee66a0b1f3dcabaffe68d61885f16
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '09182b3224370e1d636631e77f201a8388766bd6'

* commit '09182b3224370e1d636631e77f201a8388766bd6':
  hevc: simplify rounding

Conflicts:
	libavcodec/hevc_mvs.c

See: 2e471e4703ed5aaab6d6b6bf5a3c6895b79f02b4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '3505b19652ea34089a4cd08d4d3358fcc0a3db8b'

* commit '3505b19652ea34089a4cd08d4d3358fcc0a3db8b':
  hevc: derive partially amvp list

Conflicts:
	libavcodec/hevc_mvs.c

See: bbeaae96eb6fc623f6bfd4a0dd2fd06e6b620938
See: 3ad046083119abd3b063964bd79797e9935305e1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'ed53cc217f6a6e4ddb35e3f01a79496091dc82dc'

* commit 'ed53cc217f6a6e4ddb35e3f01a79496091dc82dc':
  hevc: derive partial merge list

Conflicts:
	libavcodec/hevc_mvs.c

See: 4576eff05d94a5e0b853a7a595d31351cc539e7b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'cf6090dc6252f2b276aa4133e3d73a89f4c6046c'

* commit 'cf6090dc6252f2b276aa4133e3d73a89f4c6046c':
  hevc: use intreadwrite

Conflicts:
	libavcodec/hevc_mvs.c

See: 7a4a5515b0ce97f1c4e18ed012cc3f86328dd220
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '14ca0aa69b5d954ce56d0826ab9f1f70e535c92a'

* commit '14ca0aa69b5d954ce56d0826ab9f1f70e535c92a':
  hevc: wait proper position for tmvp

Conflicts:
	libavcodec/hevc_mvs.c

See: ed248e7f70d98abe099392e154d1cdd0f15faa3c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '3187fa14a326908f9471a038e3b5b24c0eaf655e'

* commit '3187fa14a326908f9471a038e3b5b24c0eaf655e':
  hevc_mvs: avoid deriving tmvp in amvp

See: 373677f95816924a3790c174e83ec2e378962c44
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'da7d839a0d3ec40423a665dc85e0cfaed3f92eb8'

* commit 'da7d839a0d3ec40423a665dc85e0cfaed3f92eb8':
  ffv1dec: check that global parameters do not change in version 0/1

Conflicts:
	libavcodec/ffv1dec.c

See: b05cd1ea7e45a836f7f6071a716c38bb30326e0f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
lsws: duplicate ff_log2_tab

libswscale uses the table but wasn't duplicating it like the rest of the libs.
This should fix compilation failures on msvc/icl after lavu stopped exporting
internal functions and tables.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
avcodec: add C xvid IDCT support

Thanks to Pascal Massimino and Michael Militzer for permission to use under LGPL

The xvid idct code is from xvid, and nearly unchanged to make future syncing easy
the integration into ffmpeg is done by the commiter
the commit message is written by the commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
lavfi: duplicate ff_log2_tab

Fixes compilation failures on msvc/icl shared builds

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
lavc/flacenc: add sse4 version of the 16-bit lpc encoder

From 1.8 to 2.4 times faster.  Runtime is reduced by 2 to 39%.  The
speed-up generally increases with compression_level.

This lpc encoder is not used with levels < 3 so it provides no speed-up
in these cases.

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