commit afd9f2b0945c5883293c17037718f409d02846cf
Author: leigh123linux <leigh123linux(a)googlemail.com>
Date: Wed Jun 22 21:40:01 2016 +0100
Patch for gcc6 and ffmpeg-3
k3b-2.0.3-gcc6.patch | 73 +++++++++++++++++++++
k3b-extras-freeworld.spec | 11 +++-
k3b-ffmpeg-review-113295-1.patch | 80 -----------------------
k3b-ffmpeg3.patch | 138 +++++++++++++++++++++++++++++++++++++++
4 files changed, 220 insertions(+), 82 deletions(-)
---
diff --git a/k3b-2.0.3-gcc6.patch b/k3b-2.0.3-gcc6.patch
new file mode 100644
index 0000000..4b76645
--- /dev/null
+++ b/k3b-2.0.3-gcc6.patch
@@ -0,0 +1,73 @@
+--- k3b-2.0.3/libk3b/tools/k3bwavefilewriter.cpp.old 2016-05-14 12:33:15.000000000 -0400
++++ k3b-2.0.3/libk3b/tools/k3bwavefilewriter.cpp 2016-05-14 12:34:35.218389226 -0400
+@@ -111,17 +111,17 @@
+ {
+ static const char riffHeader[] =
+ {
+- 0x52, 0x49, 0x46, 0x46, // 0 "RIFF"
+- 0x00, 0x00, 0x00, 0x00, // 4 wavSize
+- 0x57, 0x41, 0x56, 0x45, // 8 "WAVE"
+- 0x66, 0x6d, 0x74, 0x20, // 12 "fmt "
+- 0x10, 0x00, 0x00, 0x00, // 16
+- 0x01, 0x00, 0x02, 0x00, // 20
+- 0x44, 0xac, 0x00, 0x00, // 24
+- 0x10, 0xb1, 0x02, 0x00, // 28
+- 0x04, 0x00, 0x10, 0x00, // 32
+- 0x64, 0x61, 0x74, 0x61, // 36 "data"
+- 0x00, 0x00, 0x00, 0x00 // 40 byteCount
++ (char)0x52, (char)0x49, (char)0x46, (char)0x46, // 0 "RIFF"
++ (char)0x00, (char)0x00, (char)0x00, (char)0x00, // 4 wavSize
++ (char)0x57, (char)0x41, (char)0x56, (char)0x45, // 8 "WAVE"
++ (char)0x66, (char)0x6d, (char)0x74, (char)0x20, // 12 "fmt "
++ (char)0x10, (char)0x00, (char)0x00, (char)0x00, // 16
++ (char)0x01, (char)0x00, (char)0x02, (char)0x00, // 20
++ (char)0x44, (char)0xac, (char)0x00, (char)0x00, // 24
++ (char)0x10, (char)0xb1, (char)0x02, (char)0x00, // 28
++ (char)0x04, (char)0x00, (char)0x10, (char)0x00, // 32
++ (char)0x64, (char)0x61, (char)0x74, (char)0x61, // 36 "data"
++ (char)0x00, (char)0x00, (char)0x00, (char)0x00 // 40 byteCount
+ };
+
+ m_outputStream.writeRawData( riffHeader, 44 );
+--- k3b-2.0.3/libk3b/projects/k3bcdrdaowriter.cpp.old 2014-11-04 13:37:31.000000000
-0500
++++ k3b-2.0.3/libk3b/projects/k3bcdrdaowriter.cpp 2016-05-14 12:41:13.769135417 -0400
+@@ -908,7 +908,7 @@
+
+ void K3b::CdrdaoWriter::parseCdrdaoMessage()
+ {
+- static const char msgSync[] = { 0xff, 0x00, 0xff, 0x00 };
++ static const char msgSync[] = { (char)0xff, (char)0x00, (char)0xff, (char)0x00 };
+ unsigned int avail = m_comSock->bytesAvailable();
+ unsigned int msgs = avail / ( sizeof(msgSync)+d->progressMsgSize );
+ unsigned int count = 0;
+--- k3b-2.0.3/plugins/encoder/external/k3bexternalencoder.cpp.old 2014-11-04
13:37:31.000000000 -0500
++++ k3b-2.0.3/plugins/encoder/external/k3bexternalencoder.cpp 2016-05-14
12:45:57.967902413 -0400
+@@ -39,17 +39,17 @@
+
+ static const char s_riffHeader[] =
+ {
+- 0x52, 0x49, 0x46, 0x46, // 0 "RIFF"
+- 0x00, 0x00, 0x00, 0x00, // 4 wavSize
+- 0x57, 0x41, 0x56, 0x45, // 8 "WAVE"
+- 0x66, 0x6d, 0x74, 0x20, // 12 "fmt "
+- 0x10, 0x00, 0x00, 0x00, // 16
+- 0x01, 0x00, 0x02, 0x00, // 20
+- 0x44, 0xac, 0x00, 0x00, // 24
+- 0x10, 0xb1, 0x02, 0x00, // 28
+- 0x04, 0x00, 0x10, 0x00, // 32
+- 0x64, 0x61, 0x74, 0x61, // 36 "data"
+- 0x00, 0x00, 0x00, 0x00 // 40 byteCount
++ (char)0x52, (char)0x49, (char)0x46, (char)0x46, // 0 "RIFF"
++ (char)0x00, (char)0x00, (char)0x00, (char)0x00, // 4 wavSize
++ (char)0x57, (char)0x41, (char)0x56, (char)0x45, // 8 "WAVE"
++ (char)0x66, (char)0x6d, (char)0x74, (char)0x20, // 12 "fmt "
++ (char)0x10, (char)0x00, (char)0x00, (char)0x00, // 16
++ (char)0x01, (char)0x00, (char)0x02, (char)0x00, // 20
++ (char)0x44, (char)0xac, (char)0x00, (char)0x00, // 24
++ (char)0x10, (char)0xb1, (char)0x02, (char)0x00, // 28
++ (char)0x04, (char)0x00, (char)0x10, (char)0x00, // 32
++ (char)0x64, (char)0x61, (char)0x74, (char)0x61, // 36 "data"
++ (char)0x00, (char)0x00, (char)0x00, (char)0x00 // 40 byteCount
+ };
+
+
diff --git a/k3b-extras-freeworld.spec b/k3b-extras-freeworld.spec
index ba5cc09..14fa209 100644
--- a/k3b-extras-freeworld.spec
+++ b/k3b-extras-freeworld.spec
@@ -8,7 +8,7 @@ Name: k3b-extras-freeworld
Summary: Additional codec plugins for the k3b CD/DVD burning application
Epoch: 1
Version: 2.0.3
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
URL:
http://www.k3b.org/
@@ -19,7 +19,8 @@ ExcludeArch: s390 s390x
#
https://git.reviewboard.kde.org/r/113295/
# see also
http://bugs.kde.org/325486
-Patch500: k3b-ffmpeg-review-113295-1.patch
+Patch500: k3b-ffmpeg3.patch
+Patch501: k3b-2.0.3-gcc6.patch
BuildRequires: desktop-file-utils
BuildRequires: gettext
@@ -59,6 +60,8 @@ handle CD/DVD burning application.
%prep
%setup -q -n k3b-%{version}
+%patch500 -p1
+%patch501 -p1
# hack around cmake-related FTBFS
sed -i.cmakehack -e "s|^cmake_minimum_required|#cmake_minimum_required|"
CMakeLists.txt
@@ -103,6 +106,10 @@ popd
%changelog
+* Wed Jun 22 2016 Leigh Scott <leigh123linux(a)googlemail.com> - 1:2.0.3-2
+- Patch for gcc6
+- Patch fot ffmpeg
+
* Thu Apr 14 2016 Sérgio Basto <sergio(a)serjux.com> - 1:2.0.3-1
- Update to 2.0.3 .
- Drop all 5 upstream patches .
diff --git a/k3b-ffmpeg3.patch b/k3b-ffmpeg3.patch
new file mode 100644
index 0000000..9c5ac42
--- /dev/null
+++ b/k3b-ffmpeg3.patch
@@ -0,0 +1,138 @@
+From 52d3d64863d2fab4128f524870851f18f5cae1fc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Old=C5=99ich=20Jedli=C4=8Dka?= <oldium.pro(a)seznam.cz>
+Date: Sat, 14 Feb 2015 15:31:07 +0100
+Subject: [PATCH] Fixed compilation with newer ffmpeg/libav.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Oldřich Jedlička <oldium.pro(a)seznam.cz>
+---
+ plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp | 60 ++++++++++++++++++++++++-----
+ 1 file changed, 50 insertions(+), 10 deletions(-)
+
+diff --git a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
+index 5451fd3..2f80fd6 100644
+--- a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
++++ b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
+@@ -86,8 +86,12 @@ public:
+ K3b::Msf length;
+
+ // for decoding. ffmpeg requires 16-byte alignment.
++#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO4
++ ::AVFrame* frame;
++#else
+ char outputBuffer[AVCODEC_MAX_AUDIO_FRAME_SIZE + 15];
+ char* alignedOutputBuffer;
++#endif
+ char* outputBufferPos;
+ int outputBufferSize;
+ ::AVPacket packet;
+@@ -102,14 +106,29 @@ K3bFFMpegFile::K3bFFMpegFile( const QString& filename )
+ d = new Private;
+ d->formatContext = 0;
+ d->codec = 0;
++#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO4
++# if LIBAVCODEC_BUILD < AV_VERSION_INT(55,28,1)
++ d->frame = avcodec_alloc_frame();
++# else
++ d->frame = av_frame_alloc();
++# endif
++#else
+ int offset = 0x10 - (reinterpret_cast<intptr_t>(&d->outputBuffer) &
0xf);
+ d->alignedOutputBuffer = &d->outputBuffer[offset];
++#endif
+ }
+
+
+ K3bFFMpegFile::~K3bFFMpegFile()
+ {
+ close();
++#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO4
++# if LIBAVCODEC_BUILD < AV_VERSION_INT(55,28,1)
++ av_free(d->frame);
++# else
++ av_frame_free(&d->frame);
++# endif
++#endif
+ delete d;
+ }
+
+@@ -326,26 +345,36 @@ int K3bFFMpegFile::fillOutputBuffer()
+ return 0;
+ }
+
++#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO4
++ int gotFrame = 0;
++ int len = ::avcodec_decode_audio4(
++#else
+ d->outputBufferPos = d->alignedOutputBuffer;
+ d->outputBufferSize = AVCODEC_MAX_AUDIO_FRAME_SIZE;
+-
+-#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO3
++# ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO3
+ int len = ::avcodec_decode_audio3(
+-#else
+-# ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO2
+- int len = ::avcodec_decode_audio2(
+ # else
++# ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO2
++ int len = ::avcodec_decode_audio2(
++# else
+ int len = ::avcodec_decode_audio(
++# endif
+ # endif
+ #endif
+
+ FFMPEG_CODEC(d->formatContext->streams[0]),
++#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO4
++ d->frame,
++ &gotFrame,
++ &d->packet );
++#else
+ (short*)d->alignedOutputBuffer,
+ &d->outputBufferSize,
+-#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO3
++# ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO3
+ &d->packet );
+-#else
++# else
+ d->packetData, d->packetSize );
++# endif
+ #endif
+
+ if( d->packetSize <= 0 || len < 0 )
+@@ -355,6 +384,17 @@ int K3bFFMpegFile::fillOutputBuffer()
+ return -1;
+ }
+
++#ifdef HAVE_FFMPEG_AVCODEC_DECODE_AUDIO4
++ if ( gotFrame ) {
++ d->outputBufferSize = ::av_samples_get_buffer_size(
++ NULL,
++ FFMPEG_CODEC(d->formatContext->streams[0])->channels,
++ d->frame->nb_samples,
++ FFMPEG_CODEC(d->formatContext->streams[0])->sample_fmt,
++ 1 );
++ d->outputBufferPos = reinterpret_cast<char*>(
d->frame->data[0] );
++ }
++#endif
+ d->packetSize -= len;
+ d->packetData += len;
+ }
+@@ -420,9 +460,9 @@ K3bFFMpegFile* K3bFFMpegWrapper::open( const QString& filename )
const
+ // mp3 being one of them sadly. Most importantly: allow the libsndfile decoder
to do
+ // its thing.
+ //
+- if( file->type() == CODEC_ID_WMAV1 ||
+- file->type() == CODEC_ID_WMAV2 ||
+- file->type() == CODEC_ID_AAC )
++ if( file->type() == AV_CODEC_ID_WMAV1 ||
++ file->type() == AV_CODEC_ID_WMAV2 ||
++ file->type() == AV_CODEC_ID_AAC )
+ #endif
+ return file;
+ }
+--
+2.0.5
+