FFmpeg git repo
Go to file
Anssi Hannula 36e156bef0 avformat/spdifenc: fix handling of large TrueHD frames
The TrueHD IEC 61937 encapsulation code uses a very naive method of
always inserting 24 TrueHD frames evenly in a MAT frame. This does not
work for larger frames as they may exceed the size of 1/24th of a MAT
frame.

To fix that, use the input_timing field in the TrueHD frame to determine
the proper position of the TrueHD frame in the MAT frame. That field is
basically a dts field, telling the time to feed this frame to the
decoder in sample count units.

This can cause a TrueHD frame to be split between two MAT frames, so a
second concatenation hd_buf is added, alternating with the first buffer.

Large frames are preceded by smaller frames that have input_timing
values that cause the frames to be sent out faster than the nominal rate
(i.e. increasing decoder latency, long decoder buffer), allowing the
larger frames to then be sent out slower than the nominal rate as the
decoder has enough data buffered to keep it busy.
2020-02-20 22:18:18 +02:00
compat compat/os2threads: define INCL_DOSERRORS 2020-02-15 18:25:51 +01:00
doc avformat/dashenc: add Trick Mode support for AdaptationSets 2020-02-16 14:02:38 -03:00
ffbuild build: add support for building CUDA files with clang 2019-08-04 19:08:08 +02:00
fftools fftools/ffmpeg: Fix integer overflow in duration computation in seek_to_start() 2020-02-16 15:13:20 +01:00
libavcodec avcodec: add siren audio decoder 2020-02-20 14:41:26 +01:00
libavdevice lavd/opengl_enc: check strings before parsing them. 2020-02-20 14:37:11 +01:00
libavfilter lavfi/vf_scale_qsv: fix the class_name in help for scale_qsv 2020-02-18 10:27:02 +08:00
libavformat avformat/spdifenc: fix handling of large TrueHD frames 2020-02-20 22:18:18 +02:00
libavresample
libavutil avutil/hwcontext_d3d11va: Use secure dlopen. 2020-02-15 23:53:54 +11:00
libpostproc Silence "string-plus-int" warning shown by clang. 2020-01-06 22:38:56 +01:00
libswresample Silence "string-plus-int" warning shown by clang. 2020-01-06 22:38:56 +01:00
libswscale libswscale/x86/yuv2rgb: add ssse3 version 2020-02-10 15:08:33 +01:00
presets
tests avformat/utils: make av_url_split search for hashmark as well to separate hostname 2020-02-15 18:41:36 +01:00
tools tools/target_dec_fuzzer: limit per frame samples for APE 2020-01-30 19:59:10 +01:00
.gitattributes
.gitignore tools/python: add script to convert TensorFlow model (.pb) to native model (.model) 2019-07-01 10:23:47 -03:00
.travis.yml
CONTRIBUTING.md
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
Changelog avcodec: add siren audio decoder 2020-02-20 14:41:26 +01:00
INSTALL.md
LICENSE.md avfilter/vf_geq: Relicense to LGPL 2019-12-28 11:20:48 +01:00
MAINTAINERS MAINTAINERS: Add myself as libzmq maintainer 2020-02-15 18:25:51 +01:00
Makefile tools: add a fuzzer tool for bitstream filters 2019-12-05 20:49:15 -03:00
README.md
RELEASE RELEASE: Update value for post 4.2 branch 2019-07-21 18:37:32 +02:00
configure avfilter: add pad opencl filter 2020-02-14 09:59:27 +01: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.