On Sat, 21 Mar 2026, Michael Niedermayer via ffmpeg-devel wrote:
This is not a small refactor. It adds 651 commits, touches 117 files, and adds
19405 lines and removes 1940.
That scope merits broader review and discussion before any merge decision.
Yes, it's a somewhat large refactor of the checkasm core code. It is based
on the dav1d checkasm. Note; the checkasm we have in ffmpeg was inspired
by the x264 checkasm, but essentially rewritten from scratch for ffmpeg by
Henrik Gramner. Here, it evolved for a few years.
When dav1d was started, Henrik relicensed parts of what ffmpeg had (from a
subset of authors, to ease the relicensing effort), to get a version of
checkasm suitable for that project.
Since then, both projects' checkasm implementations have evolved a bit
(with a some part of that evolution being features being ported back and
forth between the two, with suitable permissions from authors).
This effort was based on dav1d's checkasm implementation (which both had
the most compatible license, and the most featureful checkasm core). And
as far as I'm aware, Niklas had asked and received approval to relicense
the other checkasm features from ffmpeg's checkasm.
First, a dependancy on external infrastructure is unnecceasry
Nothing requires a dependency on external infrastructure. It can be
treated as a plain code drop, with no obligation to update further, if you
don't want to.
Second, a dependancy on gitlab-CI is not acceptable
There is literally no dependency on that?
So far, ffmpeg's checkasm hasn't had any selftests at all. (And it also
means that e.g. the x86_64 checked_call wrapper can fail to fill the upper
half of 32 bit parameters with garbage, which can lead to bugs going
undetected.)
The standalone checkasm does have selftests now, to make sure that the
wrapper actually does what is expected, etc. And since the standalone
checkasm has been developed on Videolan gitlab, it has integration for
using that CI for running the selftests on a number of configurations.
It also has a set of Github Actions CI scripts for testing building with
MSVC (which isn't available in the videolan gitlab CI).
We need to be able to run the full relevant test coverage ourselves,
under FFmpeg-controlled infrastructure
I don't see why you're in any position to make any demands at all here?
If we just drop in this code, entirely without the tests, you'll have a
better checkasm than what you had before. Whether those tests that now
actually exist are hooked up to be executed here seems like an orthogonal
question?
Third, the copyright and authorship situation needs clarification.
The copyrights after the PR
git grep Copyright tests/checkasm/ | sed 's/.*:[ *;#]*//' | sed
's/([cC])/©/' | sed 's/,//' | sort | uniq -c | sort -n | tail -10
3 Copyright © 2024 Marvin Scholz
4 Copyright © 2015 James Almer
4 Copyright © 2015 Janne Grunau
4 Copyright © 2023 Institute of Software Chinese Academy of Sciences
(ISCAS).
5 Copyright © 2025 Martin Storsjo
6 Copyright © 2016 Alexandra Hájková
8 Copyright © 2015 Henrik Gramner
37 Copyright © 2018 Two Orioles, LLC
45 Copyright © 2018 VideoLAN and dav1d authors
45 Copyright © 2025 Niklas Haas
But the actual authorship in tests/checkasm/ is dominated by FFmpeg
contributors, for example:
git shortlog -s -n tests/checkasm/ | head -10
120 Andreas Rheinhardt
87 James Almer
80 Martin Storsjö
44 Rémi Denis-Courmont
29 Henrik Gramner
28 Michael Niedermayer
27 Niklas Haas
23 Clément Bœsch
18 Hendrik Leppkes
18 Martin Vignali
But you're comparing _entirely_ different things here?
The number of copyright lines in the new checkasm is large, because what
used to be a hanful of files have been split up into a number of smaller
files, so the number of copyright lines increases.
In the number of commits in ffmpeg's checkasm, there's a lot of commits
from ffmpeg contributors. Those mainly are contributions to the tests
(testing the ffmpeg dsp subsystems), and those remain exactly as they
were.
the authorship in the added commits is likewise specific and attributable:
git shortlog -s -n origin..
450 Niklas Haas
128 Martin Storsjö
25 Rémi Denis-Courmont
22 Cameron Cawley
11 Marvin Scholz
6 Nathan E. Egge
3 KO Myung-Hun
2 J. Dekker
1 Brad Smith
1 Felix Paul Kühne
1 Henrik Gramner
1 Konstantin Pavlov
Yes, Niklas spent a large number of commits on gradually refactoring the
checkasm implementation into something that can be used as a library for
any third party project.
Fifth,
the libcheckasm work was done by FFlabs people and discussed in FFlabs
meetings.
So unless I misunderstand the situation, we seem to have funded work that
now removes FFmpeg attribution or identity,
adds a dependency on external infrastructure, and moves testing in a
direction tied to systems FFmpeg does not control and previously did not choose.
I don't see what relevance that has? FFlabs is, as far as I know, a
private company. What that company spends its time and money on is
entirely that company's concern? And as far as I understand, you have a
major role in that company, so why are you complaining here about what
your company does, instead of raising that issue inside your company?
// Martin
_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]