[arch-commits] Commit in ffmpegthumbnailer/repos/extra-x86_64 (3 files)
Antonio Rojas
arojas at gemini.archlinux.org
Thu Feb 17 21:00:49 UTC 2022
Date: Thursday, February 17, 2022 @ 21:00:49
Author: arojas
Revision: 437623
archrelease: copy trunk to extra-x86_64
Added:
ffmpegthumbnailer/repos/extra-x86_64/PKGBUILD
(from rev 437622, ffmpegthumbnailer/trunk/PKGBUILD)
Deleted:
ffmpegthumbnailer/repos/extra-x86_64/PKGBUILD
ffmpegthumbnailer/repos/extra-x86_64/ffmpeg5.patch
---------------+
PKGBUILD | 73 ++++++++++++++++-----------------
ffmpeg5.patch | 123 --------------------------------------------------------
2 files changed, 36 insertions(+), 160 deletions(-)
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2022-02-17 21:00:39 UTC (rev 437622)
+++ PKGBUILD 2022-02-17 21:00:49 UTC (rev 437623)
@@ -1,37 +0,0 @@
-# Maintainer: Ronald van Haren <ronald.archlinux.org>
-# Contributor: boromil at gmail.com
-
-pkgname=ffmpegthumbnailer
-pkgver=2.2.2
-pkgrel=3
-pkgdesc="Lightweight video thumbnailer that can be used by file managers."
-url="https://github.com/dirkvdb/ffmpegthumbnailer"
-license=('GPL2')
-arch=('x86_64')
-depends=('ffmpeg' 'libjpeg' 'libpng')
-makedepends=('cmake')
-optdepends=('gvfs: support for gio uris')
-source=(https://github.com/dirkvdb/$pkgname/archive/$pkgver/$pkgname-$pkgver.tar.gz
- ffmpeg5.patch)
-sha1sums=('1b35a8afc94edd9135baef9e5259a40b4c0d4d79'
- 'cb873fa82409180cee57cc3f2705e81bd0a27888')
-
-prepare() {
- patch -d $pkgname-$pkgver -p1 < ffmpeg5.patch # Fix build with FFmpeg 5
-}
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- mkdir -p build
- cd build
- cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DENABLE_GIO=ON \
- -DENABLE_THUMBNAILER=ON
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"/build
- make DESTDIR="${pkgdir}" install
-}
Copied: ffmpegthumbnailer/repos/extra-x86_64/PKGBUILD (from rev 437622, ffmpegthumbnailer/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2022-02-17 21:00:49 UTC (rev 437623)
@@ -0,0 +1,36 @@
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: boromil at gmail.com
+
+pkgname=ffmpegthumbnailer
+pkgver=2.2.2
+pkgrel=4
+pkgdesc="Lightweight video thumbnailer that can be used by file managers"
+url="https://github.com/dirkvdb/ffmpegthumbnailer"
+license=('GPL2')
+arch=('x86_64')
+depends=('ffmpeg' 'libjpeg' 'libpng')
+makedepends=('cmake')
+optdepends=('gvfs: support for gio uris')
+source=(https://github.com/dirkvdb/$pkgname/archive/$pkgver/$pkgname-$pkgver.tar.gz
+ ffmpegthumbnailer-ffmpeg5.patch::https://patch-diff.githubusercontent.com/raw/dirkvdb/ffmpegthumbnailer/pull/198.patch
+ https://github.com/dirkvdb/ffmpegthumbnailer/commit/efb5b618.patch)
+sha256sums=('8c4c42ab68144a9e2349710d42c0248407a87e7dc0ba4366891905322b331f92'
+ '300d3208fca6de6f7a90fbabbb8e58b9cf0cc4a4c9b1d2df0cd53ece1736646a'
+ 'c266d1c7cab2fa26dfee2410ea6864ab81a57e8784eda6574cd8237750b9e0e1')
+
+prepare() {
+ patch -d $pkgname-$pkgver -p1 < ffmpegthumbnailer-ffmpeg5.patch # Fix build with FFmpeg 5
+ patch -d $pkgname-$pkgver -p1 < efb5b618.patch # Fix build with FFmpeg 5
+}
+
+build() {
+ cmake -B build -S $pkgname-$pkgver \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_GIO=ON \
+ -DENABLE_THUMBNAILER=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="${pkgdir}" cmake --install build
+}
Deleted: ffmpeg5.patch
===================================================================
--- ffmpeg5.patch 2022-02-17 21:00:39 UTC (rev 437622)
+++ ffmpeg5.patch 2022-02-17 21:00:49 UTC (rev 437623)
@@ -1,123 +0,0 @@
-diff --git a/libffmpegthumbnailer/moviedecoder.cpp b/libffmpegthumbnailer/moviedecoder.cpp
-index 290e212..fd0a9e1 100644
---- a/libffmpegthumbnailer/moviedecoder.cpp
-+++ b/libffmpegthumbnailer/moviedecoder.cpp
-@@ -70,8 +70,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;
-@@ -152,7 +150,7 @@ 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;
-+ auto ctx = m_pFormatContext->streams[i]->codecpar;
- if (ctx->codec_type == AVMEDIA_TYPE_VIDEO)
- {
- if (!preferEmbeddedMetadata || !isStillImageCodec(ctx->codec_id))
-@@ -203,8 +201,9 @@ 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);
-+ m_pVideoCodecContext = avcodec_alloc_context3(m_pVideoCodec);
-+ avcodec_parameters_to_context(m_pVideoCodecContext, m_pVideoStream->codecpar);
-
- if (m_pVideoCodec == nullptr)
- {
-@@ -391,8 +390,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);
-
-@@ -500,7 +497,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 = 0;
-@@ -545,6 +542,30 @@ void MovieDecoder::decodeVideoFrame()
- }
- }
-
-+// The flush packet is a non-NULL packet with size 0 and data NULL
-+int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *pkt)
-+{
-+ int ret;
-+
-+ *got_frame = 0;
-+
-+ if (pkt) {
-+ ret = avcodec_send_packet(avctx, pkt);
-+ // In particular, we don't expect AVERROR(EAGAIN), because we read all
-+ // decoded frames with avcodec_receive_frame() until done.
-+ if (ret < 0)
-+ return ret == AVERROR_EOF ? 0 : ret;
-+ }
-+
-+ ret = avcodec_receive_frame(avctx, frame);
-+ if (ret < 0 && ret != AVERROR(EAGAIN) && ret != AVERROR_EOF)
-+ return ret;
-+ if (ret >= 0)
-+ *got_frame = 1;
-+
-+ return 0;
-+}
-+
- bool MovieDecoder::decodeVideoPacket()
- {
- if (m_pPacket->stream_index != m_VideoStream)
-@@ -554,13 +575,24 @@ bool MovieDecoder::decodeVideoPacket()
-
- av_frame_unref(m_pFrame);
-
-- int frameFinished;
-+ int frameFinished = 0;
-+ int bytesDecoded;
-
-- int bytesDecoded = avcodec_decode_video2(m_pVideoCodecContext, m_pFrame, &frameFinished, m_pPacket);
-+ if (m_pPacket) {
-+ bytesDecoded = avcodec_send_packet(m_pVideoCodecContext, m_pPacket);
-+ if (bytesDecoded < 0 && bytesDecoded != AVERROR_EOF)
-+ {
-+ throw logic_error("Failed to decode video frame: bytesDecoded < 0");
-+ }
-+ }
-+
-+ bytesDecoded = avcodec_receive_frame(m_pVideoCodecContext, m_pFrame);
- if (bytesDecoded < 0)
- {
- throw logic_error("Failed to decode video frame: bytesDecoded < 0");
- }
-+ else
-+ frameFinished = 1;
-
- return frameFinished > 0;
- }
-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 @@ private:
- 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;
More information about the arch-commits
mailing list