Mans Rullgard
9fcda25e35
vorbisdec: replace div/mod in loop with a counter
...
2x speedup of surround decoding on Cortex-A9.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-18 11:47:08 +01:00
Ronald S. Bultje
d9669eab0b
dwt: remove variable-length arrays
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-17 23:20:10 +01:00
Diego Biurrun
d246c18ea6
Avoid C99 variable declarations within for statements.
...
We generally do not declare variables within for statements and
there are compilers that choke on such constructs.
2012-06-14 23:36:04 +02:00
Diego Biurrun
af10feadc2
ppc: Rename H.264 optimization template file for consistency.
2012-06-12 23:20:05 +02:00
Justin Ruggles
4795362660
golomb: check remaining bits during unary decoding in get_ur_golomb_jpegls()
...
Fixes infinite loop in FLAC decoding in case of a truncated bitstream due to
the safe bitstream reader returning 0's at the end.
Fixes Bug 310.
CC:libav-stable@libav.org
2012-06-12 14:33:39 -04:00
Michael Niedermayer
bcbb30e2a0
libmp3lame: add missing layout terminator
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-06-10 14:06:50 +02:00
Mans Rullgard
30f515091c
h264: allow cropping to AVCodecContext.width/height
...
Override the frame size from the SPS with AVCodecContext values
if the latter specify a size smaller by less than one macroblock.
This is required for correct cropping of MOV files from Canon cameras.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-09 15:08:52 +01:00
Kostya Shishkov
cac4760bf4
iac: generate codec tables as they are supposed to be
...
Unlike its predecessor, Indeo Audio codec generates tables depending on
sampling rate. Previously decoder used pre-generated tables for 22050 Hz
which obviously doesn't work with other frequencies.
Many thanks to Maxim Poliakovsky for providing all needed information
for this.
2012-06-09 08:38:51 +02:00
Kostya Shishkov
e1a3fa5d3a
indeo4: handle frame type 1 properly
...
It turns out that this frame type is actually intra and should be used as
a reference for interframes too.
2012-06-09 08:38:31 +02:00
Justin Ruggles
d5a7229ba4
Add a float DSP framework to libavutil
...
Move vector_fmul() from DSPContext to AVFloatDSPContext.
2012-06-08 13:14:38 -04:00
Justin Ruggles
98db4e2a4e
PPC: Move types_altivec.h and util_altivec.h from libavcodec to libavutil
...
This will allow for easier implementation of Altivec functions in libraries
other than libavcodec.
2012-06-08 13:14:38 -04:00
Justin Ruggles
94d2b0d2fd
ARM: Move asm.S from libavcodec to libavutil
...
This will allow for easier implementation of ARM-optimized functions in
libraries other than libavcodec.
2012-06-08 13:14:38 -04:00
Mans Rullgard
bc92214e27
vc1dsp: mark put/avg_vc1_mspel_mc() always_inline
...
This ensures that these functions are inlined into the per-position
entry points, allowing constant propagation as needed for proper
optimisation.
18% faster VC1 decoding on Cortex-A9.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-08 09:40:07 +01:00
Alex Converse
ecf79c4d3e
vorbis: Validate that the floor 1 X values contain no duplicates.
...
Duplicate values in this vector are explicitly banned by the Vorbis I spec
and cause divide-by-zero crashes later on.
2012-06-05 09:51:51 -07:00
Kostya Shishkov
c6061443f7
Indeo Audio decoder
2012-06-05 18:30:54 +02:00
Kostya Shishkov
34271cabac
imc: make IMDCT support stereo output
...
This will be useful for Indeo Audio decoder which is almost the same
but supports stereo.
2012-06-05 18:28:44 +02:00
Kostya Shishkov
c45e2da617
imc: move channel-specific data into separate context
...
This will be useful for Indeo Audio decoder which is almost the same
but supports stereo.
2012-06-05 18:28:44 +02:00
Kostya Shishkov
b56825c40e
mpc8: fix maximum bands handling
...
In Musepack SV8 codec property tell the maximum nonzero band, but every
frame codes maximum band as a limit (i.e. strictly less than given value).
Synthesis also expects maximum nonzero band, so there's a need to convert
frame maximum band limit value.
2012-06-05 06:55:57 +02:00
Alex Converse
79c8e29a7e
aacdec: Turn PS off when switching to stereo and turn it to implicit when switching to mono.
2012-06-04 15:16:17 -07:00
Kostya Shishkov
96fadfb158
bmv: add stricter checks for invalid decoded length
...
This makes decoder handle random data passed as BMV frame data.
2012-06-03 15:26:11 +02:00
Anton Khirnov
cf3a1948e9
avpacket: fix duplicating side data.
...
Use correct side data size instead of just zeroed field.
2012-06-03 10:22:42 +02:00
Ronald S. Bultje
6163d880c0
vp8: move block coeff arithcoder on stack.
...
This prevents gcc from assuming that contents of it may have changed
between calls to vp56_range_get_prob(), thus preventing countless (and
unnecessary) movs. Decoding of sintel trailer goes from (avg+SG) 9.796
+/- 0.003 to 9.635 +/- 0.010.
2012-05-30 09:08:29 -07:00
Christian Schmidt
d041dec3cb
pcm-mpeg: improve log message wording
...
We support every defined value for channel layout, bitrate and sample depth.
All other values are not unsupported, but reserved.
Update comments to say "are used" instead of "are known or exist".
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-05-30 11:27:29 -04:00
Hendrik Leppkes
c58bcead3b
pcm_mpeg: fix number of consumed bytes to include the header.
...
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-05-29 16:08:56 +02:00
Vitor Sessak
bac0729d9e
x86: use new schema for ASM macros
...
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-05-29 14:49:45 +02:00
Kostya Shishkov
d073f122ea
imc: some cosmetics
2012-05-25 20:18:02 +02:00
Michael Niedermayer
90290a5150
tqi: Pass errors from the MB decoder
...
This silences some valgrind warnings.
CC: libav-stable@libav.org
Fixes second half of http://ffmpeg.org/trac/ffmpeg/ticket/794
Bug found by: Oana Stratulat
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
(cherry picked from commit f85334f58e
)
2012-05-23 20:42:46 +02:00
Justin Ruggles
713548cbad
x86: lavc: use %if HAVE_AVX guards around AVX functions in yasm code.
...
This is needed for older versions of yasm/nasm that do not support AVX.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-22 20:46:02 +02:00
Diego Biurrun
cc7fac9970
dwt: return errors from ff_slice_buffer_init()
2012-05-22 14:01:56 +02:00
Jordi Ortiz
c89e428ed8
dwt: check malloc calls
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-22 13:27:06 +02:00
Diego Biurrun
3ea5429489
ppc: Drop unused header regs.h
2012-05-22 11:54:53 +02:00
Kieran Kunhya
5ff01259a8
Convert vector_fmul range of functions to YASM and add AVX versions
...
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-05-21 17:13:05 -04:00
Jordi Ortiz
13a867a63e
dwt: K&R prettyprinting cosmetics
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-21 11:14:49 +02:00
Diego Biurrun
4f04f5cc8b
indeo: Make ivi_calc_band_checksum() static, it is only used in one file.
2012-05-20 15:59:30 +02:00
Diego Biurrun
9ccbdc0aca
indeo: Drop unused debug function ivi_check_band().
2012-05-20 15:56:25 +02:00
Diego Biurrun
0c517644b2
avcodec/utils: cast a function argument to shut up a compiler warning
...
libavcodec/utils.c:251: note: expected ‘const uint8_t *’ but argument is of type ‘const short int *’
2012-05-20 15:09:07 +02:00
Diego Biurrun
4466d0e84b
truemotion1: remove disabled code
2012-05-20 15:04:43 +02:00
Kostya Shishkov
f05b69a79f
fix typo in comment
2012-05-20 14:15:14 +02:00
Kostya Shishkov
cf61aaaca1
indeo: check for invalid motion vectors
2012-05-20 11:19:48 +02:00
Kostya Shishkov
9603738221
indeo: check that band output buffer exists
2012-05-20 11:19:48 +02:00
Kostya Shishkov
23ba1503f2
indeo: clear allocated band buffers
2012-05-20 11:19:48 +02:00
Kostya Shishkov
a6e4ac40a6
indeo: track tile macroblock size
2012-05-20 11:19:48 +02:00
Kostya Shishkov
fe7a37c36f
indeo: check custom Huffman tables for errors
2012-05-20 11:19:47 +02:00
Kostya Shishkov
aa372cf470
factor out common decoding code for Indeo 4 and Indeo 5
2012-05-20 11:19:30 +02:00
Kostya Shishkov
b37d945dd4
mp3: fix start band index for block type 2 in 8kHz audio
...
In hybrid frames long window part ends at 36 samples for most of the cases
but at 72 for 8kHz case. For some reason decoder assumed it's 48 or even 36
samples, which caused wrong bitstream decoding for such blocks.
l3_25207.mpg from conformance suite demonstrates it the best.
2012-05-20 10:53:21 +02:00
Mans Rullgard
7d7b40f48a
pcmenc: set correct bitrate value
...
This fixes a bogus bitrate value in the header of WAV files with
alaw/ulaw audio.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-17 02:34:57 +01:00
Michael Kostylev
6797d1948b
x86: rv40: Mark rv40_weight functions as MMX2; they use MMX2 instructions.
2012-05-15 23:54:08 +02:00
Justin Ruggles
95a98ab3f0
ac3dsp: simplify x86 versions of ac3_max_msb_abs_int16
...
Simplifies the code by using cpuflags and a new macro.
Also fixes the invalid use of the MMX2 pshufw operation in the MMX-only
function.
2012-05-15 15:23:59 -04:00
Aneesh Dogra
46ea46357a
tta: Fix comment about channel number; TTA supports >2 channels.
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-15 19:10:46 +02:00
Kostya Shishkov
6de226a2b8
indeo3: validate new frame size before resetting decoder
2012-05-15 19:05:39 +02:00
Kostya Shishkov
bc00da2701
indeo3: when freeing buffers, set pointers referencing them to NULL as well
2012-05-15 19:05:39 +02:00
Kostya Shishkov
81064a8045
indeo3: initialise pixel planes on allocation
...
This prevents decoder from reading garbage from it in case of errors later.
2012-05-15 19:05:39 +02:00
Kostya Shishkov
fc417db3f1
indeo3: ensure that decoded cell data is in 7-bit range as presumed by decoder
2012-05-15 19:05:39 +02:00
Anton Khirnov
e6694659fc
libmp3lame: set supported channel layouts.
2012-05-14 21:36:11 +02:00
Diego Biurrun
100c70b048
vcr1: Add vcr1_ prefixes to all static functions with generic names.
2012-05-14 16:19:16 +02:00
Diego Biurrun
a761e5951c
vcr1: Fix return type of common_init to match the function pointer signature.
...
libavcodec/vcr1.c:182: warning: initialization from incompatible pointer type
2012-05-14 16:19:16 +02:00
Diego Biurrun
55da88c5ab
vcr1enc: Replace obsolete get_bit_count by put_bits_count/flush_put_bits.
2012-05-14 16:19:14 +02:00
Diego Biurrun
5aad8e80a7
motion-test: remove disabled code
2012-05-14 15:38:43 +02:00
Vitor Sessak
fcc456b829
x86: use more standard construct for setting ASM functions in FFT code
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-14 15:38:42 +02:00
Michael Kostylev
ea60dfe284
x86: vc1: drop MMX loop filter implementation, which uses MMX2 instructions.
2012-05-12 14:02:45 +02:00
Mans Rullgard
e54e6f25cf
arm/neon: dsputil: use correct size specifiers on vld1/vst1
...
Change the size specifiers to match the actual element sizes
of the data. This makes no practical difference with strict
alignment checking disabled (the default) other than somewhat
documenting the code. With strict alignment checking on, it
avoids trapping the unaligned loads.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-10 22:56:37 +01:00
Mans Rullgard
2eba6898c9
arm: dsputil: prettify some conditional instructions in put_pixels macros
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-10 22:56:09 +01:00
Mans Rullgard
c776531aef
vqavideo: change x/y loop counters to the usual pattern
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-10 22:55:42 +01:00
Christophe Gisquet
110d0cdc9d
rv40dsp x86: MMX/MMX2/3DNow/SSE2/SSSE3 implementations of MC
...
Code mostly inspired by vp8's MC, however:
- its MMX2 horizontal filter is worse because it can't take advantage of
the coefficient redundancy
- that same coefficient redundancy allows better code for non-SSSE3 versions
Benchmark (rounded to tens of unit):
V8x8 H8x8 2D8x8 V16x16 H16x16 2D16x16
C 445 358 985 1785 1559 3280
MMX* 219 271 478 714 929 1443
SSE2 131 158 294 425 515 892
SSSE3 120 122 248 387 390 763
End result is overall around a 15% speedup for SSSE3 version (on 6 sequences);
all loop filter functions now take around 55% of decoding time, while luma MC
dsp functions are around 6%, chroma ones are 1.3% and biweight around 2.3%.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-10 18:42:43 +02:00
Christophe Gisquet
706b998cdc
ape: Use unsigned integer maths
...
This involves a division that should be a shift.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-10 16:40:43 +02:00
Mans Rullgard
cbc7d60afa
arm: dsputil: fix overreads in put/avg_pixels functions
...
The vertically interpolating variants of these functions read
ahead one line to optimise the loop. On the last line processed,
this might be outside the buffer. Fix these invalid reads by
processing the last line outside the loop.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-10 14:39:34 +01:00
Diego Biurrun
1de53d006b
h264: K&R formatting cosmetics for header files (part II/II)
2012-05-10 13:13:44 +02:00
Diego Biurrun
be545b8a34
h264: K&R formatting cosmetics for header files (part I/II)
2012-05-10 13:02:47 +02:00
Diego Biurrun
8ae1914327
vcr1enc: drop pointless empty encode_init() wrapper function
2012-05-09 23:47:37 +02:00
Diego Biurrun
eeeefd5001
vcr1: drop pointless write-only AVCodecContext member from VCR1Context
2012-05-09 23:24:07 +02:00
Diego Biurrun
51c4d87093
vcr1: group encoder code together to save #ifdefs
2012-05-09 23:24:07 +02:00
Diego Biurrun
db1e403cfb
vcr1: cosmetics: K&R prettyprinting, typos, parentheses, dead code, comments
2012-05-09 23:24:06 +02:00
Diego Biurrun
c8b4a3999b
libxvid: Give more suitable names to libxvid-related files.
2012-05-09 18:18:05 +02:00
Diego Biurrun
5b432d66ce
libxvid: Separate libxvid encoder from libxvid rate control code.
...
This allows compiling the Xvid rate control code without the encoder.
2012-05-09 18:18:05 +02:00
Diego Biurrun
727af82a84
jpeglsdec: Remove write-only variable in ff_jpegls_decode_lse().
...
libavcodec/jpeglsdec.c:54:9: warning: variable ‘len’ set but not used
2012-05-09 18:12:28 +02:00
Anton Khirnov
c22953b8a3
lavc: check that extended_data is properly set in avcodec_encode_audio2().
2012-05-09 17:47:11 +02:00
Anton Khirnov
a5117a2444
lavc: pad last audio frame with silence when needed.
2012-05-09 17:46:54 +02:00
Jordi Ortiz
38f06a1415
libschroedingerdec: Change AVPicture to AVFrame and use SchroTag to store pts
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-05-08 16:06:49 -07:00
Alex Converse
40f81769ae
options_table: Add some missing #includes to fix "make checkheaders".
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-08 20:05:20 +02:00
Kostya Shishkov
464e9ab011
lagarith: add YUY2 decoding support
...
Unlike other variants, for YUY2 we need to use different prediction:
* on line 0 for luma we should left predict starting from the second pixel
* on line 1 we should left predict first 4 pixels for luma and 2 for chroma
* median prediction employed here is taken directly from HuffYUV
2012-05-08 07:24:31 +02:00
Carl Eugen Hoyos
58637a0b24
Support decoding unaligned rgb24 lagarith.
...
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-05-08 07:23:44 +02:00
Diego Biurrun
520c1ec699
dv: Split profile handling code into a separate file.
2012-05-07 23:59:49 +02:00
Ronald S. Bultje
64953f67f9
qdm2: clip array indices returned by qdm2_get_vlc().
...
Prevents subsequent overreads when these numbers are used as indices
in arrays.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-05-07 13:08:36 -04:00
Justin Ruggles
f132248028
avcodec: do not needlessly set packet size to 0 in avcodec_encode_audio2()
...
It is already set to 0 by av_free_packet()
2012-05-07 12:14:05 -04:00
Justin Ruggles
74e10b6204
avcodec: for audio encoding, reset output packet when it is not valid
2012-05-07 12:14:05 -04:00
Justin Ruggles
fa0319b4fd
avcodec: refactor avcodec_encode_audio2() to merge common branches
2012-05-07 12:14:05 -04:00
Justin Ruggles
b461cd4deb
avcodec: remove fallbacks for AVCodec.encode() in avcodec_encode_audio2()
...
We no longer have any audio encoders using AVCodec.encode().
2012-05-07 12:14:04 -04:00
Diego Biurrun
fdc918632f
libschroedinger: Switch to function names more in line with Libav style.
2012-05-07 14:31:59 +02:00
Diego Biurrun
9cef0669c4
Move code shared between libdirac and libschroedinger to libschroedinger.
...
This also involves making some function static and changing the name
prefixes of some functions and structures.
2012-05-07 14:31:59 +02:00
Diego Biurrun
10d2ea2604
h264: Remove a commented-out function pointer typedef.
2012-05-07 14:17:43 +02:00
Diego Biurrun
ea14050642
txd: Remove write-only variable in txd_decode_frame().
...
libavcodec/txd.c:49:60: warning: variable ‘mipmap_count’ set but not used
2012-05-07 14:17:42 +02:00
Diego Biurrun
246b050f51
mmvideo.c: Remove unused variable in mm_decode_pal().
...
libavcodec/mmvideo.c:87:9: warning: variable ‘i’ set but not used
2012-05-07 14:17:41 +02:00
Diego Biurrun
dbe6ba55a3
build: cosmetics: Add missing end-of-line backslashes to item lists.
2012-05-07 14:17:40 +02:00
Diego Biurrun
9eb83a56aa
build: cosmetics: Split HEADERS/OBJS/PROGS lists into one entry per line.
2012-05-07 14:01:32 +02:00
Diego Biurrun
1f4f752117
libschroedinger: Move a function to avoid a forward declaration.
2012-05-07 10:35:25 +02:00
Sean McGovern
b68c4ac293
pthread: warn on high thread counts
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-05-07 10:35:01 +02:00
Anton Khirnov
828bd088f3
lavc: add sample rate and channel layout to AVFrame.
...
Rationale is the same as for video width/height etc.
2012-05-07 07:08:03 +02:00
Paul B Mahol
37f4a976b3
zerocodec: check if the previous frame is missing
...
ZeroCodec relies on the keyframe flag being set in the container, and
prev is the previously decoded frame. A keyframe flags incorrectly set
will lead to this condition.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-05-06 15:47:10 -07:00
Kostya Shishkov
fb5c1aaea6
dfa: use more meaningful return codes
2012-05-06 19:18:27 +02:00
Michael Niedermayer
71a3c59ed7
eatgv: check vector_bits
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-05-06 19:18:02 +02:00