Commit Graph
100 Commits
Author SHA1 Message Date
Måns Rullgård 014b7ecb66 PPC: 32-bit asm for MAC64 and MLS64
GCC makes a mess of these operations, so give it a hand.

55% faster MP3 decoding on G4.

Originally committed as revision 18794 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-11 02:41:50 +00:00
Måns Rullgård 1e24f1b25d mpegaudio: enclose SUM8() macro args in parens when used
Originally committed as revision 18746 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-05 18:44:13 +00:00
Måns Rullgård bf030c887f mpegaudio: avoid unnecessary copy in high-precision mode
Originally committed as revision 18745 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-05 18:44:10 +00:00
Måns Rullgård adb206c238 mpegaudio: use av_clip()
Originally committed as revision 18744 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-05 18:44:07 +00:00
Måns Rullgård 3737dd1cd3 PPC: implement MULH() in assembler
Left to its own devices, gcc calculates the full 64-bit product only to
discard the low 32 bits.  This forces it to do the right thing.

20% faster MP3 decoding on G4.

Originally committed as revision 18737 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-04 17:31:15 +00:00
Måns Rullgård 4c27207c12 configure: fix licence check function
Originally committed as revision 18717 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-29 16:14:33 +00:00
Måns Rullgård e4ddc8edfa configure: support Blackfin CPU names with --cpu
Originally committed as revision 18660 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-22 09:27:36 +00:00
Måns Rullgård cc078b5d8f PPC: check for x-form asm constraint support
Originally committed as revision 18606 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 13:57:30 +00:00
Måns Rullgård 9f5ff83f2a PPC asm for AV_RL*()
PPC is normally big endian but has special little endian load/store
instructions.  Using these avoids a separate byteswap.  This makes the
vorbis decoder about 5% faster.  Not much else uses little-endian
read/write extensively.

GCC generates horrible PPC code for the default AV_[RW]B64 (which uses
a packed struct), so we override it with a plain pointer cast.

Originally committed as revision 18602 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 00:00:31 +00:00
Måns Rullgård 3c55ce039d ARM asm for AV_RN*()
ARMv6 and later support unaligned loads and stores for single
word/halfword but not double/multiple.  GCC is ignorant of this and
will always use bytewise accesses for unaligned data.  Casting to an
int32_t pointer is dangerous since a load/store double or multiple
instruction might be used (this happens with some code in FFmpeg).
Implementing the AV_[RW]* macros with inline asm using only supported
instructions gives fast and safe unaligned accesses.  ARM RVCT does
the right thing with generic code.

This gives an overall speedup of up to 10%.

Originally committed as revision 18601 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 00:00:28 +00:00
Måns Rullgård a6783b8961 Reorganise intreadwrite.h
This changes intreadwrite.h to support per-arch implementations of the
various macros allowing us to take advantage of special instructions
or other properties the compiler does not know about.

Originally committed as revision 18600 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 00:00:22 +00:00
Måns Rullgård 08e12b2240 ARM: NEON optimised add_pixels_clamped
Based on patch by David Conrad.

