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]

Reply via email to