Fork of FFmpeg for xenia's usage. Branched from latest release. On changes use a git rebase strategy when applicable!
Go to file
Ben Avison 42c1cc35b7 armv6: Accelerate ff_imdct_half for general case (mdct_bits != 6)
The previous implementation targeted DTS Coherent Acoustics, which only
requires mdct_bits == 6. This relatively small size lent itself to
unrolling the loops a small number of times, and encoding offsets
calculated at assembly time within the load/store instructions of each
iteration.

In the more general case (codecs such as AAC and AC3) much larger arrays
are used - mdct_bits == [8, 9, 11]. The old method does not scale for
these cases, so more integer registers are used with non-unrolled versions
of the loops (and with some stack spillage). The postrotation filter loop
is still unrolled by a factor of 2 to permit the double-buffering of some
VFP registers to facilitate overlap of neighbouring iterations.

I benchmarked the result by measuring the number of gperftools samples
that hit anywhere in the AAC decoder (starting from aac_decode_frame())
or specifically in ff_imdct_half_c / ff_imdct_half_vfp, for the same
example AAC stream:

                  Before          After
                  Mean   StdDev   Mean   StdDev  Confidence  Change
aac_decode_frame  2368.1 35.8     2117.2 35.3    100.0%      +11.8%
ff_imdct_half_*   457.5  22.4     251.2  16.2    100.0%      +82.1%

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-13 15:17:04 +02:00
compat compat/w32pthreads: add return value to pthread_cond_init(). 2014-05-26 11:33:42 +02:00
doc fix spelling errors 2014-07-12 22:33:27 +02:00
libavcodec armv6: Accelerate ff_imdct_half for general case (mdct_bits != 6) 2014-07-13 15:17:04 +02:00
libavdevice avdevice/pulse_audio_dec: reimplement using the non simple API 2014-07-09 01:36:01 +02:00
libavfilter fix spelling errors 2014-07-12 22:33:27 +02:00
libavformat avformat/asfdec: dvrms timestamps are pts not dts 2014-07-13 03:50:47 +02:00
libavresample Merge commit 'b2d45654220503224aa94e78cdff19ec624e9342' 2014-05-29 01:23:22 +02:00
libavutil fix spelling errors 2014-07-12 22:33:27 +02:00
libpostproc Fix libpostproc compilation with !HAVE_6REGS. 2014-04-24 17:50:02 +02:00
libswresample fix spelling errors 2014-07-12 22:33:27 +02:00
libswscale swscale/x86/rgb2rgb_template: fix 1 byte overread in yuyvtoyuv420 and uyvytoyuv420 2014-07-13 05:48:09 +02:00
presets presets: remove moldering iPod presets 2014-06-17 16:15:04 -08:00
tests avcodec/roqvideo: use JPEG color range 2014-07-06 23:34:58 +02:00
tools tools/yuvcmp: add HAVE_UNISTD_H around #include <unistd.h> 2014-07-08 01:56:33 +02:00
.gitignore gitignore: add examples/transcoding 2014-07-10 02:18:09 +02:00
arch.mak Merge commit '8675bcb0addb1c7fb0b04682d1f3f95d5b8dae14' 2014-04-07 02:15:18 +02:00
Changelog avformat: Add image3 demuxers with format autodetection 2014-07-03 18:14:06 +02:00
cmdutils_common_opts.h ffmpeg: add -devices param 2014-05-28 03:52:50 +02:00
cmdutils_opencl.c cmdutils_opencl: Use av_malloc_array() 2014-07-01 03:49:36 +02:00
cmdutils.c cmdutils: ignore sws_flags if swscale is not enabled 2014-06-29 17:27:23 +02:00
cmdutils.h ffmpeg: add -devices param 2014-05-28 03:52:50 +02:00
common.mak Merge commit 'afe176265480880e1f702c96a8ba434b0d88728b' 2014-05-20 03:33:30 +02:00
configure configure: fix alphabetical order of previous commit 2014-07-12 23:24:16 +02:00
COPYING.GPLv2 Rename COPYING.GPL --> COPYING.GPLv2 and COPYING.LGPL --> COPYING.LGPLv2.1. 2009-06-05 09:51:31 +00:00
COPYING.GPLv3 Add configure option to upgrade (L)GPL to version 3. 2009-06-05 11:04:03 +00:00
COPYING.LGPLv2.1 cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
COPYING.LGPLv3 Add configure option to upgrade (L)GPL to version 3. 2009-06-05 11:04:03 +00:00
CREDITS CREDITS: redirect to Git log, remove current outdated content 2013-01-31 18:02:52 +01:00
ffmpeg_dxva2.c Merge commit 'a7c5fddac8137654cb503295c4dfb6492df43643' 2014-04-30 00:46:38 +02:00
ffmpeg_filter.c ffmpeg: Fix choose_pixel_fmt() so it uses the correct encoding context 2014-06-01 17:16:08 +02:00
ffmpeg_opt.c ffmpeg_opt: route -ab to -b:a 2014-06-29 02:47:49 +02:00
ffmpeg_vda.c Merge commit '1839fafa951308237c4672ffd9a94f927b26eac7' 2014-05-12 02:44:28 +02:00
ffmpeg_vdpau.c Merge commit '7671dd7cd7d51bbd637cc46d8f104a141bc355ea' 2013-11-23 14:46:48 +01:00
ffmpeg.c ffmpeg: fix integer overflows with sub->*display_time 2014-07-12 02:23:48 +02:00
ffmpeg.h ffmpeg: support setting AVStream.discard 2014-06-07 21:26:22 +02:00
ffplay.c ffplay: increase subtitle que size 2014-07-12 16:29:03 +02:00
ffprobe.c ffprobe: add color_range and color_space to stream output 2014-06-24 00:35:16 +02:00
ffserver.c ffserver: add HAVE_UNISTD_H around #include <unistd.h> 2014-07-08 01:56:53 +02:00
INSTALL.md INSTALL: add markdown syntax 2014-05-28 22:38:38 +02:00
library.mak Merge commit 'b339182eba34f28de5f1a477cdd2c84f1ef35d90' 2014-02-17 02:22:01 +01:00
LICENSE.md LICENCE: add markdown syntax 2014-05-28 22:38:28 +02:00
MAINTAINERS avfilter: add hqx filter (hq2x, hq3x, hq4x) 2014-06-21 19:22:55 +02:00
Makefile Remove avserver. 2014-06-18 14:55:28 +02:00
README.md README: add markdown syntax 2014-05-28 22:38:11 +02:00
RELEASE RELEASE: update for 2.2 2014-03-01 17:09:12 +01:00
version.sh version.sh: add preprocessing guards 2013-11-30 21:42:03 +01:00

FFmpeg README

  1. Documentation

  1. Licensing

  • See the LICENSE file.
  1. Build and Install

  • See the INSTALL file.