From 08cb48c5a281a828fe3055d88c24cd6a32fe9e21 Mon Sep 17 00:00:00 2001 From: lemmi Date: Thu, 7 Apr 2016 17:06:31 +0200 Subject: [PATCH 1/4] New package: zimg-2.0.4 --- common/shlibs | 1 + srcpkgs/zimg-devel | 1 + srcpkgs/zimg/template | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 120000 srcpkgs/zimg-devel create mode 100644 srcpkgs/zimg/template diff --git a/common/shlibs b/common/shlibs index 5ca75a06c82..196a33153a3 100644 --- a/common/shlibs +++ b/common/shlibs @@ -2433,3 +2433,4 @@ libts-1.0.so.0 tslib-1.1_1 libobs.so.0 obs-0.14.1_2 libobsglad.so.0 obs-0.14.1_2 libobs-opengl.so.0 obs-0.14.1_2 +libzimg.so.2 zimg-2.0.4_1 diff --git a/srcpkgs/zimg-devel b/srcpkgs/zimg-devel new file mode 120000 index 00000000000..3fae3847012 --- /dev/null +++ b/srcpkgs/zimg-devel @@ -0,0 +1 @@ +zimg \ No newline at end of file diff --git a/srcpkgs/zimg/template b/srcpkgs/zimg/template new file mode 100644 index 00000000000..dd884bc993c --- /dev/null +++ b/srcpkgs/zimg/template @@ -0,0 +1,32 @@ +# Template file for 'zimg' +pkgname=zimg +version=2.0.4 +revision=1 +wrksrc=zimg-release-${version} +build_style=gnu-configure +hostmakedepends="automake libtool pkg-config" +short_desc="Image processing library" +maintainer="lemmi " +license="WTFPL" +homepage="https://github.com/sekrit-twc" +distfiles="https://github.com/sekrit-twc/zimg/archive/release-${version}.tar.gz" +checksum=e3b1f5b9f8ce750f96b9bc9801ff5d6aa931d35300d67711826e397df43c5245 + +pre_configure() { + ./autogen.sh +} + +post_install() { + vlicense COPYING +} + +zimg-devel_package() { + depends="${sourcepkg}>=${version}_${revision}" + short_desc+=" - development files" + pkg_install() { + vmove usr/include + vmove usr/lib/pkgconfig + vmove "usr/lib/*.a" + vmove "usr/lib/*.so" + } +} From 5be8f45d5bd55e7573298d34fe5e2af725e88185 Mon Sep 17 00:00:00 2001 From: lemmi Date: Thu, 7 Apr 2016 17:40:57 +0200 Subject: [PATCH 2/4] New package: vapoursynth-R32 --- common/shlibs | 5 +++++ srcpkgs/vapoursynth-devel | 1 + srcpkgs/vapoursynth/template | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 120000 srcpkgs/vapoursynth-devel create mode 100644 srcpkgs/vapoursynth/template diff --git a/common/shlibs b/common/shlibs index 196a33153a3..70d76cbb6e4 100644 --- a/common/shlibs +++ b/common/shlibs @@ -2434,3 +2434,8 @@ libobs.so.0 obs-0.14.1_2 libobsglad.so.0 obs-0.14.1_2 libobs-opengl.so.0 obs-0.14.1_2 libzimg.so.2 zimg-2.0.4_1 +libvapoursynth.so vapoursynth-R31_1 +libvapoursynth-script.so.0 vapoursynth-R31_1 +libvapoursynth.so vapoursynth-devel-R32_1 +libvapoursynth-script.so.0 vapoursynth-R32_1 +libmvtools.so vapoursynth-mvtools-12_1 diff --git a/srcpkgs/vapoursynth-devel b/srcpkgs/vapoursynth-devel new file mode 120000 index 00000000000..96aaf06b472 --- /dev/null +++ b/srcpkgs/vapoursynth-devel @@ -0,0 +1 @@ +vapoursynth \ No newline at end of file diff --git a/srcpkgs/vapoursynth/template b/srcpkgs/vapoursynth/template new file mode 100644 index 00000000000..8d0e6faf4bc --- /dev/null +++ b/srcpkgs/vapoursynth/template @@ -0,0 +1,36 @@ +# Template file for 'vapoursynth' +pkgname=vapoursynth +version=R32 +revision=1 +build_style=gnu-configure +hostmakedepends="automake pkg-config libtool yasm python3 python-Cython python3.4-Cython" +makedepends="python3.4-devel zimg-devel libmagick-devel libass-devel" +short_desc="Application for video manipulation" +maintainer="lemmi " +license="LGPL-2" +homepage="http://www.vapoursynth.com" +distfiles="https://github.com/vapoursynth/vapoursynth/archive/$version.tar.gz" +checksum=e9560f64ba298c2ef9e6e3d88f63ea0ab88e14bbd0e9feee9c621b9224e408c8 + +pre_configure() { + ./autogen.sh + case $XBPS_TARGET_MACHINE in + arm*musl) + sed -i '/#include /a #include ' src/core/cpufeatures.c + sed -i -e 's/HWCAP_ARM_/HWCAP_/' src/core/cpufeatures.c + ;; + *) + ;; + esac +} + +vapoursynth-devel_package() { + depends="${sourcepkg}>=${version}_${revision}" + short_desc+=" - development files" + pkg_install() { + vmove usr/include + vmove usr/lib/pkgconfig + vmove "usr/lib/*.a" + vmove "usr/lib/*.so" + } +} From be4f55037e8727781c3599bb371a96ea0bcdbe64 Mon Sep 17 00:00:00 2001 From: lemmi Date: Thu, 7 Apr 2016 18:35:37 +0200 Subject: [PATCH 3/4] New package: vapoursynth-mvtools-13 --- srcpkgs/vapoursynth-mvtools/files/example.py | 89 ++++++++++++++++++++ srcpkgs/vapoursynth-mvtools/template | 22 +++++ 2 files changed, 111 insertions(+) create mode 100644 srcpkgs/vapoursynth-mvtools/files/example.py create mode 100644 srcpkgs/vapoursynth-mvtools/template diff --git a/srcpkgs/vapoursynth-mvtools/files/example.py b/srcpkgs/vapoursynth-mvtools/files/example.py new file mode 100644 index 00000000000..e23620456ca --- /dev/null +++ b/srcpkgs/vapoursynth-mvtools/files/example.py @@ -0,0 +1,89 @@ +import vapoursynth as vs + +# see http://avisynth.org.ru/mvtools/mvtools2.html +# these configs will have around 75% usage with an FX-8350 + +def main(): + # don't interpolate if input is close to 60fps anyway + if container_fps > 59: + video_in.set_output() + return + + # basic config + config = { + 'blksize': 16, + 'chroma': True, + 'search': 4, + 'searchparam': 4, + } + recalcconfig = { + 'blksize': 8, + 'chroma': True, + 'search': 5, + 'searchparam': 2, + } + + # use higher quality on 720p or lower + if video_in.width * video_in.height <= 1280*720: + config.update({ + 'search': 5, + 'searchparam': 16, + 'blksize': 32, + 'badsad': 1000, + 'badrange': 32, + 'divide': 2, + 'overlap': 8, + }) + recalcconfig.update({ + 'search': 3, + 'blksize': 16, + 'overlap': 8, + 'dct': 8, + }) + + interpolate(config, recalcconfig) + +# first pass +def analyse(sup, config): + core = vs.get_core() + bvec = core.mv.Analyse(sup, isb=True, **config) + fvec = core.mv.Analyse(sup, isb=False, **config) + return bvec, fvec + +# optional second pass +def recalculate(sup, bvec, fvec, config): + core = vs.get_core() + bvec = core.mv.Recalculate(sup, bvec, **config) + fvec = core.mv.Recalculate(sup, fvec, **config) + return bvec, fvec + +def interpolate(config, recalcconfig=None): + core = vs.get_core() + clip = video_in + + # Interpolating to fps higher than 60 is too CPU-expensive + # Use interpolation from opengl video output + dst_fps = display_fps + while (dst_fps > 60): + dst_fps /= 2 + + src_fps_num = int(container_fps * 1e8) + src_fps_den = int(1e8) + dst_fps_num = int(dst_fps * 1e4) + dst_fps_den = int(1e4) + + # Needed because clip FPS is missing + clip = core.std.AssumeFPS(clip, fpsnum = src_fps_num, fpsden = src_fps_den) + print("Reflowing from ",src_fps_num/src_fps_den," fps to ",dst_fps_num/dst_fps_den," fps.") + + pad = config.get('blksize', 8) + sup = core.mv.Super(clip, pel=1, hpad=pad, vpad=pad) + bvec, fvec = analyse(sup, config) + if recalcconfig: + bvec, fvec = recalculate(sup, bvec, fvec, recalcconfig) + clip = core.mv.FlowFPS(clip, sup, bvec, fvec, num=dst_fps_num, den=dst_fps_den, thscd2=90) + + clip.set_output() + +if __name__ == '__vapoursynth__': + main() diff --git a/srcpkgs/vapoursynth-mvtools/template b/srcpkgs/vapoursynth-mvtools/template new file mode 100644 index 00000000000..9c50a293b8e --- /dev/null +++ b/srcpkgs/vapoursynth-mvtools/template @@ -0,0 +1,22 @@ +# Template file for 'vapoutsynth-mvtools' +pkgname=vapoursynth-mvtools +version=13 +revision=1 +build_style=gnu-configure +hostmakedepends="automake pkg-config libtool yasm" +makedepends="fftw-devel vapoursynth-devel zimg-devel" +short_desc="Set of filters for motion estimation and compensation" +maintainer="lemmi " +license="GPL-2" +homepage="http://avisynth.org.ru/mvtools/mvtools2.html" +distfiles="https://github.com/dubhater/vapoursynth-mvtools/archive/v${version}.tar.gz" +checksum=941d204b82a99df837a36a0fbb733fef279a16525fd1676123eedd98a2a097ba + +pre_configure() { + ./autogen.sh +} + +post_install() { + vdoc readme.rst + vsconf ${FILESDIR}/example.py +} From 7dc7cc2e3fd14250e894495cd42a5052d278ba03 Mon Sep 17 00:00:00 2001 From: lemmi Date: Thu, 7 Apr 2016 18:25:48 +0200 Subject: [PATCH 4/4] mpv: add motion estimation --- srcpkgs/mpv/template | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/srcpkgs/mpv/template b/srcpkgs/mpv/template index 5169513f9a8..8f39f9ef1e5 100644 --- a/srcpkgs/mpv/template +++ b/srcpkgs/mpv/template @@ -1,7 +1,7 @@ # Template file for 'mpv' pkgname=mpv version=0.17.0 -revision=1 +revision=2 short_desc="Video player based on MPlayer/mplayer2" maintainer="Juan RP " license="GPL-3" @@ -9,7 +9,7 @@ homepage="http://mpv.io" build_style=waf configure_args="--confdir=/etc/mpv --docdir=/usr/share/examples/mpv --enable-cdda --enable-libmpv-shared --disable-oss-audio --disable-sdl2 - --enable-gpl3" + --enable-gpl3 --enable-vapoursynth" hostmakedepends="pkg-config python-docutils perl" makedepends=" ffmpeg-devel libass-devel lcms2-devel libXinerama-devel lua52-devel v4l-utils-devel @@ -17,8 +17,8 @@ makedepends=" pulseaudio-devel libbluray-devel libcdio-paranoia-devel libdvdread-devel MesaLib-devel harfbuzz-devel libXScrnSaver-devel jack-devel libdvdnav-devel wayland-devel libuuid-devel libguess-devel libXrandr-devel samba-devel - rubberband-devel" -depends="desktop-file-utils hicolor-icon-theme youtube-dl" + rubberband-devel vapoursynth-devel zimg-devel python3.4-devel" +depends="desktop-file-utils hicolor-icon-theme youtube-dl vapoursynth-mvtools" distfiles="https://github.com/mpv-player/${pkgname}/archive/v${version}.tar.gz" checksum=602cd2b0f5fc7e43473234fbb96e3f7bbb6418f15eb8fa720d9433cce31eba6e