Originally committed as revision 18332 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-04 20:18:58 +00:00
Måns Rullgård 60c703ac4b ARM: START/STOP_TIMER support for ARMv7
Originally committed as revision 18305 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-01 22:56:26 +00:00
Måns Rullgård 439ccc4e0e Split libavutil/timer.h per architecture
Originally committed as revision 18304 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-01 22:56:22 +00:00
Måns Rullgård e5d0dbf558 Remove aandcttab.o from dct-test dependencies, the lib includes it
Originally committed as revision 18299 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-01 01:22:36 +00:00
Måns Rullgård 99cc563f26 Make examples and test progs depend on libraries
Originally committed as revision 29119 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-04-01 00:54:23 +00:00
Måns Rullgård 33afad5451 Add $(ELIBS) to example/test app link command
Originally committed as revision 18298 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-01 00:53:34 +00:00
Måns Rullgård bbba084b4f Make examples and test progs depend on libraries
Originally committed as revision 18297 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-01 00:53:31 +00:00
Måns Rullgård 92c093c1b5 Link tests/examples with -lfoo instead of libfoo.a
Originally committed as revision 18296 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-01 00:53:28 +00:00
Måns Rullgård bdc2cc16eb Always use -L flags for all subdirs
Originally committed as revision 18295 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-01 00:53:25 +00:00
Måns Rullgård 3fd422ff77 Move make rules applicable only to subdirs into subdir.mak
Originally committed as revision 18294 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-01 00:53:22 +00:00
Måns Rullgård 13cbe2c026 Quote stored configure arguments containing spaces
Originally committed as revision 18252 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 21:12:44 +00:00
Måns Rullgård 67c447a679 Fix running regression tests on remote targets
Originally committed as revision 18251 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-30 20:57:01 +00:00
Måns Rullgård c3df4a3bfe rmdec: fix crash at end of file
Originally committed as revision 18018 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-16 20:22:39 +00:00
Måns Rullgård 9bceffef3a Fix ff_random_get_seed() prototype
Originally committed as revision 17970 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-14 23:00:57 +00:00
Måns Rullgård f49568a467 Fix unaligned access in ff_copy_bits()
Originally committed as revision 17921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 23:27:38 +00:00
Måns Rullgård 75800dce2b Set AS to $CC by default, override with gcc only when CC is armcc
Originally committed as revision 17920 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 22:39:49 +00:00
Måns Rullgård aa033b1ed7 Enable CONFIG_FASTDIV by default
Originally committed as revision 17900 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 09:19:11 +00:00
Måns Rullgård 82bb33290e Allow different executable suffix for host and target
Originally committed as revision 17885 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-08 22:11:24 +00:00
Måns Rullgård 35690321a7 ARM: disable inline asm for armcc
Originally committed as revision 17831 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-05 21:20:13 +00:00
Måns Rullgård 1e65f62e2b ARM: armcc versions of bswap_16/32
Originally committed as revision 17830 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-05 21:20:10 +00:00
Måns Rullgård 03e3776293 ARM: detect armcc compiler and enable gcc mode
Originally committed as revision 17829 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-05 21:20:08 +00:00
Måns Rullgård f65883c812 configure: check asm support using $as
Originally committed as revision 17828 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-05 21:20:04 +00:00
Måns Rullgård 313c46a610 Compile .S files with $(AS), set it in configure
Assembler files using the GNU syntax need to be processed by gcc,
whichever compiler is used for C files.

Originally committed as revision 17827 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-05 21:20:01 +00:00
Måns Rullgård 03754fcd6f Alpha: use -g3 with ccc to allow optimisation with debugging symbols
Originally committed as revision 17793 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 23:53:29 +00:00
Måns Rullgård 511b3667d6 Allow --enable-swscale until FATE is updated
Originally committed as revision 17788 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 23:07:12 +00:00
Måns Rullgård 54460a8347 configure: improve temp file creation and cleanup
Originally committed as revision 17752 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 08:53:55 +00:00
Måns Rullgård 8858990f07 ALAC: use sign_extend() from mathops.h
Originally committed as revision 17739 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 01:53:54 +00:00
Måns Rullgård 101dfa7d0a Add sign_extend() function to mathops.h
Originally committed as revision 17738 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 00:03:55 +00:00
Måns Rullgård 09096c9fad RA144: work around gcc bug/oddity on ARM
This should not make any difference, yet some gcc versions on ARM
produce incorrect output without this fix.

Approved by Vitor.

Originally committed as revision 17698 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-01 23:41:39 +00:00
Måns Rullgård b77df6377b configure: fix return value from check_header
Originally committed as revision 17695 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-01 17:57:14 +00:00
Måns Rullgård db794291a2 SVQ3: Fix decoding with A32_BITSTREAM_READER
svq3_decode_slice_header() modifies the buffer used by the bitstream
reader.  Some of the bitstream readers cache a few bytes of data, which
must be flushed after such a modification.  Calling skip_bits_long(gb, 0)
achieves this.

Originally committed as revision 17680 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-01 12:11:07 +00:00
Måns Rullgård 4cd19f6e78 ARM: fix missing MUL16() return type
Originally committed as revision 17679 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-01 12:11:02 +00:00
Måns Rullgård cd0d9a9de6 configure: check_func_headers should mark headers as found
Originally committed as revision 17668 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-28 19:56:21 +00:00
Måns Rullgård 7270270541 configure: {enable,disable}_safe functions that sanitise arguments
Originally committed as revision 17667 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-28 19:56:19 +00:00
Måns Rullgård f166f2f435 Revert "Improve frame rate guessing for streams with two fields per frame."
This reverts r17656, which broke many tests.  Further investigation
is necessary.

