Page MenuHome

deps: ffmpeg vpx/aom-av1 updates
ClosedPublic

Authored by Ray Molenkamp (LazyDodo) on Jul 8 2022, 3:40 AM.

Details

Summary

This is a refresh of our current ffmpeg 5.0.0 (unchanged)
version with the following changes:

  • libvpx all platforms - enable sse3/4/avx/avx2 instruction sets. libvpx has a proper CPUID check in place and will not call the faster kernels unless it is sure the cpu supports it. So we can safely enable this, this resolves partially T95743 (completely on lin+mac)
  • libvpx windows - threading was disabled due to a shared dependency on libwinpthreads.dll which we prefer not to distribute. However when configure cannot find pthreads it will happily fall back on a win32 threads based emulation layer. This also resolves the final part of T95743
  • libaom-av1 - new dependency required for D14920, this is a somewhat odd dependency, it's cmake based, but still needs the perl environment setup, so we have to setup the env and call cmake our selves for the configure/build/install commands. This dep has the same libwinpthreads issue as vpx on windows, however since it's cmake based, it's easier to prevent cmake from detecting it.

tested completely on windows, linux got a quick compile pass, just to
rule out I didn't screw anything obvious up, but have not tested
the binaries.

vpx on mac-arm likely needs some more twiddling with the flags to
possibly enable neon there. linux-arm may need some work as well
so i'll courtesty ping patrick here, since he's the last one to
do any linux-arm deps work, if he wants to take a look, great! if not
also great as arm is not a shipping platform for us.

Diff Detail

Repository
rB Blender
Branch
aom (branched from master)
Build Status
Buildable 22943
Build 22943: arc lint + arc unit

Event Timeline

Ray Molenkamp (LazyDodo) requested review of this revision.Jul 8 2022, 3:40 AM
Ray Molenkamp (LazyDodo) created this revision.
This revision is now accepted and ready to land.Jul 11 2022, 7:13 PM

Update for Linux and macOS to add aom to FFMPEG components, conditional on its existence to simplify landing libs.

LGTM, builds fine on Linux, and I can use the new FFmpeg to build Blender as well.

I'll land this patch since I need it to be able to land the libs.

This revision was automatically updated to reflect the committed changes.