aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjbeich <jbeich@FreeBSD.org>2016-09-28 10:13:33 +0800
committerjbeich <jbeich@FreeBSD.org>2016-09-28 10:13:33 +0800
commitc4f689a929385540a68bef4de8c10ffb3a8cea96 (patch)
tree2962abc8d88b8a2791bdbdcc0c9e9ce52c12923a
parentf89057c230ca39e8c8903fbc06bf5c1ad1516260 (diff)
downloadfreebsd-ports-gnome-c4f689a929385540a68bef4de8c10ffb3a8cea96.tar.gz
freebsd-ports-gnome-c4f689a929385540a68bef4de8c10ffb3a8cea96.tar.zst
freebsd-ports-gnome-c4f689a929385540a68bef4de8c10ffb3a8cea96.zip
multimedia/kvazaar: add new port
The purpose of this academic open-source project is to develop a video encoder for the emerging High Efficiency Video Coding (HEVC) standard. This Kvazaar HEVC encoder is being developed towards the following goals: 1. Coding efficiency close to HEVC reference encoder (HM) 2. Modular encoder structure to simplify its data flow modeling 3. Efficient support for different parallelization approaches 4. Easy portability to different platforms 5. Optimized encoding speed without sacrificing its coding efficiency, modularity, or portability 6. Reduced computation and memory resources without sacrificing its coding efficiency, modularity, or portability 7. Excellent software readability and implementation documentation Achieving these objectives requires encoder with design decisions that make this open-source encoder unique: 1. The encoder is developed from the scratch (HM used as a reference) 2. The implementation language is platform-independent C http://ultravideo.cs.tut.fi/#encoder
-rw-r--r--multimedia/Makefile2
-rw-r--r--multimedia/kvazaar-devel/Makefile17
-rw-r--r--multimedia/kvazaar-devel/distinfo5
-rw-r--r--multimedia/kvazaar-devel/files/patch-src_strategies_x86__asm_picture-x86-asm.c22
-rw-r--r--multimedia/kvazaar-devel/pkg-plist11
-rw-r--r--multimedia/kvazaar/Makefile60
-rw-r--r--multimedia/kvazaar/distinfo5
-rw-r--r--multimedia/kvazaar/pkg-descr21
-rw-r--r--multimedia/kvazaar/pkg-plist10
9 files changed, 153 insertions, 0 deletions
diff --git a/multimedia/Makefile b/multimedia/Makefile
index fed4a59a12be..4f0859dc1f08 100644
--- a/multimedia/Makefile
+++ b/multimedia/Makefile
@@ -168,6 +168,8 @@
SUBDIR += kmplayer-kde4
SUBDIR += kodi
SUBDIR += kplayer-kde4
+ SUBDIR += kvazaar
+ SUBDIR += kvazaar-devel
SUBDIR += l-smash
SUBDIR += libaacs
SUBDIR += libass
diff --git a/multimedia/kvazaar-devel/Makefile b/multimedia/kvazaar-devel/Makefile
new file mode 100644
index 000000000000..1ce24504695e
--- /dev/null
+++ b/multimedia/kvazaar-devel/Makefile
@@ -0,0 +1,17 @@
+# $FreeBSD$
+
+DISTVERSION= 0.8.3-275
+DISTVERSIONSUFFIX= -gcbfa824
+PORTREVISION= 0
+PKGNAMESUFFIX= -devel
+
+CONFLICTS_INSTALL= ${PORTNAME}
+
+MASTERDIR= ${.CURDIR}/../kvazaar
+PATCHDIR= ${.CURDIR}/files
+DISTINFO_FILE= ${.CURDIR}/distinfo
+PLIST= ${.CURDIR}/pkg-plist
+
+OPTIONS_EXCLUDE= #
+
+.include "${MASTERDIR}/Makefile"
diff --git a/multimedia/kvazaar-devel/distinfo b/multimedia/kvazaar-devel/distinfo
new file mode 100644
index 000000000000..b7fcb96a86fb
--- /dev/null
+++ b/multimedia/kvazaar-devel/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1474878896
+SHA256 (ultravideo-kvazaar-v0.8.3-275-gcbfa824_GH0.tar.gz) = 536fec89646fbad9f9e92effb6a7cab0cfa931b8f6ef89b089a5836bd116f598
+SIZE (ultravideo-kvazaar-v0.8.3-275-gcbfa824_GH0.tar.gz) = 471195
+SHA256 (ultravideo-greatest-v0.9.2-78-g60e25ce_GH0.tar.gz) = d980debb49563021536ac51d956348c473f0622c2247717de5b325c9338a1cc2
+SIZE (ultravideo-greatest-v0.9.2-78-g60e25ce_GH0.tar.gz) = 11983
diff --git a/multimedia/kvazaar-devel/files/patch-src_strategies_x86__asm_picture-x86-asm.c b/multimedia/kvazaar-devel/files/patch-src_strategies_x86__asm_picture-x86-asm.c
new file mode 100644
index 000000000000..98d598e98c05
--- /dev/null
+++ b/multimedia/kvazaar-devel/files/patch-src_strategies_x86__asm_picture-x86-asm.c
@@ -0,0 +1,22 @@
+./.libs/libkvazaar.so: undefined reference to `kvz_reg_sad_sse41'
+
+--- src/strategies/x86_asm/picture-x86-asm.c.orig 2016-09-27 17:49:45 UTC
++++ src/strategies/x86_asm/picture-x86-asm.c
+@@ -81,13 +81,17 @@ static unsigned reg_sad_x86_asm(const kv
+ }
+ }
+
++#if COMPILE_INTEL_SSE41
+ if (width * height >= 16) {
+ // Call the vectorized general SAD SSE41 function when the block
+ // is big enough to make it worth it.
+ return kvz_reg_sad_sse41(data1, data2, width, height, stride1, stride2);
+ } else {
++#endif
+ return kvz_sad_other_avx(data1, data2, width, height, stride1);
++#if COMPILE_INTEL_SSE41
+ }
++#endif
+ }
+
+ #endif //defined(KVZ_COMPILE_ASM)
diff --git a/multimedia/kvazaar-devel/pkg-plist b/multimedia/kvazaar-devel/pkg-plist
new file mode 100644
index 000000000000..d32a3d102093
--- /dev/null
+++ b/multimedia/kvazaar-devel/pkg-plist
@@ -0,0 +1,11 @@
+bin/kvazaar
+include/kvazaar.h
+lib/libkvazaar.a
+lib/libkvazaar.so
+lib/libkvazaar.so.3
+lib/libkvazaar.so.3.12.0
+libdata/pkgconfig/kvazaar.pc
+man/man1/kvazaar.1.gz
+%%PORTDOCS%%%%DOCSDIR%%/COPYING
+%%PORTDOCS%%%%DOCSDIR%%/CREDITS
+%%PORTDOCS%%%%DOCSDIR%%/README.md
diff --git a/multimedia/kvazaar/Makefile b/multimedia/kvazaar/Makefile
new file mode 100644
index 000000000000..87a6e17a70a2
--- /dev/null
+++ b/multimedia/kvazaar/Makefile
@@ -0,0 +1,60 @@
+# $FreeBSD$
+
+PORTNAME= kvazaar
+DISTVERSIONPREFIX= v
+DISTVERSION?= 0.8.3
+PORTREVISION?= 0
+CATEGORIES= multimedia
+
+MAINTAINER= jbeich@FreeBSD.org
+COMMENT= H.265/HEVC encoder implementation written in C
+
+LICENSE= LGPL21+
+
+USE_GITHUB= yes
+GH_ACCOUNT= ultravideo
+GH_PROJECT= greatest:greatest
+GH_TAGNAME= v0.9.2-78-g60e25ce:greatest # 1.0.0 release actually
+GH_SUBDIR= greatest:greatest
+
+CONFLICTS_INSTALL?= ${PORTNAME}-devel
+
+USES+= autoreconf compiler:c11 libtool pathfix
+PATHFIX_MAKEFILEIN= Makefile.am
+GNU_CONFIGURE= yes
+TEST_TARGET= check
+INSTALL_TARGET= install-strip
+USE_LDCONFIG= yes
+
+OPTIONS_DEFINE= ASM CRYPTOPP
+OPTIONS_DEFAULT=ASM
+OPTIONS_EXCLUDE?=CRYPTOPP
+
+ASM_BUILD_DEPENDS= ${ASM_BUILD_DEPENDS_${ARCH}}
+ASM_BUILD_DEPENDS_amd64=yasm:devel/yasm
+ASM_BUILD_DEPENDS_i386= yasm:devel/yasm
+ASM_CONFIGURE_ENABLE= asm
+
+CRYPTOPP_DESC= Selective encryption via Crypto++ library
+CRYPTOPP_LIB_DEPENDS= libcryptopp.so:security/cryptopp
+CRYPTOPP_USES= localbase pkgconfig
+CRYPTOPP_CONFIGURE_ENV= cryptopp_CFLAGS=" " cryptopp_LIBS="-lcryptopp"
+CRYPTOPP_CONFIGURE_WITH=cryptopp
+
+post-patch:
+ @${REINPLACE_CMD} 's/x86_64/&|amd64/' ${WRKSRC}/configure.ac
+
+post-patch-CRYPTOPP-on:
+# XXX Force C++ linking to avoid error with Clang
+ @${ECHO_CMD} nodist_EXTRA_kvazaar_tests_SOURCES \
+ = dummy.cpp >>${WRKSRC}/tests/Makefile.am
+
+post-patch-CRYPTOPP-off:
+# XXX autoconf cannot ignore unexpanded but unused m4 macros
+ @${REINPLACE_CMD} -i .cryptopp.bak \
+ -e '/PKG_CHECK_MODULES/,/^[[:space:]]*)/d' \
+ ${WRKSRC}/configure.ac
+
+pre-install: do-test
+
+.include <bsd.port.mk>
diff --git a/multimedia/kvazaar/distinfo b/multimedia/kvazaar/distinfo
new file mode 100644
index 000000000000..4f8041ebeba0
--- /dev/null
+++ b/multimedia/kvazaar/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1474878896
+SHA256 (ultravideo-kvazaar-v0.8.3_GH0.tar.gz) = a5cebc313bc2edcf631684e67c33227e56d803bfbc940cf8c2f3906b4f543a12
+SIZE (ultravideo-kvazaar-v0.8.3_GH0.tar.gz) = 429852
+SHA256 (ultravideo-greatest-v0.9.2-78-g60e25ce_GH0.tar.gz) = d980debb49563021536ac51d956348c473f0622c2247717de5b325c9338a1cc2
+SIZE (ultravideo-greatest-v0.9.2-78-g60e25ce_GH0.tar.gz) = 11983
diff --git a/multimedia/kvazaar/pkg-descr b/multimedia/kvazaar/pkg-descr
new file mode 100644
index 000000000000..eee547e64e87
--- /dev/null
+++ b/multimedia/kvazaar/pkg-descr
@@ -0,0 +1,21 @@
+The purpose of this academic open-source project is to develop a video
+encoder for the emerging High Efficiency Video Coding (HEVC) standard.
+This Kvazaar HEVC encoder is being developed towards the following goals:
+
+1. Coding efficiency close to HEVC reference encoder (HM)
+2. Modular encoder structure to simplify its data flow modeling
+3. Efficient support for different parallelization approaches
+4. Easy portability to different platforms
+5. Optimized encoding speed without sacrificing its coding efficiency,
+ modularity, or portability
+6. Reduced computation and memory resources without sacrificing its
+ coding efficiency, modularity, or portability
+7. Excellent software readability and implementation documentation
+
+Achieving these objectives requires encoder with design decisions that
+make this open-source encoder unique:
+
+1. The encoder is developed from the scratch (HM used as a reference)
+2. The implementation language is platform-independent C
+
+WWW: http://ultravideo.cs.tut.fi/#encoder
diff --git a/multimedia/kvazaar/pkg-plist b/multimedia/kvazaar/pkg-plist
new file mode 100644
index 000000000000..2aba99ef6d1a
--- /dev/null
+++ b/multimedia/kvazaar/pkg-plist
@@ -0,0 +1,10 @@
+bin/kvazaar
+include/kvazaar.h
+lib/libkvazaar.a
+lib/libkvazaar.so
+lib/libkvazaar.so.3
+lib/libkvazaar.so.3.2.0
+libdata/pkgconfig/kvazaar.pc
+%%PORTDOCS%%%%DOCSDIR%%/COPYING
+%%PORTDOCS%%%%DOCSDIR%%/CREDITS
+%%PORTDOCS%%%%DOCSDIR%%/README.md