mirror of
https://github.com/void-linux/void-packages.git
synced 2025-06-09 00:23:52 +02:00
qtav: update to 1.13.0 + fixes for qt5-5.15.0
This commit is contained in:
parent
c19417733e
commit
01aa1577e5
3 changed files with 23 additions and 161 deletions
|
@ -1,157 +0,0 @@
|
||||||
From 7f6929b49c25ca475a08f87e8b52aa1642d109dd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Felix Matouschek <felix@matouschek.org>
|
|
||||||
Date: Sat, 11 Nov 2017 10:13:06 +0100
|
|
||||||
Subject: [PATCH] Make QtAV build with newer versions of FFmpeg
|
|
||||||
|
|
||||||
Some defines changed their name in newer versions of FFmpeg, this
|
|
||||||
patch uses preprocessor instructions in AVCompat.h to use the
|
|
||||||
correct define names. Also filter names retrieved by
|
|
||||||
'avfilter_get_by_name' should be used as const variables in
|
|
||||||
libavfilter versions starting at 7.0.0.
|
|
||||||
---
|
|
||||||
src/AVMuxer.cpp | 2 +-
|
|
||||||
src/QtAV/private/AVCompat.h | 12 ++++++++++++
|
|
||||||
src/codec/audio/AudioEncoderFFmpeg.cpp | 4 ++--
|
|
||||||
src/codec/video/VideoEncoderFFmpeg.cpp | 2 +-
|
|
||||||
src/filter/LibAVFilter.cpp | 8 +++++++-
|
|
||||||
src/subtitle/SubtitleProcessorFFmpeg.cpp | 2 +-
|
|
||||||
6 files changed, 24 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/AVMuxer.cpp b/src/AVMuxer.cpp
|
|
||||||
index 2f0b40d05..d2eb3dde8 100644
|
|
||||||
--- a/src/AVMuxer.cpp
|
|
||||||
+++ b/src/AVMuxer.cpp
|
|
||||||
@@ -124,7 +124,7 @@ AVStream *AVMuxer::Private::addStream(AVFormatContext* ctx, const QString &codec
|
|
||||||
c->time_base = s->time_base;
|
|
||||||
/* Some formats want stream headers to be separate. */
|
|
||||||
if (ctx->oformat->flags & AVFMT_GLOBALHEADER)
|
|
||||||
- c->flags |= CODEC_FLAG_GLOBAL_HEADER;
|
|
||||||
+ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
|
|
||||||
// expose avctx to encoder and set properties in encoder?
|
|
||||||
// list codecs for a given format in ui
|
|
||||||
return s;
|
|
||||||
diff --git a/src/QtAV/private/AVCompat.h b/src/QtAV/private/AVCompat.h
|
|
||||||
index e387868a8..6c38596d1 100644
|
|
||||||
--- a/src/QtAV/private/AVCompat.h
|
|
||||||
+++ b/src/QtAV/private/AVCompat.h
|
|
||||||
@@ -456,3 +456,15 @@ const char *get_codec_long_name(AVCodecID id);
|
|
||||||
} } while(0)
|
|
||||||
|
|
||||||
#endif //QTAV_COMPAT_H
|
|
||||||
+
|
|
||||||
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(56,33,0)
|
|
||||||
+#define AV_CODEC_FLAG_GLOBAL_HEADER CODEC_FLAG_GLOBAL_HEADER
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(56,56,100)
|
|
||||||
+#define AV_INPUT_BUFFER_MIN_SIZE FF_MIN_BUFFER_SIZE
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(56,56,100)
|
|
||||||
+#define AV_INPUT_BUFFER_PADDING_SIZE FF_INPUT_BUFFER_PADDING_SIZE
|
|
||||||
+#endif
|
|
||||||
diff --git a/src/codec/audio/AudioEncoderFFmpeg.cpp b/src/codec/audio/AudioEncoderFFmpeg.cpp
|
|
||||||
index a74f4f31d..3811e11a6 100644
|
|
||||||
--- a/src/codec/audio/AudioEncoderFFmpeg.cpp
|
|
||||||
+++ b/src/codec/audio/AudioEncoderFFmpeg.cpp
|
|
||||||
@@ -151,8 +151,8 @@ bool AudioEncoderFFmpegPrivate::open()
|
|
||||||
} else {
|
|
||||||
buffer_size = frame_size*format_used.bytesPerSample()*format_used.channels()*2+200;
|
|
||||||
}
|
|
||||||
- if (buffer_size < FF_MIN_BUFFER_SIZE)
|
|
||||||
- buffer_size = FF_MIN_BUFFER_SIZE;
|
|
||||||
+ if (buffer_size < AV_INPUT_BUFFER_MIN_SIZE)
|
|
||||||
+ buffer_size = AV_INPUT_BUFFER_MIN_SIZE;
|
|
||||||
buffer.resize(buffer_size);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
diff --git a/src/codec/video/VideoEncoderFFmpeg.cpp b/src/codec/video/VideoEncoderFFmpeg.cpp
|
|
||||||
index 7c5ed42d0..671efa7d3 100644
|
|
||||||
--- a/src/codec/video/VideoEncoderFFmpeg.cpp
|
|
||||||
+++ b/src/codec/video/VideoEncoderFFmpeg.cpp
|
|
||||||
@@ -245,7 +245,7 @@ bool VideoEncoderFFmpegPrivate::open()
|
|
||||||
applyOptionsForContext();
|
|
||||||
AV_ENSURE_OK(avcodec_open2(avctx, codec, &dict), false);
|
|
||||||
// from mpv ao_lavc
|
|
||||||
- const int buffer_size = qMax<int>(qMax<int>(width*height*6+200, FF_MIN_BUFFER_SIZE), sizeof(AVPicture));//??
|
|
||||||
+ const int buffer_size = qMax<int>(qMax<int>(width*height*6+200, AV_INPUT_BUFFER_MIN_SIZE), sizeof(AVPicture));//??
|
|
||||||
buffer.resize(buffer_size);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
diff --git a/src/filter/LibAVFilter.cpp b/src/filter/LibAVFilter.cpp
|
|
||||||
index 191512040..8993a91f7 100644
|
|
||||||
--- a/src/filter/LibAVFilter.cpp
|
|
||||||
+++ b/src/filter/LibAVFilter.cpp
|
|
||||||
@@ -120,7 +120,10 @@ class LibAVFilter::Private
|
|
||||||
// pixel_aspect==sar, pixel_aspect is more compatible
|
|
||||||
QString buffersrc_args = args;
|
|
||||||
qDebug("buffersrc_args=%s", buffersrc_args.toUtf8().constData());
|
|
||||||
- AVFilter *buffersrc = avfilter_get_by_name(video ? "buffer" : "abuffer");
|
|
||||||
+#if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(7,0,0)
|
|
||||||
+ const
|
|
||||||
+#endif
|
|
||||||
+ AVFilter *buffersrc = avfilter_get_by_name(video ? "buffer" : "abuffer");
|
|
||||||
Q_ASSERT(buffersrc);
|
|
||||||
AV_ENSURE_OK(avfilter_graph_create_filter(&in_filter_ctx,
|
|
||||||
buffersrc,
|
|
||||||
@@ -128,6 +131,9 @@ class LibAVFilter::Private
|
|
||||||
filter_graph)
|
|
||||||
, false);
|
|
||||||
/* buffer video sink: to terminate the filter chain. */
|
|
||||||
+#if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(7,0,0)
|
|
||||||
+ const
|
|
||||||
+#endif
|
|
||||||
AVFilter *buffersink = avfilter_get_by_name(video ? "buffersink" : "abuffersink");
|
|
||||||
Q_ASSERT(buffersink);
|
|
||||||
AV_ENSURE_OK(avfilter_graph_create_filter(&out_filter_ctx, buffersink, "out",
|
|
||||||
diff --git a/src/subtitle/SubtitleProcessorFFmpeg.cpp b/src/subtitle/SubtitleProcessorFFmpeg.cpp
|
|
||||||
index 30ee9367c..1755c3816 100644
|
|
||||||
--- a/src/subtitle/SubtitleProcessorFFmpeg.cpp
|
|
||||||
+++ b/src/subtitle/SubtitleProcessorFFmpeg.cpp
|
|
||||||
@@ -249,7 +249,7 @@ bool SubtitleProcessorFFmpeg::processHeader(const QByteArray &codec, const QByte
|
|
||||||
codec_ctx->time_base.den = 1000;
|
|
||||||
if (!data.isEmpty()) {
|
|
||||||
av_free(codec_ctx->extradata);
|
|
||||||
- codec_ctx->extradata = (uint8_t*)av_mallocz(data.size() + FF_INPUT_BUFFER_PADDING_SIZE);
|
|
||||||
+ codec_ctx->extradata = (uint8_t*)av_mallocz(data.size() + AV_INPUT_BUFFER_PADDING_SIZE);
|
|
||||||
if (!codec_ctx->extradata)
|
|
||||||
return false;
|
|
||||||
codec_ctx->extradata_size = data.size();
|
|
||||||
|
|
||||||
From 1633f2962e195eb2a013072e694a2e1c701613a8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: 0xFelix <evostar@gmx.de>
|
|
||||||
Date: Tue, 12 Dec 2017 13:24:34 +0100
|
|
||||||
Subject: [PATCH] Remove usage of deprecated avfiltergraph.h header
|
|
||||||
|
|
||||||
avfiltergraph.h was replaced by avfilter.h in libavfilter version
|
|
||||||
3.8.0+ so only include it when the used libavfilter version
|
|
||||||
is older than 3.8.0
|
|
||||||
---
|
|
||||||
src/QtAV/private/AVCompat.h | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/QtAV/private/AVCompat.h b/src/QtAV/private/AVCompat.h
|
|
||||||
index 6c38596d1..944cfd7de 100644
|
|
||||||
--- a/src/QtAV/private/AVCompat.h
|
|
||||||
+++ b/src/QtAV/private/AVCompat.h
|
|
||||||
@@ -59,6 +59,7 @@ extern "C"
|
|
||||||
#include <libavutil/parseutils.h>
|
|
||||||
#include <libavutil/pixdesc.h>
|
|
||||||
#include <libavutil/avstring.h>
|
|
||||||
+#include <libavfilter/version.h>
|
|
||||||
|
|
||||||
#if !FFMPEG_MODULE_CHECK(LIBAVUTIL, 51, 73, 101)
|
|
||||||
#include <libavutil/channel_layout.h>
|
|
||||||
@@ -79,8 +80,11 @@ extern "C"
|
|
||||||
#endif //QTAV_HAVE(AVRESAMPLE)
|
|
||||||
|
|
||||||
#if QTAV_HAVE(AVFILTER)
|
|
||||||
+#if LIBAVFILTER_VERSION_INT < AV_VERSION_INT(3,8,0)
|
|
||||||
#include <libavfilter/avfiltergraph.h> /*code is here for old version*/
|
|
||||||
+#else
|
|
||||||
#include <libavfilter/avfilter.h>
|
|
||||||
+#endif
|
|
||||||
#include <libavfilter/buffersink.h>
|
|
||||||
#include <libavfilter/buffersrc.h>
|
|
||||||
#endif //QTAV_HAVE(AVFILTER)
|
|
||||||
|
|
20
srcpkgs/qtav/patches/qt5-5.15.0.patch
Normal file
20
srcpkgs/qtav/patches/qt5-5.15.0.patch
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
--- src/QtAV/FilterContext.h 2019-07-11 02:58:59.000000000 +0200
|
||||||
|
+++ src/QtAV/FilterContext.h 2020-07-25 11:16:49.931296324 +0200
|
||||||
|
@@ -26,6 +26,7 @@
|
||||||
|
#include <QtCore/QByteArray>
|
||||||
|
#include <QtCore/QRect>
|
||||||
|
#include <QtGui/QPainter>
|
||||||
|
+#include <QtGui/QPainterPath>
|
||||||
|
/*
|
||||||
|
* QPainterFilterContext, D2DFilterContext, ...
|
||||||
|
*/
|
||||||
|
--- qml/SGVideoNode.cpp 2019-07-11 02:58:59.000000000 +0200
|
||||||
|
+++ qml/SGVideoNode.cpp 2020-07-25 11:20:28.307307590 +0200
|
||||||
|
@@ -25,6 +25,7 @@
|
||||||
|
#include "QtAV/VideoFrame.h"
|
||||||
|
#include <QtCore/QScopedPointer>
|
||||||
|
#include <QtGui/QOpenGLFunctions>
|
||||||
|
+#include <QtQuick/QSGMaterial>
|
||||||
|
#include <QtQuick/QSGMaterialShader>
|
||||||
|
|
||||||
|
// all in QSGRenderThread
|
|
@ -1,10 +1,9 @@
|
||||||
# Template file for 'qtav'
|
# Template file for 'qtav'
|
||||||
pkgname=qtav
|
pkgname=qtav
|
||||||
version=1.12.0
|
version=1.13.0
|
||||||
revision=3
|
revision=1
|
||||||
wrksrc="QtAV-${version}"
|
wrksrc="QtAV-${version}"
|
||||||
build_style=qmake
|
build_style=qmake
|
||||||
patch_args="-Np1"
|
|
||||||
makedepends="ffmpeg-devel libass-devel libopenal-devel
|
makedepends="ffmpeg-devel libass-devel libopenal-devel
|
||||||
libva-glx-devel libXv-devel pulseaudio-devel
|
libva-glx-devel libXv-devel pulseaudio-devel
|
||||||
qt5-declarative-devel qt5-svg-devel
|
qt5-declarative-devel qt5-svg-devel
|
||||||
|
@ -16,7 +15,7 @@ license="LGPL-2.1-or-later, GPL-3.0-or-later"
|
||||||
homepage="http://www.qtav.org"
|
homepage="http://www.qtav.org"
|
||||||
changelog="https://raw.githubusercontent.com/wang-bin/QtAV/master/Changelog"
|
changelog="https://raw.githubusercontent.com/wang-bin/QtAV/master/Changelog"
|
||||||
distfiles="https://github.com/wang-bin/QtAV/archive/v${version}.tar.gz"
|
distfiles="https://github.com/wang-bin/QtAV/archive/v${version}.tar.gz"
|
||||||
checksum=65ab859985d73521c2d17e72117baae0f3f6242b69f59994acada76fa5364193
|
checksum=a493d54d105b32c526f05188e4d7a8cf3508ecac697aae088721ffad20982288
|
||||||
nocross="qmake attempts to run host tests using target compiler"
|
nocross="qmake attempts to run host tests using target compiler"
|
||||||
|
|
||||||
post_install() {
|
post_install() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue