ffmpeg: adding version 5.1.2 (#33758)

* ffmpeg: add version 5.1.2 and switch to conditional variants

Also: py-torchvision: restrict ffmpeg dependency
This commit is contained in:
snehring 2022-11-25 16:37:17 -06:00 committed by GitHub
parent 567532b9e5
commit 8c0fb91d4e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 48 deletions

View File

@ -15,6 +15,7 @@ class Ffmpeg(AutotoolsPackage):
maintainers = ["xjrc"]
version("5.1.2", sha256="39a0bcc8d98549f16c570624678246a6ac736c066cebdb409f9502e915b22f2b")
version("4.4.1", sha256="8fc9f20ac5ed95115a9e285647add0eedd5cc1a98a039ada14c132452f98ac42")
version("4.3.2", sha256="ab3a6d6a70358ba0a5f67f37f91f6656b7302b02e98e5b8c846c16763c99913a")
version("4.2.2", sha256="b620d187c26f76ca19e74210a0336c3b8380b97730df5cdf45f3e69e89000e5c")
@ -43,30 +44,32 @@ class Ffmpeg(AutotoolsPackage):
# spack packages.
# meta variants: These will toggle several settings
variant("X", default=False, description="X11 support")
variant("X", default=False, when="@2.4:", description="X11 support")
variant("drawtext", default=False, description="drawtext filter")
# options
variant("bzlib", default=True, description="bzip2 support")
variant("libaom", default=False, description="AV1 video encoding/decoding")
variant("libaom", default=False, when="@4.0:", description="AV1 video encoding/decoding")
variant("libmp3lame", default=False, description="MP3 encoding")
variant("libopenjpeg", default=False, description="JPEG 2000 de/encoding")
variant("libopus", default=False, description="Opus de/encoding")
variant("libsnappy", default=False, description="Snappy compression, needed for hap encoding")
variant(
"libsnappy",
default=False,
when="@2.7:",
description="Snappy compression, needed for hap encoding",
)
variant("libspeex", default=False, description="Speex de/encoding")
variant("libssh", default=False, description="SFTP protocol")
variant("libssh", default=False, when="@2.1:", description="SFTP protocol")
variant("libvorbis", default=False, description="Vorbis en/decoding")
variant("libvpx", default=False, description="VP9 en/decoding")
variant("libwebp", default=False, description="WebP encoding via libwebp")
# TODO: There is an issue with the spack headers property in the libxml2
# package recipe. Comment out the libxml2 variant until that is resolved.
# variant('libxml2', default=False,
# description='XML parsing, needed for dash demuxing support')
variant("libzmq", default=False, description="message passing via libzmq")
variant("lzma", default=False, description="lzma support")
variant("avresample", default=False, description="AV reasmpling component")
variant("libwebp", default=False, when="@2.2:", description="WebP encoding via libwebp")
variant("libxml2", default=False, description="XML parsing, needed for dash demuxing support")
variant("libzmq", default=False, when="@2.0:", description="message passing via libzmq")
variant("lzma", default=False, when="@2.4:", description="lzma support")
variant("avresample", default=False, when="@0.11:4.4", description="AV reasmpling component")
variant("openssl", default=False, description="needed for https support")
variant("sdl2", default=False, description="sdl2 support")
variant("sdl2", default=False, when="@3.2:", description="sdl2 support")
variant("shared", default=True, description="build shared libraries")
variant("libx264", default=False, description="H.264 encoding")
@ -85,33 +88,19 @@ class Ffmpeg(AutotoolsPackage):
depends_on("libvorbis", when="+libvorbis")
depends_on("libvpx", when="+libvpx")
depends_on("libwebp", when="+libwebp")
# TODO: enable libxml2 when libxml2 header issue is resolved
# depends_on('libxml2', when='+libxml2')
depends_on("libxml2", when="+libxml2")
depends_on("libxv", when="+X")
depends_on("libzmq", when="+libzmq")
depends_on("openjpeg", when="+libopenjpeg")
depends_on("openssl", when="+openssl")
depends_on("opus", when="+libopus")
depends_on("sdl2@:2.0.22", when="@3.2:4.4+sdl2")
depends_on("sdl2", when="+sdl2")
depends_on("snappy", when="+libsnappy")
depends_on("speex", when="+libspeex")
depends_on("xz", when="+lzma")
depends_on("x264", when="+libx264")
# TODO: enable when libxml2 header issue is resolved
# conflicts('+libxml2', when='@:3')
# See: https://www.ffmpeg.org/index.html#news (search AV1)
conflicts("+libaom", when="@:3")
# All of the following constraints were sourced from the official 'ffmpeg'
# change log, which can be found here:
# https://raw.githubusercontent.com/FFmpeg/FFmpeg/release/4.0/Changelog
conflicts("+sdl2", when="@:3.1")
conflicts("+libsnappy", when="@:2.7")
conflicts("+X", when="@:2.4")
conflicts("+lzma", when="@2.3:")
conflicts("+libwebp", when="@2.1:")
conflicts("+libssh", when="@2.1:")
conflicts("+libzmq", when="@:1")
conflicts("%nvhpc")
@property
@ -173,30 +162,21 @@ def configure_args(self):
"libvorbis",
"libvpx",
"libx264",
"avresample",
"nonfree",
"openssl",
"shared",
"version3",
"avresample",
"libzmq",
"libssh",
"libwebp",
"lzma",
"libsnappy",
"sdl2",
"libaom",
"libxml2",
]
if spec.satisfies("@2.0:"):
variant_opts.append("libzmq")
if spec.satisfies("@2.1:"):
variant_opts.append("libssh")
if spec.satisfies("@2.2:"):
variant_opts.append("libwebp")
if spec.satisfies("@2.4:"):
variant_opts.append("lzma")
if spec.satisfies("@2.8:"):
variant_opts.append("libsnappy")
if spec.satisfies("@3.2:"):
variant_opts.append("sdl2")
if spec.satisfies("@4:"):
variant_opts.append("libaom")
# TODO: enable when libxml2 header issue is resolved
# variant_opts.append('libxml2')
for variant_opt in variant_opts:
config_args += self.enable_or_disable(variant_opt)

View File

@ -111,7 +111,8 @@ class PyTorchvision(PythonPackage):
depends_on("libpng@1.6.0:", when="backend=png")
depends_on("jpeg") # seems to be required for all backends
depends_on("ffmpeg@3.1:", when="@0.4.2:")
depends_on("ffmpeg@3.1:4.4", when="@0.4.2:0.12.0")
depends_on("ffmpeg@3.1:", when="@13.0:")
# Many of the datasets require additional dependencies to use.
# These can be installed after the fact.