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 +}