FFmpeg git repo
Go to file
Roland Scheidegger a812b599b5 h264: assembly version of get_cabac for x86_64 with PIC (v4)
This adds a hand-optimized assembly version for get_cabac much like the
existing one, but it works if the table offsets are RIP-relative.
Compared to the non-RIP-relative version this adds 2 lea instructions
and it needs one extra register.
There is a surprisingly large performance improvement over the c version (more
so than the generated assembly seems to suggest) just in get_cabac, I measured
roughly 40% faster for get_cabac on a K8. However, overall the difference is
not that big, I measured roughly 5% on a test clip on a K8 and a Core2.
Hopefully it still compiles on x86 32bit...
v2: incorporated feedback from Loren Merritt to avoid rip-relative movs
for every table, and got rid of unnecessary @GOTPCREL.
v3: apply similar fixes to the the decode_significance functions, and use
same macro arguments for non-pic case.
v4: prettify inline asm arguments, add a non-fast-cmov version (as I expect
the c code to be faster otherwise since both cmov and sbb suck hard on a
Prescott, even can't construct the mask with a 64bit shift as that's just as
terrible - it's quite difficult to find usable instructions on that chip...).
This is tested to work but not on a P4, in theory it _should_ be fast there.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-21 00:27:06 +02:00
doc Merge remote-tracking branch 'qatar/master' 2012-04-20 22:18:26 +02:00
ffpresets
libavcodec h264: assembly version of get_cabac for x86_64 with PIC (v4) 2012-04-21 00:27:06 +02:00
libavdevice Merge remote-tracking branch 'qatar/master' 2012-04-04 21:17:52 +02:00
libavfilter lavfi/mp: remove libmpcodecs mirror filter 2012-04-20 01:01:24 +02:00
libavformat Merge remote-tracking branch 'qatar/master' 2012-04-20 22:18:26 +02:00
libavutil Merge remote-tracking branch 'qatar/master' 2012-04-20 22:18:26 +02:00
libpostproc libpostproc: fix out of array accesses detected by AddressSanitizer. 2012-02-29 04:25:13 +01:00
libswresample swr: add a swr_flags AVOption 2012-04-11 14:10:22 +02:00
libswscale sws: remove cliping in yuv2rgb code. 2012-04-15 23:38:42 +02:00
mt-work
presets
tests Merge remote-tracking branch 'qatar/master' 2012-04-20 22:18:26 +02:00
tools Merge remote-tracking branch 'hexene/stagefright' 2012-04-19 01:58:30 +02:00
.gitignore Merge remote-tracking branch 'qatar/master' 2012-03-25 23:10:30 +02:00
arch.mak build: Consistently handle conditional compilation for all optimization OBJS. 2012-04-12 09:00:49 +02:00
Changelog lavfi: port 2xsai filter from libmpcodecs 2012-04-13 00:14:06 +02:00
cmdutils_common_opts.h cmdutils: fix -fdebug without -v xy 2012-04-05 21:50:50 +02:00
cmdutils.c avconv: get output pixel format from lavfi. 2012-04-15 20:22:36 +02:00
cmdutils.h Merge commit '3b266da3d35f3f7a61258b78384dfe920d875d29' 2012-04-17 04:03:50 +02:00
common.mak Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
configure Merge remote-tracking branch 'qatar/master' 2012-04-19 21:23:52 +02:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
Doxyfile
ffmpeg.c ffmpeg: check encoder earlier. 2012-04-20 16:30:58 +02:00
ffplay.c Merge remote-tracking branch 'qatar/master' 2012-04-18 00:28:06 +02:00
ffprobe.c ffprobe: use avbprint API 2012-04-08 00:02:21 +02:00
ffserver.c Merge remote-tracking branch 'qatar/master' 2012-03-29 04:11:10 +02:00
INSTALL
library.mak Merge remote-tracking branch 'qatar/master' 2012-03-26 20:52:52 +02:00
LICENSE Merge remote-tracking branch 'qatar/master' 2012-02-22 02:24:18 +01:00
MAINTAINERS ZeroCodec Decoder 2012-03-19 00:19:13 +01:00
Makefile Merge remote-tracking branch 'qatar/master' 2012-04-13 00:39:19 +02:00
README README: be a tiny bit more verbose 2012-04-06 10:23:26 +02:00
RELEASE RELEASE: bump to current version (0.10.2). 2012-03-26 22:47:28 +02:00
version.sh

FFmpeg README
-------------

1) Documentation
----------------

* Read the documentation in the doc/ directory in git.
  You can also view it online at http://ffmpeg.org/documentation.html

2) Licensing
------------

* See the LICENSE file.

3) Build and Install
--------------------

* See the INSTALL file.