No description
Find a file
Michael Niedermayer 0e48345f85
avcodec/utils: apply the same alignment to YUV410 as we do to YUV420 for snow
The snow encoder uses block based motion estimation which can read out of array if
insufficient alignment is used

It may be better to only apply this for the encoder, as it would safe a few bytes of memory
for the decoder. Until then, this fixes the issue in a simple way.

Fixes: out of array access
Fixes: 68963/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SNOW_fuzzer-4979988435632128
Fixes: 68969/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SNOW_fuzzer-6239933667803136.fuzz
Fixed: 70497/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SNOW_fuzzer-5751882631413760

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 58fbeb59e7)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2024-08-01 00:27:32 +02:00
compat use a wrapper script to call MS link.exe to avoid mixing with /usr/bin/link.exe 2015-07-24 20:02:32 +02:00
doc Update for FFmpeg 2.8.22 2023-10-19 13:14:33 +02:00
libavcodec avcodec/utils: apply the same alignment to YUV410 as we do to YUV420 for snow 2024-08-01 00:27:32 +02:00
libavdevice avdevice/dshow_filter: Use wcscpy_s() 2024-07-21 22:21:38 +02:00
libavfilter avfilter/af_pan: check nb_output_channels before use 2024-07-21 20:06:40 +02:00
libavformat avformat/xmv: Check this_packet_size 2024-07-22 16:27:47 +02:00
libavresample x86inc: Drop SECTION_TEXT macro 2015-08-04 20:13:09 +02:00
libavutil avutil/imgutils: av_image_check_size2() ensure width and height fit in 32bit 2024-07-21 21:44:16 +02:00
libpostproc postproc/postprocess_template: Avoid using %4 for the threshold compare 2019-12-02 19:41:47 +01:00
libswresample swresample/swresample: Fix input channel count in resample_first computation 2018-08-03 02:14:31 +02:00
libswscale swscale/output: Avoid undefined overflow in yuv2rgb_write_full() 2024-07-21 17:36:46 +02:00
presets presets: remove moldering iPod presets 2014-06-17 16:15:04 -08:00
tests avcodec/vp56rac: delay signaling an error on truncated input 2019-12-06 20:30:57 +01:00
tools tools/cws2fws: Check read() for failure 2021-10-17 21:34:53 +02:00
.gitattributes Treat all '*.pnm' files as non-text file 2014-11-28 17:52:43 -05:00
.gitignore doc/examples: rename avio_list_dir -> avio_dir_cmd 2015-08-16 02:16:47 +02:00
arch.mak use mmi instead of loongson3 as simd-optimization flag 2015-07-07 03:46:57 +02:00
Changelog Changelog: update 2023-10-29 00:34:44 +02:00
cmdutils.c cmdutils: fix typos 2016-11-26 15:12:25 +01:00
cmdutils.h cmdutils: fix typos 2016-11-26 15:12:25 +01:00
cmdutils_common_opts.h opts: add list device sources/sinks options 2014-10-25 20:20:31 +02:00
cmdutils_opencl.c OpenCL: Avoid potential buffer overflow in cmdutils_opencl.c 2015-04-28 12:18:23 +02:00
common.mak Merge commit '3ae0e721c7' 2015-07-22 16:30:37 +02:00
configure configure: update copyright year 2024-06-15 00:38:49 +02:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS Use https for repository links 2023-03-16 10:42:40 +01:00
ffmpeg.c fftools/ffmpeg: Fallback to duration if sample rate is unavailable 2018-07-10 01:52:56 +02:00
ffmpeg.h ffmpeg: switch swscale option handling to AVDictionary similar to what the other subsystems use 2015-08-08 14:44:15 +02:00
ffmpeg_dxva2.c ffmpeg_dxva2: call GetDesktopWindow() in place of GetShellWindow() 2015-06-03 16:25:08 +02:00
ffmpeg_filter.c ffmpeg_filter: Factor get_compliance_unofficial_pix_fmts() out 2024-06-03 19:15:20 +02:00
ffmpeg_opt.c fftools/ffmpeg_opt: Fix leak of options when parsing options fails 2022-05-04 19:28:31 +02:00
ffmpeg_vdpau.c ffmpeg_vdpau: Ignore decoder's max supported level 2015-08-16 15:02:33 -07:00
ffmpeg_videotoolbox.c avcodec: add new Videotoolbox hwaccel. 2015-08-03 10:12:10 +02:00
ffplay.c cmdutils: remove the current working directory from the DLL search path on win32 2016-08-15 20:25:13 +02:00
ffprobe.c ffprobe: Fix NULL pointer handling in color parameter printing 2017-08-24 12:49:30 +02:00
ffserver.c ffserver: Check chunk size 2016-12-06 00:59:22 +01:00
ffserver_config.c ffserver: use -b instead of -ab for setting audio bitrate. 2015-08-28 14:59:58 -04:00
ffserver_config.h ffserver: Use singlejpeg muxer for jpeg 2015-06-08 03:36:22 +02:00
INSTALL.md INSTALL: add markdown syntax 2014-05-28 22:38:38 +02:00
library.mak build: add LDLIBFLAGS 2015-07-08 14:35:02 +02:00
LICENSE.md avfilter/vf_removegrain: add x86 and x86_64 SSE2 functions 2015-07-14 23:50:50 +00:00
MAINTAINERS MAINTAINERS: Add ED25519 key for signing my commits in the future 2022-10-28 21:04:04 +02:00
Makefile avcodec: add new Videotoolbox hwaccel. 2015-08-03 10:12:10 +02:00
README.md README: add ffserver 2015-02-12 11:59:22 +01:00
RELEASE Update for FFmpeg 2.8.22 2023-10-19 13:14:33 +02:00
RELEASE_NOTES Update missed irc links 2021-10-17 21:34:53 +02:00
version.sh version.sh: Print versions based on the last git tag for release branches 2014-07-28 15:44:59 +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.
  • ffserver is a multimedia streaming server for live broadcasts.
  • 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.