mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
143a7443c6
Upstream dropped support for RPi platform since gbm matured and is stable[1]. This package should support RPi2+ hardware. 1. https://github.com/xbmc/xbmc/pull/16321
221 lines
11 KiB
Diff
221 lines
11 KiB
Diff
From 7a1aadd24415ee0af3a0a57877c499f8933b08fc Mon Sep 17 00:00:00 2001
|
|
From: Lukas Rusak <lorusak@gmail.com>
|
|
Date: Thu, 30 Jan 2020 14:32:12 -0800
|
|
Subject: [PATCH 1/2] FFmpeg: Bump to 4.2.2-Matrix-Alpha1
|
|
|
|
---
|
|
cmake/modules/FindFFMPEG.cmake | 16 ++++++------
|
|
.../patches/0001-ffmpeg-detect-openssl.patch | 19 +++-----------
|
|
.../0002-ffmpeg-zlib-config-conflict.patch | 13 +++++++++-
|
|
.../windows/patches/0003-ffmpeg-static.patch | 25 +++++++++++++++++--
|
|
tools/depends/target/Makefile | 1 +
|
|
tools/depends/target/ffmpeg/FFMPEG-VERSION | 2 +-
|
|
6 files changed, 48 insertions(+), 28 deletions(-)
|
|
|
|
diff --git a/cmake/modules/FindFFMPEG.cmake b/cmake/modules/FindFFMPEG.cmake
|
|
index ef74671d4002..26ee23944d2a 100644
|
|
--- a/cmake/modules/FindFFMPEG.cmake
|
|
+++ b/cmake/modules/FindFFMPEG.cmake
|
|
@@ -33,14 +33,14 @@
|
|
#
|
|
|
|
# required ffmpeg library versions
|
|
-set(REQUIRED_FFMPEG_VERSION 4.0)
|
|
-set(_avcodec_ver ">=58.18.100")
|
|
-set(_avfilter_ver ">=7.16.100")
|
|
-set(_avformat_ver ">=58.12.100")
|
|
-set(_avutil_ver ">=56.14.100")
|
|
-set(_swscale_ver ">=5.1.100")
|
|
-set(_swresample_ver ">=3.1.100")
|
|
-set(_postproc_ver ">=55.1.100")
|
|
+set(REQUIRED_FFMPEG_VERSION 4.2)
|
|
+set(_avcodec_ver ">=58.54.100")
|
|
+set(_avfilter_ver ">=7.57.100")
|
|
+set(_avformat_ver ">=58.29.100")
|
|
+set(_avutil_ver ">=56.31.100")
|
|
+set(_swscale_ver ">=5.5.100")
|
|
+set(_swresample_ver ">=3.5.100")
|
|
+set(_postproc_ver ">=55.5.100")
|
|
|
|
|
|
# Allows building with external ffmpeg not found in system paths,
|
|
diff --git a/tools/buildsteps/windows/patches/0001-ffmpeg-detect-openssl.patch b/tools/buildsteps/windows/patches/0001-ffmpeg-detect-openssl.patch
|
|
index d5277ecc4165..aec54109d78e 100644
|
|
--- a/tools/buildsteps/windows/patches/0001-ffmpeg-detect-openssl.patch
|
|
+++ b/tools/buildsteps/windows/patches/0001-ffmpeg-detect-openssl.patch
|
|
@@ -1,26 +1,13 @@
|
|
-From 18de5c60ae0a987680681d5a0602009b428504fa Mon Sep 17 00:00:00 2001
|
|
-From: Gilles Khouzam <gillesk@microsoft.com>
|
|
-Date: Mon, 19 Jun 2017 16:33:38 -0700
|
|
-Subject: [PATCH] Add better detection for Openssl on Windows.
|
|
-
|
|
-Look for libeay32 and ssleay32 as another detection mechanism
|
|
----
|
|
- configure | 1 +
|
|
- 1 file changed, 1 insertion(+)
|
|
-
|
|
diff --git a/configure b/configure
|
|
-index a1818dc..1cf2a7c 100755
|
|
+index 34c2adb4a4..160884d8f9 100755
|
|
--- a/configure
|
|
+++ b/configure
|
|
-@@ -6147,6 +6147,8 @@
|
|
+@@ -6358,6 +6358,8 @@ enabled openssl && { check_pkg_config openssl openssl openssl/ssl.h OP
|
|
check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto ||
|
|
check_lib openssl openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
|
|
check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
|
|
+ check_lib openssl openssl/ssl.h OPENSSL_init_ssl -llibssl -llibcrypto -lws2_32 -lgdi32 -ladvapi32 -luser32 ||
|
|
+ check_lib openssl openssl/ssl.h SSL_library_init -llibeay32 -lssleay32 ||
|
|
die "ERROR: openssl not found"; }
|
|
+ enabled pocketsphinx && require_pkg_config pocketsphinx pocketsphinx pocketsphinx/pocketsphinx.h ps_init
|
|
enabled rkmpp && { require_pkg_config rkmpp rockchip_mpp rockchip/rk_mpi.h mpp_create &&
|
|
- require_pkg_config rockchip_mpp "rockchip_mpp >= 1.3.7" rockchip/rk_mpi.h mpp_create &&
|
|
---
|
|
-2.10.1.windows.1
|
|
-
|
|
diff --git a/tools/buildsteps/windows/patches/0002-ffmpeg-zlib-config-conflict.patch b/tools/buildsteps/windows/patches/0002-ffmpeg-zlib-config-conflict.patch
|
|
index 632cc55bfb77..7896759375a0 100644
|
|
--- a/tools/buildsteps/windows/patches/0002-ffmpeg-zlib-config-conflict.patch
|
|
+++ b/tools/buildsteps/windows/patches/0002-ffmpeg-zlib-config-conflict.patch
|
|
@@ -1,6 +1,17 @@
|
|
+diff --git a/configure b/configure
|
|
+index 34c2adb4a4..a2a2515525 100755
|
|
--- a/configure
|
|
+++ b/configure
|
|
-@@ -7197,6 +7197,9 @@
|
|
+@@ -6358,6 +6358,8 @@ enabled openssl && { check_pkg_config openssl openssl openssl/ssl.h OP
|
|
+ check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto ||
|
|
+ check_lib openssl openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
|
|
+ check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
|
|
++ check_lib openssl openssl/ssl.h OPENSSL_init_ssl -llibssl -llibcrypto -lws2_32 -lgdi32 -ladvapi32 -luser32 ||
|
|
++ check_lib openssl openssl/ssl.h SSL_library_init -llibeay32 -lssleay32 ||
|
|
+ die "ERROR: openssl not found"; }
|
|
+ enabled pocketsphinx && require_pkg_config pocketsphinx pocketsphinx pocketsphinx/pocketsphinx.h ps_init
|
|
+ enabled rkmpp && { require_pkg_config rkmpp rockchip_mpp rockchip/rk_mpi.h mpp_create &&
|
|
+@@ -7437,6 +7439,9 @@ print_config CONFIG_ "$config_files" $CONFIG_LIST \
|
|
$CONFIG_EXTRA \
|
|
$ALL_COMPONENTS \
|
|
|
|
diff --git a/tools/buildsteps/windows/patches/0003-ffmpeg-static.patch b/tools/buildsteps/windows/patches/0003-ffmpeg-static.patch
|
|
index fb78864a7d0f..6852ffc2d71e 100644
|
|
--- a/tools/buildsteps/windows/patches/0003-ffmpeg-static.patch
|
|
+++ b/tools/buildsteps/windows/patches/0003-ffmpeg-static.patch
|
|
@@ -1,6 +1,8 @@
|
|
+diff --git a/configure b/configure
|
|
+index 34c2adb4a4..9c0ff0cd88 100755
|
|
--- a/configure
|
|
+++ b/configure
|
|
-@@ -5131,6 +5131,8 @@
|
|
+@@ -5312,6 +5312,8 @@ case $target_os in
|
|
enabled shared && ! enabled small && test_cmd $windres --version && enable gnu_windres
|
|
enabled x86_32 && check_ldflags -Wl,--large-address-aware
|
|
shlibdir_default="$bindir_default"
|
|
@@ -9,7 +11,7 @@
|
|
SLIBPREF=""
|
|
SLIBSUF=".dll"
|
|
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
|
|
-@@ -5180,6 +5182,8 @@
|
|
+@@ -5361,6 +5363,8 @@ case $target_os in
|
|
fi
|
|
enabled x86_32 && check_ldflags -LARGEADDRESSAWARE
|
|
shlibdir_default="$bindir_default"
|
|
@@ -18,3 +20,22 @@
|
|
SLIBPREF=""
|
|
SLIBSUF=".dll"
|
|
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
|
|
+@@ -6358,6 +6362,8 @@ enabled openssl && { check_pkg_config openssl openssl openssl/ssl.h OP
|
|
+ check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto ||
|
|
+ check_lib openssl openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
|
|
+ check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
|
|
++ check_lib openssl openssl/ssl.h OPENSSL_init_ssl -llibssl -llibcrypto -lws2_32 -lgdi32 -ladvapi32 -luser32 ||
|
|
++ check_lib openssl openssl/ssl.h SSL_library_init -llibeay32 -lssleay32 ||
|
|
+ die "ERROR: openssl not found"; }
|
|
+ enabled pocketsphinx && require_pkg_config pocketsphinx pocketsphinx pocketsphinx/pocketsphinx.h ps_init
|
|
+ enabled rkmpp && { require_pkg_config rkmpp rockchip_mpp rockchip/rk_mpi.h mpp_create &&
|
|
+@@ -7437,6 +7443,9 @@ print_config CONFIG_ "$config_files" $CONFIG_LIST \
|
|
+ $CONFIG_EXTRA \
|
|
+ $ALL_COMPONENTS \
|
|
+
|
|
++echo "#if defined(HAVE_UNISTD_H) && HAVE_UNISTD_H == 0" >> $TMPH
|
|
++echo "#undef HAVE_UNISTD_H" >> $TMPH
|
|
++echo "#endif" >> $TMPH
|
|
+ echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
|
|
+ echo "endif # FFMPEG_CONFIG_MAK" >> ffbuild/config.mak
|
|
+
|
|
diff --git a/tools/depends/target/Makefile b/tools/depends/target/Makefile
|
|
index 8b513ed100ee..96ef2640e0b3 100644
|
|
--- a/tools/depends/target/Makefile
|
|
+++ b/tools/depends/target/Makefile
|
|
@@ -184,3 +184,4 @@ linux-system-libs: linux-system-libs-egl
|
|
[ -f $(PREFIX)/lib/pkgconfig/xmu.pc ] || ln -sf /usr/lib/$(HOST)/pkgconfig/xmu.pc $(PREFIX)/lib/pkgconfig/xmu.pc
|
|
[ -f $(PREFIX)/lib/pkgconfig/libdrm.pc ] || ln -sf /usr/lib/$(HOST)/pkgconfig/libdrm.pc $(PREFIX)/lib/pkgconfig/libdrm.pc
|
|
[ -f $(PREFIX)/lib/pkgconfig/xkbcommon.pc ] || ln -sf /usr/lib/$(HOST)/pkgconfig/xkbcommon.pc $(PREFIX)/lib/pkgconfig/xkbcommon.pc
|
|
+ [ -f $(PREFIX)/lib/pkgconfig/libva.pc ] || ln -sf /usr/lib/$(HOST)/pkgconfig/libva.pc $(PREFIX)/lib/pkgconfig/libva.pc
|
|
diff --git a/tools/depends/target/ffmpeg/FFMPEG-VERSION b/tools/depends/target/ffmpeg/FFMPEG-VERSION
|
|
index 620fe798de97..d105be356ec5 100644
|
|
--- a/tools/depends/target/ffmpeg/FFMPEG-VERSION
|
|
+++ b/tools/depends/target/ffmpeg/FFMPEG-VERSION
|
|
@@ -1,4 +1,4 @@
|
|
LIBNAME=ffmpeg
|
|
BASE_URL=https://github.com/xbmc/FFmpeg
|
|
-VERSION=4.0.4-Leia-18.4
|
|
+VERSION=4.2.2-Matrix-Alpha1
|
|
ARCHIVE=$(LIBNAME)-$(VERSION).tar.gz
|
|
|
|
From e71b4cc63d03c31c49395015e54f631be08d23d1 Mon Sep 17 00:00:00 2001
|
|
From: peak3d <pfau@peak3d.de>
|
|
Date: Sat, 15 Feb 2020 19:15:26 +0100
|
|
Subject: [PATCH 2/2] [ffmpeg] CActiveAEFilter: initialize frame pts only once
|
|
after filter creation
|
|
|
|
This fixes an issue when using the atempo filter after ffmpeg commit 181031906e4984c1c539dc84d21386a4397e257e
|
|
---
|
|
.../cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.cpp | 8 ++++++++
|
|
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.h | 1 +
|
|
2 files changed, 9 insertions(+)
|
|
|
|
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.cpp
|
|
index 8dd0af4d713e..f950623dd218 100644
|
|
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.cpp
|
|
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.cpp
|
|
@@ -157,6 +157,7 @@ bool CActiveAEFilter::CreateAtempoFilter()
|
|
m_needData = true;
|
|
m_filterEof = false;
|
|
m_started = false;
|
|
+ m_ptsInitialized = false;
|
|
|
|
return true;
|
|
}
|
|
@@ -182,6 +183,8 @@ void CActiveAEFilter::CloseFilter()
|
|
|
|
m_SamplesIn = 0;
|
|
m_SamplesOut = 0;
|
|
+
|
|
+ m_ptsInitialized = false;
|
|
}
|
|
|
|
int CActiveAEFilter::ProcessFilter(uint8_t **dst_buffer, int dst_samples, uint8_t **src_buffer, int src_samples, int src_bufsize)
|
|
@@ -211,6 +214,11 @@ int CActiveAEFilter::ProcessFilter(uint8_t **dst_buffer, int dst_samples, uint8_
|
|
frame->sample_rate = m_sampleRate;
|
|
frame->nb_samples = src_samples;
|
|
frame->format = m_sampleFormat;
|
|
+ if (!m_ptsInitialized)
|
|
+ {
|
|
+ frame->pts = 0;
|
|
+ m_ptsInitialized = true;
|
|
+ }
|
|
|
|
m_SamplesIn += src_samples;
|
|
|
|
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.h b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.h
|
|
index e51502f89e85..8cb15e7e009e 100644
|
|
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.h
|
|
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.h
|
|
@@ -52,6 +52,7 @@ class CActiveAEFilter
|
|
bool m_started;
|
|
bool m_hasData;
|
|
bool m_needData;
|
|
+ bool m_ptsInitialized;
|
|
int m_sampleOffset;
|
|
int64_t m_SamplesIn;
|
|
int64_t m_SamplesOut;
|