[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