[arch-commits] Commit in k3b/repos (3 files)
Antonio Rojas
arojas at gemini.archlinux.org
Thu Mar 3 11:33:18 UTC 2022
Date: Thursday, March 3, 2022 @ 11:33:17
Author: arojas
Revision: 438493
archrelease: copy trunk to testing-x86_64
Added:
k3b/repos/testing-x86_64/
k3b/repos/testing-x86_64/PKGBUILD
(from rev 438492, k3b/trunk/PKGBUILD)
k3b/repos/testing-x86_64/ffmpeg5.patch
(from rev 438492, k3b/trunk/ffmpeg5.patch)
---------------+
PKGBUILD | 45 +++++++++++++++++++++++++++++++++++
ffmpeg5.patch | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 117 insertions(+)
Copied: k3b/repos/testing-x86_64/PKGBUILD (from rev 438492, k3b/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD (rev 0)
+++ testing-x86_64/PKGBUILD 2022-03-03 11:33:17 UTC (rev 438493)
@@ -0,0 +1,45 @@
+# Maintainer: Eric Bélanger <eric at archlinux.org>
+# Maintainer: Antonio Rojas <arojas at archlinux.org>
+
+pkgname=k3b
+pkgver=21.12.3
+pkgrel=1
+epoch=1
+pkgdesc='Feature-rich and easy to handle CD burning application'
+arch=(x86_64)
+url='https://apps.kde.org/k3b/'
+license=(GPL)
+depends=(libkcddb kcmutils knotifyconfig libmad kfilemetadata knewstuff
+ libmpcdec libdvdread libburn qt5-webkit)
+makedepends=(extra-cmake-modules kdoctools)
+optdepends=('cdrtools: for CD burning with cdrecord'
+ 'dvd+rw-tools: for DVD burning support'
+ 'vcdimager: for VCD burning support'
+ 'emovix: for bootable multimedia CD/DVD support'
+ 'cdrdao: for disk-at-once (DAO) mode support'
+ 'cdparanoia: for CD ripping support' 'transcode: for DVD ripping support')
+groups=(kde-applications kde-multimedia)
+source=(https://download.kde.org/stable/release-service/$pkgver/src/$pkgname-$pkgver.tar.xz{,.sig}
+ ffmpeg5.patch)
+sha256sums=('acdbf40e1bccff837c50ba0a9d5e83370c24bc759c51d61385429ac3bf59f845'
+ 'SKIP'
+ '4855cef052eebccbbcfabbb59b197cf9ed1703bbf548187a3596692821d89657')
+validpgpkeys=(CA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7 # Albert Astals Cid <aacid at kde.org>
+ F23275E4BF10AFC1DF6914A6DBD2CE893E2D1C87 # Christoph Feck <cfeck at kde.org>
+ D81C0CB38EB725EF6691C385BB463350D6EF31EF) # Heiko Becker <heiko.becker at kde.org>
+options=(debug)
+
+prepare() {
+ patch -d $pkgname-$pkgver -p1 < ffmpeg5.patch # Fix build with FFmpeg 5 - patch from Bernhard Rosenkraenzer
+}
+
+build() {
+ cmake -B build -S $pkgname-$pkgver \
+ -DCMAKE_INSTALL_LIBEXECDIR=lib \
+ -DBUILD_TESTING=OFF
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
Copied: k3b/repos/testing-x86_64/ffmpeg5.patch (from rev 438492, k3b/trunk/ffmpeg5.patch)
===================================================================
--- testing-x86_64/ffmpeg5.patch (rev 0)
+++ testing-x86_64/ffmpeg5.patch 2022-03-03 11:33:17 UTC (rev 438493)
@@ -0,0 +1,72 @@
+diff -up k3b-21.12.1/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp.omv~ k3b-21.12.1/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
+--- k3b-21.12.1/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp.omv~ 2022-01-17 19:44:11.314744839 +0100
++++ k3b-21.12.1/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp 2022-01-17 19:55:07.045724184 +0100
+@@ -38,7 +38,20 @@ extern "C" {
+ #include <math.h>
+
+
++#if LIBAVCODEC_VERSION_MAJOR < 59
+ #define FFMPEG_CODEC(s) (s->codec)
++#else
++static QMap<AVStream*,AVCodecContext*> k3b_codec_contexts;
++static inline AVCodecContext *FFMPEG_CODEC(AVStream *s) {
++ if(!k3b_codec_contexts.contains(s)) {
++ const AVCodec *codec = avcodec_find_decoder(s->codecpar->codec_id);
++ AVCodecContext *ctx = avcodec_alloc_context3(codec);
++ avcodec_parameters_to_context(ctx, s->codecpar);
++ k3b_codec_contexts.insert(s, ctx);
++ }
++ return k3b_codec_contexts.value(s);
++}
++#endif
+
+ #ifndef HAVE_FFMPEG_AVFORMAT_OPEN_INPUT
+ // this works because the parameters/options are not used
+@@ -70,7 +83,7 @@ class K3bFFMpegFile::Private
+ {
+ public:
+ ::AVFormatContext* formatContext;
+- ::AVCodec* codec;
++ const ::AVCodec* codec;
+ ::AVStream *audio_stream;
+
+ K3b::Msf length;
+@@ -320,11 +333,28 @@ int K3bFFMpegFile::fillOutputBuffer()
+ }
+
+ int gotFrame = 0;
++#if LIBAVCODEC_VERSION_MAJOR < 59
+ int len = ::avcodec_decode_audio4(
+ FFMPEG_CODEC(d->audio_stream),
+ d->frame,
+ &gotFrame,
+ &d->packet );
++#else
++ int ret = ::avcodec_receive_frame(
++ FFMPEG_CODEC(d->audio_stream),
++ d->frame);
++
++ gotFrame = (ret == 0);
++
++ ret = avcodec_send_packet(
++ FFMPEG_CODEC(d->audio_stream),
++ &d->packet );
++ if (ret < 0) {
++ qDebug() << "(K3bFFMpegFile) decoding failed for " << m_filename;
++ return -1;
++ }
++ int len = d->packet.size;
++#endif
+
+ if( d->packetSize <= 0 || len < 0 )
+ ::av_packet_unref( &d->packet );
+@@ -393,7 +423,9 @@ bool K3bFFMpegFile::seek( const K3b::Msf
+
+ K3bFFMpegWrapper::K3bFFMpegWrapper()
+ {
++#if LIBAVCODEC_VERSION_MAJOR < 59
+ ::av_register_all();
++#endif
+ }
+
+
More information about the arch-commits
mailing list