From 1cb10f696813ef23678029612471a9190ef9d08a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 16 Jan 2022 00:35:21 -0500 Subject: gnu: Add FFmpeg 5.0. * gnu/packages/video.scm (ffmpeg-5): New variable Co-authored-by: Marius Bakke --- gnu/packages/video.scm | 191 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 190 insertions(+), 1 deletion(-) (limited to 'gnu/packages/video.scm') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 78d6b26c99..cd06ac72bd 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -24,7 +24,7 @@ ;;; Copyright © 2018 Roel Janssen ;;; Copyright © 2018-2022 Marius Bakke ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt -;;; Copyright © 2018, 2019, 2020 Leo Famulari +;;; Copyright © 2018, 2019, 2020, 2022 Leo Famulari ;;; Copyright © 2018 Brendan Tildesley ;;; Copyright © 2018 Arun Isaac ;;; Copyright © 2018 Björn Höfling @@ -1546,6 +1546,195 @@ These tools require a supported graphics chip, driver, and VA-API back end to operate properly.") (license license:expat))) +(define-public ffmpeg-5 + (package + (name "ffmpeg") + (version "5.0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" + version ".tar.xz")) + (sha256 + (base32 + "0yq0jcdc4qm5znrzylj3dsicrkk2n3n8bv28vr0a506fb7iglbpg")))) + (build-system gnu-build-system) + (inputs + (append + ;; XXX: rav1e depends on rust, which currently only works on x86_64. + ;; See also the related configure flag when changing this. + (if (target-x86-64?) (list rav1e) '()) + (list dav1d + fontconfig + freetype + frei0r-plugins + gnutls + opus + ladspa + lame + libaom + libass + libbluray + libcaca + libcdio-paranoia + libdrm + libtheora + libva + libvdpau + libvorbis + libvpx + libx11 + libx264 + mesa + openal + pulseaudio + sdl2 + soxr + speex + srt + twolame + vidstab + x265 + xvid + zlib))) + (native-inputs + (list bc + perl + pkg-config + texinfo + speex + yasm)) + (arguments + (list + #:test-target "fate" + #:configure-flags + ;; possible additional inputs: + ;; --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 + #~(list + "--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 (target-x86-64?) + '("--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))))))) + (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 (package (name "ffmpeg") -- cgit v1.2.3 From a50fa212fed5e26ea83126ed60ddf4b5de64dff4 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 23 May 2022 19:13:15 +0200 Subject: 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. --- gnu/packages/video.scm | 236 ++++++------------------------------------------- 1 file changed, 28 insertions(+), 208 deletions(-) (limited to 'gnu/packages/video.scm') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index cd06ac72bd..70ea39a45b 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1735,9 +1735,9 @@ convert and stream audio and video. It includes the libavcodec audio/video codec library.") (license license:gpl2+))) -(define-public ffmpeg +(define-public ffmpeg-4 (package - (name "ffmpeg") + (inherit ffmpeg-5) (version "4.4.1") (source (origin (method url-fetch) @@ -1746,192 +1746,14 @@ audio/video codec library.") (sha256 (base32 "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 - `(#:test-target "fate" - #:configure-flags - ;; possible additional inputs: - ;; --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+))) + (substitute-keyword-arguments (package-arguments ffmpeg-5) + ((#:configure-flags flags ''()) + #~(cons "--enable-avresample" #$flags)))))) (define-public ffmpeg-3.4 (package - (inherit ffmpeg) + (inherit ffmpeg-4) (version "3.4.9") (source (origin (method url-fetch) @@ -1941,23 +1763,22 @@ audio/video codec library.") (base32 "0d8nkd9c85rkjlgsq1hidmykkrksi883ygqzhhj6wh4nqflv8vs9")))) (arguments - (substitute-keyword-arguments (package-arguments ffmpeg) + (substitute-keyword-arguments (package-arguments ffmpeg-4) ((#:modules modules %gnu-build-system-modules) `((srfi srfi-1) ,@modules)) ((#:configure-flags flags) - `(fold delete - ,flags - '("--enable-libdav1d" - "--enable-libaom" - "--enable-librav1e" - "--enable-libsrt"))))) - (inputs (modify-inputs (package-inputs ffmpeg) + #~(fold delete #$flags + '("--enable-libdav1d" + "--enable-libaom" + "--enable-librav1e" + "--enable-libsrt"))))) + (inputs (modify-inputs (package-inputs ffmpeg-4) (delete "dav1d" "libaom" "rav1e" "srt"))))) (define-public ffmpeg-2.8 (package - (inherit ffmpeg) + (inherit ffmpeg-3.4) (version "2.8.18") (source (origin (method url-fetch) @@ -1999,15 +1820,14 @@ audio/video codec library.") (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)))))) - (inputs (modify-inputs (package-inputs ffmpeg) - (delete "dav1d" "libaom" "rav1e" "srt"))))) + (setenv "LD_LIBRARY_PATH" path))))))))) + +(define-public ffmpeg ffmpeg-4) (define-public ffmpeg-for-stepmania (hidden-package (package - (inherit ffmpeg) + (inherit ffmpeg-4) (version "2.1.3") (source (origin @@ -2019,17 +1839,17 @@ audio/video codec library.") (base32 "1by8rmbva8mfrivdbbkr2gx4kga89zqygkd4cfjl76nr8mdcdamb")) (file-name (git-file-name "ffmpeg" version)))) (arguments - (substitute-keyword-arguments (package-arguments ffmpeg) + (substitute-keyword-arguments (package-arguments ffmpeg-4) ((#:configure-flags flags) - '(list "--disable-programs" - "--disable-doc" - "--disable-debug" - "--disable-avdevice" - "--disable-swresample" - "--disable-postproc" - "--disable-avfilter" - "--disable-shared" - "--enable-static")))) + #~(list "--disable-programs" + "--disable-doc" + "--disable-debug" + "--disable-avdevice" + "--disable-swresample" + "--disable-postproc" + "--disable-avfilter" + "--disable-shared" + "--enable-static")))) (inputs '())))) (define-public ffmpegthumbnailer -- cgit v1.2.3 From f38ff1d7fb82dacf8b09b61bcf48aec8c6bc77e9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 23 May 2022 19:20:15 +0200 Subject: gnu: ffmpeg@4: Update to 4.4.2. * gnu/packages/video.scm (ffmpeg-4): Update to 4.4.2. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/video.scm') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 70ea39a45b..6d72f5d859 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1738,14 +1738,14 @@ audio/video codec library.") (define-public ffmpeg-4 (package (inherit ffmpeg-5) - (version "4.4.1") + (version "4.4.2") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "00hfwd8ld6jnd26pl9f0wcd2mag4zacxxgqgabsja2xkkagavnza")))) + "14xadxm1yaamp216nq09xwasxg5g133v86dbb33mdg5di1zrlhdg")))) (arguments (substitute-keyword-arguments (package-arguments ffmpeg-5) ((#:configure-flags flags ''()) -- cgit v1.2.3 From c776d7da260dd279cc889e127e6581b4f20c4915 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 May 2022 02:00:00 +0200 Subject: gnu: aalib: Don't build static library. * gnu/packages/video.scm (aalib)[arguments]: Add "--disable-static" to #:configure-flags. --- gnu/packages/video.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/packages/video.scm') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 6d72f5d859..2329746d55 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -745,6 +745,7 @@ stream decoding") (ncurses (assoc-ref inputs "ncurses"))) (setenv "CONFIG_SHELL" (which "bash")) (invoke "./configure" + "--disable-static" (string-append "--prefix=" out) (string-append "--build=" build) (string-append "--with-ncurses=" -- cgit v1.2.3 From 5a29cc9adea70d58f45bff974627a4c691df982e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 24 May 2022 17:12:46 +0200 Subject: gnu: vlc: Update to 3.0.17.3. * gnu/packages/video.scm (vlc): Update to 3.0.17.3. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/video.scm') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 2329746d55..61f8bd924d 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1884,7 +1884,7 @@ videoformats depend on the configuration flags of ffmpeg.") (define-public vlc (package (name "vlc") - (version "3.0.16") + (version "3.0.17.3") (source (origin (method url-fetch) (uri (string-append @@ -1893,7 +1893,7 @@ videoformats depend on the configuration flags of ffmpeg.") "/vlc-" version ".tar.xz")) (sha256 (base32 - "1xhhjhwihkz74dag25r5fscvw1v2byy4c8qxaxsw29gncky3bbpz")))) + "0510vqf35f0v9c498yki5441aig3fdqq3nv4vsb1vlvki7pr0zkg")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) -- cgit v1.2.3