From 01aa1577e51fce92b744d20abbf411c0e835cbad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= Date: Sat, 25 Jul 2020 11:22:17 +0200 Subject: [PATCH] qtav: update to 1.13.0 + fixes for qt5-5.15.0 --- srcpkgs/qtav/patches/ffmpeg4.patch | 157 -------------------------- srcpkgs/qtav/patches/qt5-5.15.0.patch | 20 ++++ srcpkgs/qtav/template | 7 +- 3 files changed, 23 insertions(+), 161 deletions(-) delete mode 100644 srcpkgs/qtav/patches/ffmpeg4.patch create mode 100644 srcpkgs/qtav/patches/qt5-5.15.0.patch diff --git a/srcpkgs/qtav/patches/ffmpeg4.patch b/srcpkgs/qtav/patches/ffmpeg4.patch deleted file mode 100644 index bc9ec59db4..0000000000 --- a/srcpkgs/qtav/patches/ffmpeg4.patch +++ /dev/null @@ -1,157 +0,0 @@ -From 7f6929b49c25ca475a08f87e8b52aa1642d109dd Mon Sep 17 00:00:00 2001 -From: Felix Matouschek -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(qMax(width*height*6+200, FF_MIN_BUFFER_SIZE), sizeof(AVPicture));//?? -+ const int buffer_size = qMax(qMax(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 -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 - #include - #include -+#include - - #if !FFMPEG_MODULE_CHECK(LIBAVUTIL, 51, 73, 101) - #include -@@ -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 /*code is here for old version*/ -+#else - #include -+#endif - #include - #include - #endif //QTAV_HAVE(AVFILTER) - diff --git a/srcpkgs/qtav/patches/qt5-5.15.0.patch b/srcpkgs/qtav/patches/qt5-5.15.0.patch new file mode 100644 index 0000000000..3ed32b993d --- /dev/null +++ b/srcpkgs/qtav/patches/qt5-5.15.0.patch @@ -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 + #include + #include ++#include + /* + * 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 + #include ++#include + #include + + // all in QSGRenderThread diff --git a/srcpkgs/qtav/template b/srcpkgs/qtav/template index 68433ae727..c823f7972b 100644 --- a/srcpkgs/qtav/template +++ b/srcpkgs/qtav/template @@ -1,10 +1,9 @@ # Template file for 'qtav' pkgname=qtav -version=1.12.0 -revision=3 +version=1.13.0 +revision=1 wrksrc="QtAV-${version}" build_style=qmake -patch_args="-Np1" makedepends="ffmpeg-devel libass-devel libopenal-devel libva-glx-devel libXv-devel pulseaudio-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" changelog="https://raw.githubusercontent.com/wang-bin/QtAV/master/Changelog" 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" post_install() {