PR #22844 opened by arienshibani URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22844 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22844.patch
# Summary Documentation-only changes that normalize heading levels, add missing top-level titles where required, and fix spacing after headings so these files match common Markdown conventions (including markdownlint rules MD003, MD022, MD025, MD033, and MD041). ## Motivation - **Accessibility**: Predictable heading structure helps people who navigate by headings (including many screen reader users). This does not change FFmpeg behavior or APIs. - **Consistent hierarchy**: A single clear H1 and nested `##` / `###` sections make long docs (e.g. `doc/transforms.md`, `INSTALL.md`) easier to scan in the Forgejo UI and in editors. - **Tooling / CI**: Reduces noise from Markdown linters and keeps style aligned with typical open-source doc standards. ### Files touched | Area | Change | |------|--------| | `README.md` | ATX-style top heading (MD003) | | `INSTALL.md` | Top-level title (MD041), NOTICE sections as `##`, list formatting | | `CONTRIBUTING.md` | Blank line after heading (MD022) | | `doc/transforms.md` | Document title + section heading levels and spacing | | `.forgejo/ISSUE_TEMPLATE.md` | Single H1; “Steps to reproduce” as `##` (MD025) | ### Testing Rendered the Markdown locally / in the Forgejo preview; no code or build impact. I’m happy to adjust commit granularity or message style if maintainers prefer a different convention. From b74b44b38343faa874920f124130249d4876677c Mon Sep 17 00:00:00 2001 From: Arien Shibani <[email protected]> Date: Fri, 17 Apr 2026 10:53:07 +0200 Subject: [PATCH 1/5] =?UTF-8?q?docs(README.md):=20=E2=9C=8D=EF=B8=8F=20=20?= =?UTF-8?q?Fix=20MD003=20Violation=20in=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index f8c23f2870..cb2acb1ef0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -FFmpeg README -============= +# FFmpeg README FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata. -- 2.52.0 From 101081c18527ae9f71880191371fe42a734520fb Mon Sep 17 00:00:00 2001 From: Arien Shibani <[email protected]> Date: Fri, 17 Apr 2026 10:56:36 +0200 Subject: [PATCH 2/5] =?UTF-8?q?docs(INSTALL.md):=20=E2=9C=8D=EF=B8=8F=20Fi?= =?UTF-8?q?x=20MD041=20Violations.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit First line in a file should always be a top-level heading. Certain screen readers rely on propper heading structures to help users navigate content. --- INSTALL.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 5b98b45d88..0a9e6c03bc 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,4 +1,4 @@ -## Installing FFmpeg +# Installing FFmpeg 0. If you like to include source plugins, merge them before configure for example run tools/merge-all-source-plugins @@ -14,15 +14,11 @@ path when launching `configure`, e.g. `/ffmpegdir/ffmpeg/configure`. 3. Type `make install` to install all binaries and libraries you built. -NOTICE ------- +## NOTICE - - Non system dependencies (e.g. libx264, libvpx) are disabled by default. +- Non system dependencies (e.g. libx264, libvpx) are disabled by default. -NOTICE for Package Maintainers ------------------------------- +## NOTICE for Package Maintainers - - It is recommended to build FFmpeg twice, first with minimal external dependencies so - that 3rd party packages, which depend on FFmpegs libavutil/libavfilter/libavcodec/libavformat - can then be built. And last build FFmpeg with full dependencies (which may in turn depend on - some of these 3rd party packages). This avoids circular dependencies during build. +- It is recommended to build FFmpeg twice, first with minimal external dependencies so that 3rd party packages, which depend on FFmpegs libavutil/libavfilter/libavcodec/libavformat +can then be built. And last build FFmpeg with full dependencies (which may in turn depend on some of these 3rd party packages). This avoids circular dependencies during build. -- 2.52.0 From 943714538a036b0f14c1847b52e9158f49d2b887 Mon Sep 17 00:00:00 2001 From: Arien Shibani <[email protected]> Date: Fri, 17 Apr 2026 11:00:37 +0200 Subject: [PATCH 3/5] =?UTF-8?q?docs(transforms.md):=20=E2=9C=8D=EF=B8=8F?= =?UTF-8?q?=20Fix=20MD041=20+=20MD022=20+=20MD033=20Violations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - First line in a file should always be a top-level heading. - Aside from aesthetic reasons, some parsers, including kramdown, will not parse headings that don't have a blank line before, and will parse them as regular text. --- doc/transforms.md | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/doc/transforms.md b/doc/transforms.md index 04a7c408f1..f671f92434 100644 --- a/doc/transforms.md +++ b/doc/transforms.md @@ -1,14 +1,17 @@ -The basis transforms used for FFT and various other derived functions are based -on the following unrollings. +# Transforms + +The basis transforms used for FFT and various other derived functions are based on the following unrollings. The functions can be easily adapted to double precision floats as well. -# Parity permutation +## Parity permutation + The basis transforms described here all use the following permutation: ``` C void ff_tx_gen_split_radix_parity_revtab(int *revtab, int len, int inv, int basis, int dual_stride); ``` + Parity means even and odd complex numbers will be split, e.g. the even coefficients will come first, after which the odd coefficients will be placed. For example, a 4-point transform's coefficients after reordering: @@ -33,7 +36,8 @@ register or 0. This allows to reuse SSE functions as dual-transform functions in AVX mode. If length is smaller than basis/2 this function will not do anything. -# 4-point FFT transform +## 4-point FFT transform + The only permutation this transform needs is to swap the `z[1]` and `z[2]` elements when performing an inverse transform, which in the assembly code is hardcoded with the function itself being templated and duplicated for each @@ -80,7 +84,8 @@ static void fft4(FFTComplex *z) } ``` -# 8-point AVX FFT transform +## 8-point AVX FFT transform + Input must be pre-permuted using the parity lookup table, generated via `ff_tx_gen_split_radix_parity_revtab`. @@ -193,7 +198,8 @@ This theme continues throughout the document. Note that in the actual assembly c the paths are interleaved to improve unit saturation and CPU dependency tracking, so to more clearly see them, you'll need to deinterleave the instructions. -# 8-point SSE/ARM64 FFT transform +## 8-point SSE/ARM64 FFT transform + Input must be pre-permuted using the parity lookup table, generated via `ff_tx_gen_split_radix_parity_revtab`. @@ -305,7 +311,8 @@ static void fft8(FFTComplex *z) Most functions here are highly tuned to use x86's addsub instruction to save on external sign mask loading. -# 16-point AVX FFT transform +## 16-point AVX FFT transform + This version expects the output of the 8 and 4-point transforms to follow the even/odd convention established above. @@ -445,7 +452,8 @@ static void fft16(FFTComplex *z) } ``` -# AVX split-radix synthesis +## AVX split-radix synthesis + To create larger transforms, the following unrolling of the C split-radix function is used. @@ -705,8 +713,8 @@ beginning to overlap, particularly `[o1]` with `[0]` after the second iteration. To iterate further, set `z = &z[16]` via `z += 8` for the second iteration. After the 4th iteration, the layout resets, so repeat the same. +## 15-point AVX FFT transform -# 15-point AVX FFT transform The 15-point transform is based on the following unrolling. The input must be permuted via the following loop: -- 2.52.0 From 168745d289c7f76df889bd5dbaa379ca3154f350 Mon Sep 17 00:00:00 2001 From: Arien Shibani <[email protected]> Date: Fri, 17 Apr 2026 11:02:00 +0200 Subject: [PATCH 4/5] =?UTF-8?q?docs(ISSUE=5FTEMPLATE.md):=20=E2=9C=8D?= =?UTF-8?q?=EF=B8=8F=20Fix=20MD025=20Violation.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Improves accessibility. Multiple top level headings can confuse screen readers. --- .forgejo/ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/ISSUE_TEMPLATE.md b/.forgejo/ISSUE_TEMPLATE.md index d58e832b73..725d1175be 100644 --- a/.forgejo/ISSUE_TEMPLATE.md +++ b/.forgejo/ISSUE_TEMPLATE.md @@ -2,7 +2,7 @@ Briefly describe the issue you're experiencing. Include any error messages, unexpected behavior, or relevant observations. -# Steps to reproduce +## Steps to reproduce List the steps required to trigger the bug. Include the exact CLI command used, if any. -- 2.52.0 From f361a79ae9317a8e76efcbbebd881d8003a7b84f Mon Sep 17 00:00:00 2001 From: Arien Shibani <[email protected]> Date: Fri, 17 Apr 2026 11:02:53 +0200 Subject: [PATCH 5/5] =?UTF-8?q?docs(CONTRIBUTING.md):=20=E2=9C=8D=EF=B8=8F?= =?UTF-8?q?=20Fix=20MD022=20Violation.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 426f02f34d..c293aae368 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,5 @@ # Note to Github users + Patches should be submitted to [Forgejo](https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls) or the [ffmpeg-devel mailing list](https://ffmpeg.org/mailman/listinfo/ffmpeg-devel) 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**. See [https://ffmpeg.org/developer.html#Contributing](https://ffmpeg.org/developer.html#Contributing) for more information. -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