Originally committed as revision 17658 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-28 15:15:54 +00:00
Måns Rullgård fe7f149ed8 ARM: fix corner-case overflow in H.264 weighted prediction
Originally committed as revision 17657 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-28 13:48:54 +00:00
Måns Rullgård 92971e91ec configure: remove redundant alsa/asoundlib.h check
Originally committed as revision 17650 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-27 21:15:12 +00:00
Måns Rullgård d4f2a6250a Fix get_ur_golomb_jpegls() with A32_BITSTREAM_READER
If k==0, log==0 can indicate that the coded value uses more than
MIN_CACHE_BITS bits.  With MIN_CACHE_BITS==32, the fast branch is
incorrectly taken in this case unless explicitly forbidden.

Originally committed as revision 17550 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-24 01:41:44 +00:00
Måns Rullgård 03bc0f3744 Avoid warnings from AV_GCC_VERSION_AT_LEAST with some non-gcc compilers
Originally committed as revision 17508 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-22 00:13:23 +00:00
Måns Rullgård df442a8d48 configure: detect ccc compiler (Alpha) and set required flags
Originally committed as revision 17507 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-22 00:13:19 +00:00
Måns Rullgård b1598b5805 configure: indent
Originally committed as revision 17503 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 22:12:47 +00:00
Måns Rullgård 154d432cc4 Pass sysroot argument to gcc
Originally committed as revision 17500 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 21:07:37 +00:00
Måns Rullgård c5200f1753 Add --sysroot and --sysinclude configure options
Some cross-compilers need these parameters, and we can't
figure out the correct values.

Originally committed as revision 17499 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 21:07:34 +00:00
Måns Rullgård 629687f62f configure: move detection of compiler type to single location
Originally committed as revision 17498 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 21:07:32 +00:00
Måns Rullgård 333d5374d0 Remove special treatment of version.h in DEPEND_CMD
Originally committed as revision 17484 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 18:19:29 +00:00
Måns Rullgård 36798f1bf0 Declare version.h dependencies explicitly
Originally committed as revision 17483 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 18:19:26 +00:00
Måns Rullgård 28499cc8d8 Correct, portable definition of INT_BIT
Originally committed as revision 17480 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 16:03:30 +00:00
Måns Rullgård f4870943ea configure: add (empty) avr32 arch case
Originally committed as revision 17479 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 16:03:27 +00:00
Måns Rullgård cfdb6148d6 configure: sort cases in arch section
Originally committed as revision 17478 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 16:03:25 +00:00
Måns Rullgård 822be725d9 Alpha: fix inline asm with DEC/Compaq/HP compiler
Originally committed as revision 17477 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 16:03:23 +00:00
Måns Rullgård 037c08d6cd avidec: fix error introduced in r17382
Originally committed as revision 17385 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-16 18:52:14 +00:00
Måns Rullgård 7595a5e491 configure: add command flag to disable yasm use
Originally committed as revision 16998 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-05 02:47:26 +00:00
Måns Rullgård c0f5b7f107 configure: set EXESUF before it is used
Originally committed as revision 16997 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-05 00:03:54 +00:00
Måns Rullgård 5317c95b75 Remove CONFIG_H264_ENCODER references
Originally committed as revision 16996 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-04 21:28:58 +00:00
Måns Rullgård 993f2d0fd7 configure: move basic sanity tests before other tests
Originally committed as revision 16995 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-04 21:28:54 +00:00
Måns Rullgård a95d00b287 shorten: trivial simplification of signature check
Originally committed as revision 16908 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-31 22:30:49 +00:00
Måns Rullgård e1f7cb7fa0 ARM: NEON optimised vector_fmul_window
Originally committed as revision 16868 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-30 23:13:19 +00:00
Måns Rullgård dd927e2e62 ARM: NEON optimised vector_fmul
Originally committed as revision 16867 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-30 23:13:15 +00:00
Måns Rullgård ca6532f620 ARM: remove some unused macro arguments
Originally committed as revision 16824 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-27 16:34:10 +00:00
Måns Rullgård d8f9269dc6 ARM: reorder some instructions in put_pixels*_arm for speed gains
Originally committed as revision 16823 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-27 16:06:51 +00:00
Måns Rullgård 00c5727d90 ARM: replace jump tables with conditional branches
Originally committed as revision 16822 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-27 16:06:47 +00:00
Måns Rullgård d9e68f5c1a ARM: replace explicit literal loads with ldr Rd, =lit
Originally committed as revision 16821 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-27 16:06:44 +00:00
Måns Rullgård fc252eba02 ARM: change alignment of loops in put_pixels*_arm to 32
Originally committed as revision 16820 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-27 16:06:41 +00:00
Måns Rullgård 4f928a4d2d ARM: optimised mid_pred()
Originally committed as revision 16819 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-27 16:06:38 +00:00
Måns Rullgård 1214bd86dc ARM: allow register operands for shifts in MULL()
Originally committed as revision 16818 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-27 16:06:34 +00:00
Måns Rullgård 4f924f9aa0 configure: exit with error if OS is unknown
Originally committed as revision 16807 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-26 14:32:01 +00:00
Måns Rullgård f2f35d3364 Fix version.h dependency on version.sh
Originally committed as revision 16801 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-26 09:24:52 +00:00
Måns Rullgård 14a8acf108 configure: add datadir variable and write to config.{h,mak}
Originally committed as revision 16791 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-25 22:23:03 +00:00
Måns Rullgård bd53b426b7 ARM: NEON optimised H.264 weighted prediction
Originally committed as revision 16771 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-25 13:04:45 +00:00
Måns Rullgård 5a29589b81 ARM: NEON optimised H.264 biweighted prediction
Originally committed as revision 16770 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-25 13:04:41 +00:00
Måns Rullgård a0d8a50bca configure: add help for fastdiv
Originally committed as revision 16754 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-24 17:08:49 +00:00
Måns Rullgård 77c4537313 ARM: simplify ff_put/avg_h264_chroma_mc4/8_neon definitions, no code change
Originally committed as revision 16677 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-18 20:43:11 +00:00
Måns Rullgård c0a02a3e47 Alpha: add -mieee to CFLAGS
Originally committed as revision 16676 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-18 18:31:54 +00:00
Måns Rullgård fd6045bae5 Alpha: fix pix_abs16
Originally committed as revision 16675 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-18 18:31:52 +00:00
Måns Rullgård 27a9466b21 configure: add fastdiv to CONFIG_LIST
Originally committed as revision 16674 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-18 18:29:57 +00:00
Måns Rullgård 2a839eeb02 dct-test: add Alpha idct
Originally committed as revision 16669 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-18 05:52:20 +00:00
Måns Rullgård 179c56b879 Alpha: add ff_ prefix to idct functions
Originally committed as revision 16668 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-18 05:52:17 +00:00
Måns Rullgård 7d95741f83 Alpha: indentation
Originally committed as revision 16667 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-18 05:52:15 +00:00
Måns Rullgård 74c4746344 Alpha: proper IDCT selection
Only select the Alpha IDCT if auto or explicitly requested.  Also
disable it in lowres mode.

