mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
cf3f8ab9e67b005e13ddbbc2315bf0aaddd5374b
SEI messages are naturally byte-aligned by adding padding bits to achieve byte-alignment. The parsing code in libavcodec/hevc_sei.c nevertheless uses a GetBitContext to read it. When doing so, parsing the next SEI message starts exactly at the position where reading the last message (if any) ended. This means that one would have to handle both the payload extension data (which makes most SEI messages extensible structs) as well as the padding bits for byte-alignment. Yet our SEI parsing code in libavcodec/hevc_sei.c does not read these at all. Instead several of the functions used for parsing specific SEI messages use skip_bits_long(); some don't use it at all, in which case it is possible for the GetBitContext to not be byte-aligned at the start of the next SEI message (the parsing code for several types of SEI messages relies on byte-alignment). Fix this by always using a dedicated GetBitContext per SEI message; skipping the necessary amount of bytes in the NALU context is done at a higher level. This also allows to remove unnecessary parsing code that only existed in order to skip enough bytes. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
…
…
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 means to alter decoded audio and video through a directed graph of connected 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
andqt-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.
Languages
C
90.1%
Assembly
7.9%
Makefile
1.3%
C++
0.2%
Objective-C
0.2%
Other
0.1%