commit:     06b7fc2fe7d89b940e2eecb349d6f6f6d8717a75
Author:     Andreas Sturmlechner <andreas.sturmlechner <AT> gmail <DOT> com>
AuthorDate: Sun May 17 10:01:51 2015 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Sat May 23 16:12:47 2015 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=06b7fc2f

[app-cdr/k3b] Add libav-11 fix

Package-Manager: portage-2.2.18

 app-cdr/k3b/files/k3b-2.0.3-libav-11.patch | 138 +++++++++++++++++++++++++++++
 app-cdr/k3b/k3b-2.0.3-r2.ebuild            | 113 +++++++++++++++++++++++
 2 files changed, 251 insertions(+)

diff --git a/app-cdr/k3b/files/k3b-2.0.3-libav-11.patch 
b/app-cdr/k3b/files/k3b-2.0.3-libav-11.patch
new file mode 100644
index 0000000..9c5ac42
--- /dev/null
+++ b/app-cdr/k3b/files/k3b-2.0.3-libav-11.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....@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....@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/app-cdr/k3b/k3b-2.0.3-r2.ebuild b/app-cdr/k3b/k3b-2.0.3-r2.ebuild
new file mode 100644
index 0000000..afaaa09
--- /dev/null
+++ b/app-cdr/k3b/k3b-2.0.3-r2.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-cdr/k3b/k3b-2.0.3-r1.ebuild,v 1.7 
2015/05/13 09:31:09 ago Exp $
+
+EAPI=5
+
+MULTIMEDIA_REQUIRED="always"
+WEBKIT_REQUIRED="always"
+KDE_HANDBOOK="optional"
+KDE_SCM="git"
+
+# Translations are not available, since this is a snapshot
+KDE_LINGUAS="ast be bg bs ca ca@valencia cs csb da de el en_GB eo es et eu fi 
fr
+ga gl he hi hne hr hu is it ja kk km ko ku lt lv mai mr ms nb nds nl nn oc pa 
pl
+pt pt_BR ro ru se sk sl sr sr@ijekavian sr@ijekavianlatin sr@latin sv th tr ug 
uk
+zh_CN zh_TW"
+
+SRC_URI="mirror://kde/stable/${PN}/${P}a.tar.xz"
+DOCS=( FAQ PERMISSIONS README )
+
+inherit kde4-base
+
+DESCRIPTION="The CD/DVD Kreator for KDE"
+HOMEPAGE="http://www.k3b.org/";
+
+LICENSE="GPL-2 FDL-1.2"
+SLOT="4"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="debug dvd emovix encode ffmpeg flac libav mad mp3 musepack sndfile sox 
taglib vcd vorbis"
+
+CDEPEND="
+       || ( kde-apps/libkcddb:4 $(add_kdebase_dep libkcddb) )
+       media-libs/libsamplerate
+       dvd? ( media-libs/libdvdread )
+       ffmpeg? (
+               libav? ( media-video/libav:= )
+               !libav? ( media-video/ffmpeg:0= )
+       )
+       flac? ( >=media-libs/flac-1.2[cxx] )
+       mp3? ( media-sound/lame )
+       mad? ( media-libs/libmad )
+       musepack? ( >=media-sound/musepack-tools-444 )
+       sndfile? ( media-libs/libsndfile )
+       taglib? ( >=media-libs/taglib-1.5 )
+       vorbis? ( media-libs/libvorbis )
+"
+DEPEND="${CDEPEND}
+       sys-devel/gettext
+"
+RDEPEND="${CDEPEND}
+       $(add_kdebase_dep kdelibs 'udev,udisks(+)')
+       app-cdr/cdrdao
+       media-sound/cdparanoia
+       virtual/cdrtools
+       dvd? (
+               >=app-cdr/dvd+rw-tools-7
+               encode? ( media-video/transcode[dvd] )
+       )
+       emovix? ( media-video/emovix )
+       sox? ( media-sound/sox )
+       vcd? ( media-video/vcdimager )
+"
+
+DOCS+=( ChangeLog )
+
+PATCHES=(
+       "${FILESDIR}/${PN}-2.0.3-libav-11.patch" #509332
+)
+
+REQUIRED_USE="
+       mp3? ( encode )
+       sox? ( encode )
+"
+
+src_configure() {
+       mycmakeargs=(
+               -DK3B_BUILD_API_DOCS=OFF
+               -DK3B_BUILD_K3BSETUP=OFF
+               -DK3B_BUILD_WAVE_DECODER_PLUGIN=ON
+               -DK3B_ENABLE_HAL_SUPPORT=OFF
+               -DK3B_ENABLE_MUSICBRAINZ=OFF
+               $(cmake-utils_use debug K3B_DEBUG)
+               $(cmake-utils_use dvd K3B_ENABLE_DVD_RIPPING)
+               $(cmake-utils_use encode K3B_BUILD_EXTERNAL_ENCODER_PLUGIN)
+               $(cmake-utils_use ffmpeg K3B_BUILD_FFMPEG_DECODER_PLUGIN)
+               $(cmake-utils_use flac K3B_BUILD_FLAC_DECODER_PLUGIN)
+               $(cmake-utils_use mp3 K3B_BUILD_LAME_ENCODER_PLUGIN)
+               $(cmake-utils_use mad K3B_BUILD_MAD_DECODER_PLUGIN)
+               $(cmake-utils_use musepack K3B_BUILD_MUSE_DECODER_PLUGIN)
+               $(cmake-utils_use sndfile K3B_BUILD_SNDFILE_DECODER_PLUGIN)
+               $(cmake-utils_use sox K3B_BUILD_SOX_ENCODER_PLUGIN)
+               $(cmake-utils_use taglib K3B_ENABLE_TAGLIB)
+               $(cmake-utils_use vorbis K3B_BUILD_OGGVORBIS_DECODER_PLUGIN)
+               $(cmake-utils_use vorbis K3B_BUILD_OGGVORBIS_ENCODER_PLUGIN)
+       )
+       kde4-base_src_configure
+}
+
+pkg_postinst() {
+       kde4-base_pkg_postinst
+
+       echo
+       elog "We don't install k3bsetup anymore because Gentoo doesn't need it."
+       elog "If you get warnings on start-up, uncheck the \"Check system"
+       elog "configuration\" option in the \"Misc\" settings window."
+       echo
+
+       local group=cdrom
+       use kernel_linux || group=operator
+       elog "Make sure you have proper read/write permissions on the cdrom 
device(s)."
+       elog "Usually, it is sufficient to be in the ${group} group."
+       echo
+}

Reply via email to