gnu: ffmpeg@4: Inherit from ffmpeg@5.
While at it, introduce a versioned 'ffmpeg-4' variable. * gnu/packages/video.scm (ffmpeg): Rename to ... (ffmpeg-4): ... this. Remove all fields, except... [arguments]: Preserve "--enable-avresample" in #:configure-flags. (ffmpeg-3.4): Inherit from FFMPEG-4. [arguments]: Use G-expression. (ffmpeg-2.8): Inherit from FFMPEG-3.4. [inputs]: Remove. (ffmpeg): Define as alias for FFMPEG-4. (ffmpeg-for-stepmania): Inherit from FFMPEG-4. [arguments]: Use G-expression.
parent
1cb10f6968
commit
a50fa212fe
|
@ -1735,9 +1735,9 @@ convert and stream audio and video. It includes the libavcodec
|
||||||
audio/video codec library.")
|
audio/video codec library.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
(define-public ffmpeg
|
(define-public ffmpeg-4
|
||||||
(package
|
(package
|
||||||
(name "ffmpeg")
|
(inherit ffmpeg-5)
|
||||||
(version "4.4.1")
|
(version "4.4.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -1746,192 +1746,14 @@ audio/video codec library.")
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"00hfwd8ld6jnd26pl9f0wcd2mag4zacxxgqgabsja2xkkagavnza"))))
|
"00hfwd8ld6jnd26pl9f0wcd2mag4zacxxgqgabsja2xkkagavnza"))))
|
||||||
(build-system gnu-build-system)
|
|
||||||
(inputs
|
|
||||||
`(("dav1d" ,dav1d)
|
|
||||||
("fontconfig" ,fontconfig)
|
|
||||||
("freetype" ,freetype)
|
|
||||||
("frei0r-plugins" ,frei0r-plugins)
|
|
||||||
("gnutls" ,gnutls)
|
|
||||||
("opus" ,opus)
|
|
||||||
("ladspa" ,ladspa)
|
|
||||||
("lame" ,lame)
|
|
||||||
("libaom" ,libaom)
|
|
||||||
("libass" ,libass)
|
|
||||||
("libbluray" ,libbluray)
|
|
||||||
("libcaca" ,libcaca)
|
|
||||||
("libcdio-paranoia" ,libcdio-paranoia)
|
|
||||||
("libdrm" ,libdrm)
|
|
||||||
("libtheora" ,libtheora)
|
|
||||||
("libva" ,libva)
|
|
||||||
("libvdpau" ,libvdpau)
|
|
||||||
("libvorbis" ,libvorbis)
|
|
||||||
("libvpx" ,libvpx)
|
|
||||||
("libx11" ,libx11)
|
|
||||||
("libx264" ,libx264)
|
|
||||||
("mesa" ,mesa)
|
|
||||||
("openal" ,openal)
|
|
||||||
("pulseaudio" ,pulseaudio)
|
|
||||||
;; XXX: rav1e depends on rust, which currently only works on x86_64.
|
|
||||||
;; See also the related configure flag when changing this.
|
|
||||||
,@(if (string-prefix? "x86_64" (or (%current-target-system)
|
|
||||||
(%current-system)))
|
|
||||||
`(("rav1e" ,rav1e))
|
|
||||||
'())
|
|
||||||
("sdl" ,sdl2)
|
|
||||||
("soxr" ,soxr)
|
|
||||||
("speex" ,speex)
|
|
||||||
("srt" ,srt)
|
|
||||||
("twolame" ,twolame)
|
|
||||||
("vidstab" ,vidstab)
|
|
||||||
("x265" ,x265)
|
|
||||||
("xvid" ,xvid)
|
|
||||||
("zlib" ,zlib)))
|
|
||||||
(native-inputs
|
|
||||||
(list bc
|
|
||||||
perl
|
|
||||||
pkg-config
|
|
||||||
texinfo
|
|
||||||
speex
|
|
||||||
yasm))
|
|
||||||
(arguments
|
(arguments
|
||||||
`(#:test-target "fate"
|
(substitute-keyword-arguments (package-arguments ffmpeg-5)
|
||||||
#:configure-flags
|
((#:configure-flags flags ''())
|
||||||
;; possible additional inputs:
|
#~(cons "--enable-avresample" #$flags))))))
|
||||||
;; --enable-avisynth enable reading of AviSynth script
|
|
||||||
;; files [no]
|
|
||||||
;; --enable-libaacplus enable AAC+ encoding via libaacplus [no]
|
|
||||||
;; --enable-libcelt enable CELT decoding via libcelt [no]
|
|
||||||
;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
|
|
||||||
;; and libraw1394 [no]
|
|
||||||
;; --enable-libfaac enable AAC encoding via libfaac [no]
|
|
||||||
;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no]
|
|
||||||
;; --enable-libflite enable flite (voice synthesis) support via
|
|
||||||
;; libflite [no]
|
|
||||||
;; --enable-libgme enable Game Music Emu via libgme [no]
|
|
||||||
;; --enable-libgsm enable GSM de/encoding via libgsm [no]
|
|
||||||
;; --enable-libiec61883 enable iec61883 via libiec61883 [no]
|
|
||||||
;; --enable-libilbc enable iLBC de/encoding via libilbc [no]
|
|
||||||
;; --enable-libmodplug enable ModPlug via libmodplug [no]
|
|
||||||
;; --enable-libnut enable NUT (de)muxing via libnut,
|
|
||||||
;; native (de)muxer exists [no]
|
|
||||||
;; --enable-libopencore-amrnb enable AMR-NB de/encoding via
|
|
||||||
;; libopencore-amrnb [no]
|
|
||||||
;; --enable-libopencore-amrwb enable AMR-WB decoding via
|
|
||||||
;; libopencore-amrwb [no]
|
|
||||||
;; --enable-libopencv enable video filtering via libopencv [no]
|
|
||||||
;; --enable-libopenjpeg enable JPEG 2000 de/encoding via
|
|
||||||
;; OpenJPEG [no]
|
|
||||||
;; --enable-librtmp enable RTMP[E] support via librtmp [no]
|
|
||||||
;; --enable-libschroedinger enable Dirac de/encoding via
|
|
||||||
;; libschroedinger [no]
|
|
||||||
;; --enable-libshine enable fixed-point MP3 encoding via
|
|
||||||
;; libshine [no]
|
|
||||||
;; --enable-libssh enable SFTP protocol via libssh [no]
|
|
||||||
;; (libssh2 does not work)
|
|
||||||
;; --enable-libstagefright-h264 enable H.264 decoding via
|
|
||||||
;; libstagefright [no]
|
|
||||||
;; --enable-libutvideo enable Ut Video encoding and decoding via
|
|
||||||
;; libutvideo [no]
|
|
||||||
;; --enable-libv4l2 enable libv4l2/v4l-utils [no]
|
|
||||||
;; --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
|
|
||||||
;; --enable-libvo-amrwbenc enable AMR-WB encoding via
|
|
||||||
;; libvo-amrwbenc [no]
|
|
||||||
;; --enable-libwavpack enable wavpack encoding via libwavpack [no]
|
|
||||||
;; --enable-libxavs enable AVS encoding via xavs [no]
|
|
||||||
;; --enable-libzmq enable message passing via libzmq [no]
|
|
||||||
;; --enable-libzvbi enable teletext support via libzvbi [no]
|
|
||||||
;; --enable-opencl enable OpenCL code
|
|
||||||
'("--enable-avresample"
|
|
||||||
"--enable-gpl" ; enable optional gpl licensed parts
|
|
||||||
"--enable-shared"
|
|
||||||
"--enable-frei0r"
|
|
||||||
"--enable-fontconfig"
|
|
||||||
"--enable-gnutls"
|
|
||||||
"--enable-ladspa"
|
|
||||||
"--enable-libaom"
|
|
||||||
"--enable-libass"
|
|
||||||
"--enable-libbluray"
|
|
||||||
"--enable-libcaca"
|
|
||||||
"--enable-libcdio"
|
|
||||||
"--enable-libdav1d"
|
|
||||||
"--enable-libfreetype"
|
|
||||||
"--enable-libmp3lame"
|
|
||||||
"--enable-libopus"
|
|
||||||
"--enable-libpulse"
|
|
||||||
,@(if (string-prefix? "x86_64" (or (%current-target-system)
|
|
||||||
(%current-system)))
|
|
||||||
'("--enable-librav1e")
|
|
||||||
'())
|
|
||||||
"--enable-libsoxr"
|
|
||||||
"--enable-libspeex"
|
|
||||||
"--enable-libsrt"
|
|
||||||
"--enable-libtheora"
|
|
||||||
"--enable-libtwolame"
|
|
||||||
"--enable-libvidstab"
|
|
||||||
"--enable-libvorbis"
|
|
||||||
"--enable-libvpx"
|
|
||||||
"--enable-libxvid"
|
|
||||||
"--enable-libx264"
|
|
||||||
"--enable-libx265"
|
|
||||||
"--enable-openal"
|
|
||||||
"--enable-opengl"
|
|
||||||
"--enable-libdrm"
|
|
||||||
"--enable-vaapi"
|
|
||||||
|
|
||||||
"--enable-runtime-cpudetect"
|
|
||||||
|
|
||||||
;; The HTML pages take 7.2 MiB
|
|
||||||
"--disable-htmlpages"
|
|
||||||
|
|
||||||
;; The static libraries are 23 MiB
|
|
||||||
"--disable-static"
|
|
||||||
|
|
||||||
;; Runtime cpu detection is not implemented on
|
|
||||||
;; MIPS, so we disable some features.
|
|
||||||
"--disable-mips32r2"
|
|
||||||
"--disable-mipsdsp"
|
|
||||||
"--disable-mipsdspr2"
|
|
||||||
"--disable-mipsfpu")
|
|
||||||
#:phases
|
|
||||||
(modify-phases %standard-phases
|
|
||||||
(replace
|
|
||||||
'configure
|
|
||||||
;; configure does not work followed by "SHELL=..." and
|
|
||||||
;; "CONFIG_SHELL=..."; set environment variables instead
|
|
||||||
(lambda* (#:key outputs configure-flags #:allow-other-keys)
|
|
||||||
(let ((out (assoc-ref outputs "out")))
|
|
||||||
(substitute* "configure"
|
|
||||||
(("#! /bin/sh") (string-append "#!" (which "sh"))))
|
|
||||||
(setenv "SHELL" (which "bash"))
|
|
||||||
(setenv "CONFIG_SHELL" (which "bash"))
|
|
||||||
(apply invoke
|
|
||||||
"./configure"
|
|
||||||
(string-append "--prefix=" out)
|
|
||||||
;; Add $libdir to the RUNPATH of all the binaries.
|
|
||||||
(string-append "--extra-ldflags=-Wl,-rpath="
|
|
||||||
out "/lib")
|
|
||||||
configure-flags))))
|
|
||||||
(add-before
|
|
||||||
'check 'set-ld-library-path
|
|
||||||
(lambda _
|
|
||||||
;; Allow $(top_builddir)/ffmpeg to find its dependencies when
|
|
||||||
;; running tests.
|
|
||||||
(let* ((dso (find-files "." "\\.so$"))
|
|
||||||
(path (string-join (map dirname dso) ":")))
|
|
||||||
(format #t "setting LD_LIBRARY_PATH to ~s~%" path)
|
|
||||||
(setenv "LD_LIBRARY_PATH" path)
|
|
||||||
#t))))))
|
|
||||||
(home-page "https://www.ffmpeg.org/")
|
|
||||||
(synopsis "Audio and video framework")
|
|
||||||
(description "FFmpeg is a complete, cross-platform solution to record,
|
|
||||||
convert and stream audio and video. It includes the libavcodec
|
|
||||||
audio/video codec library.")
|
|
||||||
(license license:gpl2+)))
|
|
||||||
|
|
||||||
(define-public ffmpeg-3.4
|
(define-public ffmpeg-3.4
|
||||||
(package
|
(package
|
||||||
(inherit ffmpeg)
|
(inherit ffmpeg-4)
|
||||||
(version "3.4.9")
|
(version "3.4.9")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -1941,23 +1763,22 @@ audio/video codec library.")
|
||||||
(base32
|
(base32
|
||||||
"0d8nkd9c85rkjlgsq1hidmykkrksi883ygqzhhj6wh4nqflv8vs9"))))
|
"0d8nkd9c85rkjlgsq1hidmykkrksi883ygqzhhj6wh4nqflv8vs9"))))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments ffmpeg)
|
(substitute-keyword-arguments (package-arguments ffmpeg-4)
|
||||||
((#:modules modules %gnu-build-system-modules)
|
((#:modules modules %gnu-build-system-modules)
|
||||||
`((srfi srfi-1)
|
`((srfi srfi-1)
|
||||||
,@modules))
|
,@modules))
|
||||||
((#:configure-flags flags)
|
((#:configure-flags flags)
|
||||||
`(fold delete
|
#~(fold delete #$flags
|
||||||
,flags
|
|
||||||
'("--enable-libdav1d"
|
'("--enable-libdav1d"
|
||||||
"--enable-libaom"
|
"--enable-libaom"
|
||||||
"--enable-librav1e"
|
"--enable-librav1e"
|
||||||
"--enable-libsrt")))))
|
"--enable-libsrt")))))
|
||||||
(inputs (modify-inputs (package-inputs ffmpeg)
|
(inputs (modify-inputs (package-inputs ffmpeg-4)
|
||||||
(delete "dav1d" "libaom" "rav1e" "srt")))))
|
(delete "dav1d" "libaom" "rav1e" "srt")))))
|
||||||
|
|
||||||
(define-public ffmpeg-2.8
|
(define-public ffmpeg-2.8
|
||||||
(package
|
(package
|
||||||
(inherit ffmpeg)
|
(inherit ffmpeg-3.4)
|
||||||
(version "2.8.18")
|
(version "2.8.18")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -1999,15 +1820,14 @@ audio/video codec library.")
|
||||||
(let* ((dso (find-files "." "\\.so$"))
|
(let* ((dso (find-files "." "\\.so$"))
|
||||||
(path (string-join (map dirname dso) ":")))
|
(path (string-join (map dirname dso) ":")))
|
||||||
(format #t "setting LD_LIBRARY_PATH to ~s~%" path)
|
(format #t "setting LD_LIBRARY_PATH to ~s~%" path)
|
||||||
(setenv "LD_LIBRARY_PATH" path)
|
(setenv "LD_LIBRARY_PATH" path)))))))))
|
||||||
#t))))))
|
|
||||||
(inputs (modify-inputs (package-inputs ffmpeg)
|
(define-public ffmpeg ffmpeg-4)
|
||||||
(delete "dav1d" "libaom" "rav1e" "srt")))))
|
|
||||||
|
|
||||||
(define-public ffmpeg-for-stepmania
|
(define-public ffmpeg-for-stepmania
|
||||||
(hidden-package
|
(hidden-package
|
||||||
(package
|
(package
|
||||||
(inherit ffmpeg)
|
(inherit ffmpeg-4)
|
||||||
(version "2.1.3")
|
(version "2.1.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
|
@ -2019,9 +1839,9 @@ audio/video codec library.")
|
||||||
(base32 "1by8rmbva8mfrivdbbkr2gx4kga89zqygkd4cfjl76nr8mdcdamb"))
|
(base32 "1by8rmbva8mfrivdbbkr2gx4kga89zqygkd4cfjl76nr8mdcdamb"))
|
||||||
(file-name (git-file-name "ffmpeg" version))))
|
(file-name (git-file-name "ffmpeg" version))))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments ffmpeg)
|
(substitute-keyword-arguments (package-arguments ffmpeg-4)
|
||||||
((#:configure-flags flags)
|
((#:configure-flags flags)
|
||||||
'(list "--disable-programs"
|
#~(list "--disable-programs"
|
||||||
"--disable-doc"
|
"--disable-doc"
|
||||||
"--disable-debug"
|
"--disable-debug"
|
||||||
"--disable-avdevice"
|
"--disable-avdevice"
|
||||||
|
|
Reference in New Issue