FFmpeg git repo
Go to file
Ganesh Ajjanagadde bd9c58756a lavc/aacenc_utils: replace sqrtf(Q*sqrtf(Q)) by precomputed value
It makes no sense whatsoever to do this at each function call; we
already have a table for this.

Yields a 2x improvement in find_min_book (x86-64, Haswell+GCC):
ffmpeg -i sin.flac -acodec aac -y sin.aac
find_min_book
old
    605 decicycles in find_min_book, 8388453 runs,    155 skips.9x
    606 decicycles in find_min_book,16776912 runs,    304 skips.9x
    607 decicycles in find_min_book,33553819 runs,    613 skips.2x
    607 decicycles in find_min_book,67107668 runs,   1196 skips.3x
    607 decicycles in find_min_book,134215360 runs,   2368 skips3x

new
    359 decicycles in find_min_book, 8388552 runs,     56 skips.3x
    360 decicycles in find_min_book,16777112 runs,    104 skips.1x
    361 decicycles in find_min_book,33554218 runs,    214 skips.4x
    361 decicycles in find_min_book,67108381 runs,    483 skips.5x
    361 decicycles in find_min_book,134216725 runs,   1003 skips5x

and more importantly a non-negligible speedup (~ 8%) to overall AAC encoding:
old:
ffmpeg -i sin.flac -acodec aac -strict -2 -y sin_new.aac  6.82s user 0.03s system 104% cpu 6.565 total
new:
ffmpeg -i sin.flac -acodec aac -strict -2 -y sin_old.aac  6.24s user 0.03s system 104% cpu 5.993 total

This also improves accuracy of the expression by ~ 2 ulp in some cases.

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanag@gmail.com>
2016-03-01 22:57:44 -05:00
compat
doc lavfi: add bench and abench filters 2016-03-01 10:36:15 +01:00
libavcodec lavc/aacenc_utils: replace sqrtf(Q*sqrtf(Q)) by precomputed value 2016-03-01 22:57:44 -05:00
libavdevice configure&avdevice/jack: Fixed issue #43 JACK indev support on OSX 2016-02-22 00:46:49 +01:00
libavfilter lavfi: add bench and abench filters 2016-03-01 10:36:15 +01:00
libavformat avformat/seek-test: Support passing options to demuxers and protocols 2016-03-02 02:12:56 +01:00
libavresample
libavutil lavu/rational: add more info regarding floor(x+0.5) usage 2016-02-29 19:26:55 -05:00
libpostproc postproc: fix unaligned access 2016-02-23 15:50:28 +01:00
libswresample
libswscale sws/aarch64: add {nv12,nv21,yuv420p,yuv422p}_to_{argb,rgba,abgr,rgba}_neon 2016-03-01 17:53:33 +01:00
presets
tests fate: add pipe and cache test 2016-03-02 02:12:56 +01:00
tools
.gitattributes
.gitignore
.travis.yml
arch.mak
Changelog lavfi: add bench and abench filters 2016-03-01 10:36:15 +01:00
cmdutils_common_opts.h
cmdutils_opencl.c
cmdutils.c
cmdutils.h
common.mak
configure Merge commit '2758cdedfb7ac61f8b5e4861f99218b6fd43491d' 2016-02-29 16:51:10 +00:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
ffmpeg_dxva2.c
ffmpeg_filter.c
ffmpeg_opt.c Merge commit 'bd49be885e9ad6bae599c54473ba2fa2957eb140' 2016-02-17 16:47:05 +00:00
ffmpeg_qsv.c
ffmpeg_vdpau.c ffmpeg_vdpau: Remove unused variable 2016-02-28 23:16:33 +01:00
ffmpeg_videotoolbox.c
ffmpeg.c ffmpeg: set sub_text_format to ass (without timing) by default 2016-02-26 21:53:34 +01:00
ffmpeg.h Merge commit 'bd49be885e9ad6bae599c54473ba2fa2957eb140' 2016-02-17 16:47:05 +00:00
ffplay.c
ffprobe.c
ffserver_config.c ffserver: NoVideo and NoAudio flags weren't cleared between streams. 2016-02-21 22:29:15 +01:00
ffserver_config.h
ffserver.c ffserver&ffm: Fixed issues preventing ffserver write_index and files_size from being set correctly which was breaking ffserver streaming. 2016-02-21 12:59:07 +01:00
INSTALL.md
library.mak
LICENSE.md LICENSE: Thorough editing 2016-02-28 08:19:44 -08:00
MAINTAINERS MAINTAINERS: remove myself as a server maintainer 2016-02-25 18:10:48 -09:00
Makefile
README.md
RELEASE
version.sh

FFmpeg README

FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides a mean to alter decoded Audio and Video through chain of filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libswresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • ffmpeg is a command line toolbox to manipulate, convert and stream multimedia content.
  • ffplay is a minimalistic multimedia player.
  • ffprobe is a simple analysis tool to inspect multimedia content.
  • ffserver is a multimedia streaming server for live broadcasts.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Coding examples are available in the doc/examples directory.

License

FFmpeg codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.

Contributing

Patches should be submitted to the ffmpeg-devel mailing list using git format-patch or git send-email. Github pull requests should be avoided because they are not part of our review process. Few developers follow pull requests so they will likely be ignored.