diff options
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r-- | gnu/packages/video.scm | 183 |
1 files changed, 180 insertions, 3 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index bfe3063242..4d1cecc4ef 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -18,6 +18,8 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> +;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com> +;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -58,6 +60,7 @@ #:use-module (gnu packages cdrom) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages dejagnu) @@ -308,7 +311,7 @@ designed to encode video or images into an H.265 / HEVC encoded bitstream.") (define-public libass (package (name "libass") - (version "0.13.6") + (version "0.13.7") (source (origin (method url-fetch) (uri (string-append @@ -316,7 +319,7 @@ designed to encode video or images into an H.265 / HEVC encoded bitstream.") version "/libass-" version ".tar.xz")) (sha256 (base32 - "0b9cj5xfsa7zwlk5m146fhv102v51iqs3rapq0n2xrz30k8p9a7q")))) + "17byv926w1mxn56n896sxvdq4m0yv1l7qbm688h6zr3nzgsyarbh")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -657,7 +660,10 @@ audio/video codec library.") "1a22b913p2227ljz89c4fgjlyln5gcz8z58w32r0wh4srnnd60y4")))) (build-system gnu-build-system) (native-inputs - `(("git" ,git) ; needed for a test + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("git" ,git) ; needed for a test + ("libtool" ,libtool) ("pkg-config" ,pkg-config))) ;; FIXME: Add optional inputs once available. (inputs @@ -671,6 +677,7 @@ audio/video codec library.") ("gnutls" ,gnutls) ("liba52" ,liba52) ("libcddb" ,libcddb) + ("libdvbpsi" ,libdvbpsi) ("libgcrypt" ,libgcrypt) ("libkate" ,libkate) ("libmad" ,libmad) @@ -685,6 +692,7 @@ audio/video codec library.") ("libxinerama" ,libxinerama) ("libxml2" ,libxml2) ("libxpm" ,libxpm) + ("livemedia-utils" ,livemedia-utils) ("lua" ,lua-5.1) ("mesa" ,mesa) ("opus" ,opus) @@ -712,6 +720,15 @@ audio/video codec library.") #:phases (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda _ (zero? (system* "sh" "bootstrap")))) + (add-before 'bootstrap 'fix-livemedia-utils-prefix + (lambda* (#:key inputs #:allow-other-keys) + (let ((livemedia-utils (assoc-ref inputs "livemedia-utils"))) + (substitute* "configure.ac" + (("LIVE555_PREFIX=\\$\\{LIVE555_PREFIX-\"/usr\"\\}") + (string-append "LIVE555_PREFIX=" livemedia-utils))) + #t))) (add-before 'configure 'remove-visual-tests ;; Some of the tests require using the display to test out VLC, ;; which fails in our sandboxed build system @@ -2052,3 +2069,163 @@ file format that has been used as a multimedia file format in a variety of platf applications. It is a very powerful and extensible format that can accommodate practically any type of media.") (license license:mpl1.1))) + +(define-public libmediainfo + (package + (name "libmediainfo") + (version "0.7.95") + (source (origin + (method url-fetch) + (uri (string-append "https://mediaarea.net/download/source/" + name "/" version"/" + name "_" version ".tar.bz2")) + (sha256 + (base32 + "1kchh6285b07z5nixv619hc9gml2ysdayicdiv30frrlqiyxqw4b")))) + ;; TODO add a Big Buck Bunny webm for tests. + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("zlib" ,zlib) + ("tinyxml2" ,tinyxml2) + ("curl" ,curl) + ("libzen" ,libzen))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; see above TODO + #:phases + ;; build scripts not in root of archive + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda _ + (chdir "Project/GNU/Library"))) + (add-before 'configure 'autogen + (lambda _ + (zero? (system* "./autogen.sh"))))))) + (home-page "https://mediaarea.net/en/MediaInfo") + (synopsis "Library for retrieving media metadata") + (description "MediaInfo is a library used for retrieving technical +information and other metadata about audio or video files. A non-exhaustive +list of the information MediaInfo can retrieve from media files include: + +@itemize +@item General: title, author, director, album, track number, date, duration... +@item Video: codec, aspect, fps, bitrate... +@item Audio: codec, sample rate, channels, language, bitrate... +@item Text: language of subtitle +@item Chapters: number of chapters, list of chapters +@end itemize + +MediaInfo supports the following formats: + +@itemize +@item Video: MKV, OGM, AVI, DivX, WMV, QuickTime, Real, MPEG-1, +MPEG-2, MPEG-4, DVD (VOB)... +@item Video Codecs: DivX, XviD, MSMPEG4, ASP, H.264, AVC...) +@item Audio: OGG, MP3, WAV, RA, AC3, DTS, AAC, M4A, AU, AIFF... +@item Subtitles: SRT, SSA, ASS, SAMI... +@end itemize\n") + (license license:bsd-2))) + +;; TODO also have a GUI version available +(define-public mediainfo + (package + (name "mediainfo") + (version "0.7.95") + (source (origin + (method url-fetch) + (uri (string-append "https://mediaarea.net/download/source/" + name "/" version "/" + name "_" version ".tar.bz2")) + (sha256 + (base32 + "0dy51a3i79jppmg1gi4f6h7jx4hcgnkmfim4d7d3gmnlbkjh8anv")))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("zlib" ,zlib) + ("libmediainfo", libmediainfo) + ("libzen" ,libzen))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; lacks tests + #:phases + ;; build scripts not in root of archive + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda _ + (chdir "Project/GNU/CLI"))) + (add-before 'configure 'autogen + (lambda _ + (zero? (system* "./autogen.sh"))))))) + (home-page "https://mediaarea.net/en/MediaInfo") + (synopsis "Utility for reading media metadata") + (description "MediaInfo is a utility used for retrieving technical +information and other metadata about audio or video files. It supports the +many codecs and formats supported by libmediainfo.") + (license license:bsd-2))) + +(define-public livemedia-utils + (package + (name "livemedia-utils") + (version "2017.05.24") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.live555.com/liveMedia/public/live." + version ".tar.gz")) + (sha256 + (base32 + "1ra64j3qa89hf3xika8jz9gd8al8mcaqlk5ivw5pclnd2df5f4im")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no tests + #:make-flags (list "CC=gcc" + (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib") + (string-append "PREFIX=" + (assoc-ref %outputs "out"))) + #:phases (modify-phases %standard-phases + (add-before 'configure 'fix-makefiles-generation + (lambda _ + (substitute* "genMakefiles" + (("/bin/rm") "rm")) + #t)) + (replace 'configure + (lambda _ + (zero? (system* "./genMakefiles" + "linux-with-shared-libraries"))))))) + (home-page "http://www.live555.com/liveMedia/") + (synopsis "Set of C++ libraries for multimedia streaming") + (description "This code forms a set of C++ libraries for multimedia +streaming, using open standard protocols (RTP/RTCP, RTSP, SIP). The libraries +can be used to stream, receive, and process MPEG, H.265, H.264, H.263+, DV or +JPEG video, and several audio codecs. They can easily be extended to support +additional (audio and/or video) codecs, and can also be used to build basic +RTSP or SIP clients and servers.") + (license license:lgpl3+))) + +(define-public libdvbpsi + (package + (name "libdvbpsi") + (version "1.3.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://download.videolan.org/pub/libdvbpsi/" + version "/libdvbpsi-" version ".tar.bz2")) + (sha256 + (base32 + "0824r08kaspbrrg2dd5d46s475zb7j59brqkm2y6x3mdsnpng0yn")))) + (build-system gnu-build-system) + (home-page "https://www.videolan.org/developers/libdvbpsi.html") + (synopsis "Library for decoding and generation of MPEG TS and DVB PSI +tables") + (description "libdvbpsi is a simple library designed for decoding and +generation of MPEG TS and DVB PSI tables according to standards ISO/IEC 13818s +and ITU-T H.222.0.") + (license license:lgpl2.1))) |