diff options
Diffstat (limited to 'source/kde/patch/k3b')
-rw-r--r-- | source/kde/patch/k3b/k3b-ffmpeg3.patch | 138 | ||||
-rw-r--r-- | source/kde/patch/k3b/k3b.narrowing.diff | 71 | ||||
-rw-r--r-- | source/kde/patch/k3b/k3b.pointer.compare.diff | 29 |
3 files changed, 238 insertions, 0 deletions
diff --git a/source/kde/patch/k3b/k3b-ffmpeg3.patch b/source/kde/patch/k3b/k3b-ffmpeg3.patch new file mode 100644 index 00000000..9c5ac420 --- /dev/null +++ b/source/kde/patch/k3b/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@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@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 + diff --git a/source/kde/patch/k3b/k3b.narrowing.diff b/source/kde/patch/k3b/k3b.narrowing.diff new file mode 100644 index 00000000..7a328394 --- /dev/null +++ b/source/kde/patch/k3b/k3b.narrowing.diff @@ -0,0 +1,71 @@ +--- 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/source/kde/patch/k3b/k3b.pointer.compare.diff b/source/kde/patch/k3b/k3b.pointer.compare.diff new file mode 100644 index 00000000..590fce7a --- /dev/null +++ b/source/kde/patch/k3b/k3b.pointer.compare.diff @@ -0,0 +1,29 @@ +--- ./plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp.orig 2017-05-06 16:40:46.273796232 -0500 ++++ ./plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp 2017-05-06 16:47:19.594787855 -0500 +@@ -261,7 +261,7 @@ + AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "TITLE", NULL, 0 ); + if( ade == NULL ) + return QString(); +- if( ade->value != '\0' ) ++ if( ade->value ) + return QString::fromLocal8Bit( ade->value ); + else + return QString(); +@@ -274,7 +274,7 @@ + AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "ARTIST", NULL, 0 ); + if( ade == NULL ) + return QString(); +- if( ade->value != '\0' ) ++ if( ade->value ) + return QString::fromLocal8Bit( ade->value ); + else + return QString(); +@@ -287,7 +287,7 @@ + AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "COMMENT", NULL, 0 ); + if( ade == NULL ) + return QString(); +- if( ade->value != '\0' ) ++ if( ade->value ) + return QString::fromLocal8Bit( ade->value ); + else + return QString(); |