No description
  • C 89.1%
  • Assembly 8.4%
  • Makefile 1.4%
  • GLSL 0.3%
  • C++ 0.3%
  • Other 0.2%
Find a file
Niklas Haas 9cbd889670 swscale/x86/ops: add AVX2/SSE4 path for SWS_UOP_READ_PALETTE
The AVX2 is a fairly straightforward vpgatherdd + 4x4 transpose. The SSE4
fallback is an unrolled scalar loop, for lack of anything better to do.

checkasm:
 - CPU: AMD Ryzen 9 9950X3D 16-Core Processor (00B40F40)
 - Timing source: x86 (rdtsc)
 - Bench duration: 10000 µs per function (45898205 cycles)
 - Random seed: 2518020648

Benchmark results:
  name                             cycles (vs ref)
  u8_read_palette_xyzw_c:          2877.5
  u8_read_palette_xyzw_x86_sse4:   1951.9 ( 1.47x)
  u8_read_palette_xyzw_x86_avx2:   1051.6 ( 2.74x)

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Niklas Haas <git@haasn.dev>
2026-06-20 14:08:49 +00:00
.forgejo .forgejo/pre-commit: add local commit-msg hook 2026-06-18 10:35:27 +00:00
compat avfilter/scale_cuda: fix color bleeding in lanczos scaling 2026-04-04 11:31:16 +00:00
doc doc/muxers: document the lrc precision option 2026-06-16 00:23:38 +00:00
ffbuild swscale/x86/uops: generate NASM macros using uops_macros.h 2026-06-09 18:27:20 +02:00
fftools fftools/ffmpeg_demux: ensure tile grid stream groups are sane 2026-06-13 21:52:32 -03:00
libavcodec avcodec/liboapvenc: Use av_freep() where appropriate 2026-06-19 15:18:54 +02:00
libavdevice avdevice/gdigrab: make overlay window layered 2026-06-10 12:56:20 +00:00
libavfilter lavfi: af_showinfo: add support for IAMF side-data 2026-06-17 00:03:14 +00:00
libavformat avformat/mov: don't assume a sample to be the last in fragmented input 2026-06-18 13:46:54 -03:00
libavutil configure/x86: split 7-register check from EBP availability 2026-06-20 11:46:49 +00:00
libswresample swresample/x86/resample: write only int16 in the int16 resampler 2026-06-14 15:34:43 +00:00
libswscale swscale/x86/ops: add AVX2/SSE4 path for SWS_UOP_READ_PALETTE 2026-06-20 14:08:49 +00:00
presets
tests tests/checkasm/sw_ops: add check for SWS_UOP_READ_PALETTE 2026-06-20 14:08:49 +00:00
tools tools/check_commit_msg: add commit message validation script 2026-06-18 10:35:27 +00:00
.gitattributes gitattributes: End merge conflicts in Changelog 2025-03-17 15:26:10 +01:00
.gitignore swscale/x86/uops: generate NASM macros using uops_macros.h 2026-06-09 18:27:20 +02:00
.mailmap mailmap: add entry for myself 2025-08-08 21:51:15 +00:00
Changelog avutil/hwcontext_amf: Implement AMF hardware memory mapping support. 2026-06-17 12:30:56 +00:00
configure configure/x86: split 7-register check from EBP availability 2026-06-20 11:46:49 +00:00
CONTRIBUTING.md CONTRIBUTING.md: add blank line after top heading 2026-04-20 12:32:50 +00:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1 all: fix whitespace/new-line issues 2025-08-03 13:48:47 +02:00
COPYING.LGPLv3
CREDITS Use https for repository links 2023-03-01 21:59:10 +01:00
FUNDING.json Add FUNDING.json 2025-06-23 14:48:40 +02:00
INSTALL.md INSTALL.md: add title heading and normalize section levels 2026-04-20 12:32:50 +00:00
LICENSE.md Remove libpostproc 2025-05-07 15:35:47 +02:00
MAINTAINERS docs: refine issue tracker transition references 2026-06-10 06:35:21 +00:00
Makefile build: remove checkasm_header_config_generated.h on distclean 2026-06-06 23:58:13 +02:00
README.md README.md: use consistent ATX heading style 2026-04-20 12:32:50 +00:00
RELEASE RELEASE: update to 8.0 2025-08-14 08:42:29 -04: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 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 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.