summaryrefslogtreecommitdiff
path: root/libavcodec
Commit message (Collapse)AuthorAge
* lagarith: fix color plane inversion for YUY2 output.Ronald S. Bultje2012-08-03
|
* lagarith: pad RGB buffer by 1 byte.Ronald S. Bultje2012-08-03
| | | | | | | | | | | For left HFYU prediction, we predict from the buffer buf+1 using 8- or 16-byte reads. This means that aligning the buffer by 16 bytes is in itself not sufficient, because if the width itself is 16- or 8-byte aligned, the buffer will not be padded, and thus a read of size 16 at buf+1 will overflow boundaries at the right edge. Padding the buffer by 1 byte is sufficient to not overflow its boundaries. Fixes bug 342.
* dsputil: make add_hfyu_left_prediction_sse4() support unaligned src.Ronald S. Bultje2012-08-03
| | | | | | | | | | This makes add_hfyu_left_prediction_sse4() handle sources that are not 16-byte aligned in its own function rather than by proxying the call to add_hfyu_left_prediction_ssse3(). This fixes a crash on Win64, since the sse4 version clobberes xmm6, but the ssse3 version (which uses MMX regs) does not restore it, thus leading to XMM clobbering and RSP being off. Fixes bug 342.
* vc1dec: Remove separate scaling function for interlaced field MVsMashiat Sarker Shakkhar2012-08-03
| | | | | | | The scaling process for obtaining direct MVs from co-located field MVs is the same for interlaced field and progressive pictures. Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
* vc1dec: Invoke edge_emulation regardless of MV precisionMashiat Sarker Shakkhar2012-08-03
| | | | | | | | | | | | In VC-1 interlaced field pictures, chroma motion vectors can extend beyond picture boundary even if luma vectors are bounded. The problem shows up only for hpel interpolated MVs, and may be due to the way motion vectors are scaled / cropped. Thanks to Konstantin Shishkov for suggesting the fix. This fixes long-known segfaults in MC-VC1.ts from videolan streams archive. Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
* x86: Use consistent 3dnowext function and macro name suffixesDiego Biurrun2012-08-03
| | | | | | Currently there is a wild mix of 3dn2/3dnow2/3dnowext. Switching to "3dnowext", which is a more common name of the CPU flag, as reported e.g. by the Linux kernel, unifies this.
* g723_1: scale output as supposed for the case with postfilter disabledKostya Shishkov2012-08-03
|
* g723_1: increase excitation storage by 4Kostya Shishkov2012-08-03
| | | | | | Fixed codebook mode in 5300 rate may write up to SUBFRAME_LEN + 4 and that is considered normal by the reference decoder. Without that additional padding it might overwrite first elements of LPC history.
* g723_1: fix upper bound parameter from inverse maximum autocorrelationKostya Shishkov2012-08-03
|
* g723_1: make scale_vector() behave like the referenceKostya Shishkov2012-08-03
|
* g723_1: fix off-by-one error in normalize_bits()Kostya Shishkov2012-08-03
|
* g723_1: save/restore excitation with offset to store LPC historyKostya Shishkov2012-08-03
| | | | | The same buffer with saved data is used later in LPC reconstruction, so it should have some head space for LPC history.
* wmapro: prevent division by zero when sample rate is unspecifiedSean McGovern2012-08-03
| | | | | | This fixes Bugzilla #327: Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
* x86: proresdsp: improve SIGNEXTEND macro commentsDiego Biurrun2012-08-02
|
* x86: h264dsp: K&R formatting cosmeticsDiego Biurrun2012-08-02
|
* x86: fft: fix imdct_half() for AVXRonald S. Bultje2012-08-02
| | | | | | | | | Some calculations were changed in b6a3849 to use mmsize, which was not correct for the AVX version, which uses INIT_YMM and therefore has mmsize == 32. Fixes Bug 341. Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
* vc1dec: remove useless #include simple_idct.hMans Rullgard2012-08-02
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* dct-test: always link with aandcttab.oMans Rullgard2012-08-02
| | | | | | | | This allows building dct-test even if aandcttab.o is not pulled in by any enabled codec. The DCT with which these tables are used does not use them directly, so building it without the tables is possible. Signed-off-by: Mans Rullgard <mans@mansr.com>
* vp8: pack struct VP8ThreadData more efficientlyMans Rullgard2012-08-02
| | | | | | | | Reordering the members in this struct reduces the holes required to maintain alignment. With this order, the only remaining, and unavoidable, hole is 3 bytes following left_nnz. Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86: remove libmpeg2 mmx(ext) idct functionsMans Rullgard2012-08-02
| | | | | | | | These functions are not faster than other mmx implementations on any hardware I have been able to test on, and they are horribly inaccurate. There is thus no reason to ever use them. Signed-off-by: Mans Rullgard <mans@mansr.com>
* eamad: Use dsputils instead of a custom bswap16_bufDerek Buitenhuis2012-08-01
| | | | Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* Canopus Lossless decoderDerek Buitenhuis2012-08-01
| | | | | | At the moment it only does BGR24, but I plan to add the rest after. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* dca: Switch dca_sample_rates to avpriv_ prefix; it is used across libsDiego Biurrun2012-08-01
|
* ARM: use =const syntax instead of explicit literal poolsMans Rullgard2012-08-01
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: use standard syntax for all LDRD/STRD instructionsMans Rullgard2012-08-01
| | | | | | | | | The standard syntax requires two destination registers for LDRD/STRD instructions. Some versions of the GNU assembler allow using only one with the second implicit, others are more strict. Signed-off-by: Mans Rullgard <mans@mansr.com>
* fft: port FFT/IMDCT 3dnow functions to yasm, and disable on x86-64.Ronald S. Bultje2012-07-31
| | | | | 64-bit CPUs always have SSE available, thus there is no need to compile in the 3dnow functions. This results in smaller binaries.
* dct-test: allow to compile without HAVE_INLINE_ASM.Ronald S. Bultje2012-07-31
|
* x86/dsputilenc: bury inline asm under HAVE_INLINE_ASM.Ronald S. Bultje2012-07-31
|
* dca: Move tables used outside of dcadec.c to a separate file.Diego Biurrun2012-08-01
|
* dca: Rename dca.c ---> dcadec.cDiego Biurrun2012-08-01
| | | | This will allow adding dca.c with tables used from other files.
* x86: h264dsp: Remove unused variable ff_pb_3_1Diego Biurrun2012-08-01
|
* x86: h264dsp: Adjust YASM #ifdefsDiego Biurrun2012-07-31
| | | | This fixes compilation with YASM disabled.
* h264: convert loop filter strength dsp function to yasm.Ronald S. Bultje2012-07-30
| | | | | | | This completes the conversion of h264dsp to yasm; note that h264 also uses some dsputil functions, most notably qpel. Performance-wise, the yasm-version is ~10 cycles faster (182->172) on x86-64, and ~8 cycles faster (201->193) on x86-32.
* Improve descriptiveness of a number of codec and container long namesDiego Biurrun2012-07-30
|
* h264_ps: declare array of colorspace strings on its own line.Ronald S. Bultje2012-07-29
|
* eamad/eatgq/eatqi: call special EA IDCT directlyMans Rullgard2012-07-29
| | | | | | | | | | | | These decoders use a special non-MPEG2 IDCT. Call it directly instead of going through dsputil. There is never any reason to use a regular IDCT with these decoders or to use the EA IDCT with other codecs. This also fixes the bizarre situation of eamad and eatqi decoding incorrectly if eatgq is disabled. Signed-off-by: Mans Rullgard <mans@mansr.com>
* eamad: remove use of MpegEncContextMans Rullgard2012-07-29
| | | | | | | | There is no sense in pulling in this monster struct just for a handful of fields. The code does not call any functions expecting an MpegEncContext. Signed-off-by: Mans Rullgard <mans@mansr.com>
* mpegvideo: remove unnecessary inclusions of faandct.hMans Rullgard2012-07-29
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* h264_idct_10bit: port x86 assembly to cpuflags.Ronald S. Bultje2012-07-28
|
* fft: rename "z" to "zc" to prevent name collision.Ronald S. Bultje2012-07-28
| | | | | | Without this, cglobal will expand "z" to "zh" to access the high byte in a register's word, which causes a name collision with the ZH(x) macro further up in this file.
* vc1dec: Override invalid macroblock quantizerMichael Niedermayer2012-07-28
| | | | | | 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>
* vc1: avoid reading beyond the last line in vc1_draw_sprites()Michael Niedermayer2012-07-28
| | | | | | | | Fixes overread 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>
* vc1dec: check that coded slice positions and interlacing match.Michael Niedermayer2012-07-28
| | | | | | | | This fixes out of array writes 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>
* vc1dec: Do not ignore ff_vc1_parse_frame_header_adv return valueMichael Niedermayer2012-07-28
| | | | | | 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>
* vp3: don't compile mmx IDCT functions on x86-64.Ronald S. Bultje2012-07-27
| | | | | 64-bit CPUs always have SSE2, and a SSE2 version exists, thus the MMX version will never be used.
* h264_loopfilter: port x86 simd to cpuflags.Ronald S. Bultje2012-07-27
|
* h264_chromamc_10bit: port x86 simd to cpuflags.Ronald S. Bultje2012-07-27
|
* vp3: port x86 SIMD to cpuflags.Ronald S. Bultje2012-07-27
|
* rv34: port x86 SIMD to cpuflags.Ronald S. Bultje2012-07-27
|
* vp56: only compile MMX SIMD on x86-32.Ronald S. Bultje2012-07-27
| | | | | All x86-64 CPUs have SSE2, so the MMX version will never be used. This leads to smaller binaries.