[packages/davs2] - new

qboosh qboosh at pld-linux.org
Sun Jul 28 22:08:03 CEST 2019


commit 4876ed5cfa5cc172a49db87a198722a47878a19e
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Jul 28 22:09:53 2019 +0200

    - new

 davs2-extern.patch   | 125 +++++++++++++++++++++++++++++++++++
 davs2-gcc8-fix.patch | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++
 davs2.spec           | 115 ++++++++++++++++++++++++++++++++
 3 files changed, 420 insertions(+)
---
diff --git a/davs2.spec b/davs2.spec
new file mode 100644
index 0000000..3076c4a
--- /dev/null
+++ b/davs2.spec
@@ -0,0 +1,115 @@
+#
+# Conditional build:
+%bcond_without	static_libs	# don't build static libraries
+%bcond_without	opencl		# OpenCL features
+#
+Summary:	Open-source decoder of AVS2-P2/IEEE1857.4 video coding standard
+Summary(pl.UTF-8):	Dekoder standardu kodowania obrazu AVS2-P2/IEEE1857.4 o otwartych źródłach
+Name:		davs2
+Version:	1.6
+Release:	1
+License:	GPL v2+
+Group:		Libraries
+#Source0Download: https://github.com/pkuvcl/davs2/releases
+Source0:	https://github.com/pkuvcl/davs2/archive/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5:	c8861c1220c05a172b9ce472cbf929af
+Patch0:		%{name}-extern.patch
+Patch1:		%{name}-gcc8-fix.patch
+URL:		https://github.com/pkuvcl/davs2
+%{?with_opencl:BuildRequires:	OpenCL-devel}
+BuildRequires:	libstdc++-devel >= 6:4.7
+BuildRequires:	pkgconfig
+BuildRequires:	rpmbuild(macros) >= 1.674
+BuildRequires:	sed >= 4.0
+BuildRequires:	yasm >= 1.2.0
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+Open-source decoder of AVS2-P2/IEEE1857.4 video coding standard.
+
+%description -l pl.UTF-8
+Dekoder standardu kodowania obrazu AVS2-P2/IEEE1857.4 o otwartych
+źródłach.
+
+%package devel
+Summary:	Header files for davs2 library
+Summary(pl.UTF-8):	Pliki nagłówkowe biblioteki davs2
+Group:		Development/Libraries
+Requires:	%{name} = %{version}-%{release}
+
+%description devel
+Header files for davs2 library.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki davs2.
+
+%package static
+Summary:	Static davs2 library
+Summary(pl.UTF-8):	Statyczna biblioteka davs2
+Group:		Development/Libraries
+Requires:	%{name}-devel = %{version}-%{release}
+
+%description static
+Static davs2 library.
+
+%description static -l pl.UTF-8
+Statyczna biblioteka davs2.
+
+%prep
+%setup -q
+%patch0 -p1
+
+%undos source/common/vec/intrinsic_{deblock_avx2,idct_avx2,inter_pred,inter_pred_avx2,intra-pred_avx2,pixel_avx,sao_avx2}.cc
+%patch1 -p1
+
+%build
+cd build/linux
+# not autoconf configure
+CC="%{__cc}" \
+CXX="%{__cxx}" \
+CFLAGS="%{rpmcflags}" \
+CXXFLAGS="%{rpmcxxflags}" \
+CPPFLAGS="%{rpmcppflags}" \
+LDFLAGS="%{rpmldflags} -Wl,-z,noexecstack" \
+./configure \
+	--prefix=%{_prefix} \
+	--bindir=%{_bindir} \
+	--includedir=%{_includedir} \
+	--libdir=%{_libdir} \
+	%{!?with_opencl:--disable-opencl} \
+	--enable-pic \
+	--enable-shared \
+	%{!?with_static_libs:--disable-static}
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} -C build/linux install \
+	DESTDIR=$RPM_BUILD_ROOT
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post	-p /sbin/ldconfig
+%postun	-p /sbin/ldconfig
+
+%files
+%defattr(644,root,root,755)
+%doc README.md
+%lang(zh) %doc README.zh.md
+%attr(755,root,root) %{_bindir}/davs2
+%attr(755,root,root) %{_libdir}/libdavs2.so.16
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libdavs2.so
+%{_includedir}/davs2.h
+%{_includedir}/davs2_config.h
+%{_pkgconfigdir}/davs2.pc
+
+%if %{with static_libs}
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libdavs2.a
+%endif
diff --git a/davs2-extern.patch b/davs2-extern.patch
new file mode 100644
index 0000000..95ef176
--- /dev/null
+++ b/davs2-extern.patch
@@ -0,0 +1,125 @@
+--- davs2-1.6/source/common/cpu.cc.orig	2018-11-15 09:15:32.000000000 +0100
++++ davs2-1.6/source/common/cpu.cc	2019-07-28 18:27:20.653314967 +0200
+@@ -166,6 +166,9 @@
+ 
+ #if !ARCH_X86_64
+ /*  */
++#ifdef __cplusplus
++extern "C"
++#endif
+ int  davs2_cpu_cpuid_test(void);
+ #endif
+ 
+--- davs2-1.6/source/common/intra.cc.orig	2018-11-15 09:15:32.000000000 +0100
++++ davs2-1.6/source/common/intra.cc	2019-07-28 20:01:18.669437878 +0200
+@@ -2631,7 +2631,7 @@
+     ipred[INTRA_ANG_Y_31]  = intra_pred_ang_y_31_c;
+     ipred[INTRA_ANG_Y_32]  = intra_pred_ang_y_32_c;
+ 
+-#if HAVE_MMX
++#if HAVE_MMX && ARCH_X86_64 /* only 64-bit asm for now */
+     if (cpuid & DAVS2_CPU_SSE4) {
+ #if !HIGH_BIT_DEPTH
+         ipred[DC_PRED   ] = intra_pred_dc_sse128;
+--- davs2-1.6/source/common/sao.cc.orig	2018-11-15 09:15:32.000000000 +0100
++++ davs2-1.6/source/common/sao.cc	2019-07-28 20:26:41.584520873 +0200
+@@ -645,7 +645,7 @@
+     fh->sao_filter_eo[SAO_TYPE_EO_135] = sao_block_eo_135_c;
+ 
+     /* init asm function handles */
+-#if HAVE_MMX
++#if HAVE_MMX && ARCH_X86_64 /* only 64-bit asm for now */
+     if (cpuid & DAVS2_CPU_SSE4) {
+         fh->sao_block_bo                   = SAO_on_block_bo_sse128;
+         fh->sao_filter_eo[SAO_TYPE_EO_0]   = SAO_on_block_eo_0_sse128;
+--- davs2-1.6/source/common/mc.cc.orig	2018-11-15 09:15:32.000000000 +0100
++++ davs2-1.6/source/common/mc.cc	2019-07-28 20:27:48.334159259 +0200
+@@ -673,7 +673,7 @@
+     pf->intpl_chroma_ext[1] = intpl_chroma_block_ext_c;
+ 
+     /* init asm function handles */
+-#if HAVE_MMX
++#if HAVE_MMX && ARCH_X86_64 /* only 64-bit asm for now */
+     if (cpuid & DAVS2_CPU_SSE42) {
+ #if HIGH_BIT_DEPTH
+         //10bit assemble
+--- davs2-1.6/source/common/memory.cc.orig	2019-07-28 20:42:21.959426425 +0200
++++ davs2-1.6/source/common/memory.cc	2019-07-28 20:42:36.049350093 +0200
+@@ -70,6 +70,7 @@
+         // pf->memzero_aligned = davs2_memzero_aligned_sse;
+     }
+ 
++#if ARCH_X86_64
+     if (cpuid & DAVS2_CPU_SSE2) {
+         pf->memzero_aligned = davs2_memzero_aligned_c_sse2;
+         // gf_davs2.memcpy_aligned  = davs2_memcpy_aligned_c_sse2;
+@@ -78,5 +79,6 @@
+     if (cpuid & DAVS2_CPU_AVX2) {
+         pf->memzero_aligned = davs2_memzero_aligned_c_avx;
+     }
++#endif // ARCH_X86_64
+ #endif // HAVE_MMX
+ }
+--- davs2-1.6/source/common/transform.cc.orig	2018-11-15 09:15:32.000000000 +0100
++++ davs2-1.6/source/common/transform.cc	2019-07-28 20:32:37.265927315 +0200
+@@ -957,11 +957,14 @@
+ #if HAVE_MMX
+     /* functions defined in file intrinsic_dct.c */
+     if (cpuid & DAVS2_CPU_SSE2) {
++#if ARCH_X86_64
+         fh->inv_transform_4x4_2nd = inv_transform_4x4_2nd_sse128;
+         fh->inv_transform_2nd     = inv_transform_2nd_sse128;
++#endif
+ 
+         for (i = 0; i < DCT_PATTERN_NUM; i++) {
+             fh->idct[PART_4x4  ][i] = idct_4x4_sse128;
++#if ARCH_X86_64
+             fh->idct[PART_8x8  ][i] = idct_8x8_sse128;
+             fh->idct[PART_16x16][i] = idct_16x16_sse128;
+             fh->idct[PART_32x32][i] = idct_32x32_sse128;
+@@ -973,6 +974,7 @@
+             fh->idct[PART_8x32][i] = idct_8x32_sse128;
+             fh->idct[PART_16x4][i] = idct_16x4_sse128;
+             fh->idct[PART_32x8][i] = idct_32x8_sse128;
++#endif
+ 
+ #if !HIGH_BIT_DEPTH
+             fh->idct[PART_4x4 ][i] = FPFX(idct_4x4_sse2);
+@@ -993,6 +995,7 @@
+         }
+     }
+ 
++#if ARCH_X86_64
+     /* TODO: ��ʼ����Ĭ��DCTģ�� */
+     if (cpuid & DAVS2_CPU_SSE2) {
+         /* square */
+@@ -1020,7 +1023,6 @@
+         fh->idct[PART_64x16][DCT_QUAD] = idct_64x16_quad_sse128;
+     }
+ 
+-#if ARCH_X86_64
+     if (cpuid & DAVS2_CPU_AVX2) {
+         fh->idct[PART_8x8  ][DCT_DEAULT]   = idct_8x8_avx2;
+         fh->idct[PART_16x16][DCT_DEAULT] = idct_16x16_avx2;
+--- davs2-1.6/source/common/alf.cc.orig	2018-11-15 09:15:32.000000000 +0100
++++ davs2-1.6/source/common/alf.cc	2019-07-28 20:40:29.020038270 +0200
+@@ -513,7 +513,7 @@
+     fh->alf_block[1] = alf_filter_block2;
+ 
+     /* init asm function handles */
+-#if HAVE_MMX
++#if HAVE_MMX && ARCH_X86_64 /* only 64-bit asm for now */
+ #if HIGH_BIT_DEPTH
+ #else
+     if (cpuid & DAVS2_CPU_SSE4) {
+--- davs2-1.6/source/common/deblock.cc.orig	2018-11-15 09:15:32.000000000 +0100
++++ davs2-1.6/source/common/deblock.cc	2019-07-28 20:41:35.926342474 +0200
+@@ -561,7 +561,7 @@
+     fh->set_deblock_const = NULL;
+ 
+     /* init asm function handles */
+-#if HAVE_MMX
++#if HAVE_MMX && ARCH_X86_64 /* only 64-bit asm for now */
+     if ((cpuid & DAVS2_CPU_SSE4) && !HDR_CHROMA_DELTA_QP) {
+ #if !HIGH_BIT_DEPTH
+         fh->deblock_luma  [0] = deblock_edge_ver_sse128;
diff --git a/davs2-gcc8-fix.patch b/davs2-gcc8-fix.patch
new file mode 100644
index 0000000..592a8cd
--- /dev/null
+++ b/davs2-gcc8-fix.patch
@@ -0,0 +1,180 @@
+From 00ef2c8062a7f7d7265d933676fb5cc60f1ea659 Mon Sep 17 00:00:00 2001
+From: Daniel Bermond <danielbermond at yahoo.com>
+Date: Tue, 20 Nov 2018 16:54:25 +0000
+Subject: [PATCH] Make AVX symbols to be strictly visible (fix build with gcc8)
+
+_mm256_insertf128_si256 and _mm256_castsi128_si256 are undeclared
+in the scope of source/common/vec/intrinsic.h, which seems to be
+strictly not permitted by gcc8.
+
+Fixes #9
+---
+ source/common/vec/intrinsic_deblock_avx2.cc    | 5 ++---
+ source/common/vec/intrinsic_idct_avx2.cc       | 6 +++---
+ source/common/vec/intrinsic_inter_pred.cc      | 6 +++---
+ source/common/vec/intrinsic_inter_pred_avx2.cc | 7 ++++---
+ source/common/vec/intrinsic_intra-pred_avx2.cc | 6 +++---
+ source/common/vec/intrinsic_pixel_avx.cc       | 6 +++---
+ source/common/vec/intrinsic_sao_avx2.cc        | 6 +++---
+ 7 files changed, 21 insertions(+), 21 deletions(-)
+
+diff --git a/source/common/vec/intrinsic_deblock_avx2.cc b/source/common/vec/intrinsic_deblock_avx2.cc
+index b87e472..ca9534e 100644
+--- a/source/common/vec/intrinsic_deblock_avx2.cc
++++ b/source/common/vec/intrinsic_deblock_avx2.cc
+@@ -30,15 +30,14 @@
+  *    For more information, contact us at sswang @ pku.edu.cn.
+  */
+ 
+-#include "../common.h"
+-#include "intrinsic.h"
+-
+ #include <mmintrin.h>
+ #include <emmintrin.h>
+ #include <tmmintrin.h>
+ #include <smmintrin.h>
+ #include <immintrin.h>
+ 
++#include "../common.h"
++#include "intrinsic.h"
+ 
+ #if !HIGH_BIT_DEPTH
+ __m128i c_0_128;
+diff --git a/source/common/vec/intrinsic_idct_avx2.cc b/source/common/vec/intrinsic_idct_avx2.cc
+index 0b40fde..ee5384d 100644
+--- a/source/common/vec/intrinsic_idct_avx2.cc
++++ b/source/common/vec/intrinsic_idct_avx2.cc
+@@ -30,15 +30,15 @@
+  *    For more information, contact us at sswang @ pku.edu.cn.
+  */
+ 
+-#include "../common.h"
+-#include "intrinsic.h"
+-
+ #include <mmintrin.h>
+ #include <emmintrin.h>
+ #include <tmmintrin.h>
+ #include <smmintrin.h>
+ #include <immintrin.h>
+ 
++#include "../common.h"
++#include "intrinsic.h"
++
+ /* disable warnings */
+ #pragma warning(disable:4127)  // warning C4127: ��������ʽ�dz���
+ 
+diff --git a/source/common/vec/intrinsic_inter_pred.cc b/source/common/vec/intrinsic_inter_pred.cc
+index 46c0da8..55ff6a0 100644
+--- a/source/common/vec/intrinsic_inter_pred.cc
++++ b/source/common/vec/intrinsic_inter_pred.cc
+@@ -30,15 +30,15 @@
+  *    For more information, contact us at sswang @ pku.edu.cn.
+  */
+ 
+-#include "../common.h"
+-#include "intrinsic.h"
+-
+ #include <mmintrin.h>
+ #include <emmintrin.h>
+ #include <tmmintrin.h>
+ #include <smmintrin.h>
+ #include <immintrin.h>
+ 
++#include "../common.h"
++#include "intrinsic.h"
++
+ #if !HIGH_BIT_DEPTH
+ /* ---------------------------------------------------------------------------
+  */
+diff --git a/source/common/vec/intrinsic_inter_pred_avx2.cc b/source/common/vec/intrinsic_inter_pred_avx2.cc
+index 6f35771..05f6957 100644
+--- a/source/common/vec/intrinsic_inter_pred_avx2.cc
++++ b/source/common/vec/intrinsic_inter_pred_avx2.cc
+@@ -30,14 +30,15 @@
+  *    For more information, contact us at sswang @ pku.edu.cn.
+  */
+ 
+-#include "../common.h"
+-#include "intrinsic.h"
+-
+ #include <mmintrin.h>
+ #include <emmintrin.h>
+ #include <tmmintrin.h>
+ #include <smmintrin.h>
+ #include <immintrin.h>
++
++#include "../common.h"
++#include "intrinsic.h"
++
+ #pragma warning(disable:4127)  // warning C4127: ��������ʽ�dz���
+ 
+ #if !HIGH_BIT_DEPTH
+diff --git a/source/common/vec/intrinsic_intra-pred_avx2.cc b/source/common/vec/intrinsic_intra-pred_avx2.cc
+index 6440929..1357bdb 100644
+--- a/source/common/vec/intrinsic_intra-pred_avx2.cc
++++ b/source/common/vec/intrinsic_intra-pred_avx2.cc
+@@ -30,15 +30,15 @@
+  *    For more information, contact us at sswang @ pku.edu.cn.
+  */
+ 
+-#include "../common.h"
+-#include "intrinsic.h"
+-
+ #include <mmintrin.h>
+ #include <emmintrin.h>
+ #include <tmmintrin.h>
+ #include <smmintrin.h>
+ #include <immintrin.h>
+ 
++#include "../common.h"
++#include "intrinsic.h"
++
+ #if !HIGH_BIT_DEPTH
+ 
+ void intra_pred_ver_avx(pel_t *src, pel_t *dst, int i_dst, int dir_mode, int bsx, int bsy)
+diff --git a/source/common/vec/intrinsic_pixel_avx.cc b/source/common/vec/intrinsic_pixel_avx.cc
+index 813a36f..fba7e46 100644
+--- a/source/common/vec/intrinsic_pixel_avx.cc
++++ b/source/common/vec/intrinsic_pixel_avx.cc
+@@ -30,15 +30,15 @@
+  *    For more information, contact us at sswang @ pku.edu.cn.
+  */
+ 
+-#include "../common.h"
+-#include "intrinsic.h"
+-
+ #include <mmintrin.h>
+ #include <emmintrin.h>
+ #include <tmmintrin.h>
+ #include <smmintrin.h>
+ #include <immintrin.h>
+ 
++#include "../common.h"
++#include "intrinsic.h"
++
+ /* ---------------------------------------------------------------------------
+  */
+ void *davs2_memzero_aligned_c_avx(void *dst, size_t n)
+diff --git a/source/common/vec/intrinsic_sao_avx2.cc b/source/common/vec/intrinsic_sao_avx2.cc
+index 11be4d3..bb0c4aa 100644
+--- a/source/common/vec/intrinsic_sao_avx2.cc
++++ b/source/common/vec/intrinsic_sao_avx2.cc
+@@ -30,15 +30,15 @@
+  *    For more information, contact us at sswang @ pku.edu.cn.
+  */
+ 
+-#include "../common.h"
+-#include "intrinsic.h"
+-
+ #include <mmintrin.h>
+ #include <emmintrin.h>
+ #include <tmmintrin.h>
+ #include <smmintrin.h>
+ #include <immintrin.h>
+ 
++#include "../common.h"
++#include "intrinsic.h"
++
+ #if !HIGH_BIT_DEPTH
+ #ifdef _MSC_VER
+ #pragma warning(disable:4244)  // TODO: ��������warning
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/davs2.git/commitdiff/4876ed5cfa5cc172a49db87a198722a47878a19e



More information about the pld-cvs-commit mailing list