No description
Find a file
Avi Halachmi (:avih) a634da282b configure: speed up check_deps()
x4 - x25 faster.

check_deps() recursively enables/disables components, and its loop is
iterated nearly 6000 times. It's particularly slow in bash - currently
consuming more than 50% of configure runtime, and about 20% with other
shells.

This commit applies few local optimizations, most effective first:
- Use $1 $2 ... instead of pushvar/popvar, and same at enable_deep*
- Abort early in one notable case - empty deps, to avoid costly no-op.
- Smaller changes which do add up:
  - Handle ${cfg}_checking locally instead of via enable[d]/disable
  - ${cfg}_checking: test done before inprogress - x2 faster in 50%+
  - one eval instead of several at the empty-deps early abort path.

- The "actual work" part is unmodified - just its surroundings.

Biggest speedups (relative and absolute) are observed with bash.

Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Tested-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
Tested-by: Dave Yeo <daveryeo@telus.net>
Tested-by: Reino Wijnsma <rwijnsma@xs4all.nl>
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit 45499e557c)
2018-10-08 20:56:08 -03:00
compat compat: remove in-tree NVidia headers 2018-02-27 16:22:12 +01:00
doc doc/examples/vaapi_transcode: Fix the typo 2018-10-07 21:34:00 +02:00
ffbuild Merge commit '17b6c7efb4' 2017-11-12 01:02:02 -03:00
fftools ffmpeg: fix -stream_loop with multiple inputs 2018-07-08 12:52:49 +02:00
libavcodec avcodec/unary: Improve get_unary() docs 2018-10-07 21:34:00 +02:00
libavdevice avdevice/decklink_dec: unref packets on avpacket_queue_put error 2018-05-01 21:22:33 +02:00
libavfilter lavf/qsv: clone the frame which may be managed by framework 2018-04-23 22:56:18 +01:00
libavformat avformat/utils: Fix potential integer overflow in extract_extradata() 2018-10-07 21:34:01 +02:00
libavresample avresample: remove deprecated attribute from the AVAudioResampleContext struct 2018-01-09 10:56:53 -03:00
libavutil avutil/pixfmt: Document chroma plane size for odd resolutions 2018-10-07 21:34:00 +02:00
libpostproc Bump minor versions for branching release/4.0 2018-04-16 12:35:12 +02:00
libswresample swresample/swresample: Fix input channel count in resample_first computation 2018-10-07 21:34:00 +02:00
libswscale Bump minor versions for branching release/4.0 2018-04-16 12:35:12 +02:00
presets presets: remove moldering iPod presets 2014-06-17 16:15:04 -08:00
tests avcodec/xwddec: fix palette alpha 2018-05-16 22:50:18 +02:00
tools lav*,tests: remove several register_all calls 2018-04-02 03:26:22 +01:00
.gitattributes fate: add SCC test 2017-01-27 17:06:42 +01:00
.gitignore Remove the ffserver program 2018-01-06 18:31:37 +00:00
.travis.yml Merge commit '4809781586' 2017-10-28 15:08:31 -03:00
Changelog Update for 4.0.2 2018-07-18 14:04:51 +02:00
configure configure: speed up check_deps() 2018-10-08 20:56:08 -03:00
CONTRIBUTING.md Add CONTRIBUTING.md 2016-09-18 10:02:13 +01:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
INSTALL.md
LICENSE.md Merge commit '4fef648d10' 2017-03-15 22:07:47 +01:00
MAINTAINERS MAINTAINERS: add myself to documentation section 2018-04-13 09:40:27 -08:00
Makefile Revert "lavd: add new API for iterating input and output devices" 2018-03-31 23:26:31 +01:00
README.md Remove the ffserver program 2018-01-06 18:31:37 +00:00
RELEASE Update for 4.0.2 2018-07-18 14:04:51 +02:00
RELEASE_NOTES add release notes based on release 3.4 2018-04-16 12:41:03 +02:00

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.
  • 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 and will be ignored.