Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deps.ffmpeg: Update SVT-AV1 to 3.0.0 #278

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

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

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.

2 participants