summaryrefslogtreecommitdiff
path: root/libavcodec/arm
Commit message (Collapse)AuthorAge
* vp3: move idct and loop filter pointers to new vp3dsp contextMans Rullgard2012-07-18
| | | | | | | | This moves all VP3-specific function pointers from dsputil to a new vp3dsp context. There is no reason to ever use the VP3 IDCT where an MPEG2 IDCT is expected or vice versa. Signed-off-by: Mans Rullgard <mans@mansr.com>
* build: add CONFIG_VP3DSP, reduce repetition in OBJS listsMans Rullgard2012-07-18
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: generate position independent code to access data symbolsMans Rullgard2012-07-01
| | | | | | | | | | | This creates proper position independent code when accessing data symbols if CONFIG_PIC is set. References to external symbols should now use the movrelx macro. Some additional code changes are required since this macro may need a register to hold the GOT pointer. Signed-off-by: Mans Rullgard <mans@mansr.com>
* float_dsp: Move vector_fmac_scalar() from libavcodec to libavutilJustin Ruggles2012-06-18
|
* Add a float DSP framework to libavutilJustin Ruggles2012-06-08
| | | | Move vector_fmul() from DSPContext to AVFloatDSPContext.
* ARM: Move asm.S from libavcodec to libavutilJustin Ruggles2012-06-08
| | | | | This will allow for easier implementation of ARM-optimized functions in libraries other than libavcodec.
* arm/neon: dsputil: use correct size specifiers on vld1/vst1Mans Rullgard2012-05-10
| | | | | | | | | | 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>
* arm: dsputil: prettify some conditional instructions in put_pixels macrosMans Rullgard2012-05-10
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* arm: dsputil: fix overreads in put/avg_pixels functionsMans Rullgard2012-05-10
| | | | | | | | | 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>
* aacps: NEON optimisationsMans Rullgard2012-05-05
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* vp8: armv6: fix non-armv6t2 buildMans Rullgard2012-04-25
| | | | | | | | The assembler may fail to place literal pools close enough to instructions referencing them. An explicit .ltorg directive fixes this. Signed-off-by: Mans Rullgard <mans@mansr.com>
* vp8: armv6 optimisationsMans Rullgard2012-04-25
| | | | | | | Based on patch by Ronald S. Bultje <rsbultje@gmail.com>, partially ported from libvpx. Signed-off-by: Mans Rullgard <mans@mansr.com>
* vp8: arm: separate ARMv6 functions from NEONMans Rullgard2012-04-25
| | | | | | This is a preparation for complete ARMv6 optimisations. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: add some compatibility macrosMans Rullgard2012-04-25
| | | | | | This adds some macros simplifying Thumb and pre-v6T2 compatibility. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: allow runtime masking of CPU featuresMans Rullgard2012-04-22
| | | | | | | This allows masking CPU features with the -cpuflags avconv option which is useful for testing different optimisations without rebuilding. Signed-off-by: Mans Rullgard <mans@mansr.com>
* Remove lowres video decodingMans Rullgard2012-04-21
| | | | | | | This feature is complex, of questionable utility, and slows down normal decoding. Signed-off-by: Mans Rullgard <mans@mansr.com>
* build: Consistently handle conditional compilation for all optimization OBJS.Diego Biurrun2012-04-12
|
* rv40dsp: implement prescaled versions for biweight.Christophe GISQUET2012-04-10
| | | | | | | | | | Quite often, the original weights are multiple of 512. By prescaling them by 1/512 when they are computed (once per frame), no intermediate shifting is needed, and no prescaling on each call either. The x86 code already used that trick. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* cosmetics: Consistently place static, inline and av_cold attributes/keywords.Diego Biurrun2012-04-04
|
* remove iwmmxt optimizationsJanne Grunau2012-03-12
| | | | | | The were broken since August of 2010 without anyone noticing until three weeks ago. Nobody cares about it anymore and hopefully Marvell will support NEON like in the PXA978 from now on.
* dsputil: remove shift parameter from scalarproduct_int16Christophe GISQUET2012-03-07
| | | | | | | | | There is only one caller, which does not need the shifting. Other use cases are situations where different roundings would be needed. The x86 and neon versions are modified accordingly. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* vp8: change int stride to ptrdiff_t stride.Ronald S. Bultje2012-03-02
| | | | | On 64bit platforms with 32bit int, this means we won't have to sign- extend the integer anymore.
* SBR DSP: use intptr_t for the ixh parameter.Christophe GISQUET2012-02-23
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* rv34: change most "int stride" into "ptrdiff_t stride".Ronald S. Bultje2012-02-20
| | | | | | This prevents having to sign-extend on 64-bit systems with 32-bit ints, such as x86-64. Also fixes crashes on systems where we don't do it and arguments are not in registers, such as Win64 for all weight functions.
* mpegvideo: Add ff_ prefix to nonstatic functionsMartin Storsjö2012-02-15
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* dsputil: Add ff_ prefix to the dsputil*_init* functionsMartin Storsjö2012-02-15
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Add missing #include to vp8.h to fix a make checkheaders warning.Diego Biurrun2012-02-09
|
* doxygen: Do not include license boilerplates in Doxygen comment blocks.Diego Biurrun2012-02-06
|
* ARM: ac3: fix ac3_bit_alloc_calc_bap_armv6Mans Rullgard2012-02-02
| | | | | | | This function was broken when the start bin was not at the start of a band. Signed-off-by: Mans Rullgard <mans@mansr.com>
* aacsbr: ARM NEON optimised sbrdsp functionsMans Rullgard2012-01-28
| | | | | | Overall speedup of HE-AAC decoding 2.3x on Cortex-A8, 1.2x on A9. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: fix build with FFT enabled and MDCT disabledFelipe Contreras2012-01-20
| | | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Mans Rullgard <mans@mansr.com>
* rv34: add NEON rv34_idct_addJanne Grunau2012-01-16
| | | | | | | Overall almost 4% faster, idct_add down from 350 to 85 cycles, idct_dc_add down from 83 to 30 cycles. squash: rv34 idct rearrange partial register loads
* rv34: 1-pass inter MB reconstructionChristophe GISQUET2012-01-16
| | | | Implement 1-pass inverse transform and reconstruction for inter blocks.
* ARM: fix Thumb-mode simple_idct_armMans Rullgard2012-01-13
| | | | | | | | The alignment directive must obviously precede the label. This was never noticed in ARM mode since the location is already aligned there. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: 4-byte align start of all asm functionsMans Rullgard2012-01-13
| | | | | | | | | | | Due to apprent bugs in the GNU assembler and/or linker, relocations can be incorrectly processed if the alignment of a Thumb instruction is changed in the output file compared to the input object. This fixes crashes in h264 decoding with Thumb enabled. No effect in ARM mode since everything is 4-byte aligned there. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: rv34: fix asm syntax in dc transform functionsMans Rullgard2012-01-12
| | | | | Signed-off-by: Mans Rullgard <mans@mansr.com> Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* rv34: NEON optimised dc only inverse transformJanne Grunau2012-01-12
| | | | | 30-50% faster than the C implementation, 0.5% overall speedup on bourne.rmvb.
* rv34: joint coefficient decoding and dequantizationChristophe GISQUET2012-01-04
| | | | | | | | | | | Perform dequantization while decoding coefficients instead of performing it on the entire coefficients buffer. Since quantized coefficients are very sparse, this usually causes a small speedup. Speedup of around 1% on Panda board compared to the removed here neon code. Global speedup is probably around 3%. Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
* rv40: NEON optimised weak loop filterMans Rullgard2011-12-16
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: fix external symbol refs in rv40 asmMans Rullgard2011-12-15
| | | | | | | External symbol references need prefixes on some systems. This should fix build errors on Darwin. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: dca: disable optimised decode_blockcodes() for old gccMans Rullgard2011-12-15
| | | | | | | Old gcc versions have trouble compiling this function, and no simple, targeted test is possible. Signed-off-by: Mans Rullgard <mans@mansr.com>
* rv40: NEON optimised loop filter strength selectionMans Rullgard2011-12-14
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* rv34: NEON optimised 4x4 dequantMans Rullgard2011-12-13
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* rv40: NEON optimised rv40 qpel motion compensationMans Rullgard2011-12-07
| | | | | | Based on patch by Janne Grunau. Signed-off-by: Mans Rullgard <mans@mansr.com>
* rv40: NEON optimised weighted predictionJanne Grunau2011-12-06
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* rv40: NEON optimised chroma MCJanne Grunau2011-12-06
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: move NEON H264 chroma mc to a separate fileMans Rullgard2011-12-06
| | | | | | This allows sharing code with the rv40 version of these functions. Signed-off-by: Mans Rullgard <mans@mansr.com>
* rv34: NEON optimised inverse transform functionsJanne Grunau2011-12-06
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: h264dsp_neon cosmeticsMans Rullgard2011-12-02
| | | | | | | | - Replace 'ip' with 'r12'. - Use correct size designators for vld1/vst1. - Whitespace fixes. Signed-off-by: Mans Rullgard <mans@mansr.com>
* ARM: make some NEON macros reusableJanne Grunau2011-12-02
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>