summaryrefslogtreecommitdiff
path: root/gnu/packages/video.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r--gnu/packages/video.scm183
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)))