1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-28 20:53:54 +02:00
Go to file
Andreas Rheinhardt b8c45bbcbc libavcodec/cbs: Stop needlessly reallocating the units array
Currently, a fragment's unit array is constantly reallocated during
splitting of a packet. This commit changes this: One can keep the units
array by distinguishing between the number of allocated and the number
of valid units in the units array.

The more units a packet is split into, the bigger the benefit.
So MPEG-2 benefits the most; for a video coming from an NTSC-DVD
(usually 32 units per frame) the average cost of cbs_insert_unit (for a
single unit) went down from 6717 decicycles to 450 decicycles (based
upon 10 runs with 4194304 runs each); if each packet consists of only
one unit, it went down from 2425 to 448; for a H.264 video where most
packets contain nine units, it went from 4431 to 450.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
2019-02-25 21:40:13 +00:00
compat
doc doc: -report defaults to loglevel debug 2019-02-25 21:41:14 +05:30
ffbuild
fftools ffmpeg_filter: initialize sub2video.end_pts together with last_pts 2019-02-21 20:13:21 +02:00
libavcodec libavcodec/cbs: Stop needlessly reallocating the units array 2019-02-25 21:40:13 +00:00
libavdevice libavdevice/gdigrab: fix HIDPI support for mouse positioning 2019-01-30 21:55:22 +01:00
libavfilter avfilter/vf_amplify: add tolerance option 2019-02-22 23:32:27 +01:00
libavformat avformat/dashenc: Added comments 2019-02-25 11:40:54 +05:30
libavresample
libavutil avutil/cuda_check: Fix non-dynamic-loader implementation 2019-02-24 09:13:01 -08:00
libpostproc
libswresample
libswscale libswscale/ppc: VSX-optimize 9-16 bit yuv2planeX 2019-02-05 09:34:53 +02:00
presets
tests lavf/jacosubdec: compute subtitle duration correctly 2019-02-20 21:15:07 +01:00
tools tools/target_dec_fate.list: Extend selftests upto issue 2000 2019-02-09 14:40:50 +01:00
.gitattributes
.gitignore
.travis.yml
Changelog avcodec/version: Bump micro-version for nvdec/cuviddec changes 2019-02-16 10:43:24 -08:00
configure configure: fix dependencies for mlp and truehd encoders 2019-02-12 22:53:03 +01:00
CONTRIBUTING.md
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
INSTALL.md INSTALL.md: Fix Markdown formatting 2019-01-31 10:29:16 -09:00
LICENSE.md
MAINTAINERS MAINTAINERS: remove myself as a docs & trac maintainer 2019-02-22 10:57:26 -09:00
Makefile Makefile: Allow "make clean" to delete compat/atomics/pthread/stdatomic.o 2018-12-28 14:04:10 +01:00
README.md
RELEASE

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.