multimedia/libgav1: add new port

libgav1 is a Main profile (0) & High profile (1) compliant AV1 decoder.

https://chromium.googlesource.com/codecs/libgav1
This commit is contained in:
Jan Beich 2020-08-29 00:38:42 +00:00
parent e1a35ea775
commit ef8a4135b0
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=546859
8 changed files with 78 additions and 1 deletions

View File

@ -23,7 +23,7 @@ USE_LDCONFIG= yes
GH_ACCOUNT= AOMediaCodec
CMAKE_ON= AVIF_BUILD_APPS
OPTIONS_DEFINE= AOM DAV1D PIXBUF RAV1E
OPTIONS_DEFINE= AOM DAV1D GAV1 PIXBUF RAV1E
OPTIONS_DEFAULT=AOM DAV1D PIXBUF
OPTIONS_SUB= yes
@ -35,6 +35,10 @@ DAV1D_DESC= AV1 decoding via libdav1d
DAV1D_LIB_DEPENDS= libdav1d.so:multimedia/dav1d
DAV1D_CMAKE_BOOL= AVIF_CODEC_DAV1D
GAV1_DESC= AV1 decoding via libgav1
GAV1_LIB_DEPENDS= libgav1.so:multimedia/libgav1
GAV1_CMAKE_BOOL= AVIF_CODEC_LIBGAV1
PIXBUF_USES= gnome
PIXBUF_USE= GNOME=gdkpixbuf2
PIXBUF_CMAKE_BOOL= AVIF_BUILD_GDK_PIXBUF

View File

@ -196,6 +196,7 @@
SUBDIR += libdvdnav
SUBDIR += libdvdread
SUBDIR += libfame
SUBDIR += libgav1
SUBDIR += libhdhomerun
SUBDIR += libkate
SUBDIR += libmatroska

View File

@ -0,0 +1,22 @@
# $FreeBSD$
PORTNAME= libgav1
DISTVERSIONPREFIX= v
DISTVERSION= 0.16.0
CATEGORIES= multimedia
MAINTAINER= jbeich@FreeBSD.org
COMMENT= Main profile (0) & High profile (1) compliant AV1 decoder
LICENSE= APACHE20
LIB_DEPENDS= libabsl_synchronization.so:devel/abseil
USES= cmake compiler:c++11-lib localbase:ldflags
USE_GITHUB= yes
USE_LDCONFIG= yes
GH_ACCOUNT= jbeich # mirror
CMAKE_ON= BUILD_SHARED_LIBS
LDFLAGS+= -Wl,--as-needed # avoid overlinking (abseil deps)
.include <bsd.port.mk>

View File

@ -0,0 +1,5 @@
TIMESTAMP = 1594780074
SHA256 (jbeich-libgav1-v0.16.0_GH0.tar.gz) = d9563c70f42466ba4a01a230a8dbbddf8f3a470a695c28a51c23dc246f04e51e
SIZE (jbeich-libgav1-v0.16.0_GH0.tar.gz) = 713762
SHA256 (abseil-abseil-cpp-4d2ff38_GH0.tar.gz) = 7cc94eb45aed91e996fa3eb75fc1810905ee9bbe0aa71cc1751c80d06d4b28c9
SIZE (abseil-abseil-cpp-4d2ff38_GH0.tar.gz) = 1761325

View File

@ -0,0 +1,16 @@
- Avoid leaking abseil dependency to shared library consumers
--- CMakeLists.txt.orig 2020-07-15 02:27:54 UTC
+++ CMakeLists.txt
@@ -107,8 +107,11 @@ if(NOT "${LIBGAV1_EXE_LINKER_FLAGS}" STREQUAL "")
separate_arguments(LIBGAV1_EXE_LINKER_FLAGS)
endif()
+find_package(absl)
+if (NOT TARGET absl::base)
add_subdirectory("${libgav1_root}/third_party/abseil-cpp"
"${libgav1_abseil_build}" EXCLUDE_FROM_ALL)
+endif()
libgav1_reset_target_lists()
libgav1_add_dsp_targets()

View File

@ -0,0 +1,13 @@
- Don't enable NEON on armv6 as it requires runtime detection
--- cmake/libgav1_cpu_detection.cmake.orig 2020-07-15 02:27:54 UTC
+++ cmake/libgav1_cpu_detection.cmake
@@ -21,7 +21,7 @@ set(LIBGAV1_CMAKE_LIBGAV1_CPU_DETECTION_CMAKE_ 1)
macro(libgav1_optimization_detect)
if(LIBGAV1_ENABLE_OPTIMIZATIONS)
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" cpu_lowercase)
- if(cpu_lowercase MATCHES "^arm|^aarch64")
+ if(cpu_lowercase MATCHES "^arm|^aarch64" AND NOT cpu_lowercase MATCHES "^armv6")
set(libgav1_have_neon ON)
elseif(cpu_lowercase MATCHES "^x86|amd64")
set(libgav1_have_sse4 ON)

View File

@ -0,0 +1,3 @@
libgav1 is a Main profile (0) & High profile (1) compliant AV1 decoder.
WWW: https://chromium.googlesource.com/codecs/libgav1

View File

@ -0,0 +1,13 @@
bin/gav1_decode
include/gav1/decoder.h
include/gav1/decoder_buffer.h
include/gav1/decoder_settings.h
include/gav1/frame_buffer.h
include/gav1/status_code.h
include/gav1/symbol_visibility.h
include/gav1/version.h
lib/libgav1.a
lib/libgav1.so
lib/libgav1.so.0
libdata/pkgconfig/libgav1.pc
share/cmake/libgav1-config.cmake