Originally committed as revision 16666 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-18 05:52:12 +00:00
Måns Rullgård c2fbf89398 Alpha: add some const, kill some warnings
Originally committed as revision 16665 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-18 05:52:08 +00:00
Måns Rullgård 9dbd3ed6c3 Alpha: factor common parts from dct_unquantize_h263_intra/inter_axp
Originally committed as revision 16661 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-17 21:44:58 +00:00
Måns Rullgård 1617220799 Alpha: fix dct_unquantize_h263_inter/intra_axp()
Originally committed as revision 16660 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-17 21:44:56 +00:00
Måns Rullgård 7356aaa786 Fix mpeg audio regression test failure
Originally committed as revision 16599 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-14 09:26:07 +00:00
Måns Rullgård 1cd11856b0 configure: add Alpha CPU types
Originally committed as revision 16573 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-13 02:02:50 +00:00
Måns Rullgård 9a0cf9f8f8 ARM: use push/pop pseudo-instructions in simple_idct_armv6.S
Originally committed as revision 16570 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-12 20:37:49 +00:00
Måns Rullgård e9497946bb ARM: simple_idct_armv6.S whitespace cosmetics
Originally committed as revision 16569 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-12 20:37:39 +00:00
Måns Rullgård 7f727ace2a ARM: clean up pc-relative references in simple_idct_armv6.S
Originally committed as revision 16568 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-12 20:37:33 +00:00
Måns Rullgård 3b16c71984 ARM: use rX register names in simple_idct_armv6.S
Originally committed as revision 16567 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-12 20:37:29 +00:00
Måns Rullgård 7b114c0925 AVI: add bswap.h include needed on big endian
Originally committed as revision 16564 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-12 00:07:40 +00:00