FFmpeg git repo
Go to file
Andreas Rheinhardt 4ed3c925c3 avformat/matroskaenc: Move adding SeekEntry into end_ebml_master_crc32()
Up until now, SeekEntries were already added before
start_ebml_master_crc32() was even called and before we were actually
sure that we really write the element the SeekHead references: After
all, we might also error out later; and given that the allocations
implicit in dynamic buffers should be checked, end_ebml_master_crc32()
will eventually have to return errors itself, so that it is the right
place to add SeekHead entries.

The earlier behaviour is of course a remnant of the time in which
start_ebml_master_crc32() really did output something, so that the
position before start_ebml_master_crc32() needed to be recorded.
Erroring out later is also not as dangerous as it seems because in
this case no SeekHead will be written (if it happened when writing
the header, the whole muxing process would abort; if it happened
when writing the trailer (when writing chapters not available initially),
writing the trailer would be aborted and no SeekHead containing the
bogus chapter entry would be written).

This commit does not change the way the SeekEntries are added for those
elements that are output preliminarily; this is so because the SeekHead
is written before those elements are finally output and doing it
otherwise would increase the amount of seeks.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-05-06 09:27:40 +02:00
compat compat/avisynth: remove avisynth headers 2020-04-05 01:17:55 +02:00
doc doc/muxers: remove hls_fmp4_init_resend parameter 2020-05-04 13:39:44 +08:00
ffbuild common.mak: Also clean Windows debug files. 2020-03-21 18:46:00 +01:00
fftools ffmpeg: Don't require a known device to pass a frames context to an encoder 2020-05-03 16:04:27 +01:00
libavcodec lavc/bsf: add an Opus metadata bitstream filter 2020-05-05 22:25:33 +01:00
libavdevice avfoundation: Fix building on iOS 2020-04-30 14:21:47 +02:00
libavfilter s->target_i and global are in dB but s->target_tp and true_peak are 2020-05-01 21:36:07 -07:00
libavformat avformat/matroskaenc: Move adding SeekEntry into end_ebml_master_crc32() 2020-05-06 09:27:40 +02:00
libavresample
libavutil avutil/opt: only skip evaluation for rational options 2020-05-01 17:22:58 +02:00
libpostproc libavcodec, libpostproc: Remove outcommented START/STOP_TIMER 2020-03-14 18:24:04 +01:00
libswresample Silence "string-plus-int" warning shown by clang. 2020-01-06 22:38:56 +01:00
libswscale libswscale: add output support for AV_PIX_FMT_GBRAPF32 2020-05-05 20:06:58 +02:00
presets
tests avformat/url: check url root node when rel include double dot and trim double dot 2020-05-06 12:00:26 +08:00
tools tools: fix const specifier for AVInputFormat 2020-04-30 10:25:32 +01:00
.gitattributes
.gitignore
.mailmap mailmap: fix 3-address entries 2020-03-31 04:14:14 -05:00
.travis.yml
CONTRIBUTING.md
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
Changelog avformat: add demuxer for Pro Pinball Series' Soundbanks 2020-05-05 20:07:19 +02:00
INSTALL.md
LICENSE.md
MAINTAINERS MAINTAINERS: add myself to the general developers list 2020-04-29 16:39:16 +02:00
Makefile Makefile: Delete more created files when running "make distclean". 2020-03-11 11:43:01 +01:00
README.md
RELEASE
configure configure: enable ffnvcodec, nvenc, nvdec for aarch64 2020-04-23 12:44:42 +02:00

README.md

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.