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
This commit is contained in:
Jan Beich 2016-09-28 02:13:33 +00:00
parent c86e355bb2
commit 174ead1633
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=422840
9 changed files with 153 additions and 0 deletions

View file

@ -168,6 +168,8 @@
SUBDIR += kmplayer-kde4
SUBDIR += kodi
SUBDIR += kplayer-kde4
SUBDIR += kvazaar
SUBDIR += kvazaar-devel
SUBDIR += l-smash
SUBDIR += libaacs
SUBDIR += libass

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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