aboutsummaryrefslogtreecommitdiff
path: root/multimedia/vapoursynth
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2016-04-10 01:10:59 +0000
committerJan Beich <jbeich@FreeBSD.org>2016-04-10 01:10:59 +0000
commit6c9554d4e23358da3ce2a8a812855727c7dc30fe (patch)
treecf8084a938f8296d94651fb2eadaa0dac0ea13e7 /multimedia/vapoursynth
parenta5ad2458e121bff832e9f83fc4c8f2ccb1439369 (diff)
downloadports-6c9554d4e23358da3ce2a8a812855727c7dc30fe.tar.gz
ports-6c9554d4e23358da3ce2a8a812855727c7dc30fe.zip
multimedia/vapoursynth: add new port
Simple video processing framework, inspired by Avisynth. http://www.vapoursynth.com/about/
Notes
Notes: svn path=/head/; revision=412879
Diffstat (limited to 'multimedia/vapoursynth')
-rw-r--r--multimedia/vapoursynth/Makefile124
-rw-r--r--multimedia/vapoursynth/distinfo2
-rw-r--r--multimedia/vapoursynth/files/patch-non-x8631
-rw-r--r--multimedia/vapoursynth/pkg-descr20
-rw-r--r--multimedia/vapoursynth/pkg-plist22
5 files changed, 199 insertions, 0 deletions
diff --git a/multimedia/vapoursynth/Makefile b/multimedia/vapoursynth/Makefile
new file mode 100644
index 000000000000..de65133f91ac
--- /dev/null
+++ b/multimedia/vapoursynth/Makefile
@@ -0,0 +1,124 @@
+# $FreeBSD$
+
+PORTNAME= vapoursynth
+DISTVERSION= R32
+CATEGORIES= multimedia
+
+MAINTAINER= jbeich@FreeBSD.org
+COMMENT= Video processing framework with simplicity in mind
+
+LICENSE= LGPL21+
+
+USE_GITHUB= yes
+
+USES= autoreconf gmake libtool localbase pathfix pkgconfig
+PATHFIX_MAKEFILEIN= Makefile.am
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS= --disable-silent-rules
+CPPFLAGS+= -D_GLIBCXX_USE_C99 # XXX ports/193528
+INSTALL_TARGET= install-strip
+USE_LDCONFIG= yes
+DATADIR= ${PREFIX}/lib/vapoursynth
+
+OPTIONS_DEFINE= DEBUG DOCS FRAME_GUARD
+OPTIONS_DEFAULT=${OPTIONS_GROUP_COMPS} ${OPTIONS_GROUP_PLUGINS}
+OPTIONS_SUB= yes
+
+OPTIONS_DEFINE_amd64= SIMD
+OPTIONS_DEFINE_i386= SIMD
+OPTIONS_DEFAULT_amd64= SIMD
+
+OPTIONS_GROUP= COMPS PLUGINS
+COMPS_DESC= Components
+OPTIONS_GROUP_COMPS= CORE PYTHON VSPIPE VSSCRIPT
+PLUGINS_DESC= Plugins
+OPTIONS_GROUP_PLUGINS= ASS EEDI3 IMAGEMAGICK MORPHO TESSERACT REMOVEGRAIN VINVERSE VIVTC
+
+# General options
+
+DEBUG_CONFIGURE_ENABLE= debug
+
+DOCS_BUILD_DEPENDS= sphinx-build:textproc/py-sphinx
+DOCS_USES= makeinfo
+DOCS_INFO= VapourSynth
+DOCS_PORTDOCS= *
+
+FRAME_GUARD_DESC= Check integrity after each filter
+FRAME_GUARD_CONFIGURE_ENABLE= guard-pattern
+
+# VSSCRIPT or REMOVEGRAIN
+SIMD_BUILD_DEPENDS= yasm:devel/yasm
+SIMD_CONFIGURE_ENABLE= x86-asm
+
+# COMPS group
+
+CORE_DESC= Core library
+CORE_LIB_DEPENDS= libzimg.so:graphics/sekrit-twc-zimg
+CORE_USES= compiler:c++11-lib
+CORE_CONFIGURE_ENABLE= core
+
+PYTHON_USES= python:3.3-
+PYTHON_BUILD_DEPENDS= cython:lang/cython
+PYTHON_CONFIGURE_ENABLE= python-module
+PYTHON_IMPLIES= CORE
+
+VSPIPE_DESC= Command line interface
+VSPIPE_USES= compiler:c++11-lib
+VSPIPE_CONFIGURE_ENABLE= vspipe
+VSPIPE_IMPLIES= VSSCRIPT
+
+VSSCRIPT_DESC= Scripting library
+VSSCRIPT_USES= compiler:c++11-lib python:3.3-
+VSSCRIPT_CONFIGURE_ENABLE= vsscript
+
+# PLUGINS group
+
+ASS_DESC= Subtitles rendering via libass
+ASS_LIB_DEPENDS= libass.so:multimedia/libass
+ASS_CONFIGURE_ENABLE= assvapour
+
+EEDI3_DESC= Very slow edge directed interpolation
+EEDI3_CONFIGURE_ENABLE= eedi3
+
+IMAGEMAGICK_LIB_DEPENDS= libMagick++-6.so:graphics/ImageMagick
+IMAGEMAGICK_USES= compiler:c++11-lib
+IMAGEMAGICK_CONFIGURE_ENABLE= imwri
+
+TESSERACT_DESC= Optical Character Recognition via Tesseract
+TESSERACT_LIB_DEPENDS= libtesseract.so:graphics/tesseract
+TESSERACT_CONFIGURE_ENABLE= ocr
+
+MORPHO_DESC= Morphological filter
+MORPHO_CONFIGURE_ENABLE= morpho
+
+REMOVEGRAIN_DESC= 3x3 median and convolution denoising
+REMOVEGRAIN_CONFIGURE_ENABLE= removegrain
+
+VINVERSE_DESC= Remove residual combing
+VINVERSE_CONFIGURE_ENABLE= vinverse
+
+VIVTC_DESC= Field matching, inverse telecine and decimation
+VIVTC_CONFIGURE_ENABLE= vivtc
+
+post-patch:
+ @${REINPLACE_CMD} -e 's/x86_64/&|amd64/' \
+ ${WRKSRC}/configure.ac
+
+post-build-DOCS-on:
+ @${DO_MAKE_BUILD} html texinfo -C${WRKSRC}/doc
+ @${DO_MAKE_BUILD} info -C${WRKSRC}/doc/_build/texinfo
+ @if [ -n "${PORT_OPTIONS:MVSPIPE}" ]; then \
+ ${DO_MAKE_BUILD} man -C${WRKSRC}/doc; \
+ fi
+
+post-install-DOCS-on:
+ ${INSTALL_MAN} ${WRKSRC}/doc/_build/texinfo/VapourSynth.info \
+ ${STAGEDIR}${PREFIX}/${INFO_PATH}
+ (cd ${WRKSRC}/doc/_build/html && ${COPYTREE_SHARE} \
+ "${PORTDOCS}" ${STAGEDIR}${DOCSDIR})
+ @if [ -n "${PORT_OPTIONS:MVSPIPE}" ]; then \
+ ${INSTALL_MAN} -v ${WRKSRC}/doc/_build/man/vspipe.1 \
+ ${STAGEDIR}${MAN1PREFIX}/man/man1; \
+ fi
+
+.include <bsd.port.mk>
diff --git a/multimedia/vapoursynth/distinfo b/multimedia/vapoursynth/distinfo
new file mode 100644
index 000000000000..52153cc44790
--- /dev/null
+++ b/multimedia/vapoursynth/distinfo
@@ -0,0 +1,2 @@
+SHA256 (vapoursynth-vapoursynth-R32_GH0.tar.gz) = e9560f64ba298c2ef9e6e3d88f63ea0ab88e14bbd0e9feee9c621b9224e408c8
+SIZE (vapoursynth-vapoursynth-R32_GH0.tar.gz) = 499058
diff --git a/multimedia/vapoursynth/files/patch-non-x86 b/multimedia/vapoursynth/files/patch-non-x86
new file mode 100644
index 000000000000..f584c4496260
--- /dev/null
+++ b/multimedia/vapoursynth/files/patch-non-x86
@@ -0,0 +1,31 @@
+--- src/core/cpufeatures.c.orig 2016-02-02 16:12:42 UTC
++++ src/core/cpufeatures.c
+@@ -60,7 +60,7 @@ void getCPUFeatures(CPUFeatures *cpuFeat
+ }
+ }
+ }
+-#elif defined(VS_TARGET_OS_LINUX)
++#elif defined(VS_TARGET_OS_LINUX) && defined(__linux__)
+ #include <sys/auxv.h>
+
+ void getCPUFeatures(CPUFeatures *cpuFeatures) {
+@@ -89,5 +89,7 @@ void getCPUFeatures(CPUFeatures *cpuFeat
+ #endif
+ }
+ #else
+-#error Do not know how to get CPU features.
++void getCPUFeatures(CPUFeatures *cpuFeatures) {
++ memset(cpuFeatures, 0, sizeof(CPUFeatures));
++}
+ #endif
+--- src/core/cpufeatures.h.orig 2016-02-02 16:12:42 UTC
++++ src/core/cpufeatures.h
+@@ -51,8 +51,6 @@ typedef struct CPUFeatures {
+ char efp_double;
+ char dfp;
+ char vsx;
+-#else
+-#error No VS_TARGET_CPU_* defined/handled!
+ #endif
+ } CPUFeatures;
+
diff --git a/multimedia/vapoursynth/pkg-descr b/multimedia/vapoursynth/pkg-descr
new file mode 100644
index 000000000000..19c1c27959ab
--- /dev/null
+++ b/multimedia/vapoursynth/pkg-descr
@@ -0,0 +1,20 @@
+VapourSynth is an application for video manipulation. Or a plugin. Or
+a library. It's hard to tell because it has a core library written in
+C++ and a Python module to allow video scripts to be created. It came
+to be when I started thinking about alternative designs for Avisynth
+and most of it was written over a 3 month period.
+
+The software has been heavily inspired by and aims to be a 21st
+century rewrite, taking advantage of the advancements computers have
+made since the late 90s. The main features compared to Avisynth are:
+
+* Multithreaded - Frame level multithreading that scales well
+* Generalized Colorspaces - New colorspaces can be specified at runtime
+* Per Frame Properties - Additional metadata can be attached to frames
+* Python Based - The scripting part is implemented as a Python module so you
+ don't have to learn a special language
+* Support for video with format changes - Some video just can't stick to one
+ format or frame size. VapourSynth can handle any kind of change
+* Compatible with a large number of already existing Avisynth plugins
+
+WWW: http://www.vapoursynth.com/
diff --git a/multimedia/vapoursynth/pkg-plist b/multimedia/vapoursynth/pkg-plist
new file mode 100644
index 000000000000..b629809b118a
--- /dev/null
+++ b/multimedia/vapoursynth/pkg-plist
@@ -0,0 +1,22 @@
+%%VSPIPE%%bin/vspipe
+%%CORE%%include/vapoursynth/VSHelper.h
+%%CORE%%include/vapoursynth/VSScript.h
+%%CORE%%include/vapoursynth/VapourSynth.h
+%%VSSCRIPT%%lib/libvapoursynth-script.a
+%%VSSCRIPT%%lib/libvapoursynth-script.so
+%%VSSCRIPT%%lib/libvapoursynth-script.so.0
+%%VSSCRIPT%%lib/libvapoursynth-script.so.0.0.0
+%%CORE%%lib/libvapoursynth.a
+%%CORE%%lib/libvapoursynth.so
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/vapoursynth.so
+%%DOCS%%%%VSPIPE%%man/man1/vspipe.1.gz
+%%ASS%%%%DATADIR%%/libassvapour.so
+%%EEDI3%%%%DATADIR%%/libeedi3.so
+%%IMAGEMAGICK%%%%DATADIR%%/libimwri.so
+%%MORPHO%%%%DATADIR%%/libmorpho.so
+%%TESSERACT%%%%DATADIR%%/libocr.so
+%%REMOVEGRAIN%%%%DATADIR%%/libremovegrain.so
+%%VINVERSE%%%%DATADIR%%/libvinverse.so
+%%VIVTC%%%%DATADIR%%/libvivtc.so
+%%VSSCRIPT%%libdata/pkgconfig/vapoursynth-script.pc
+%%CORE%%libdata/pkgconfig/vapoursynth.pc