1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-04 01:48:54 +00:00

multimedia/vapoursynth: add new port

Simple video processing framework, inspired by Avisynth.

http://www.vapoursynth.com/about/
This commit is contained in:
Jan Beich 2016-04-10 01:10:59 +00:00
parent a5ad2458e1
commit 6c9554d4e2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=412879
6 changed files with 200 additions and 0 deletions

View File

@ -393,6 +393,7 @@
SUBDIR += v4l-utils
SUBDIR += v4l_compat
SUBDIR += vamps
SUBDIR += vapoursynth
SUBDIR += vcdgear
SUBDIR += vcdimager
SUBDIR += vcdpad

View File

@ -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>

View File

@ -0,0 +1,2 @@
SHA256 (vapoursynth-vapoursynth-R32_GH0.tar.gz) = e9560f64ba298c2ef9e6e3d88f63ea0ab88e14bbd0e9feee9c621b9224e408c8
SIZE (vapoursynth-vapoursynth-R32_GH0.tar.gz) = 499058

View File

@ -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;

View File

@ -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/

View File

@ -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