summaryrefslogtreecommitdiff
path: root/media-video/ffmpegthumbnailer
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-03-20 00:40:44 +0000
committerV3n3RiX <venerix@koprulu.sector>2022-03-20 00:40:44 +0000
commit4cbcc855382a06088e2f016f62cafdbcb7e40665 (patch)
tree356496503d52354aa6d9f2d36126302fed5f3a73 /media-video/ffmpegthumbnailer
parentfcc5224904648a8e6eb528d7603154160a20022f (diff)
gentoo resync : 20.03.2022
Diffstat (limited to 'media-video/ffmpegthumbnailer')
-rw-r--r--media-video/ffmpegthumbnailer/Manifest13
-rw-r--r--media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2-r1.ebuild61
-rw-r--r--media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2.ebuild4
-rw-r--r--media-video/ffmpegthumbnailer/files/ffmpeg5-1.patch22
-rw-r--r--media-video/ffmpegthumbnailer/files/ffmpeg5-10.patch22
-rw-r--r--media-video/ffmpegthumbnailer/files/ffmpeg5-2.patch28
-rw-r--r--media-video/ffmpegthumbnailer/files/ffmpeg5-3.patch26
-rw-r--r--media-video/ffmpegthumbnailer/files/ffmpeg5-4.patch32
-rw-r--r--media-video/ffmpegthumbnailer/files/ffmpeg5-5.patch37
-rw-r--r--media-video/ffmpegthumbnailer/files/ffmpeg5-6.patch23
-rw-r--r--media-video/ffmpegthumbnailer/files/ffmpeg5-7.patch27
-rw-r--r--media-video/ffmpegthumbnailer/files/ffmpeg5-8.patch54
-rw-r--r--media-video/ffmpegthumbnailer/files/ffmpeg5-9.patch62
13 files changed, 408 insertions, 3 deletions
diff --git a/media-video/ffmpegthumbnailer/Manifest b/media-video/ffmpegthumbnailer/Manifest
index 95a2befd24fb..89e910f4533d 100644
--- a/media-video/ffmpegthumbnailer/Manifest
+++ b/media-video/ffmpegthumbnailer/Manifest
@@ -1,6 +1,17 @@
+AUX ffmpeg5-1.patch 720 BLAKE2B 7c2d7c7611efffc7cf2f784ba021677ec4c765f47a8cc236a29ee2868d56410a11555ef9d5048d82090106ff3008b27b270e266a4f632654cef0ab8b11875987 SHA512 13d6b47f7f5690beb170ac1eac3854591701af86965986ab1f539a84f572a5056a630af7a1f4ed107ff0c4550e22859d8fca84a3f25cfc6e8024d7ac438d5f0e
+AUX ffmpeg5-10.patch 894 BLAKE2B 51f61bb257f09ab5f285a8b1bed19326c3ca127a3d3c86472fbc0e8398f9460f750f6cc077badfd5f083f873a0c8a9da99f2b34ea3cee068f42acc3045834c6f SHA512 0cb65b6d0e8984e0f7780b4476406a6911e4ab2c86cc4524ffe99fc9277cfb5fcbc06df71e4d1032047e53a2272802a0891bb67ce187f0a31521d5452d0d615b
+AUX ffmpeg5-2.patch 884 BLAKE2B f9e2f5c93f91b3f44a0a4f347dbc0663ac705521e3ac0ececce571cab2dbde95e4ae435411a3daa56afadee8664f04267668039a4e4eacb29f5b79098c763542 SHA512 cf1b90d3c62fe9bc40422d16a557965f4ee32adf584e87604ccd2d5828b41ddb9511489831bdcb3a110892ee31f44c7c14da60557941731747c13f45699869b0
+AUX ffmpeg5-3.patch 798 BLAKE2B bb97dcef34b6fa2d329de1566ca74c53244ae3e72440215495d7a2bd50af8aa86a1dd67227e0f058d311b13fb6ba29f4d639bfddd4055f994d3b87aa2adc5aa4 SHA512 c3e27228c1cd1cd1c2d82471bd8c6150c9be563a43bdc8d09d8d57baff6c70b9d30f081f4ddd61839dc5bfb8401511fcd8d9368808e1e9fd65a22470d4249c9b
+AUX ffmpeg5-4.patch 1206 BLAKE2B 7e4f3dc815b24561f9e7a7688acff7c1749fbf7e6fe96e6456ca199784ead9d087e7bd94708034f4ccb201b9bcda06bc1993d7d082f75e14bedfa80eb6811f66 SHA512 30d8da3cd04327db7d963b162619f436f964134dbcff290556e0783b8720f917efca0dfd2ef067e02fe362792b44ab40b084d61fd0270c24b8853a407cf0e17a
+AUX ffmpeg5-5.patch 1941 BLAKE2B 20fc02ab08b3b98bcd2f39ff92cde7f178026e505f9f77036cbb84ec771f1d16e5806414783b29877b9799a923be582d31d82e819657734d989490eabbd21b77 SHA512 99f43b151a423ac4955b058da79d65b9d38be1a769e0879386315a4c4ed85ca12e73499a71e59ea6c98c95797463f420f1e7713e8344678d58eb1ab079f504dd
+AUX ffmpeg5-6.patch 896 BLAKE2B ecf803c7a6155e2bb21a7f61606ddd00f87a3831b2cae4cc687bbe85b3fec5ed881f76d7b5a442cd689ef0d0303536387100f1c4cff79d9292af6548798066d5 SHA512 4907065a30207c38d61efbb7e5d2bd53f95fc2b7d9c6a60afe25bd590da3fcbf5aea8fb1abb5d5669329ab73bd1f1d99fa3744614c532e529eed7d105d2ee646
+AUX ffmpeg5-7.patch 1230 BLAKE2B 77b8f2825080d93278187e7abaaa27f558c1bbe52b6abb0f00ecfc3a4866314cd278f9d78b20ee71d58cca940d71fb18e41a8be4e0aace4629709c7cb87817e1 SHA512 a6048f1963a95d73f6996661451da4209ed1973a611ac7f58fbc7ad8a4ac4dc4a8021c4ab925b3e0a111a795f820648fa13203ba09b5eff14dad27cb67be060b
+AUX ffmpeg5-8.patch 1953 BLAKE2B 18f207ae5f42be46d00d003add9c2432a086e0e65a799a88ba1bce99db7f9a21a8e74dbe698489161f67e55272cc7af604dbb82fe8479f98fcf07e07ae961a71 SHA512 fcfeb19a00859b0f69a4682300497bdc2e8d93ac66020430816271777216f74d1e79cb6807e4afdc10ab0af50ad4b404cffcfa78ea4e4dd304e2a91e537a0737
+AUX ffmpeg5-9.patch 1855 BLAKE2B 7f85c786641825d9f722b63682e1fe63c4e7178890a0b05a02dd7af93ae057f7b259b0a1311df5553c4fbdfee60268036e4004253b395f87f87e27a6918c1264 SHA512 560d0018df15299d527a3a7f218f3899d03f264c434ec5d7d9f411c22f2467d9583d7a94e5c69da03c55abe9774119e1ee1685aa48dda525ab8aae0488c4ef2a
AUX ffmpegthumbnailer-2.2.0-pkgconfig-libdir.patch 675 BLAKE2B b6b00228900e3fb1894eb4ca4872a2be645cb3a6aecbb9d3581ff1fc00b7290eab72196fb9c5f6ac4924eb3e4b1b82093669128fe32c01ce56e4c36ee53528b4 SHA512 facfdf9693710c93896590b8814af0b6ed98fe9fe4ecde013a3554032ed733b3ab713a4a840212808c84b1277c9c4e7951fd1fbc641ad9c001f78635e4e539be
DIST ffmpegthumbnailer-2.2.0.tar.bz2 1223895 BLAKE2B 1babd01672f927a9ae043488e67225490f732b26544ad92e4c55ae683eb7d852cb90233e76a52cbda2f6aec26654b57907d7706e3ad4ae6d76ca3bca163c78eb SHA512 526d15b2c754fcb1415e69fb54cb6e7d0102b6d73a32a7e8528df81e32633dfe3786898984fdb988c93daee7218956c75c096ef657c9b3a42399d2d1d27c7bbf
DIST ffmpegthumbnailer-2.2.2.tar.bz2 1201838 BLAKE2B 449a876eaf56feb41c06dc5f3d123b138d66dfe8b6e1bc2e53f1742ef6fbd4ec5d14d77402e13cf8c369ee0cf0707ae5b100ac1d9fb02435b3c3a776cc9dc5f4 SHA512 52760dcf59430e5e85024c9f19dc1fac1d5f0edb4f937b33feac2b3ca8f12bbf549b5f658fc16fc07bf773717b9e10048aa3eb24bf52811c5c88c995ef492612
EBUILD ffmpegthumbnailer-2.2.0-r1.ebuild 1085 BLAKE2B d89bcbeed12ca0aea9c931461dbdecce973d44e8ecd0d8d777abfa6f0128f491f36771a1a4d7adddac49b8228458cb81821b7b85d78d85b1bccdfb907c871dc5 SHA512 aa950d982ac2529cbaef04af04582cb8023e2165e3905d20c6f72411fe59bd5e1e1c71e2fa8891958ef44f943406dbcfc366588c445e3105fc02ce2992233348
-EBUILD ffmpegthumbnailer-2.2.2.ebuild 1044 BLAKE2B 27b7e93e7ea961d77ae53efb351090f0ba7247439abb38263ec38e595f7d62d251341e0b96f91ad6068cd30e5540a95d15fbb5dd8d770b094c90288c5f4afb44 SHA512 b43e9bbcb4361ee80fa3a7bab8bab442670b4c9603e638e6edb3c67cc1134e2a95c2513af16b38952741de0aadb3ce1a50b9abcc22d071bd48675c9f50dc7f75
+EBUILD ffmpegthumbnailer-2.2.2-r1.ebuild 1367 BLAKE2B 09bf778fbf7178cd9718f39436bc7c3c8c5c262a69fcd7fd6d0fcd2388383b1a1c84a385b330db5af7c54e419c1edfc97346923ba611621bf44802ae3595a850 SHA512 e2e641cd7ae9cf3387b527f1cc14af7f6a1103a2de4f72f011fa84ae9daee9672b1ba7d0c916167bf0d9583e6c42224565ad5966ffe2636f1914f807e540d975
+EBUILD ffmpegthumbnailer-2.2.2.ebuild 1039 BLAKE2B 8c7728b54400d0842efd3d7cf30aec85121aa6cd02ae8f45d42046826a2f0b1edd327237ef75b3ff0700d8e95af00c6a2ac95dd569f6d13b56ab764c98f9e657 SHA512 c837d49f7b64676a03826a5b3f8c15d0857121ba557fe4615b26aae111a627fd76e57ddc8b7924cf9758dd2766048609df7219fcc1fff0ef50ac3c34040bd48b
MISC metadata.xml 376 BLAKE2B df0d1b58a98ba2ae162e809f763889e3f84a51363ebb65d7a530217f723198fada6c7e0445ac50057c8ac5a082ecfaada6f6b3479faf8294bf9ee5cef9db53c5 SHA512 b902ffa5d659e09df7635fa70ffde6cd31848bd5c20033b9933217c6331aa9e9a34cfdf90c3f10c5cded9bc9ba6e6601f21d752ad1eca287c4754c01e31bc43e
diff --git a/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2-r1.ebuild b/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2-r1.ebuild
new file mode 100644
index 000000000000..4906d0009027
--- /dev/null
+++ b/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Lightweight video thumbnailer that can be used by file managers"
+HOMEPAGE="https://github.com/dirkvdb/ffmpegthumbnailer"
+SRC_URI="https://github.com/dirkvdb/${PN}/releases/download/${PV}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="gnome gtk jpeg png test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="gnome? ( gtk )
+ test? ( png jpeg )"
+
+BDEPEND="
+ virtual/pkgconfig
+"
+RDEPEND="
+ gtk? ( dev-libs/glib:2= )
+ jpeg? ( virtual/jpeg:0= )
+ >=media-video/ffmpeg-2.7:0=
+ png? ( media-libs/libpng:0= )
+"
+DEPEND="${RDEPEND}"
+
+DOCS=( AUTHORS ChangeLog README.md )
+PATCHES=(
+ "${FILESDIR}/ffmpeg5-1.patch"
+ "${FILESDIR}/ffmpeg5-2.patch"
+ "${FILESDIR}/ffmpeg5-3.patch"
+ "${FILESDIR}/ffmpeg5-4.patch"
+ "${FILESDIR}/ffmpeg5-5.patch"
+ "${FILESDIR}/ffmpeg5-6.patch"
+ "${FILESDIR}/ffmpeg5-7.patch"
+ "${FILESDIR}/ffmpeg5-8.patch"
+ "${FILESDIR}/ffmpeg5-9.patch"
+ "${FILESDIR}/ffmpeg5-10.patch"
+)
+
+src_prepare() {
+ rm -rf out* || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_GIO=$(usex gtk)
+ -DENABLE_TESTS=$(usex test)
+ -DENABLE_THUMBNAILER=$(usex gnome)
+ -DHAVE_JPEG=$(usex jpeg)
+ -DHAVE_PNG=$(usex png)
+ )
+ cmake_src_configure
+}
diff --git a/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2.ebuild b/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2.ebuild
index 1db8f1d925cb..bcc643818faa 100644
--- a/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2.ebuild
+++ b/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/dirkvdb/${PN}/releases/download/${PV}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv sparc x86"
IUSE="gnome gtk jpeg png test"
RESTRICT="!test? ( test )"
diff --git a/media-video/ffmpegthumbnailer/files/ffmpeg5-1.patch b/media-video/ffmpegthumbnailer/files/ffmpeg5-1.patch
new file mode 100644
index 000000000000..d852f3b4131d
--- /dev/null
+++ b/media-video/ffmpegthumbnailer/files/ffmpeg5-1.patch
@@ -0,0 +1,22 @@
+From 67be4abd22b726e277c4b67bfb3abf5a65cfd9b5 Mon Sep 17 00:00:00 2001
+From: Zane van Iperen <zane@zanevaniperen.com>
+Date: Mon, 15 Mar 2021 17:23:23 +1000
+Subject: [PATCH] lib/moviedecoder: remove unused variable
+
+---
+ libffmpegthumbnailer/moviedecoder.cpp | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/libffmpegthumbnailer/moviedecoder.cpp b/libffmpegthumbnailer/moviedecoder.cpp
+index 290e212..aa44adf 100644
+--- a/libffmpegthumbnailer/moviedecoder.cpp
++++ b/libffmpegthumbnailer/moviedecoder.cpp
+@@ -570,8 +570,6 @@ bool MovieDecoder::getVideoPacket()
+ bool framesAvailable = true;
+ bool frameDecoded = false;
+
+- int attempts = 0;
+-
+ if (m_pPacket)
+ {
+ av_packet_unref(m_pPacket);
diff --git a/media-video/ffmpegthumbnailer/files/ffmpeg5-10.patch b/media-video/ffmpegthumbnailer/files/ffmpeg5-10.patch
new file mode 100644
index 000000000000..81e57aab1c96
--- /dev/null
+++ b/media-video/ffmpegthumbnailer/files/ffmpeg5-10.patch
@@ -0,0 +1,22 @@
+From efb5b618f1c1471c1a7900aed3a59d851ea9a210 Mon Sep 17 00:00:00 2001
+From: Paul Jonkins <paul.ionkin@gmail.com>
+Date: Wed, 23 Jun 2021 17:53:55 +0200
+Subject: [PATCH] Constify AVCodec
+
+---
+ libffmpegthumbnailer/moviedecoder.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libffmpegthumbnailer/moviedecoder.h b/libffmpegthumbnailer/moviedecoder.h
+index 3ef5f12..fb6add2 100644
+--- a/libffmpegthumbnailer/moviedecoder.h
++++ b/libffmpegthumbnailer/moviedecoder.h
+@@ -78,7 +78,7 @@ class MovieDecoder
+ int m_VideoStream;
+ AVFormatContext* m_pFormatContext;
+ AVCodecContext* m_pVideoCodecContext;
+- AVCodec* m_pVideoCodec;
++ const AVCodec* m_pVideoCodec;
+ AVFilterGraph* m_pFilterGraph;
+ AVFilterContext* m_pFilterSource;
+ AVFilterContext* m_pFilterSink;
diff --git a/media-video/ffmpegthumbnailer/files/ffmpeg5-2.patch b/media-video/ffmpegthumbnailer/files/ffmpeg5-2.patch
new file mode 100644
index 000000000000..8f22829f6bb7
--- /dev/null
+++ b/media-video/ffmpegthumbnailer/files/ffmpeg5-2.patch
@@ -0,0 +1,28 @@
+From 66f64668e7a063e790813c7733ca438ab112af89 Mon Sep 17 00:00:00 2001
+From: Zane van Iperen <zane@zanevaniperen.com>
+Date: Mon, 15 Mar 2021 17:42:07 +1000
+Subject: [PATCH] lib/moviedecoder: clang-tidy fixes
+
+---
+ libffmpegthumbnailer/moviedecoder.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libffmpegthumbnailer/moviedecoder.cpp b/libffmpegthumbnailer/moviedecoder.cpp
+index aa44adf..79c950b 100644
+--- a/libffmpegthumbnailer/moviedecoder.cpp
++++ b/libffmpegthumbnailer/moviedecoder.cpp
+@@ -503,12 +503,12 @@ void MovieDecoder::seek(int timeInSeconds)
+ avcodec_flush_buffers(m_pFormatContext->streams[m_VideoStream]->codec);
+
+ int keyFrameAttempts = 0;
+- bool gotFrame = 0;
++ bool gotFrame;
+
+ do
+ {
+ int count = 0;
+- gotFrame = 0;
++ gotFrame = false;
+
+ while (!gotFrame && count < 20)
+ {
diff --git a/media-video/ffmpegthumbnailer/files/ffmpeg5-3.patch b/media-video/ffmpegthumbnailer/files/ffmpeg5-3.patch
new file mode 100644
index 000000000000..ad7625775cf0
--- /dev/null
+++ b/media-video/ffmpegthumbnailer/files/ffmpeg5-3.patch
@@ -0,0 +1,26 @@
+From 96c22aa66719846854895afcb72962862d5a4ffd Mon Sep 17 00:00:00 2001
+From: Zane van Iperen <zane@zanevaniperen.com>
+Date: Mon, 15 Mar 2021 20:39:32 +1000
+Subject: [PATCH] lib/moviedecoder: remove SilenceLogLevel
+
+Was unused.
+---
+ libffmpegthumbnailer/moviedecoder.cpp | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/libffmpegthumbnailer/moviedecoder.cpp b/libffmpegthumbnailer/moviedecoder.cpp
+index 79c950b..21df096 100644
+--- a/libffmpegthumbnailer/moviedecoder.cpp
++++ b/libffmpegthumbnailer/moviedecoder.cpp
+@@ -41,11 +41,6 @@ using namespace std;
+ namespace ffmpegthumbnailer
+ {
+
+-struct SilenceLogLevel
+-{
+- SilenceLogLevel() { av_log_set_level(AV_LOG_QUIET); }
+-};
+-
+ MovieDecoder::MovieDecoder(AVFormatContext* pavContext)
+ : m_VideoStream(-1)
+ , m_pFormatContext(pavContext)
diff --git a/media-video/ffmpegthumbnailer/files/ffmpeg5-4.patch b/media-video/ffmpegthumbnailer/files/ffmpeg5-4.patch
new file mode 100644
index 000000000000..eb063973ae37
--- /dev/null
+++ b/media-video/ffmpegthumbnailer/files/ffmpeg5-4.patch
@@ -0,0 +1,32 @@
+From 664680f4bfeb89923f485eba270f9e49a8d02bfc Mon Sep 17 00:00:00 2001
+From: Zane van Iperen <zane@zanevaniperen.com>
+Date: Mon, 15 Mar 2021 17:25:40 +1000
+Subject: [PATCH] lib/moviedecoder: remove registration calls
+
+They're not needed anymore.
+---
+ libffmpegthumbnailer/moviedecoder.cpp | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/libffmpegthumbnailer/moviedecoder.cpp b/libffmpegthumbnailer/moviedecoder.cpp
+index 21df096..ac3e5b9 100644
+--- a/libffmpegthumbnailer/moviedecoder.cpp
++++ b/libffmpegthumbnailer/moviedecoder.cpp
+@@ -65,8 +65,6 @@ MovieDecoder::~MovieDecoder()
+
+ void MovieDecoder::initialize(const string& filename, bool preferEmbeddedMetadata)
+ {
+- av_register_all();
+- avcodec_register_all();
+ avformat_network_init();
+
+ string inputFile = filename == "-" ? "pipe:" : filename;
+@@ -386,8 +384,6 @@ void MovieDecoder::initializeFilterGraph(const AVRational& timeBase, const std::
+ auto del = [] (AVBufferSinkParams* p) { av_freep(p); };
+ std::unique_ptr<AVBufferSinkParams, decltype(del)> buffersinkParams(av_buffersink_params_alloc(), del);
+
+- avfilter_register_all();
+-
+ m_pFilterGraph = avfilter_graph_alloc();
+ assert(m_pFilterGraph);
+
diff --git a/media-video/ffmpegthumbnailer/files/ffmpeg5-5.patch b/media-video/ffmpegthumbnailer/files/ffmpeg5-5.patch
new file mode 100644
index 000000000000..e2a131b31ebc
--- /dev/null
+++ b/media-video/ffmpegthumbnailer/files/ffmpeg5-5.patch
@@ -0,0 +1,37 @@
+From 1ae42e664e1f3c915d186ae00aa2c8018b998708 Mon Sep 17 00:00:00 2001
+From: Zane van Iperen <zane@zanevaniperen.com>
+Date: Mon, 15 Mar 2021 17:30:21 +1000
+Subject: [PATCH] lib/moviedecoder: remove use of AVBufferSinkParams
+
+---
+ libffmpegthumbnailer/moviedecoder.cpp | 9 +--------
+ 1 file changed, 1 insertion(+), 8 deletions(-)
+
+diff --git a/libffmpegthumbnailer/moviedecoder.cpp b/libffmpegthumbnailer/moviedecoder.cpp
+index ac3e5b9..dece668 100644
+--- a/libffmpegthumbnailer/moviedecoder.cpp
++++ b/libffmpegthumbnailer/moviedecoder.cpp
+@@ -379,11 +379,6 @@ std::string MovieDecoder::createScaleString(const std::string& sizeString, bool
+
+ void MovieDecoder::initializeFilterGraph(const AVRational& timeBase, const std::string& size, bool maintainAspectRatio)
+ {
+- static const AVPixelFormat pixelFormats[] = { AV_PIX_FMT_RGB24, AV_PIX_FMT_NONE };
+-
+- auto del = [] (AVBufferSinkParams* p) { av_freep(p); };
+- std::unique_ptr<AVBufferSinkParams, decltype(del)> buffersinkParams(av_buffersink_params_alloc(), del);
+-
+ m_pFilterGraph = avfilter_graph_alloc();
+ assert(m_pFilterGraph);
+
+@@ -395,10 +390,8 @@ void MovieDecoder::initializeFilterGraph(const AVRational& timeBase, const std::
+
+ checkRc(avfilter_graph_create_filter(&m_pFilterSource, avfilter_get_by_name("buffer"), "thumb_buffer", ss.str().c_str(), nullptr, m_pFilterGraph),
+ "Failed to create filter source");
+- buffersinkParams->pixel_fmts = pixelFormats;
+- checkRc(avfilter_graph_create_filter(&m_pFilterSink, avfilter_get_by_name("buffersink"), "thumb_buffersink", nullptr, buffersinkParams.get(), m_pFilterGraph),
++ checkRc(avfilter_graph_create_filter(&m_pFilterSink, avfilter_get_by_name("buffersink"), "thumb_buffersink", nullptr, nullptr, m_pFilterGraph),
+ "Failed to create filter sink");
+- buffersinkParams.release();
+
+ AVFilterContext* yadifFilter = nullptr;
+ if (m_pFrame->interlaced_frame != 0)
diff --git a/media-video/ffmpegthumbnailer/files/ffmpeg5-6.patch b/media-video/ffmpegthumbnailer/files/ffmpeg5-6.patch
new file mode 100644
index 000000000000..59860a599ef2
--- /dev/null
+++ b/media-video/ffmpegthumbnailer/files/ffmpeg5-6.patch
@@ -0,0 +1,23 @@
+From 19675349662a4ea4455d7d13b01cca28ab585762 Mon Sep 17 00:00:00 2001
+From: Zane van Iperen <zane@zanevaniperen.com>
+Date: Mon, 15 Mar 2021 17:39:58 +1000
+Subject: [PATCH] lib/moviedecoder: use m_pVideoCodecContext instead of
+ AVStream::codec
+
+---
+ libffmpegthumbnailer/moviedecoder.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libffmpegthumbnailer/moviedecoder.cpp b/libffmpegthumbnailer/moviedecoder.cpp
+index dece668..0b7a280 100644
+--- a/libffmpegthumbnailer/moviedecoder.cpp
++++ b/libffmpegthumbnailer/moviedecoder.cpp
+@@ -484,7 +484,7 @@ void MovieDecoder::seek(int timeInSeconds)
+ }
+
+ checkRc(av_seek_frame(m_pFormatContext, -1, timestamp, 0), "Seeking in video failed");
+- avcodec_flush_buffers(m_pFormatContext->streams[m_VideoStream]->codec);
++ avcodec_flush_buffers(m_pVideoCodecContext);
+
+ int keyFrameAttempts = 0;
+ bool gotFrame;
diff --git a/media-video/ffmpegthumbnailer/files/ffmpeg5-7.patch b/media-video/ffmpegthumbnailer/files/ffmpeg5-7.patch
new file mode 100644
index 000000000000..ac1eb3c25423
--- /dev/null
+++ b/media-video/ffmpegthumbnailer/files/ffmpeg5-7.patch
@@ -0,0 +1,27 @@
+From 4f74f83a009fa2b3f3d546adb24d4f1406910007 Mon Sep 17 00:00:00 2001
+From: Zane van Iperen <zane@zanevaniperen.com>
+Date: Mon, 15 Mar 2021 17:49:03 +1000
+Subject: [PATCH] lib/moviedecoder: codec -> codecpar
+
+---
+ libffmpegthumbnailer/moviedecoder.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libffmpegthumbnailer/moviedecoder.cpp b/libffmpegthumbnailer/moviedecoder.cpp
+index 0b7a280..e58904e 100644
+--- a/libffmpegthumbnailer/moviedecoder.cpp
++++ b/libffmpegthumbnailer/moviedecoder.cpp
+@@ -145,10 +145,10 @@ int32_t MovieDecoder::findPreferedVideoStream(bool preferEmbeddedMetadata)
+ for (unsigned int i = 0; i < m_pFormatContext->nb_streams; ++i)
+ {
+ AVStream *stream = m_pFormatContext->streams[i];
+- auto ctx = m_pFormatContext->streams[i]->codec;
+- if (ctx->codec_type == AVMEDIA_TYPE_VIDEO)
++ auto par = m_pFormatContext->streams[i]->codecpar;
++ if (par->codec_type == AVMEDIA_TYPE_VIDEO)
+ {
+- if (!preferEmbeddedMetadata || !isStillImageCodec(ctx->codec_id))
++ if (!preferEmbeddedMetadata || !isStillImageCodec(par->codec_id))
+ {
+ videoStreams.push_back(i);
+ continue;
diff --git a/media-video/ffmpegthumbnailer/files/ffmpeg5-8.patch b/media-video/ffmpegthumbnailer/files/ffmpeg5-8.patch
new file mode 100644
index 000000000000..d160cbb2404f
--- /dev/null
+++ b/media-video/ffmpegthumbnailer/files/ffmpeg5-8.patch
@@ -0,0 +1,54 @@
+From 3ffdd65cbda6ef21d36c96013db1b0f4dc9fc57b Mon Sep 17 00:00:00 2001
+From: Zane van Iperen <zane@zanevaniperen.com>
+Date: Mon, 15 Mar 2021 17:52:01 +1000
+Subject: [PATCH] lib/movedecoder: don't rely on avformat to allocate a context
+
+---
+ libffmpegthumbnailer/moviedecoder.cpp | 20 ++++++++++++++++----
+ 1 file changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/libffmpegthumbnailer/moviedecoder.cpp b/libffmpegthumbnailer/moviedecoder.cpp
+index e58904e..da5f32a 100644
+--- a/libffmpegthumbnailer/moviedecoder.cpp
++++ b/libffmpegthumbnailer/moviedecoder.cpp
+@@ -90,8 +90,7 @@ void MovieDecoder::destroy()
+ {
+ if (m_pVideoCodecContext)
+ {
+- avcodec_close(m_pVideoCodecContext);
+- m_pVideoCodecContext = nullptr;
++ avcodec_free_context(&m_pVideoCodecContext);
+ }
+
+ if ((!m_FormatContextWasGiven) && m_pFormatContext)
+@@ -196,8 +195,7 @@ void MovieDecoder::initializeVideo(bool preferEmbeddedMetadata)
+ }
+
+ m_pVideoStream = m_pFormatContext->streams[m_VideoStream];
+- m_pVideoCodecContext = m_pVideoStream->codec;
+- m_pVideoCodec = avcodec_find_decoder(m_pVideoCodecContext->codec_id);
++ m_pVideoCodec = avcodec_find_decoder(m_pVideoStream->codecpar->codec_id);
+
+ if (m_pVideoCodec == nullptr)
+ {
+@@ -207,6 +205,20 @@ void MovieDecoder::initializeVideo(bool preferEmbeddedMetadata)
+ throw logic_error("Video Codec not found");
+ }
+
++ m_pVideoCodecContext = avcodec_alloc_context3(m_pVideoCodec);
++
++ if (m_pVideoCodecContext == nullptr)
++ {
++ destroy();
++ throw logic_error("Could not allocate video codec context");
++ }
++
++ if (avcodec_parameters_to_context(m_pVideoCodecContext, m_pVideoStream->codecpar) < 0)
++ {
++ destroy();
++ throw logic_error("Could not configure video codec context");
++ }
++
+ m_pVideoCodecContext->workaround_bugs = 1;
+
+ if (avcodec_open2(m_pVideoCodecContext, m_pVideoCodec, nullptr) < 0)
diff --git a/media-video/ffmpegthumbnailer/files/ffmpeg5-9.patch b/media-video/ffmpegthumbnailer/files/ffmpeg5-9.patch
new file mode 100644
index 000000000000..42db9faef363
--- /dev/null
+++ b/media-video/ffmpegthumbnailer/files/ffmpeg5-9.patch
@@ -0,0 +1,62 @@
+From f9273852c8e3d7af77d6c8929b1ac6c8a26eca50 Mon Sep 17 00:00:00 2001
+From: Zane van Iperen <zane@zanevaniperen.com>
+Date: Mon, 15 Mar 2021 20:57:45 +1000
+Subject: [PATCH] lib/moviedecoder: replace avcodec_decode_video2() usage
+
+---
+ libffmpegthumbnailer/moviedecoder.cpp | 31 +++++++++++++++++++++------
+ 1 file changed, 24 insertions(+), 7 deletions(-)
+
+diff --git a/libffmpegthumbnailer/moviedecoder.cpp b/libffmpegthumbnailer/moviedecoder.cpp
+index da5f32a..f32577a 100644
+--- a/libffmpegthumbnailer/moviedecoder.cpp
++++ b/libffmpegthumbnailer/moviedecoder.cpp
+@@ -548,17 +548,33 @@ bool MovieDecoder::decodeVideoPacket()
+ return false;
+ }
+
+- av_frame_unref(m_pFrame);
+-
+- int frameFinished;
++ int rc = avcodec_send_packet(m_pVideoCodecContext, m_pPacket);
++ if(rc == AVERROR(EAGAIN))
++ {
++ rc = 0;
++ }
+
+- int bytesDecoded = avcodec_decode_video2(m_pVideoCodecContext, m_pFrame, &frameFinished, m_pPacket);
+- if (bytesDecoded < 0)
++ if(rc == AVERROR_EOF)
++ {
++ return false;
++ }
++ else if(rc < 0)
+ {
+- throw logic_error("Failed to decode video frame: bytesDecoded < 0");
++ throw logic_error("Failed to decode video frame: avcodec_send_packet() < 0");
+ }
+
+- return frameFinished > 0;
++ rc = avcodec_receive_frame(m_pVideoCodecContext, m_pFrame);
++ switch(rc)
++ {
++ case 0:
++ return true;
++
++ case AVERROR(EAGAIN):
++ return false;
++
++ default:
++ throw logic_error("Failed to decode video frame: avcodec_receive_frame() < 0");
++ }
+ }
+
+ bool MovieDecoder::getVideoPacket()
+@@ -574,6 +590,7 @@ bool MovieDecoder::getVideoPacket()
+
+ m_pPacket = new AVPacket();
+
++
+ while (framesAvailable && !frameDecoded)
+ {
+ framesAvailable = av_read_frame(m_pFormatContext, m_pPacket) >= 0;