With negative stride, the start of the edge_emu buffer should be pointing to
the last line, not the end of the buffer.
With positive stride, pointing to the end of the buffer was completely wrong.
(cherry picked from commit a89f4ca005efa5ee82089583c7b8bc00bcee816a)
Also remove qscale_table code; this didn't make sense anyways as VP3 doesn't
use an MPEG-like quantizer scale.
(cherry picked from commit 902685b8abf4e2089802528a32a50f3c68033fda)
The rematrixing strategy reuse flags are not reset between frames, so they
need to be initialized for all blocks, not just block 0.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 5b54d4b376fbd2c291b8a6dba7d425e28f654bcf)
This is to match the value in every (E-)AC-3 file from commercial sources.
It has a negligible effect on audio quality.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 50d7140441b61809ad4ba4ea7b4ad8fe77bc6888)
VBV delay is useful for T-STD compliance in some TS muxers. It is
certainly possible to retrieve it by parsing the output of FFmpeg, but
getting it from the context makes it simpler and less error-prone.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Perform validity check on AVFormatContext.channels instead of
uninitialised field.
This fixes issue 2001.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 9806fbd5351fa84f99fa5b18fe06859acb514f34)
It has been unused since 9d06d7bce3babb82ed650c13ed13a57f6f626a71
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 916dee9f45dab85cfc20b6bf63ce8722746e6508)
AC3DSPContext.ac3_max_msb_abs_int16() finds the maximum MSB of the absolute
value of each element in an array of int16_t.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit fbb6b49dabc3398440c6dfa838aa090a7a6ebc0d)
6% faster SSE FFT on Conroe, 2.5% on Penryn.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit e6b1ed693ae4098e6b9eabf938fc31ec0b09b120)
This fixes visual glitches in Bink version 'b' files, as the quantization
tables were not being permuted.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 231539217431c32d4f22a16ee2834e24f54611f4)
Using doubles make the double -> int cast well defined for all the values
used, with the exception of when s[i]==1.0, which is special-cased.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 47d62c965b7bcf4715127fbf9bffab7b4c5c88b7)
Approximately 5% faster on Cortex-A8.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit a7878c9f73c12cfa685bd8af8f3afcca85f56a8b)
Approximately 3% faster on Cortex-A8.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 7da48fd0111adf504cfcfc5ebda7fd0681968041)
Based on original patch by Kostya Shishkov
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit e00f41d5742b3a0dc1877b030f4f6f58c19b7bbd)
Merge find_near_mvs and mv bitstream decoding: don't do prediction steps
until absolutely necessary.
(cherry picked from commit f3d09d44b70492022964e2ead5f439bb7c96eaa2)
s->windowed_samples will always have a range of [-32767,32767] due to the
window function, so the return value from log2_tab() will always be in the
range [0,14].
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 626264b11b5406c0c78c4056cabb63cb650e9bf2)
This avoids double semicolons after macro expansion.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 44adbebe1744c68d66d7f811c38270fdcc89665a)
Instead of returning an error when bytes are left over, just return
the number of actually used bytes as other decoders do.
Instead add a special case so an error will be returned when none
of the data looks valid to avoid making debugging a pain.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit 4a72765a1c94b05bd3053b1f34f8457a3b71d714)
The function return type is void, so a return statement with an
expression is forbidden (and pointless).
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit b4668274b944abae61759e796c5cc36ade510f24)
The avcodec_thread_free() compatibility wrapper calls ff_thread_free(),
which is not defined when threading is disabled. Make this call
conditional.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 9a77a92c2b6855781d2a4cfab14c67ae4025760c)
This should fix building with win32 threads.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit aef669cdfd984a737ad876b33ee1b160f87f5f9a)