Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-06-28arm: Detect 32 bit cpu features on ARMv8 when running on a 64 bit kernelMartin Storsjö
When running on a 64 bit kernel, /proc/cpuinfo lists different optional features than on 32 bit kernels (because some of them are mandatory in the 64 bit implemenations). The kernel does list the old features properly if they are queried via /proc/self/auxv though - however this file is not always readable (e.g. on most android systems). The getauxval function could also provide the same info as /proc/self/auxv even if this file isn't readable, but this function is not always available (and thus would need to be loaded with dlsym for compatibility with older android versions). The android cpufeatures library does this slightly differently, by assuming that these are available if the "CPU architecture" line is >= 8, see [1] for details. It has been suggested to include the old, non-optional features in /proc/cpuinfo as well, but that suggested patch never was merged. See [2] for the discussion around this suggestion. [1] https://android-review.googlesource.com/91380 [2] http://marc.info/?l=linux-arm-kernel&m=139087240101974 Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-03build: check if AS supports the '.func' directiveJanne Grunau
Not supported by Clang's integrated assembler. Since it just adds debug information it can safely omitted.
2014-03-13Update dsputil- and SIMD-related comments to match reality more closelyDiego Biurrun
2014-03-05arm: hpeldsp: prevent overreads in armv6 asmJanne Grunau
Based on a patch by Russel King <rmk+libav@arm.linux.org.uk> Bug-Id: 646 CC: libav-stable@libav.org
2014-02-19arm: Mark the stack as non-executableMartin Storsjö
If linking in an object file without this attribute set, the linker will assume that an executable stack might be needed. Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-07arm: Add EXTERN_ASM to the .func and .type declarations for exported symbolsMartin Storsjö
This makes the generated assembly more internally consistent, avoiding declaring two labels for the same function (for cases where EXTERN_ASM is empty) and not declaring a separate unprefixed label in other cases. This also makes sure the .func and .type delcarations have the same prefix. They have previously not been used on the platforms that have prefixed symbols on arm (iOS), but gas-preprocessor has recently started using the .func declarations for adding .thumb_func declarations for such functions. Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-11arm: Add an option for making sure NEON registers aren't clobberedMartin Storsjö
This is pretty much based on the same test for XMM registers. Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-07arm: Allow overriding the alignment set in the function macroMartin Storsjö
The function macro always sets .align 2 before declaring the function label (since 5c5e1ea3) and always sets the section to .text (since 278caa6a). The .align 5 before certain functions, added in fc252eba, were added before .text and .align were added to the function macro and thus became useless/unused when the function macro got them. This restores the original intention, to align the loop entry points. Signed-off-by: Martin Storsjö <martin@martin.st>
2013-08-29arm: float_dsp: Propagate cpu_flags to vfp initialization functionDiego Biurrun
2013-08-29avutil: Refactor CPU extension availability macrosDiego Biurrun
2013-08-29avutil: Move internal CPU detection function declarations to private headerDiego Biurrun
2013-07-18Employ consistent LIBAV_COMPAT_ multiple inclusion guards in compat/Diego Biurrun
Also fix a comment and an #endif comment.
2013-05-27arm: Only output eabi attributes if building for ELFMartin Storsjö
This matches the other eabi attribute in the same file. This is required in order to build for arm/hardfloat with other object file formats than ELF. Signed-off-by: Martin Storsjö <martin@martin.st>
2013-05-05avutil: Add av_cold attributes to init functions missing themDiego Biurrun
2013-02-11arm: Fall back to runtime cpu feature detection via /proc/cpuinfoMartin Storsjö
On recent android versions, /proc/self/auxw is unreadable (unless the process is running running under the shell uid or in debuggable mode, which makes it hard to notice). See http://b.android.com/43055 and https://android-review.googlesource.com/51271 for more information about the issue. This makes sure e.g. neon optimizations are enabled at runtime in android apps even when built in release mode, if configured to use the runtime detection. CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-22floatdsp: move scalarproduct_float from dsputil to avfloatdsp.Ronald S. Bultje
This makes the aac decoder and all voice codecs independent of dsputil.
2013-01-22floatdsp: move butterflies_float from dsputil to avfloatdsp.Ronald S. Bultje
This makes wmadec/enc, twinvq and mpegaudiodec (i.e. mp2/mp3) independent of dsputil.
2013-01-22floatdsp: move vector_fmul_reverse from dsputil to avfloatdsp.Ronald S. Bultje
Now, nellymoserenc and aacenc no longer depends on dsputil. Independent of this patch, wmaprodec also does not depend on dsputil, so I removed it from there also.
2013-01-22floatdsp: move vector_fmul_add from dsputil to avfloatdsp.Ronald S. Bultje
2013-01-16lavc: Move vector_fmul_window to AVFloatDSPContextJustin Ruggles
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-12-07arm: detect cpu features at runtime on LinuxMans Rullgard
This allows compiling optimised functions for features not enabled in the core build and selecting these at runtime if the system has the necessary support. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07arm: rename ARMVFP config symbol to VFPMans Rullgard
This is consistent with usual ARM nomenclature as well as with the VFPV3 and NEON symbols which both lack the ARM prefix. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07arm: use HAVE*_INLINE/EXTERNAL macros for conditional compilationMans Rullgard
These macros reflect the actual capabilities required here. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-26dsputil: move vector_fmul_scalar() to AVFloatDSPContext in libavutilJustin Ruggles
2012-10-11Move avutil tables only used in libavcodec to libavcodec.Diego Biurrun
2012-10-03ARM: use numeric ID for Tag_ABI_align_preservedMans Rullgard
Some old assemblers still in use do not support named tags. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-02ARM: bswap: drop armcc version of av_bswap16()Mans Rullgard
This function causes several versions of armcc to miscompile code, and the performance impact is small. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-02ARM: set Tag_ABI_align_preserved in all asm filesMans Rullgard
All our ARM asm preserves alignment so setting this attribute in a common location is simpler. This removes numerous warnings when linking with armcc. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-02ARM: fix Thumb PIC on AppleMans Rullgard
LDR with register offset and PC as base register is not available in the Thumb instruction set so the addition must be done separately. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-21ARM: use 2-operand syntax for ADD Rd, PC in Apple PIC codeMans Rullgard
The Apple assembler refuses to assemble the 3-operand form in Thumb2 even though it is valid syntax. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-21ARM: align PIC offset pools to 4 bytesMans Rullgard
When building Thumb2 code, the end of a function, where the PIC offsets are placed, need not be aligned. Although the values are only accessed with instructions allowing unaligned addresses, keeping them aligned is preferable. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-20ARM: swap source operands in some add instructionsMans Rullgard
This allows using a 16-bit opcode when generating Thumb2 code. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-16flacdsp: arm optimised lpc filterMans Rullgard
2012-08-13ARM: intmath: use native-size return types for clipping functionsMans Rullgard
This avoids having the compiler redundantly mask the values to the smaller size. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13libavutil: add saturating addition functionsMans Rullgard
Fixed-point audio codecs often use saturating arithmetic, and special instructions for these operations are common. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-10ARM: add missing "cc" clobber in av_clipl_int32_arm()Mans Rullgard
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-08ARM: use Q/R inline asm operand modifiers only if supportedMans Rullgard
Some compilers do not support the Q/R modifiers used to access the low/high parts of a 64-bit register pair. Check for this and disable all uses of it when not supported. Fixes bug #337. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-01ARM: generate position independent code to access data symbolsMans Rullgard
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>
2012-06-22cosmetics: do not use full path for local headersDiego Biurrun
2012-06-19float_dsp: Move vector_fmac_scalar() from libavcodec to libavutilJustin Ruggles
2012-06-08ARM: fix float_dsp breakage from d5a7229Mans Rullgard
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-08Add a float DSP framework to libavutilJustin Ruggles
Move vector_fmul() from DSPContext to AVFloatDSPContext.
2012-06-08ARM: Move asm.S from libavcodec to libavutilJustin Ruggles
This will allow for easier implementation of ARM-optimized functions in libraries other than libavcodec.
2012-05-07build: cosmetics: Add missing end-of-line backslashes to item lists.Diego Biurrun
2012-05-04arm: intreadwrite: revert 16-bit load asm to old version for gcc < 4.6Mans Rullgard
Commit adebad0 "arm: intreadwrite: fix inline asm constraints for gcc 4.6 and later" caused some older gcc versions to miscompile code. This reverts to the old version of the code for these compilers. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-02arm: intreadwrite: disable inline asm for gcc 4.7 and laterMans Rullgard
Starting with version 4.7, gcc properly supports unaligned memory accesses on ARM. Not using the inline asm with these compilers results in better code. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-02arm: intreadwrite: fix inline asm constraints for gcc 4.6 and laterMans Rullgard
With a dereferenced type-cast pointer as memory operand, gcc 4.6 and later will sometimes copy the data to a temporary location, the address of which is used as the operand value, if it thinks the target address might be misaligned. Using a pointer to a packed struct type instead does the right thing. The 16-bit case is special since the ldrh instruction addressing modes are limited compared to ldr. The "Uq" constraint produces a memory reference suitable for an ldrsb instruction, which supports the same addressing modes as ldrh. However, the restrictions appear to apply only when the operand addresses a single byte. The memory reference must thus be split into two operands each targeting one byte. Finally, the "Uq" constraint is only available in ARM mode. The Thumb-2 ldrh instruction supports most addressing modes so the normal "m" constraint can be used there. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-22ARM: allow runtime masking of CPU featuresMans Rullgard
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>
2012-03-13remove iwmmxt optimizationsJanne Grunau
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.
2011-12-12bswap: make generic implementation more compiler-friendlyMans Rullgard
With these changes, gcc 4.5 and later recognise it as a bswap and use the proper instructions on ARM and x86. On x86, the 16-bit bswap is recognised from gcc 4.1. Signed-off-by: Mans Rullgard <mans@mansr.com>