Accepting request 847494 from home:gladiac:branches:multimedia:libs

- Update to version 0.8.5
  * https://github.com/AOMediaCodec/SVT-AV1/blob/v0.8.5/CHANGELOG.md
- Added 1568-backport.patch
- Added manpages

OBS-URL: https://build.opensuse.org/request/show/847494
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/SVT-AV1?expand=0&rev=21
This commit is contained in:
Takashi Iwai 2020-11-11 13:29:30 +00:00 committed by Git OBS Bridge
parent e7fafd748d
commit 9dd3c49a00
7 changed files with 272 additions and 111 deletions

190
1568-backport.patch Normal file
View File

@ -0,0 +1,190 @@
From 2e581b16cecd767d5596052b10c70acc681a8b45 Mon Sep 17 00:00:00 2001
From: Andreas Schneider <asn@cryptomilk.org>
Date: Tue, 10 Nov 2020 10:34:30 +0100
Subject: [PATCH 1/3] cmake: Use CheckCSourceCompiles
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
---
CMakeLists.txt | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
Index: SVT-AV1-0.8.5/CMakeLists.txt
===================================================================
--- SVT-AV1-0.8.5.orig/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
+++ SVT-AV1-0.8.5/CMakeLists.txt 2020-11-10 11:29:38.547034342 +0100
@@ -29,19 +29,17 @@ if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
message(WARNING "32-bit is not supported")
endif()
-file(WRITE ${CMAKE_BINARY_DIR}/conftest.c "
+include(CheckCSourceCompiles)
+
+check_c_source_compiles("
#if defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__x86_64__)
#else
#error \"Non-x86\"
#endif
-int main() {}
-")
-
-try_compile(X86 ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/conftest.c)
-
-message(STATUS "x86 detected: ${X86}")
+int main(void) {}
+" HAVE_X86_PLATFORM)
-if(X86)
+if(HAVE_X86_PLATFORM)
find_program(YASM_EXE yasm)
option(ENABLE_NASM "Use nasm if available (Uses yasm by default if found)" OFF)
if(YASM_EXE AND NOT CMAKE_ASM_NASM_COMPILER MATCHES "yasm" AND NOT ENABLE_NASM)
@@ -110,12 +108,13 @@ if(UNIX)
endif()
endif()
+# Always build with -fPIC/-fPIE
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
set(flags_to_test
-Wextra
-Wformat
- -Wformat-security
- -fPIE
- -fPIC)
+ -Wformat-security)
if(MSVC)
list(INSERT flags_to_test 0 /W3)
list(APPEND flags_to_test /MP)
@@ -230,6 +229,10 @@ macro(ASM_COMPILE_TO_TARGET target)
endif()
endmacro()
+# Find out if we have threading available
+set(CMAKE_THREAD_PREFER_PTHREADS ON)
+find_package(Threads)
+
# Add Subdirectories
add_subdirectory(Source/Lib/Common)
if(BUILD_ENC)
Index: SVT-AV1-0.8.5/Source/Lib/Decoder/CMakeLists.txt
===================================================================
--- SVT-AV1-0.8.5.orig/Source/Lib/Decoder/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
+++ SVT-AV1-0.8.5/Source/Lib/Decoder/CMakeLists.txt 2020-11-10 11:09:55.382045862 +0100
@@ -18,10 +18,11 @@ set(DEC_VERSION ${DEC_VERSION_MAJOR}.${D
if(UNIX)
if(NOT APPLE)
- find_library(M_LIB name m)
+ find_library(M_LIB NAMES m)
if(M_LIB)
list(APPEND PLATFORM_LIBS m)
endif()
+ list(APPEND PLATFORM_LIBS ${CMAKE_THREAD_LIBS_INIT})
endif()
set(LIBS_PRIVATE "-lpthread -lm")
endif()
@@ -45,7 +46,7 @@ link_directories(${PROJECT_SOURCE_DIR}/S
${PROJECT_SOURCE_DIR}/Source/Lib/Decoder/Codec/
${PROJECT_SOURCE_DIR}/third_party/fastfeat/)
-if(X86)
+if(HAVE_X86_PLATFORM)
# Include Decoder Subdirectories
include_directories(${PROJECT_SOURCE_DIR}/Source/Lib/Common/ASM_SSE2/
${PROJECT_SOURCE_DIR}/Source/Lib/Common/ASM_SSSE3/
@@ -75,7 +76,7 @@ if(common_lib_source)
endif()
# Decoder Lib Source Files
-if(X86)
+if(HAVE_X86_PLATFORM)
add_library(SvtAv1Dec
${all_files}
$<TARGET_OBJECTS:COMMON_CODEC>
Index: SVT-AV1-0.8.5/Source/Lib/Encoder/CMakeLists.txt
===================================================================
--- SVT-AV1-0.8.5.orig/Source/Lib/Encoder/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
+++ SVT-AV1-0.8.5/Source/Lib/Encoder/CMakeLists.txt 2020-11-10 11:09:55.382045862 +0100
@@ -19,10 +19,11 @@ set(ENC_VERSION ${ENC_VERSION_MAJOR}.${E
if(UNIX)
if(NOT APPLE)
- find_library(M_LIB name m)
+ find_library(M_LIB NAMES m)
if(M_LIB)
list(APPEND PLATFORM_LIBS m)
endif()
+ list(APPEND PLATFORM_LIBS ${CMAKE_THREAD_LIBS_INIT})
endif()
set(LIBS_PRIVATE "-lpthread -lm")
endif()
@@ -49,7 +50,7 @@ link_directories(${PROJECT_SOURCE_DIR}/S
add_subdirectory(C_DEFAULT)
add_subdirectory(Codec)
add_subdirectory(Globals)
-if(X86)
+if(HAVE_X86_PLATFORM)
# Include Encoder Subdirectories
include_directories(${PROJECT_SOURCE_DIR}/Source/Lib/Common/ASM_SSE2/
${PROJECT_SOURCE_DIR}/Source/Lib/Common/ASM_SSSE3/
@@ -96,7 +97,7 @@ if(common_lib_source)
endif()
# Encoder Lib Source Files
-if(X86)
+if(HAVE_X86_PLATFORM)
add_library(SvtAv1Enc
${all_files}
$<TARGET_OBJECTS:COMMON_CODEC>
Index: SVT-AV1-0.8.5/Source/Lib/Common/CMakeLists.txt
===================================================================
--- SVT-AV1-0.8.5.orig/Source/Lib/Common/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
+++ SVT-AV1-0.8.5/Source/Lib/Common/CMakeLists.txt 2020-11-10 11:09:55.382045862 +0100
@@ -30,7 +30,7 @@ add_library(common_lib INTERFACE)
add_subdirectory(Codec)
add_subdirectory(C_DEFAULT)
-if(X86)
+if(HAVE_X86_PLATFORM)
add_subdirectory(ASM_SSE2)
add_subdirectory(ASM_SSSE3)
add_subdirectory(ASM_SSE4_1)
Index: SVT-AV1-0.8.5/Source/Lib/Common/Codec/CMakeLists.txt
===================================================================
--- SVT-AV1-0.8.5.orig/Source/Lib/Common/Codec/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
+++ SVT-AV1-0.8.5/Source/Lib/Common/Codec/CMakeLists.txt 2020-11-10 11:09:55.382045862 +0100
@@ -21,7 +21,7 @@ add_custom_target(EbVersionHeaderGen
COMMENT "Generating version header"
VERBATIM)
-if(X86)
+if(HAVE_X86_PLATFORM)
# Include Encoder Subdirectories
include_directories(${PROJECT_SOURCE_DIR}/Source/API/
${PROJECT_SOURCE_DIR}/Source/Lib/Common/Codec/
Index: SVT-AV1-0.8.5/Source/Lib/Encoder/Codec/CMakeLists.txt
===================================================================
--- SVT-AV1-0.8.5.orig/Source/Lib/Encoder/Codec/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
+++ SVT-AV1-0.8.5/Source/Lib/Encoder/Codec/CMakeLists.txt 2020-11-10 11:09:55.382045862 +0100
@@ -19,7 +19,7 @@ include_directories(../../../API
${PROJECT_SOURCE_DIR}/Source/Lib/Encoder/Globals/
)
-if(X86)
+if(HAVE_X86_PLATFORM)
# Include Encoder Subdirectories
include_directories(
${PROJECT_SOURCE_DIR}/Source/Lib/Encoder/ASM_SSE2/
Index: SVT-AV1-0.8.5/Source/Lib/Encoder/Globals/CMakeLists.txt
===================================================================
--- SVT-AV1-0.8.5.orig/Source/Lib/Encoder/Globals/CMakeLists.txt 2020-09-07 09:09:35.000000000 +0200
+++ SVT-AV1-0.8.5/Source/Lib/Encoder/Globals/CMakeLists.txt 2020-11-10 11:10:05.322095098 +0100
@@ -19,7 +19,7 @@ include_directories(../../../API
${PROJECT_SOURCE_DIR}/third_party/fastfeat/
)
-if(X86)
+if(HAVE_X86_PLATFORM)
# Include Encoder Subdirectories
include_directories(
${PROJECT_SOURCE_DIR}/Source/Lib/Common/ASM_SSE2/

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5a0aaea7e7f899ba89ee82c724459bb2d2098b921c43a4a9f5717b60b77f0145
size 1450132

3
SVT-AV1-0.8.5.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8ce94359ea9450745c17c12d4cc054d45f6b2498e63e2ebaa5a5273bb36f6f95
size 6319601

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Tue Nov 10 11:04:19 UTC 2020 - Andreas Schneider <asn@cryptomilk.org>
- Update to version 0.8.5
* https://github.com/AOMediaCodec/SVT-AV1/blob/v0.8.5/CHANGELOG.md
- Added 1568-backport.patch
- Added manpages
------------------------------------------------------------------- -------------------------------------------------------------------
Wed May 1 09:09:48 UTC 2019 - Jan Engelhardt <jengelh@inai.de> Wed May 1 09:09:48 UTC 2019 - Jan Engelhardt <jengelh@inai.de>

View File

@ -16,45 +16,66 @@
# #
%define sover suse1 %define sover 0
Name: SVT-AV1 Name: SVT-AV1
Version: 0.0~pre.1556042178.b4ca700 Version: 0.8.5
Release: 0 Release: 0
Summary: The "Scalable Video Technology for AV1" Encoder Summary: An AV1 decoder/encoder for video streams
License: BSD-2-Clause-Patent License: BSD-2-Clause-Patent
Group: Productivity/Multimedia/Other Group: Productivity/Multimedia/Other
URL: https://github.com/OpenVisualCloud/SVT-AV1 URL: https://github.com/AOMediaCodec/SVT-AV1
Source0: %name-%version.tar.xz Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
Source9: %name-rpmlintrc Source9: %{name}-rpmlintrc
Patch1: fix-build.patch #
# https://github.com/AOMediaCodec/SVT-AV1/pull/1568
Patch0: 1568-backport.patch
#
BuildRequires: cmake BuildRequires: cmake
BuildRequires: help2man
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: pkg-config BuildRequires: pkg-config
BuildRequires: yasm BuildRequires: yasm
ExclusiveArch: x86_64 ExclusiveArch: x86_64
%description %description
An AV1 encoder for video streams from Intel. The Scalable Video Technology for AV1 (SVT-AV1 Encoder and Decoder) is an
AV1-compliant encoder/decoder library core. The SVT-AV1 encoder development is
a work-in-progress targeting performance levels applicable to both VOD and Live
encoding / transcoding video applications. The SVT-AV1 decoder implementation
is targeting future codec research activities.
%package -n libSvtAv1Dec-%sover %package -n libSvtAv1Dec%{sover}
Summary: The "Scalable Video Technology for AV1" Decoder Summary: An AV1 decoder/encoder for video streams
Group: System/Libraries Group: System/Libraries
Obsoletes: libSvtAv1Dec-suse1 < %{version}
Provides: libSvtAv1Dec-suse1 = %{version}
%description -n libSvtAv1Dec-%sover %description -n libSvtAv1Dec%{sover}
An AV1 decoder for video streams from Intel. The Scalable Video Technology for AV1 (SVT-AV1 Encoder and Decoder) is an
AV1-compliant encoder/decoder library core. The SVT-AV1 encoder development is
a work-in-progress targeting performance levels applicable to both VOD and Live
encoding / transcoding video applications. The SVT-AV1 decoder implementation
is targeting future codec research activities.
%package -n libSvtAv1Enc-%sover %package -n libSvtAv1Enc%{sover}
Summary: The "Scalable Video Technology for AV1" Encoder Summary: An AV1 decoder/encoder for video streams
Group: System/Libraries Group: System/Libraries
Obsoletes: libSvtAv1Enc-suse1 < %{version}
Provides: libSvtAv1Enc-suse1 = %{version}
%description -n libSvtAv1Enc-%sover %description -n libSvtAv1Enc%{sover}
An AV1 encoder for video streams from Intel. The Scalable Video Technology for AV1 (SVT-AV1 Encoder and Decoder) is an
AV1-compliant encoder/decoder library core. The SVT-AV1 encoder development is
a work-in-progress targeting performance levels applicable to both VOD and Live
encoding / transcoding video applications. The SVT-AV1 decoder implementation
is targeting future codec research activities.
%package devel %package devel
Summary: Development files for %name Summary: Development files for %{name}
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: libSvtAv1Dec-%sover = %version Requires: libSvtAv1Dec%{sover} = %{version}
Requires: libSvtAv1Enc-%sover = %version Requires: libSvtAv1Enc%{sover} = %{version}
%description devel %description devel
An AV1 encoder for video streams from Intel. An AV1 encoder for video streams from Intel.
@ -62,47 +83,52 @@ An AV1 encoder for video streams from Intel.
This package contains the header files for svt-av1. This package contains the header files for svt-av1.
%prep %prep
%setup -q %autosetup -p1
%patch1 -p1
%if 00%{?suse_version} < 1500
sed -i -e 's, -fstack-protector-strong , ,' CMakeLists.txt
%endif
%build %build
# Shitty CMakeLists.txt requires this to be OFF, else it runs into %cmake
# undefined reference: coeff_tbl
# ...and yet it still produces shared libs. 'S all good man? %cmake_build
%cmake -DBUILD_SHARED_LIBS:BOOL=OFF
make %{?_smp_mflags}
%install %install
%cmake_install %cmake_install
# drop internal test lib
rm %buildroot%_libdir/libgtest_all.so
%post -n libSvtAv1Dec-%sover -p /sbin/ldconfig # Generate manpages
%postun -n libSvtAv1Dec-%sover -p /sbin/ldconfig install -d -m0755 %{buildroot}/%{_mandir}/man1
%post -n libSvtAv1Enc-%sover -p /sbin/ldconfig LD_LIBRARY_PATH="%{buildroot}%{_libdir}" \
%postun -n libSvtAv1Enc-%sover -p /sbin/ldconfig help2man -N --help-option=-help --version-string=%{version} %{buildroot}%{_bindir}/SvtAv1DecApp > %{buildroot}%{_mandir}/man1/SvtAv1DecApp.1
%files -n libSvtAv1Dec-%sover LD_LIBRARY_PATH="%{buildroot}%{_libdir}" \
help2man -N --help-option=-help --version-string=%{version} --no-discard-stderr %{buildroot}%{_bindir}/SvtAv1EncApp > %{buildroot}%{_mandir}/man1/SvtAv1EncApp.1
%post -n libSvtAv1Dec%{sover} -p /sbin/ldconfig
%postun -n libSvtAv1Dec%{sover} -p /sbin/ldconfig
%post -n libSvtAv1Enc%{sover} -p /sbin/ldconfig
%postun -n libSvtAv1Enc%{sover} -p /sbin/ldconfig
%files -n libSvtAv1Dec%{sover}
%license LICENSE.md %license LICENSE.md
%_libdir/libSvtAv1Dec.so.%{sover}* %{_libdir}/libSvtAv1Dec.so.%{sover}*
%files -n libSvtAv1Enc-%sover %files -n libSvtAv1Enc%{sover}
%license LICENSE.md %license LICENSE.md
%_libdir/libSvtAv1Enc.so.%{sover}* %{_libdir}/libSvtAv1Enc.so.%{sover}*
%files %files
%doc README.md NOTICES.md %doc README.md
%doc Docs %doc Docs
%_bindir/* %{_bindir}/SvtAv1DecApp
%{_bindir}/SvtAv1EncApp
%{_mandir}/man1/SvtAv1DecApp.1*
%{_mandir}/man1/SvtAv1EncApp.1*
%files devel %files devel
%_libdir/libSvtAv1Dec.so %{_libdir}/libSvtAv1Dec.so
%_libdir/libSvtAv1Enc.so %{_libdir}/libSvtAv1Enc.so
%_libdir/pkgconfig %{_libdir}/pkgconfig/SvtAv1Dec.pc
%_includedir/* %{_libdir}/pkgconfig/SvtAv1Enc.pc
%{_includedir}/svt-av1/
%changelog %changelog

View File

@ -1,13 +0,0 @@
<services>
<service mode="disabled" name="tar_scm">
<param name="url">https://github.com/OpenVisualCloud/SVT-AV1.git</param>
<param name="scm">git</param>
<param name="revision">b4ca700</param>
<param name="versionprefix">0.0~pre</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
<service name="set_version" mode="disabled"/>
</services>

View File

@ -1,50 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1855a5b..505060d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,8 +8,8 @@ set(project_name "svt-av1")
project(${project_name} C CXX ASM_NASM)
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/lib)
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/lib${LIB_SUFFIX})
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/lib${LIB_SUFFIX})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/bin)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
diff --git a/Source/Lib/Decoder/Codec/CMakeLists.txt b/Source/Lib/Decoder/Codec/CMakeLists.txt
index 70ddbd0..88b4a5c 100644
--- a/Source/Lib/Decoder/Codec/CMakeLists.txt
+++ b/Source/Lib/Decoder/Codec/CMakeLists.txt
@@ -38,6 +38,8 @@ file(GLOB all_files
add_library(SvtAv1Dec SHARED
${all_files}
)
+
+SET_TARGET_PROPERTIES(SvtAv1Dec PROPERTIES SOVERSION suse1)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
target_link_libraries(SvtAv1Dec
@@ -69,4 +71,4 @@ endif()
configure_file(../pkg-config.pc.in ${CMAKE_BINARY_DIR}/SvtAv1Dec.pc @ONLY)
install(FILES ${CMAKE_BINARY_DIR}/SvtAv1Dec.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
install(TARGETS SvtAv1Dec DESTINATION "${CMAKE_INSTALL_LIBDIR}")
-install(DIRECTORY ../../../API/ DESTINATION "${CMAKE_INSTALL_PREFIX}/include/svt-av1" FILES_MATCHING PATTERN "*.h")
\ No newline at end of file
+install(DIRECTORY ../../../API/ DESTINATION "${CMAKE_INSTALL_PREFIX}/include/svt-av1" FILES_MATCHING PATTERN "*.h")
diff --git a/Source/Lib/Encoder/Codec/CMakeLists.txt b/Source/Lib/Encoder/Codec/CMakeLists.txt
index 018f1f6..e51e11c 100644
--- a/Source/Lib/Encoder/Codec/CMakeLists.txt
+++ b/Source/Lib/Encoder/Codec/CMakeLists.txt
@@ -38,7 +38,9 @@ file(GLOB all_files
add_library(SvtAv1Enc SHARED
${all_files}
)
-
+
+SET_TARGET_PROPERTIES(SvtAv1Enc PROPERTIES SOVERSION suse1)
+
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
target_link_libraries(SvtAv1Enc
COMMON_CODEC