Skip to content

Conversation

@RytoEX
Copy link
Member

@RytoEX RytoEX commented Mar 3, 2025

Description

Update SVT-AV1 to 3.0.0.

SVT-AV1 3.0.0 no longer vendors cpuinfo (see SVT-AV1 release notes and the commit in question). They now use CMake's FetchContent by default, unless we specify at configure time to use an external copy. This means that we cannot Patch cpuinfo before Configure.

If we determine that the patch is no longer required, then we can simply remove it.

If we determine that the patch is still required, then we have to either:
A. upstream our patch, then get SVT-AV1 to update the commit they use
for FetchContent
B. figure out if we can use a SYSTEM/EXTERNAL cpuinfo
C. disable cpuinfo (USE_CPUINFO=OFF)

Motivation and Context

Want to explore keeping dependencies up to date while managing our patches.

How Has This Been Tested?

Built locally on Windows 11, and I think I built OBS Studio against that though I do not have clear notes on it. I'd like further review to try to understand what choices we have for dealing with the new cpuinfo changes.

Types of changes

  • Tweak (non-breaking change to improve existing functionality)
  • Code cleanup (non-breaking change which makes code smaller or more readable)

Checklist:

  • My code has been run through clang-format.
  • I have read the contributing document.
  • My code is not on the master branch.
  • The code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

SVT-AV1 3.0.0 no longer vendors cpuinfo. They now use CMake's
FetchContent by default, unless we specify at configure time to use an
external copy. This means that we cannot Patch cpuinfo before Configure.

If we determine that the patch is no longer required, then we can simply
remove it.

If we determine that the patch is still required, then we have to
either:
 A. upstream our patch, then get SVT-AV1 to update the commit they use
    for FetchContent
 B. figure out if we can use a SYSTEM/EXTERNAL cpuinfo
 C. disable cpuinfo (USE_CPUINFO=OFF)
@RytoEX RytoEX added the enhancement New feature or request label Mar 3, 2025
@RytoEX RytoEX requested a review from PatTheMav March 3, 2025 20:48
@RytoEX RytoEX self-assigned this Mar 3, 2025
@RytoEX
Copy link
Member Author

RytoEX commented Mar 3, 2025

It looks like FFmpeg 7.1 doesn't support SVT-AV1 3.0.0, so this will have to wait for a future update. However, my questions about our cpuinfo patch remain, and we should probably think about those in advance.

@tytan652
Copy link
Contributor

tytan652 commented Mar 4, 2025

Apparently SVT-AV1 have no "deprecation then replace" process to prepare for some kind of API/ABI breakage.

FFmpeg/FFmpeg@d1ed5c0

Edit: Got cherry-picked to 7.1 branch (FFmpeg/FFmpeg@68b5db2).

@PatTheMav
Copy link
Member

It looks like FFmpeg 7.1 doesn't support SVT-AV1 3.0.0, so this will have to wait for a future update. However, my questions about our cpuinfo patch remain, and we should probably think about those in advance.

I just checked their FetchContent implementation and also the commit of cpuinfo they use and indeed it seems as if the latter added first-class support for Visual Studio as a generator and for x86, x64, and several ARM64 variants, so the patch is not needed anymore.

Copy link
Member

@PatTheMav PatTheMav left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes themselves look good, the FFmpeg incompatibility has been mentioned by Tytan already.

@RytoEX
Copy link
Member Author

RytoEX commented Mar 14, 2025

Will probably have to wait for a new stable tag of FFmpeg before we can merge this, but glad to have the review.

@Mine181
Copy link

Mine181 commented May 31, 2025

Now that FFmpeg 7.1.1 has been merged, will this PR be reviewed?

@RytoEX
Copy link
Member Author

RytoEX commented May 31, 2025

Now that FFmpeg 7.1.1 has been merged, will this PR be reviewed?

No, because 7.1.1 does not contain the fix commit. We will re-review this when there is a stable tag that does.

@RytoEX RytoEX marked this pull request as draft June 4, 2025 20:33
@Mine181
Copy link

Mine181 commented Sep 5, 2025

FFmpeg 8 and SVT 3.1 have been released, will this be reviewed?

@RytoEX
Copy link
Member Author

RytoEX commented Sep 5, 2025

FFmpeg 8 and SVT 3.1 have been released, will this be reviewed?

We're aware that FFmpeg 8 and SVT-AV1 3.1 have been released. However, we're in the middle of the OBS Studio 32.0 beta. Updates to obs-deps will be reviewed when that release cycle is complete and as time allows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants