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:
		| @@ -15,6 +15,7 @@ class Ffmpeg(AutotoolsPackage): | |||||||
| 
 | 
 | ||||||
|     maintainers = ["xjrc"] |     maintainers = ["xjrc"] | ||||||
| 
 | 
 | ||||||
|  |     version("5.1.2", sha256="39a0bcc8d98549f16c570624678246a6ac736c066cebdb409f9502e915b22f2b") | ||||||
|     version("4.4.1", sha256="8fc9f20ac5ed95115a9e285647add0eedd5cc1a98a039ada14c132452f98ac42") |     version("4.4.1", sha256="8fc9f20ac5ed95115a9e285647add0eedd5cc1a98a039ada14c132452f98ac42") | ||||||
|     version("4.3.2", sha256="ab3a6d6a70358ba0a5f67f37f91f6656b7302b02e98e5b8c846c16763c99913a") |     version("4.3.2", sha256="ab3a6d6a70358ba0a5f67f37f91f6656b7302b02e98e5b8c846c16763c99913a") | ||||||
|     version("4.2.2", sha256="b620d187c26f76ca19e74210a0336c3b8380b97730df5cdf45f3e69e89000e5c") |     version("4.2.2", sha256="b620d187c26f76ca19e74210a0336c3b8380b97730df5cdf45f3e69e89000e5c") | ||||||
| @@ -43,30 +44,32 @@ class Ffmpeg(AutotoolsPackage): | |||||||
|     # spack packages. |     # spack packages. | ||||||
| 
 | 
 | ||||||
|     # meta variants: These will toggle several settings |     # 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") |     variant("drawtext", default=False, description="drawtext filter") | ||||||
| 
 | 
 | ||||||
|     # options |     # options | ||||||
|     variant("bzlib", default=True, description="bzip2 support") |     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("libmp3lame", default=False, description="MP3 encoding") | ||||||
|     variant("libopenjpeg", default=False, description="JPEG 2000 de/encoding") |     variant("libopenjpeg", default=False, description="JPEG 2000 de/encoding") | ||||||
|     variant("libopus", default=False, description="Opus 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("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("libvorbis", default=False, description="Vorbis en/decoding") | ||||||
|     variant("libvpx", default=False, description="VP9 en/decoding") |     variant("libvpx", default=False, description="VP9 en/decoding") | ||||||
|     variant("libwebp", default=False, description="WebP encoding via libwebp") |     variant("libwebp", default=False, when="@2.2:", description="WebP encoding via libwebp") | ||||||
|     # TODO: There is an issue with the spack headers property in the libxml2 |     variant("libxml2", default=False, description="XML parsing, needed for dash demuxing support") | ||||||
|     # package recipe. Comment out the libxml2 variant until that is resolved. |     variant("libzmq", default=False, when="@2.0:", description="message passing via libzmq") | ||||||
|     # variant('libxml2', default=False, |     variant("lzma", default=False, when="@2.4:", description="lzma support") | ||||||
|     #         description='XML parsing, needed for dash demuxing support') |     variant("avresample", default=False, when="@0.11:4.4", description="AV reasmpling component") | ||||||
|     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("openssl", default=False, description="needed for https support") |     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("shared", default=True, description="build shared libraries") | ||||||
|     variant("libx264", default=False, description="H.264 encoding") |     variant("libx264", default=False, description="H.264 encoding") | ||||||
| 
 | 
 | ||||||
| @@ -85,33 +88,19 @@ class Ffmpeg(AutotoolsPackage): | |||||||
|     depends_on("libvorbis", when="+libvorbis") |     depends_on("libvorbis", when="+libvorbis") | ||||||
|     depends_on("libvpx", when="+libvpx") |     depends_on("libvpx", when="+libvpx") | ||||||
|     depends_on("libwebp", when="+libwebp") |     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("libxv", when="+X") | ||||||
|     depends_on("libzmq", when="+libzmq") |     depends_on("libzmq", when="+libzmq") | ||||||
|     depends_on("openjpeg", when="+libopenjpeg") |     depends_on("openjpeg", when="+libopenjpeg") | ||||||
|     depends_on("openssl", when="+openssl") |     depends_on("openssl", when="+openssl") | ||||||
|     depends_on("opus", when="+libopus") |     depends_on("opus", when="+libopus") | ||||||
|  |     depends_on("sdl2@:2.0.22", when="@3.2:4.4+sdl2") | ||||||
|     depends_on("sdl2", when="+sdl2") |     depends_on("sdl2", when="+sdl2") | ||||||
|     depends_on("snappy", when="+libsnappy") |     depends_on("snappy", when="+libsnappy") | ||||||
|     depends_on("speex", when="+libspeex") |     depends_on("speex", when="+libspeex") | ||||||
|     depends_on("xz", when="+lzma") |     depends_on("xz", when="+lzma") | ||||||
|     depends_on("x264", when="+libx264") |     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") |     conflicts("%nvhpc") | ||||||
| 
 | 
 | ||||||
|     @property |     @property | ||||||
| @@ -173,30 +162,21 @@ def configure_args(self): | |||||||
|             "libvorbis", |             "libvorbis", | ||||||
|             "libvpx", |             "libvpx", | ||||||
|             "libx264", |             "libx264", | ||||||
|             "avresample", |  | ||||||
|             "nonfree", |             "nonfree", | ||||||
|             "openssl", |             "openssl", | ||||||
|             "shared", |             "shared", | ||||||
|             "version3", |             "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: |         for variant_opt in variant_opts: | ||||||
|             config_args += self.enable_or_disable(variant_opt) |             config_args += self.enable_or_disable(variant_opt) | ||||||
| 
 | 
 | ||||||
|   | |||||||
| @@ -111,7 +111,8 @@ class PyTorchvision(PythonPackage): | |||||||
|     depends_on("libpng@1.6.0:", when="backend=png") |     depends_on("libpng@1.6.0:", when="backend=png") | ||||||
|     depends_on("jpeg")  # seems to be required for all backends |     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. |     # Many of the datasets require additional dependencies to use. | ||||||
|     # These can be installed after the fact. |     # These can be installed after the fact. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 snehring
					snehring